moonsflyer 9 miesięcy temu
rodzic
commit
e45970a1bb

+ 161 - 0
addon/cashier/shop/controller/Order.php

@@ -12,8 +12,12 @@ namespace addon\cashier\shop\controller;
 
 use app\model\order\Config as ConfigModel;
 use addon\cashier\model\order\CashierOrder as OrderModel;
+use app\model\order\OrderCommon;
 use app\model\order\OrderCommon as OrderCommonModel;
+use app\model\order\OrderExport;
 use app\model\store\Store;
+use app\model\store\Store as StoreModel;
+use app\model\system\Promotion as PromotionModel;
 use app\model\system\UserGroup;
 use app\model\web\Config as WebConfig;
 use app\shop\controller\BaseShop;
@@ -245,4 +249,161 @@ class Order extends BaseShop
 
         return $this->fetch('order/detail');
     }
+    public function exportMoneyOrder2()
+    {
+        $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;
+    }
 }

+ 3 - 2
addon/cashier/shop/view/order/lists.html

@@ -321,7 +321,7 @@
             $.ajax({
                 type: 'post',
                 dataType: 'json',
-                url: ns.url("shop/order/exportordergoods"),
+                url: ns.url("shop/order/exportMoneyOrderGoods"),
                 data: data.field,
                 success: function (res) {
 
@@ -334,10 +334,11 @@
         //批量导出(订单)
         form.on('submit(batch_export_order)', function(data){
             data.field.order_ids = orderIdAll.toString(); // 选择要导出的订单
+
             $.ajax({
                 type: 'post',
                 dataType: 'json',
-                url: ns.url("shop/order/exportorder"),
+                url: ns.url("shop/order/exportMoneyOrder"),
                 data: data.field,
                 success: function (res) {
 

+ 314 - 0
app/shop/controller/Order.php

@@ -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
      */