Quellcode durchsuchen

Merge branch 'dev_wf' of wufeng/fuse into version1.5

wufeng vor 2 Jahren
Ursprung
Commit
3cb22f3704

+ 32 - 0
app/admin/controller/Express.php

@@ -0,0 +1,32 @@
+<?php
+
+namespace app\admin\controller;
+
+use app\admin\logic\ExpressLogic;
+use app\BaseController;
+use think\exception\ValidateException;
+use think\facade\Config;
+use think\facade\Validate;
+
+class Express extends BaseController
+{
+
+    //列表
+    public function list(){
+
+        $param = $this->request->only(['page'=>1,'size'=>10,'express_code'=>'','express_name'=>'','mobile'=>'','status'=>''],'post');
+        return ExpressLogic::list($param);
+    }
+
+    //启禁用
+    public function status(){
+
+        $param = $this->request->only(['id','status'],'post');
+
+        $val = Validate::rule(Config::get('validate_rules.status'));
+        if(!$val->check($param)) throw new ValidateException($val->getError());
+
+        return ExpressLogic::status($param);
+    }
+
+}

+ 3 - 2
app/admin/controller/Order.php

@@ -14,7 +14,7 @@ class Order extends BaseController
     //列表
     public function list()
     {
-        $param = $this->request->only(['page' => 1, 'size' => 10, 'orderCode' => '', 'status' => '', 'name' => '', 'username' => '', 'start_date' => '', 'end_date' => '', 'type' => ''], 'post');
+        $param = $this->request->only(['page' => 1, 'size' => 10, 'masterOrderCode' => '', 'orderCode' => '', 'status' => '', 'name' => '', 'username' => '', 'start_date' => '', 'end_date' => '', 'type' => ''], 'post');
 
         return OrderLogic::list($param);
     }
@@ -29,7 +29,8 @@ class Order extends BaseController
     //导出
     public function export()
     {
-        $param = $this->request->only(['orderCode' => '', 'status' => '', 'name' => '', 'username' => '', 'start_date' => '', 'end_date' => '', 'type' => ''], 'post');
+        $param = $this->request->only(['masterOrderCode' => '', 'orderCode' => '', 'status' => '', 'name' => '', 'username' => '', 'start_date' => '', 'end_date' => '', 'type' => ''], 'post');
+
 
         return OrderLogic::export($param);
     }

+ 0 - 51
app/admin/controller/OrderService.php

@@ -1,51 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use app\admin\logic\OrderServiceLogic;
-use app\BaseController;
-use think\exception\ValidateException;
-use think\facade\Validate;
-
-//服务订单
-class OrderService extends BaseController
-{
-
-    //列表
-    public function list()
-    {
-        $param = $this->request->only(['page' => 1, 'size' => 10, 'orderCode' => '', 'status' => '', 'name' => '', 'username' => '', 'start_date' => '', 'end_date' => ''], 'post');
-
-        return OrderServiceLogic::list($param);
-    }
-
-    //详情
-    public function read()
-    {
-        $id = $this->request->post('id/d', 0);
-        return OrderServiceLogic::read($id);
-    }
-
-    //导出
-    public function export()
-    {
-        $param = $this->request->only(['orderCode' => '', 'status' => '', 'name' => '', 'username' => '', 'start_date' => '', 'end_date' => ''], 'post');
-
-        return OrderServiceLogic::export($param);
-    }
-
-    //发货
-    public function deliver()
-    {
-
-        $list = $this->request->post('list/a', 'post');
-
-        $val = Validate::rule(['list|发货列表' => 'require|array|length:1,100']);
-
-        if (!$val->check(['list' => $list])) throw new ValidateException($val->getError());
-
-        return OrderServiceLogic::deliver($list);
-
-    }
-
-}

+ 50 - 0
app/admin/logic/ExpressLogic.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace app\admin\logic;
+
+use app\model\AccountBatchLogModel;
+use app\model\ExpressModel;
+use app\model\CommonModel;
+use app\model\VideoModel;
+use think\Exception;
+use think\exception\ValidateException;
+use think\facade\Config;
+use think\facade\Db;
+use think\response\Json;
+
+class ExpressLogic extends BaseLogic
+{
+
+    //列表
+    public static function list(array $data = []): Json
+    {
+
+        $where = [];
+        if ($data['express_code'] != '') $where[] = ['express_code', 'like', '%' . $data['express_code'] . '%'];
+        if ($data['express_name'] != '') $where[] = ['express_name', 'like', '%' . $data['express_name'] . '%'];
+        if ($data['mobile'] != '') $where[] = ['mobile', 'like', '%' . $data['mobile'] . '%'];
+        if ($data['status'] != '') $where[] = ['status', '=', $data['status']];
+
+
+        $count = ExpressModel::where($where)->count('id');
+
+        $list = ExpressModel::where($where)
+            ->field(true)
+            ->order('id', 'desc')
+            ->page($data['page'], $data['size'])
+            ->select()
+            ->toArray();
+        return json_show(CommonModel::$success, '获取快递公司列表成功', ['count' => $count, 'list' => $list]);
+    }
+
+    //删除
+    public static function status(array $data = []): Json
+    {
+        $rs = ExpressModel::where(['id' => $data['id']])
+            ->where('status', '<>', $data['status'])
+            ->save(['status' => $data['status']]);
+
+        return $rs ? json_show(CommonModel::$success, '操作成功') : json_show(CommonModel::$error_param, '操作失败,该快递公司不存在或重复操作');
+    }
+
+}

+ 54 - 20
app/admin/logic/OrderLogic.php

@@ -4,7 +4,10 @@ namespace app\admin\logic;
 
 use app\model\CommonModel;
 use app\model\GoodModel;
+use app\model\MasterOrder;
+use app\model\MasterOrderModel;
 use app\model\OrderModel;
+use app\model\ServiceModel;
 use think\Exception;
 use think\facade\Db;
 use think\facade\Validate;
