|
|
@@ -1268,6 +1268,320 @@ class Order extends BaseShop
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 收银订单导出(已订单为主)
|
|
|
+ */
|
|
|
+ public function exportMoneyOrder()
|
|
|
+ {
|
|
|
+ $order_label_list = array (
|
|
|
+ 'order_no' => '订单号',
|
|
|
+ 'out_trade_no' => '外部单号',
|
|
|
+ 'name' => '收货人姓名',
|
|
|
+ 'mobile' => '收货人手机号',
|
|
|
+ 'order_name' => '商品名称',
|
|
|
+ 'nick_name' => '会员昵称'
|
|
|
+ );
|
|
|
+
|
|
|
+ $order_status = input('order_status', '');//订单状态
|
|
|
+ $order_name = input('order_name', '');
|
|
|
+ $pay_type = input('pay_type', '');
|
|
|
+ $order_from = input('order_from', '');
|
|
|
+ $start_time = input('start_time', '');
|
|
|
+ $end_time = input('end_time', '');
|
|
|
+ $order_label = !empty($order_label_list[ input('order_label') ]) ? input('order_label') : '';
|
|
|
+ $search_text = input('search', '');
|
|
|
+ $promotion_type = input('promotion_type', '');
|
|
|
+ $order_type = input('order_type', 'all');
|
|
|
+ $is_verify = input('is_verify', 'all');
|
|
|
+ $order_ids = input('order_ids', '');
|
|
|
+ $store_id = input('store_id', 0);
|
|
|
+ $condition_desc = [];
|
|
|
+
|
|
|
+ $order_common_model = new OrderCommon();
|
|
|
+ $condition = [
|
|
|
+ [ 'o.site_id', '=', $this->site_id ],
|
|
|
+ [ 'o.is_delete', '=', 0 ],
|
|
|
+ [ 'o.order_scene', '=', 'cashier' ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ if (!empty($order_ids)) {
|
|
|
+ $condition[] = [ 'o.order_id', 'in', $order_ids ];
|
|
|
+ $condition_desc[] = [ 'name' => 'order_id', 'value' => $order_ids ];
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单类型
|
|
|
+ $order_type_name = '全部';
|
|
|
+ if ($order_type != 'all') {
|
|
|
+ $condition[] = [ 'o.order_type', '=', $order_type ];
|
|
|
+
|
|
|
+ $order_type_list = $order_common_model->getOrderTypeStatusList();
|
|
|
+ $order_type_list = array_column($order_type_list, 'name', 'type');
|
|
|
+ $order_type_name = $order_type_list[ $order_type ];
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '订单类型', 'value' => $order_type_name ];
|
|
|
+
|
|
|
+ //订单状态
|
|
|
+ $order_status_name = '全部';
|
|
|
+ if ($order_status != '') {
|
|
|
+ if ($order_status != 'refunding') {
|
|
|
+ $condition[] = [ 'o.order_status', '=', $order_status ];
|
|
|
+ $order_status_list = $order_common_model->order_status;
|
|
|
+ $order_status_name = $order_status_list[ $order_status ][ 'name' ] ?? '';
|
|
|
+ } else {
|
|
|
+ $join = [
|
|
|
+ [
|
|
|
+ 'order_goods og',
|
|
|
+ 'og.order_id = o.order_id',
|
|
|
+ 'left'
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+ $condition[] = [ 'og.refund_status', 'not in', [ 0, 3 ] ];
|
|
|
+ $order_status_name = '维权中';
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '订单状态', 'value' => $order_status_name ];
|
|
|
+
|
|
|
+ //订单内容 模糊查询
|
|
|
+ if ($order_name != '') {
|
|
|
+ $condition[] = [ 'o.order_name', 'like', '%' . $order_name . '%' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($is_verify != 'all') {
|
|
|
+ $condition[] = [ 'v.is_verify', '=', $is_verify ];
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单来源
|
|
|
+ $order_from_name = '全部';
|
|
|
+ if ($order_from != '') {
|
|
|
+ $condition[] = [ 'o.order_from', '=', $order_from ];
|
|
|
+ //订单来源 (支持端口)
|
|
|
+ $order_from_list = $order_common_model->getOrderFromList();
|
|
|
+ $order_from_name = $order_from_list[ $order_from ][ 'name' ] ?? '';
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '订单来源', 'value' => $order_from_name ];
|
|
|
+
|
|
|
+ //订单支付
|
|
|
+ $pay_type_name = '全部';
|
|
|
+ if ($pay_type != '') {
|
|
|
+ $condition[] = [ 'o.pay_type', '=', $pay_type ];
|
|
|
+ $pay_type_list = $order_common_model->getPayType();
|
|
|
+ $pay_type_name = $pay_type_list[ $pay_type ] ?? '';
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '支付方式', 'value' => $pay_type_name ];
|
|
|
+
|
|
|
+ //营销类型
|
|
|
+ $promotion_type_name = '全部';
|
|
|
+ if ($promotion_type != '') {
|
|
|
+ if ($promotion_type == 'empty') {
|
|
|
+ $condition[] = [ 'o.promotion_type', '=', '' ];
|
|
|
+ } else {
|
|
|
+ $condition[] = [ 'o.promotion_type', '=', $promotion_type ];
|
|
|
+ }
|
|
|
+ //营销活动类型
|
|
|
+ $promotion_model = new PromotionModel();
|
|
|
+ $promotion_type_list = $promotion_model->getPromotionType();
|
|
|
+ $promotion_type_list = array_column($promotion_type_list, 'name', 'type');
|
|
|
+ $promotion_type_name = $promotion_type_list[ $promotion_type ] ?? '';
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '营销活动', 'value' => $promotion_type_name ];
|
|
|
+ $time_name = '';
|
|
|
+ if (!empty($start_time) && empty($end_time)) {
|
|
|
+ $condition[] = [ 'o.create_time', '>=', date_to_time($start_time) ];
|
|
|
+ $time_name = $start_time . '起';
|
|
|
+ } elseif (empty($start_time) && !empty($end_time)) {
|
|
|
+ $condition[] = [ 'o.create_time', '<=', date_to_time($end_time) ];
|
|
|
+ $time_name = '至' . $end_time;
|
|
|
+ } elseif (!empty($start_time) && !empty($end_time)) {
|
|
|
+ $condition[] = [ 'o.create_time', 'between', [ date_to_time($start_time), date_to_time($end_time) ] ];
|
|
|
+ $time_name = $start_time . ' 至 ' . $end_time;
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '下单时间', 'value' => $time_name ];
|
|
|
+
|
|
|
+ if ($order_label != 'nick_name') {
|
|
|
+ if ($search_text != '') {
|
|
|
+ $condition[] = [ 'o.' . $order_label, 'like', '%' . $search_text . '%' ];
|
|
|
+ }
|
|
|
+ foreach ($order_label_list as $k => $v) {
|
|
|
+ $order_label_name = $v;
|
|
|
+ if ($k == $order_label) {
|
|
|
+ $condition_desc[] = [ 'name' => $order_label_name, 'value' => $search_text ];
|
|
|
+ } else {
|
|
|
+ $condition_desc[] = [ 'name' => $order_label_name, 'value' => '' ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $condition[] = [ 'm.nickname', 'like', '%' . $search_text . '%' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (addon_is_exit('store') == 1 && !empty($store_id)) {
|
|
|
+ $store_model = new StoreModel();
|
|
|
+ $store_info = $store_model->getStoreInfo([ [ 'store_id', '=', $store_id ] ], 'store_name')[ 'data' ];
|
|
|
+
|
|
|
+ $condition[] = [ 'o.store_id', '=', $store_id ];
|
|
|
+ $condition_desc[] = [ 'name' => '来源门店', 'value' => $store_info[ 'store_name' ] ];
|
|
|
+ }
|
|
|
+
|
|
|
+ $order_export_model = new OrderExport();
|
|
|
+
|
|
|
+ $result = $order_export_model->orderExport($condition, $condition_desc, $this->site_id, $join ?? null, $is_verify, $order_label);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 订单导出(已订单商品为主)
|
|
|
+ */
|
|
|
+ public function exportMoneyOrderGoods()
|
|
|
+ {
|
|
|
+ $order_label_list = array (
|
|
|
+ 'order_no' => '订单号',
|
|
|
+ 'out_trade_no' => '外部单号',
|
|
|
+ 'name' => '收货人姓名',
|
|
|
+ 'mobile' => '收货人手机号',
|
|
|
+ 'order_name' => '商品名称',
|
|
|
+ 'nick_name' => '会员昵称'
|
|
|
+ );
|
|
|
+
|
|
|
+ $order_status = input('order_status', '');//订单状态
|
|
|
+ $order_name = input('order_name', '');
|
|
|
+ $pay_type = input('pay_type', '');
|
|
|
+ $order_from = input('order_from', '');
|
|
|
+ $start_time = input('start_time', '');
|
|
|
+ $end_time = input('end_time', '');
|
|
|
+ $order_ids = input('order_ids', '');
|
|
|
+
|
|
|
+ $order_label = !empty($order_label_list[ input('order_label') ]) ? input('order_label') : '';
|
|
|
+
|
|
|
+ $search_text = input('search', '');
|
|
|
+ $promotion_type = input('promotion_type', '');
|
|
|
+ $order_type = input('order_type', 'all');
|
|
|
+ $is_verify = input('is_verify', 'all');
|
|
|
+ $store_id = input('store_id', 0); // 所属门店id
|
|
|
+ $condition_desc = [];
|
|
|
+
|
|
|
+ $order_common_model = new OrderCommon();
|
|
|
+ $condition = [
|
|
|
+ [ 'o.site_id', '=', $this->site_id ],
|
|
|
+ [ 'o.is_delete', '=', 0 ],
|
|
|
+ [ 'o.order_scene', '=', 'cashier' ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ if (!empty($order_ids)) {
|
|
|
+ $condition[] = [ 'o.order_id', 'in', $order_ids ];
|
|
|
+ $condition_desc[] = [ 'name' => 'order_id', 'value' => $order_ids ];
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单类型
|
|
|
+ $order_type_name = '全部';
|
|
|
+ if ($order_type != 'all') {
|
|
|
+ $condition[] = [ 'o.order_type', '=', $order_type ];
|
|
|
+
|
|
|
+ $order_type_list = $order_common_model->getOrderTypeStatusList();
|
|
|
+ $order_type_list = array_column($order_type_list, 'name', 'type');
|
|
|
+ $order_type_name = $order_type_list[ $order_type ];
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '订单类型', 'value' => $order_type_name ];
|
|
|
+
|
|
|
+ //订单状态
|
|
|
+ $order_status_name = '全部';
|
|
|
+ if ($order_status != '') {
|
|
|
+ if ($order_status != 'refunding') {
|
|
|
+ $condition[] = [ 'o.order_status', '=', $order_status ];
|
|
|
+ $order_status_list = $order_common_model->order_status;
|
|
|
+ $order_status_name = $order_status_list[ $order_status ][ 'name' ] ?? '';
|
|
|
+ } else {
|
|
|
+ $condition[] = [ 'og.refund_status', 'not in', [ 0, 3 ] ];
|
|
|
+ $order_status_name = '维权中';
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '订单状态', 'value' => $order_status_name ];
|
|
|
+
|
|
|
+ //订单内容 模糊查询
|
|
|
+ if ($order_name != '') {
|
|
|
+ $condition[] = [ 'o.order_name', 'like', '%' . $order_name . '%' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($is_verify != 'all') {
|
|
|
+ $condition[] = [ 'v.is_verify', '=', $is_verify ];
|
|
|
+ }
|
|
|
+
|
|
|
+ //订单来源
|
|
|
+ $order_from_name = '全部';
|
|
|
+ if ($order_from != '') {
|
|
|
+ $condition[] = [ 'o.order_from', '=', $order_from ];
|
|
|
+ //订单来源 (支持端口)
|
|
|
+ $order_from_list = $order_common_model->getOrderFromList();
|
|
|
+ $order_from_name = $order_from_list[ $order_from ][ 'name' ] ?? '';
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '订单来源', 'value' => $order_from_name ];
|
|
|
+
|
|
|
+ //订单支付
|
|
|
+ $pay_type_name = '全部';
|
|
|
+ if ($pay_type != '') {
|
|
|
+ $condition[] = [ 'o.pay_type', '=', $pay_type ];
|
|
|
+ $pay_type_list = $order_common_model->getPayType();
|
|
|
+ $pay_type_name = $pay_type_list[ $pay_type ] ?? '';
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '支付方式', 'value' => $pay_type_name ];
|
|
|
+
|
|
|
+ //营销类型
|
|
|
+ $promotion_type_name = '全部';
|
|
|
+ if ($promotion_type != '') {
|
|
|
+ if ($promotion_type == 'empty') {
|
|
|
+ $condition[] = [ 'o.promotion_type', '=', '' ];
|
|
|
+ } else {
|
|
|
+ $condition[] = [ 'o.promotion_type', '=', $promotion_type ];
|
|
|
+ }
|
|
|
+ //营销活动类型
|
|
|
+ $promotion_model = new PromotionModel();
|
|
|
+ $promotion_type_list = $promotion_model->getPromotionType();
|
|
|
+ $promotion_type_list = array_column($promotion_type_list, 'name', 'type');
|
|
|
+ $promotion_type_name = $promotion_type_list[ $promotion_type ] ?? '';
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '营销活动', 'value' => $promotion_type_name ];
|
|
|
+
|
|
|
+ $time_name = '';
|
|
|
+ if (!empty($start_time) && empty($end_time)) {
|
|
|
+ $condition[] = [ 'o.create_time', '>=', date_to_time($start_time) ];
|
|
|
+ $time_name = $start_time . '起';
|
|
|
+ } elseif (empty($start_time) && !empty($end_time)) {
|
|
|
+ $condition[] = [ 'o.create_time', '<=', date_to_time($end_time) ];
|
|
|
+ $time_name = '至' . $end_time;
|
|
|
+ } elseif (!empty($start_time) && !empty($end_time)) {
|
|
|
+ $condition[] = [ 'o.create_time', 'between', [ date_to_time($start_time), date_to_time($end_time) ] ];
|
|
|
+ $time_name = $start_time . ' 至 ' . $end_time;
|
|
|
+ }
|
|
|
+ $condition_desc[] = [ 'name' => '下单时间', 'value' => $time_name ];
|
|
|
+
|
|
|
+ if ($order_label != 'nick_name') {
|
|
|
+ if ($search_text != '') {
|
|
|
+ $condition[] = [ 'o.' . $order_label, 'like', '%' . $search_text . '%' ];
|
|
|
+ }
|
|
|
+ foreach ($order_label_list as $k => $v) {
|
|
|
+ $order_label_name = $v;
|
|
|
+ if ($k == $order_label) {
|
|
|
+ $condition_desc[] = [ 'name' => $order_label_name, 'value' => $search_text ];
|
|
|
+ } else {
|
|
|
+ $condition_desc[] = [ 'name' => $order_label_name, 'value' => '' ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $condition[] = [ 'm.nickname', 'like', '%' . $search_text . '%' ];
|
|
|
+ }
|
|
|
+
|
|
|
+ if (addon_is_exit('store') == 1 && !empty($store_id)) {
|
|
|
+ $store_model = new StoreModel();
|
|
|
+ $store_info = $store_model->getStoreInfo([ [ 'store_id', '=', $store_id ] ], 'store_name')[ 'data' ];
|
|
|
+
|
|
|
+ $condition[] = [ 'o.store_id', '=', $store_id ];
|
|
|
+ $condition_desc[] = [ 'name' => '来源门店', 'value' => $store_info[ 'store_name' ] ];
|
|
|
+ }
|
|
|
+
|
|
|
+ $order_export_model = new OrderExport();
|
|
|
+ $result = $order_export_model->orderGoodsExport($condition, $condition_desc, $this->site_id, $is_verify, $order_label);
|
|
|
+ return $result;
|
|
|
+ }
|
|
|
+ /**
|
|
|
* 导出字段
|
|
|
* @return array
|
|
|
*/
|