@@ -21,9 +24,9 @@ class OrderLogic extends BaseLogic
             ->leftJoin('card c', 'c.id=a.card_id AND c.is_del=' . CommonModel::$del_normal)
             ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
             ->leftJoin('addr e', 'e.id=a.addr_id AND e.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('good f', 'f.id=a.good_id AND f.is_del=' . CommonModel::$del_normal)
             ->where('a.is_del', CommonModel::$del_normal);
 
+        if ($data['masterOrderCode'] != '') $db->whereLike('a.masterOrderCode', '%' . $data['masterOrderCode'] . '%');
         if ($data['orderCode'] != '') $db->whereLike('a.orderCode', '%' . $data['orderCode'] . '%');
         if ($data['status'] != '') $db->where('a.status', $data['status']);
         if ($data['name'] !== '') $db->whereLike('d.name', '%' . $data['name'] . '%');
@@ -34,7 +37,7 @@ class OrderLogic extends BaseLogic
         $count = $db->count('a.id');
 
         $list = $db
-            ->field('a.id,a.orderCode,a.type,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,a.status,a.post_name,a.post_code,a.addtime,e.addr_code,"" addr_name,e.addr,f.good_code,f.good_name,f.good_cover_img')
+            ->field('a.id,a.masterOrderCode,a.orderCode,a.type,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,a.status,a.post_name,a.post_code,a.addtime,e.addr_code,"" addr_name,e.addr,"" good_code,"" good_name,""good_cover_img,a.child_id')
             ->page($data['page'], $data['size'])
             ->withAttr('addr_code', function ($val) {
                 return explode(',', $val);
@@ -46,6 +49,20 @@ class OrderLogic extends BaseLogic
             ->select()
             ->toArray();
 
+        //所有服务
+        $service = ServiceModel::where('is_del', CommonModel::$del_normal)
+            ->whereIn('id', array_column($list, 'child_id'))
+            ->column('title', 'id');
+
+        $good = GoodModel::where('is_del', CommonModel::$del_normal)
+            ->whereIn('id', array_column($list, 'child_id'))
+            ->column('good_cover_img,good_code,good_name', 'id');
+
+        foreach ($list as &$order) {
+            if ($order['type'] == MasterOrderModel::$type_service) $order['good_name'] = $service[$order['child_id']] ?? '';
+            else $order = array_merge($order, $good[$order['child_id']]);
+        }
+
         return json_show(CommonModel::$success, '获取订单列表成功', ['count' => $count, 'list' => $list]);
     }
 
@@ -53,12 +70,11 @@ class OrderLogic extends BaseLogic
     public static function read(int $id = 0): Json
     {
         $rs = $db = OrderModel::alias('a')
-            ->field('a.id,a.orderCode,a.type,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,a.status,a.post_name,a.post_code,a.addtime,"" addr_name,f.good_code,f.good_name,f.good_cover_img')
+            ->field('a.id,a.orderCode,a.type,b.title company_title,c.title card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,e.addr,a.status,a.post_name,a.post_code,a.addtime,"" addr_name,"" good_code,"" good_name,"" good_cover_img,a.child_id')
             ->leftJoin('company b', 'b.id=a.company_id AND b.is_del=' . CommonModel::$del_normal)
             ->leftJoin('card c', 'c.id=a.card_id AND c.is_del=' . CommonModel::$del_normal)
             ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
             ->leftJoin('addr e', 'e.id=a.addr_id AND e.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('good f', 'f.id=a.good_id AND f.is_del=' . CommonModel::$del_normal)
             ->where(['a.is_del' => CommonModel::$del_normal, 'a.id' => $id])
             ->withAttr('addr_code', function ($val) {
                 return explode(',', $val);
@@ -68,6 +84,11 @@ class OrderLogic extends BaseLogic
             })
             ->findOrEmpty()
             ->toArray();
+
+        if ($rs['type'] == MasterOrderModel::$type_service) $rs['good_name'] = ServiceModel::where(['is_del' => CommonModel::$del_normal, 'id' => $rs['child_id']])->value('title');
+        else $rs = array_merge($rs, GoodModel::where(['is_del' => CommonModel::$del_normal, 'id' => $rs['child_id']])->field('good_code,good_name,good_cover_img')->findOrEmpty()->toArray());
+
+
         return json_show(CommonModel::$success, '获取商品详情成功', $rs);
     }
 
@@ -80,43 +101,56 @@ class OrderLogic extends BaseLogic
             ->leftJoin('card c', 'c.id=a.card_id AND c.is_del=' . CommonModel::$del_normal)
             ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
             ->leftJoin('addr e', 'e.id=a.addr_id AND e.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('good f', 'f.id=a.good_id AND f.is_del=' . CommonModel::$del_normal)->where('a.is_del', CommonModel::$del_normal)
             ->where('a.is_del', CommonModel::$del_normal);
 
+        if ($data['masterOrderCode'] != '') $db->whereLike('a.masterOrderCode', '%' . $data['masterOrderCode'] . '%');
         if ($data['orderCode'] != '') $db->whereLike('a.orderCode', '%' . $data['orderCode'] . '%');
         if ($data['status'] != '') $db->where('a.status', $data['status']);
         if ($data['name'] !== '') $db->whereLike('d.name', '%' . $data['name'] . '%');
         if ($data['username']) $db->whereLike('d.username', '%' . $data['username'] . '%');
         if (($data['start_date'] != '') && ($data['end_date'] != '')) $db->whereBetween('a.addtime', [$data['start_date'], $data['end_date']]);
-        if ($data['type'] != '') $db->where('a.type', $data['type']);
+        if ($data['type'] !== '') $db->where('a.type', $data['type']);
 
-        $status = [
-            CommonModel::$order_status_wait_pay => '待支付',
-            CommonModel::$order_status_pay_fail => '支付失败',
-            CommonModel::$order_status_not_deliver => '待发货',
-            CommonModel::$order_status_deliver => '已发货',
-            CommonModel::$order_status_receipt => '已收货',
-        ];
-        $type = [GoodModel::$type_shopping => '商城', GoodModel::$type_exchange => '兑换'];
         $list = $db
-            ->field('a.id 订单ID,a.orderCode 订单编号,a.type,b.title 业务公司,c.title 卡类型,d.name 购买用户名,d.username 购买账号,a.num 购买数量,e.contactor 收货联系人,e.mobile 收货联系电话,e.addr_code,a.status 状态,a.post_name 物流公司,a.post_code 物流单号,a.addtime 创建时间,e.addr,f.good_code 商品编码,f.good_name 商品名称')
+            ->field('a.id `订单ID`,a.masterOrderCode `主订单编号`,a.orderCode `订单编号`,a.type `订单类型`,b.title `业务公司`,c.title `卡类型`,d.name `购买用户名`,d.username `购买账号`,a.num `购买数量`,e.contactor `收货联系人`,e.mobile `收货联系电话`,a.status `状态`,a.post_name `物流公司`,a.post_code `物流单号`,a.addtime `创建时间`,e.addr_code,"" `收货地址`,e.addr,"" `商品编码`,"" `商品(服务)名称`,a.child_id')
             ->order('a.addtime desc')
             ->cursor();
 
+        $status = [
+            MasterOrderModel::$order_status_wait_pay => '待支付',
+            MasterOrderModel::$order_status_pay_fail => '支付失败',
+            MasterOrderModel::$order_status_not_deliver => '待发货',
+            MasterOrderModel::$order_status_deliver => '已发货',
+            MasterOrderModel::$order_status_receipt => '已收货',
+        ];
+        $type = [MasterOrderModel::$type_exchange_good => '兑换商品订单', MasterOrderModel::$type_shopping_good => '商城商品订单', MasterOrderModel::$type_service => '服务订单'];
+
         $da = [];
         foreach ($list as $v) {
             $v = $v->toArray();
+
+            if ($v['订单类型'] == MasterOrderModel::$type_service) $v['商品(服务)名称'] = ServiceModel::where(['is_del' => CommonModel::$del_normal, 'id' => $v['child_id']])->value('title', '');
+            else {
+                $good = GoodModel::where(['is_del' => CommonModel::$del_normal, 'id' => $v['child_id']])
+                    ->field('good_code,good_name')
+                    ->findOrEmpty()
+                    ->toArray();
+                $v['商品编码'] = $good['good_code'] ?? '';
+                $v['商品(服务)名称'] = $good['good_name'] ?? '';
+            };
+
             $v['收货地址'] = $v['addr_code'] ? get_addr_name($v['addr_code']) . $v['addr'] : $v['addr'];
             $v['状态'] = $status[$v['状态']] ?? '';
-            $v['订单类型'] = $type[$v['type']] ?? '';
+            $v['订单类型'] = $type[$v['订单类型']] ?? '';
 
             unset($v['addr_code']);
             unset($v['addr']);
-            unset($v['type']);
+            unset($v['child_id']);
 
             $da[] = $v;
         }
 
+        halt($da);
         if (empty($da)) $da[] = '没有可供导出的数据';
 
         $headerArr = array_keys($da[0]);
@@ -132,7 +166,7 @@ class OrderLogic extends BaseLogic
         $temp = $db
             ->field('id,orderCode')
             ->where(['is_del' => CommonModel::$del_normal])
-            ->where('status', '<>', CommonModel::$order_status_not_deliver)
+            ->where('status', '<>', MasterOrderModel::$order_status_not_deliver)
             ->whereIn('orderCode', array_column($list, 'orderCode'))
             ->findOrEmpty();
 
@@ -156,9 +190,9 @@ class OrderLogic extends BaseLogic
                 $db->where([
                     'is_del' => CommonModel::$del_normal,
                     'orderCode' => $order['orderCode'],
-                    'status' => CommonModel::$order_status_not_deliver,
+                    'status' => MasterOrderModel::$order_status_not_deliver,
                 ])->save([
-                    'status' => CommonModel::$order_status_deliver,
+                    'status' => MasterOrderModel::$order_status_deliver,
                     'post_name' => $order['post_name'],
                     'post_code' => $order['post_code'],
                     'updater' => self::$uname,

+ 0 - 181
app/admin/logic/OrderServiceLogic.php

@@ -1,181 +0,0 @@
-<?php
-
-namespace app\admin\logic;
-
-use app\model\CommonModel;
-use app\model\OrderServiceModel;
-use think\Exception;
-use think\facade\Db;
-use think\facade\Validate;
-use think\response\Json;
-
-class OrderServiceLogic extends BaseLogic
-{
-    //列表
-    public static function list(array $data = []): Json
-    {
-
-        $db = OrderServiceModel::alias('a')
-            ->leftJoin('service s', 's.id=a.service_id AND s.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('company b', 'b.id=s.company_id AND b.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('card c', 'c.id=s.card_id AND c.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('company bb', 'bb.id=d.company_id AND bb.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('card cc', 'cc.id=d.card_id AND cc.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('addr e', 'e.id=a.addr_id AND e.is_del=' . CommonModel::$del_normal)
-            ->where('a.is_del', CommonModel::$del_normal);
-
-        if ($data['orderCode'] != '') $db->whereLike('a.orderCode', '%' . $data['orderCode'] . '%');
-        if ($data['status'] != '') $db->where('a.status', $data['status']);
-        if ($data['name'] !== '') $db->whereLike('d.name', '%' . $data['name'] . '%');
-        if ($data['username']) $db->whereLike('d.username', '%' . $data['username'] . '%');
-        if (($data['start_date'] != '') && ($data['end_date'] != '')) $db->whereBetween('a.addtime', [$data['start_date'], $data['end_date']]);
-
-        $count = $db->count('a.id');
-
-        $list = $db
-            ->field('a.id,a.orderCode,bb.title account_company_title,c.title account_card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,s.title,a.amount,a.status,a.addtime,a.post_name,a.post_code,"" addr_name,e.addr')
-            ->page($data['page'], $data['size'])
-            ->withAttr('addr_code', function ($val) {
-                return explode(',', $val);
-            })
-            ->withAttr('addr_name', function ($val, $da) {
-                return $da['addr_code']?get_addr_name($da['addr_code']):'';
-            })
-            ->order('a.addtime desc')
-            ->select()
-            ->toArray();
-
-        return json_show(CommonModel::$success, '获取服务订单列表成功', ['count' => $count, 'list' => $list]);
-    }
-
-    //详情
-    public static function read(int $id = 0): Json
-    {
-        $rs = OrderServiceModel::alias('a')
-            ->field('a.id,a.orderCode,bb.title account_company_title,c.title account_card_title,d.name,d.username,a.num,e.contactor,e.mobile,e.addr_code,s.title,a.amount,a.status,a.addtime,a.post_name,a.post_code,"" addr_name,e.addr')
-            ->leftJoin('service s', 's.id=a.service_id AND s.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('company b', 'b.id=s.company_id AND b.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('card c', 'c.id=s.card_id AND c.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('company bb', 'bb.id=d.company_id AND bb.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('card cc', 'cc.id=d.card_id AND cc.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('addr e', 'e.id=a.addr_id AND e.is_del=' . CommonModel::$del_normal)
-            ->where(['a.is_del' => CommonModel::$del_normal, 'a.id' => $id])
-            ->withAttr('addr_code', function ($val) {
-                return explode(',', $val);
-            })
-            ->withAttr('addr_name', function ($val, $da) {
-                return $da['addr_code']?get_addr_name($da['addr_code']):'';
-            })
-            ->findOrEmpty()
-            ->toArray();
-        return json_show(CommonModel::$success, '获取商品详情成功', $rs);
-    }
-
-    //导出
-    public static function export(array $data = []): Json
-    {
-
-        $db = OrderServiceModel::alias('a')
-            ->leftJoin('service s', 's.id=a.service_id AND s.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('company b', 'b.id=s.company_id AND b.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('card c', 'c.id=s.card_id AND c.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('account d', 'd.id=a.uid AND d.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('company bb', 'bb.id=d.company_id AND bb.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('card cc', 'cc.id=d.card_id AND cc.is_del=' . CommonModel::$del_normal)
-            ->leftJoin('addr e', 'e.id=a.addr_id AND e.is_del=' . CommonModel::$del_normal)
-            ->where('a.is_del', CommonModel::$del_normal);
-
-        if ($data['orderCode'] != '') $db->whereLike('a.orderCode', '%' . $data['orderCode'] . '%');
-        if ($data['status'] != '') $db->where('a.status', $data['status']);
-        if ($data['name'] !== '') $db->whereLike('d.name', '%' . $data['name'] . '%');
-        if ($data['username']) $db->whereLike('d.username', '%' . $data['username'] . '%');
-        if (($data['start_date'] != '') && ($data['end_date'] != '')) $db->whereBetween('a.addtime', [$data['start_date'], $data['end_date']]);
-
-        $list = $db
-            ->field('a.id 订单ID,a.orderCode 订单编号,bb.title 购买账号业务公司,c.title 购买账号卡类型,d.name 购买用户名,d.username 购买账号,a.num 购买数量,e.contactor 收货联系人,e.mobile 收货联系电话,e.addr_code,s.title 服务名称,a.amount 支付金额,a.status 状态,a.addtime 创建时间,a.post_name 物流公司,a.post_code 物流单号,e.addr')
-            ->order('a.addtime desc')
-            ->cursor();
-
-        $status =  $status = [
-            CommonModel::$order_status_wait_pay => '待支付',
-            CommonModel::$order_status_pay_fail => '支付失败',
-            CommonModel::$order_status_not_deliver => '待发货',
-            CommonModel::$order_status_deliver => '已发货',
-            CommonModel::$order_status_receipt => '已收货',
-        ];
-
-        $da = [];
-        foreach ($list as $v) {
-            $v = $v->toArray();
-
-            $v['收货地址'] = $v['addr_code']?get_addr_name($v['addr_code']).$v['addr']:$v['addr'];
-            $v['状态'] = $status[$v['状态']] ?? '';
-
-            unset($v['addr_code']);
-            unset($v['addr']);
-
-            $da[] = $v;
-        }
-
-        if (empty($da)) $da[] = '没有可供导出的数据';
-
-        $headerArr = array_keys($da[0]);
-        excel_save('服务订单导出' . date('YmdHis'), $headerArr, $da);
-
-    }
-
-    //发货
-    public static function deliver(array $list = [])
-    {
-
-        $db = new OrderServiceModel();
-        $temp = $db
-            ->field('id,orderCode')
-            ->where(['is_del' => CommonModel::$del_normal])
-            ->where('status', '<>', CommonModel::$order_status_not_deliver)
-            ->whereIn('orderCode', array_column($list, 'orderCode'))
-            ->findOrEmpty();
-
-        if (!$temp->isEmpty()) return json_show(CommonModel::$error_param, $temp->orderCode . '订单并不是未发货状态');
-
-        $val = Validate::rule([
-            'orderCode|订单编号' => 'require|length:18',
-            'post_name|物流公司' => 'require|max:255',
-            'post_code|物流单号' => 'require|max:255',
-        ]);
-
-        Db::startTrans();
-        try {
-
-            $date = date('Y-m-d H:i:s');
-
-            foreach ($list as $order) {
-
-                if (!$val->check($order)) throw new Exception($val->getError());
-
-                $db->where([
-                    'is_del' => CommonModel::$del_normal,
-                    'orderCode' => $order['orderCode'],
-                    'status' => CommonModel::$order_status_not_deliver,
-                ])->save([
-                    'status' => CommonModel::$order_status_deliver,
-                    'post_name' => $order['post_name'],
-                    'post_code' => $order['post_code'],
-                    'updater' => self::$uname,
-                    'updaterid' => self::$uid,
-                    'updatetime' => $date,
-                ]);
-            }
-
-            Db::commit();
-            return json_show(CommonModel::$success, '发货成功');
-        } catch (Exception $exception) {
-            Db::rollback();
-            return json_show(CommonModel::$error_param, '发货失败,' . $exception->getMessage());
-        }
-
-    }
-
-}

+ 7 - 4
app/admin/route/app.php

@@ -140,10 +140,10 @@ Route::rule('orderRead', 'admin/Order/read');//详情
 Route::rule('orderDeliver', 'admin/Order/deliver');//发货
 Route::rule('orderExport', 'admin/Order/export');//导出
 //【服务订单】
-Route::rule('orderServiceList', 'admin/OrderService/list');//列表
-Route::rule('orderServiceRead', 'admin/OrderService/read');//详情
-Route::rule('orderServiceDeliver', 'admin/OrderService/deliver');//发货
-Route::rule('orderServiceExport', 'admin/OrderService/export');//导出
+//Route::rule('orderServiceList', 'admin/OrderService/list');//列表
+//Route::rule('orderServiceRead', 'admin/OrderService/read');//详情
+//Route::rule('orderServiceDeliver', 'admin/OrderService/deliver');//发货
+//Route::rule('orderServiceExport', 'admin/OrderService/export');//导出
 
 //【手机主题】
 Route::rule('themeList', 'admin/Theme/list');//列表
@@ -152,5 +152,8 @@ Route::rule('themeRead', 'admin/Theme/read');//详情
 Route::rule('themeEdit', 'admin/Theme/edit');//修改
 Route::rule('themeStatus', 'admin/Theme/status');//启禁用
 
+//【物流公司】
+Route::rule('expressList', 'admin/Express/list');//列表
+Route::rule('expressStatus', 'admin/Express/status');//启禁用
 
 

+ 0 - 15
app/mobile/controller/Order.php

@@ -4,25 +4,10 @@ namespace app\mobile\controller;
 
 use app\BaseController;
 use app\mobile\logic\OrderLogic;
-use think\exception\ValidateException;
-use think\facade\Config;
-use think\facade\Validate;
 
 //【订单】
 class Order extends BaseController
 {
-    //兑换商品下单
-    public function add(){
-
-        $param = $this->request->only(['good_id','addr_id','num','remark'],'post');
-
-        $val = Validate::rule(Config::get('validate_rules.ExchangeOrderAdd'));
-
-        if(!$val->check($param)) throw new ValidateException($val->getError());
-
-        return OrderLogic::add($param);
-
-    }
 
     //订单列表
     public function list(){

+ 6 - 5
app/mobile/controller/Pay.php

@@ -5,19 +5,20 @@ namespace app\mobile\controller;
 use app\BaseController;
 use app\mobile\logic\PayLogic;
 use app\model\CommonModel;
+use app\model\MasterOrderModel;
 use think\exception\ValidateException;
 use think\facade\Validate;
 
 //支付相关
 class Pay extends BaseController
 {
-    //微信支付预下单
+    //预下单
     public function getPrepayId()
     {
         $param = $this->request->only(['type', 'list', 'addr_id'], 'post');
 
         $val = Validate::rule([
-            'type|购买类型' => 'require|number|in:' . CommonModel::$pay_type_service . ',' . CommonModel::$pay_type_shopping_good,
+            'type|购买类型' => 'require|number|in:' . MasterOrderModel::$type_exchange_good . ',' . MasterOrderModel::$type_shopping_good . ',' . MasterOrderModel::$type_service,
             'list|购买列表' => 'require|array|max:100',
             'addr_id|收货地址' => 'require|number|gt:0'
         ]);
@@ -45,11 +46,11 @@ class Pay extends BaseController
     public function checkPayResult()
     {
 
-        $param = $this->request->only(['pay_code'],'post');
+        $param = $this->request->only(['pay_code'], 'post');
 
-        $val = Validate::rule(['pay_code|支付编码'=>'require|length:18']);
+        $val = Validate::rule(['pay_code|支付编码' => 'require|length:18']);
 
-        if(!$val->check($param)) throw new ValidateException($val->getError());
+        if (!$val->check($param)) throw new ValidateException($val->getError());
 
         return PayLogic::checkPayResult($param['pay_code']);
 

+ 0 - 93
app/mobile/logic/OrderLogic.php

@@ -1,107 +1,14 @@
 <?php
 
-
 namespace app\mobile\logic;
 
-
-use app\model\AddrModel;
 use app\model\CommonModel;
-use app\model\CompanyGoodModel;
-use app\model\GoodModel;
-use app\model\InventoryExchangeModel;
 use app\model\OrderModel;
-use think\facade\Db;
 use think\response\Json;
 
 class OrderLogic extends BaseLogic
 {
 
-    //兑换商品下单
-    public static function add(array $data = []): Json
-    {
-        Db::startTrans();
-
-        try {
-
-            //判断收货地址
-
-            $rs = AddrModel::field('id')
-                ->where(['is_del' => CommonModel::$del_normal, 'id' => $data['addr_id'], 'uid' => self::$aid])
-                ->findOrEmpty()
-                ->isEmpty();
-            if ($rs) throw new Exception('该地址不存在');
-
-
-            //判断商品
-            $rs = CompanyGoodModel::alias('a')
-                ->field('a.id,a.good_id,b.good_code,b.good_name,b.status,b.moq,c.id inventory_id,c.inventory')
-                ->leftJoin('good b', 'b.id=a.good_id AND b.is_del=' . CommonModel::$del_normal)
-                ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.good_id')
-                ->where(['a.is_del' => CommonModel::$del_normal, 'a.group_id' => self::$group_id, 'a.good_id' => $data['good_id']])
-                ->findOrEmpty();
-
-            if ($rs->isEmpty()) throw new Exception('该商品不存在或不允许兑换');
-            if ($rs->status != CommonModel::$status_normal) throw new Exception('该商品已被禁用');
-            if ($rs->moq > $data['num']) throw new Exception('不满足该商品的起订量,' . $rs->moq);
-            if ($rs->inventory < $data['num']) throw new Exception('库存数不足');
-
-            $date = date('Y-m-d H:i:s');
-
-            $after_inventory = bcsub($rs->inventory, $data['num']);
-
-            //添加库存变动记录
-            Db::name('inventory_exchange_log')
-                ->insert([
-                    'inventory_exchange_id' => $rs->inventory_id,
-                    'before_inventory' => $rs->inventory,
-                    'after_inventory' => $after_inventory,
-                    'flag' => '-1',
-                    'good_id' => $rs->good_id,
-                    'good_code' => $rs->good_code,
-                    'good_name' => $rs->good_name,
-                    'source' => CommonModel::$source_account,
-                    'createrid' => self::$aid,
-                    'creater' => self::$aname,
-                    'addtime' => $date
-                ]);
-
-            //扣减库存
-            InventoryExchangeModel::where('id', $rs->inventory_id)
-                ->save(['inventory' => $after_inventory, 'updaterid' => self::$aid, 'updater' => self::$aname, 'updatetime' => $date]);
-
-            //生成兑换订单
-            OrderModel::create([
-                'orderCode' => make_no('QR'),
-                'company_id' => self::$company_id,
-                'card_id' => self::$card_id,
-                'uid' => self::$aid,
-                'good_id' => $rs->good_id,
-                'num' => $data['num'],
-                'price' => 0,
-                'total_price' => 0,
-                'addr_id' => $data['addr_id'],
-                'type' => GoodModel::$type_exchange,
-                'remark' => $data['remark'],
-                'status' => CommonModel::$order_status_not_deliver,
-                'is_del' => CommonModel::$del_normal,
-                'creater' => self::$aname,
-                'createrid' => self::$aid,
-                'addtime' => $date,
-                'updater' => self::$aname,
-                'updaterid' => self::$aid,
-                'updatetime' => $date,
-            ])->save();
-
-            Db::commit();
-
-            return json_show(CommonModel::$success, '兑换商品成功');
-        } catch (Exception $exception) {
-            Db::rollback();
-            return json_show(CommonModel::$error_param, '兑换失败,' . $exception->getMessage());
-        }
-
-    }
-
     //订单列表
     public static function list(array $data = []): Json
     {

+ 220 - 90
app/mobile/logic/PayLogic.php

@@ -6,21 +6,20 @@ use app\model\AccountModel;
 use app\model\AddrModel;
 use app\model\CommonModel;
 use app\model\GoodModel;
+use app\model\InventoryExchangeModel;
+use app\model\MasterOrderModel;
 use app\model\PayInfoModel;
 use app\model\ServiceModel;
+use think\Exception;
 use think\facade\Db;
 use think\response\Json;
 
 class PayLogic extends BaseLogic
 {
 
-    //微信支付预下单
+    //下单
     public static function getPrepayId(array $data = []): json
     {
-        $openId = AccountModel::where(['id' => self::$aid, 'is_del' => CommonModel::$del_normal])
-            ->value('wx_openId', '');
-
-        if ($openId == '') return json_show(CommonModel::$error_token, '获取账户openId失败,请重新登录');
 
         Db::startTrans();
 
@@ -36,74 +35,37 @@ class PayLogic extends BaseLogic
             $num = array_column($data['list'], 'num', 'id');//
             $date = date('Y-m-d H:i:s');
 
-            $pay_code = make_no('ZF');
+            $masterOrderCode = make_no('MS');
 
-            //支付信息表
-            $pay_info_id = Db::name('pay_info')->insertGetId([
-                'pay_code' => $pay_code,
-                'wx_openId' => $openId,
+            //主订单数据
+            $insert_master_order = [
+                'masterOrderCode' => $masterOrderCode,
+                'uid' => self::$aid,
                 'type' => $data['type'],
-                'ids' => json_encode($data['list']),
-                'status' => CommonModel::$order_status_wait_pay,
                 'createrid' => self::$aid,
                 'creater' => self::$aname,
                 'addtime' => $date,
                 'updaterid' => self::$aid,
                 'updater' => self::$aname,
                 'updatetime' => $date,
-            ]);
+            ];
 
+            //子订单数据
+            $insert_order = [];
 
-            if ($data['type'] == CommonModel::$pay_type_service) {
-                //购买服务
-                $rs = ServiceModel::field('id,original_price,activity_price,title,activity_status')
-                    ->whereIn('id', array_column($data['list'], 'id'))
-                    ->where(['is_del' => CommonModel::$del_normal, 'status' => CommonModel::$status_normal])
-                    ->select()
-                    ->toArray();
-                if (empty($rs)) throw new Exception('购买的服务不存在或已下架');
+            //库存变动记录数据
+            $insert_inventory_exchange_log = [];
 
-                $insert_service = [];
-                foreach ($rs as $item) {
-                    //单价
-                    if ($item['activity_status'] == ServiceModel::$activity_status_ing) $price = $rs['activity_price'];
-                    else $price = $rs['original_price'];
 
-                    $total_price = bcmul($price, $num[$item['id']] ?? 0, 2);//总价
-                    $amount = bcadd($amount, $total_price, 2);//总金额
+            //兑换商品
+            if ($data['type'] == MasterOrderModel::$type_exchange_good) {
 
-                    $insert_service[] = [
-                        'orderCode' => make_no('FW'),
-                        'pay_info_id' => $pay_info_id,
-                        'uid' => self::$aid,
-                        'service_id' => $item['id'],
-                        'num' => $num[$item['id']] ?? 0,
-                        'addr_id' => $data['addr_id'],
-                        'price' => $price,
-                        'total_price' => $total_price,
-                        'status' => CommonModel::$order_status_wait_pay,
-                        'is_del' => CommonModel::$del_normal,
-                        'createrid' => self::$aid,
-                        'creater' => self::$aname,
-                        'addtime' => $date,
-                        'updaterid' => self::$aid,
-                        'updater' => self::$aname,
-                        'updatetime' => $date,
-                    ];
-
-                }
-
-                //向服务订单表写数据
-                Db::name('order_service')->insertAll($insert_service);
+                $rs = GoodModel::alias('a')
+                    ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.id')
+                    ->whereIn('a.id', array_column($data['list'], 'id'))
+                    ->where(['a.is_del' => CommonModel::$del_normal, 'a.status' => CommonModel::$status_normal, 'type' => GoodModel::$type_exchange])
+                    ->column('a.id,a.good_code,a.good_name,a.moq,c.inventory,c.id inventory_id', 'a.id');
 
-            } else {
-                //购买商城商品
-                $order_insert = [];
-                $rs = GoodModel::field('id,price,good_name')
-                    ->whereIn('id', array_column($data['list'], 'id'))
-                    ->where(['is_del' => CommonModel::$del_normal, 'status' => CommonModel::$status_normal])
-                    ->select()
-                    ->toArray();
                 if (empty($rs)) throw new Exception('购买的商品不存在或已禁用');
 
                 $i = 0;
@@ -111,20 +73,22 @@ class PayLogic extends BaseLogic
                 $orderCode = substr($orderCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
                 foreach ($rs as $item) {
 
-                    $total_price = bcmul($item['price'], $num[$item['id']] ?? 0, 2);//总价
-                    $order_insert[] = [
+                    if ($item['moq'] > $num[$item['id']]) throw new Exception($item['good_name'] . '不满足起订量,' . $item['moq']);
+                    if ($item['inventory'] < $num[$item['id']]) throw new Exception($item['good_name'] . '的库存数不足');
+
+                    $insert_order[] = [
+                        'masterOrderCode' => $masterOrderCode,
                         'orderCode' => $orderCode,
-                        'pay_info_id' => $pay_info_id,
                         'company_id' => self::$company_id,
                         'card_id' => self::$card_id,
                         'uid' => self::$aid,
-                        'good_id' => $item['id'],
+                        'child_id' => $item['id'],
                         'num' => $num[$item['id']],
-                        'price' => $item['price'],
-                        'total_price' => $total_price,
+                        'price' => 0,
+                        'total_price' => 0,
                         'addr_id' => $data['addr_id'],
-                        'type' => CommonModel::$pay_type_shopping_good,
-                        'status' => CommonModel::$order_status_wait_pay,
+                        'type' => $data['type'],
+                        'status' => MasterOrderModel::$order_status_not_deliver,
                         'is_del' => CommonModel::$del_normal,
                         'createrid' => self::$aid,
                         'creater' => self::$aname,
@@ -133,38 +97,204 @@ class PayLogic extends BaseLogic
                         'updater' => self::$aname,
                         'updatetime' => $date,
                     ];
-                    $amount = bcadd($amount, $total_price, 2);
+
+                    //扣减库存
+                    $after_inventory = bcsub($item['inventory'], $num[$item['id']]);
+                    //添加库存变动记录
+                    $insert_inventory_exchange_log[] = [
+                        'inventory_exchange_id' => $item['inventory_id'],
+                        'before_inventory' => $item['inventory'],
+                        'after_inventory' => $after_inventory,
+                        'flag' => '-1',
+                        'good_id' => $item['id'],
+                        'good_code' => $item['good_code'],
+                        'good_name' => $item['good_name'],
+                        'source' => CommonModel::$source_account,
+                        'createrid' => self::$aid,
+                        'creater' => self::$aname,
+                        'addtime' => $date
+                    ];
+
+                    //扣减库存
+                    InventoryExchangeModel::where('id', $item['inventory_id'])
+                        ->save(['inventory' => $after_inventory, 'updaterid' => self::$aid, 'updater' => self::$aname, 'updatetime' => $date]);
 
                     $i++;
                 }
 
+                //更新主订单表数据
+                $insert_master_order = array_merge($insert_master_order, [
+                    'wx_openId' => '',
+                    'prepay_info' => '',
+                    'amount' => $amount,
+                    'transaction_id' => '',
+                    'trade_type' => '',
+                    'notify_result' => '',
+                    'expiretime' => $date,
+                    'status' => MasterOrderModel::$order_status_not_deliver,
+                ]);
 
-            }
+                $res = ['is_need_pay' => 0, 'result' => ''];
+
+            } else {
+
+                $openId = AccountModel::where(['id' => self::$aid, 'is_del' => CommonModel::$del_normal])
+                    ->value('wx_openId', '');
+
+                if ($openId == '') return json_show(CommonModel::$error_token, '获取账户openId失败,请重新登录');
 
-            //获取预支付信息,
-            //@todo body要写什么????????
-            $result = WechatLogic::getPrepayId($openId, '', $pay_code, $amount);
+                switch ($data['type']) {
 
+                    //服务订单
+                    case MasterOrderModel::$type_service:
+                        $rs = ServiceModel::field('id,original_price,activity_price,title,activity_status')
+                            ->whereIn('id', array_column($data['list'], 'id'))
+                            ->where(['is_del' => CommonModel::$del_normal, 'status' => CommonModel::$status_normal])
+                            ->select()
+                            ->toArray();
+                        if (empty($rs)) throw new Exception('购买的服务不存在或已下架');
+
+                        $i = 0;
+                        $orderCode = make_no('QR');
+                        $orderCode = substr($orderCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                        foreach ($rs as $item) {
+                            //单价
+                            if ($item['activity_status'] == ServiceModel::$activity_status_ing) $price = $rs['activity_price'];
+                            else $price = $rs['original_price'];
+
+                            $total_price = bcmul($price, $num[$item['id']] ?? 0, 2);//总价
+                            $amount = bcadd($amount, $total_price, 2);//总金额
+
+                            $insert_order[] = [
+                                'masterOrderCode' => $masterOrderCode,
+                                'orderCode' => $orderCode,
+                                'company_id' => self::$company_id,
+                                'card_id' => self::$card_id,
+                                'uid' => self::$aid,
+                                'child_id' => $item['id'],
+                                'num' => $num[$item['id']] ?? 0,
+                                'price' => $price,
+                                'total_price' => $total_price,
+                                'addr_id' => $data['addr_id'],
+                                'type' => $data['type'],
+                                'status' => MasterOrderModel::$order_status_wait_pay,
+                                'is_del' => CommonModel::$del_normal,
+                                'createrid' => self::$aid,
+                                'creater' => self::$aname,
+                                'addtime' => $date,
+                                'updaterid' => self::$aid,
+                                'updater' => self::$aname,
+                                'updatetime' => $date,
+                            ];
+                            $i++;
+                        }
+
+
+                        break;
+
+                    //商城商品订单
+                    case MasterOrderModel::$type_shopping_good:
+                        $rs = GoodModel::alias('a')
+                            ->leftJoin('inventory_exchange c', 'c.account_id=' . self::$aid . ' AND c.good_id=a.id')
+                            ->whereIn('a.id', array_column($data['list'], 'id'))
+                            ->where(['a.is_del' => CommonModel::$del_normal, 'a.status' => CommonModel::$status_normal, 'type' => GoodModel::$type_shopping])
+                            ->column('a.id,a.good_code,a.good_name,a.moq,a.price,c.inventory,c.id inventory_id', 'a.id');
+
+                        if (empty($rs)) throw new Exception('购买的商品不存在或已禁用');
+
+                        $i = 0;
+                        $orderCode = make_no('QR');
+                        $orderCode = substr($orderCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                        foreach ($rs as $item) {
+
+                            if ($item['moq'] > $num[$item['id']]) throw new Exception('不满足该商品的起订量,' . $item['moq']);
+                            if ($item['inventory'] < $num[$item['id']]) throw new Exception('库存数不足');
+
+                            $total_price = bcmul($rs['price'], $num[$item['id']] ?? 0, 2);//总价
+                            $amount = bcadd($amount, $total_price, 2);//总金额
+
+                            $order_insert[] = [
+                                'masterOrderCode' => $masterOrderCode,
+                                'orderCode' => $orderCode,
+                                'company_id' => self::$company_id,
+                                'card_id' => self::$card_id,
+                                'uid' => self::$aid,
+                                'child_id' => $item['id'],
+                                'num' => $num[$item['id']],
+                                'price' => $rs['price'],
+                                'total_price' => $total_price,
+                                'addr_id' => $data['addr_id'],
+                                'type' => $data['type'],
+                                'status' => MasterOrderModel::$order_status_wait_pay,
+                                'is_del' => CommonModel::$del_normal,
+                                'createrid' => self::$aid,
+                                'creater' => self::$aname,
+                                'addtime' => $date,
+                                'updaterid' => self::$aid,
+                                'updater' => self::$aname,
+                                'updatetime' => $date,
+                            ];
+
+
+                            //扣减库存
+                            $after_inventory = bcsub($item['inventory'], $num[$item['id']]);
+                            //添加库存变动记录
+                            $insert_inventory_exchange_log[] = [
+                                'inventory_exchange_id' => $item['inventory_id'],
+                                'before_inventory' => $item['inventory'],
+                                'after_inventory' => $after_inventory,
+                                'flag' => '-1',
+                                'good_id' => $item['id'],
+                                'good_code' => $item['good_code'],
+                                'good_name' => $item['good_name'],
+                                'source' => CommonModel::$source_account,
+                                'createrid' => self::$aid,
+                                'creater' => self::$aname,
+                                'addtime' => $date
+                            ];
+
+                            //扣减库存
+                            InventoryExchangeModel::where('id', $item['inventory_id'])
+                                ->save(['inventory' => $after_inventory, 'updaterid' => self::$aid, 'updater' => self::$aname, 'updatetime' => $date]);
+
+                            $i++;
+                        }
+
+                        break;
+                }
 
-            //更新pay_info表
-            Db::name('pay_info')
-                ->where('id', $pay_info_id)
-                ->update([
-                    'prepay_info' => $result,
+                //获取预支付信息,
+                //@todo body要写什么????????
+                $result = WechatLogic::getPrepayId($openId, '', $masterOrderCode, $amount);
+
+
+                //更新主订单表数据
+                $insert_master_order = array_merge($insert_master_order, [
+                    'wx_openId' => $openId,
+                    'prepay_info' => '',//预支付信息
                     'amount' => $amount,
-                    'expiretime' => date('Y-m-d H:i:s', time() + 5 * 60),
+                    'transaction_id' => '',
+                    'trade_type' => '',
+                    'notify_result' => '',
+                    'expiretime' => $date,
+                    'status' => MasterOrderModel::$order_status_wait_pay,
                 ]);
 
+                $res = ['is_need_pay' => 1, 'result' => $result];
+
+            }
 
-            //@todo 要给前端返回什么信息?
-            $res = ['pay_code' => $pay_code];
 
+            //处理数据
+            MasterOrderModel::create($insert_master_order)->save();
+            if ($insert_inventory_exchange_log) Db::name('inventory_exchange_log')->insertAll($insert_inventory_exchange_log);
+            if ($insert_order) Db::name('order')->insertAll($insert_order);
 
             Db::commit();
-            return json_show(CommonModel::$success, '微信支付预下单成功', $res);
+            return json_show(CommonModel::$success, '下单成功', $res);
         } catch (Exception $exception) {
             Db::rollback();
-            return json_show(CommonModel::$success, '微信支付预下单失败' . $exception->getMessage());
+            return json_show(CommonModel::$success, '下单失败,' . $exception->getMessage());
         }
 
 
@@ -187,13 +317,13 @@ class PayLogic extends BaseLogic
             if ($pay_info->isEmpty()) throw new Exception('该支付信息不存在');
 
             //待处理
-            if ($pay_info->status == CommonModel::$order_status_wait_pay) {
+            if ($pay_info->status == MasterOrderModel::$order_status_wait_pay) {
 
                 $updatetime = date('Y-m-d H:i:s');
 
-                PayInfoModel::where(['pay_code' => $notifyInfo['out_trade_no'], 'status' => CommonModel::$order_status_wait_pay, 'id' => $pay_info->id])
+                PayInfoModel::where(['pay_code' => $notifyInfo['out_trade_no'], 'status' => MasterOrderModel::$order_status_wait_pay, 'id' => $pay_info->id])
                     ->save([
-                        'status' => CommonModel::$order_status_not_deliver,
+                        'status' => MasterOrderModel::$order_status_not_deliver,
                         'updaterid' => '0',
                         'updater' => '微信支付',
                         'updatetime' => $updatetime,
@@ -205,24 +335,24 @@ class PayLogic extends BaseLogic
                 if ($pay_info->type == GoodModel::$type_exchange) {
                     //兑换商品订单
                     Db::name('order')
-                        ->where(['is_del' => CommonModel::$del_normal, 'pay_info_id' => $pay_info->id, 'status' => CommonModel::$order_status_wait_pay])
+                        ->where(['is_del' => CommonModel::$del_normal, 'pay_info_id' => $pay_info->id, 'status' => MasterOrderModel::$order_status_wait_pay])
                         ->update([
                             'updaterid' => '0',
                             'updater' => '微信支付',
                             'updatetime' => $updatetime,
-                            'status' => CommonModel::$order_status_not_deliver
+                            'status' => MasterOrderModel::$order_status_not_deliver
                         ]);
 
 
                 } else {
                     //服务订单
                     Db::name('order_service')
-                        ->where(['is_del' => CommonModel::$del_normal, 'pay_info_id' => $pay_info->id, 'status' => CommonModel::$order_status_wait_pay])
+                        ->where(['is_del' => CommonModel::$del_normal, 'pay_info_id' => $pay_info->id, 'status' => MasterOrderModel::$order_status_wait_pay])
                         ->update([
                             'updaterid' => '0',
                             'updater' => '微信支付',
                             'updatetime' => $updatetime,
-                            'status' => CommonModel::$order_status_not_deliver
+                            'status' => MasterOrderModel::$order_status_not_deliver
                         ]);
                 }
 
@@ -252,7 +382,7 @@ class PayLogic extends BaseLogic
             ->findOrEmpty()
             ->toArray();
         if (empty($rs)) return json_show(CommonModel::$error_param, '该支付信息不存在');
-        if ($rs['status'] == CommonModel::$order_status_wait_pay) {
+        if ($rs['status'] == MasterOrderModel::$order_status_wait_pay) {
             //待支付时,手动去微信端查验是否支付完成(有可能异步通知到的晚,尚未更新状态)
             $temp = WechatLogic::checkPayResult($pay_code);
             $rs['status'] = $temp['RESULT_CODE'];//????@todo

+ 0 - 9
app/model/CommonModel.php

@@ -33,16 +33,7 @@ class CommonModel
     public static $source_admin = 1 ;//后台操作
     public static $source_account = 2 ;//客户操作
 
-    //订单状态:0待支付,1支付失败,2支付成功待发货,3已发货,4已收货
-    public static $order_status_wait_pay = 0;
-    public static $order_status_pay_fail = 1;
-    public static $order_status_not_deliver = 2;
-    public static $order_status_deliver = 3;
-    public static $order_status_receipt = 4;
 
 
-    //购买的类型,1购买服务,2购买商城商品
-    public static $pay_type_service = 1;
-    public static $pay_type_shopping_good = 2;
 
 }

+ 12 - 0
app/model/ExpressModel.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace app\model;
+
+use think\Model;
+
+class ExpressModel extends Model
+{
+    protected $table = 'fc_express';
+    protected $pk = 'id';
+
+}

+ 28 - 0
app/model/MasterOrderModel.php

@@ -0,0 +1,28 @@
+<?php
+
+
+namespace app\model;
+
+use think\Model;
+
+class MasterOrderModel extends Model
+{
+
+    protected $table='fc_master_order';
+    protected $pk='id';
+
+    //订单类型,1兑换商品,2商城商品,3服务
+    public static $type_exchange_good = 1;
+    public static $type_shopping_good = 2;
+    public static $type_service = 3;
+
+    //订单状态:0待支付,1支付失败,2支付成功待发货,3已发货,4已收货
+    public static $order_status_wait_pay = 0;
+    public static $order_status_pay_fail = 1;
+    public static $order_status_not_deliver = 2;
+    public static $order_status_deliver = 3;
+    public static $order_status_receipt = 4;
+
+
+
+}