dongxiaoqin 1 rok temu
rodzic
commit
0fdd5314e3

+ 10 - 0
app/adminapi/controller/group_activity/GroupOrderController.php

@@ -55,5 +55,15 @@ class GroupOrderController extends BaseAdminController
         return $this->data($result);
     }
 
+    /**
+     * @notes 批量生成服务工单
+     */
+    public function changeWorkStatus() 
+    {
+        $params = (new GroupOrderValidate())->post()->goCheck('detail');
+        $result = GroupOrderLogic::changeWorkStatus($params);
+        return $this->data($result);
+    }
+
 
 }

+ 3 - 3
app/adminapi/lists/group_activity/GroupOrderLists.php

@@ -47,8 +47,8 @@ class GroupOrderLists extends BaseAdminDataLists implements ListsSearchInterface
         if(!empty($this->params['title'])){
             $where[] = ['b.title', 'like', '%'.$this->params['title'].'%'];
         }
-        if (!empty($this->params['account'])) {
-            $where[] = ['c.account', 'like', '%'.$this->params['account'].'%'];
+        if (!empty($this->params['mobile'])) {
+            $where[] = ['c.mobile', '=', $this->params['mobile']];
         }
         return $where;
     }
@@ -68,7 +68,7 @@ class GroupOrderLists extends BaseAdminDataLists implements ListsSearchInterface
             ->leftJoin('user c', 'c.id = a.user_id')
             ->where($this->searchWhere)
             ->where($this->queryWhere())
-            ->field(['a.*', 'b.title', 'b.image','c.account'])
+            ->field(['a.*', 'b.title', 'b.image','c.mobile'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['a.id' => 'desc'])
             ->select()

+ 4 - 2
app/adminapi/lists/group_activity/GroupUserOrderLists.php

@@ -38,7 +38,7 @@ class GroupUserOrderLists extends BaseAdminDataLists implements ListsSearchInter
     public function setSearch(): array
     {
         return [
-            '=' => ['a.mobile', 'a.sn','a.status','a.pay_status','a.pay_way','a.refund_status','a.group_activity_id','a.user_equity_id','a.group_order_id','c.group_order_status'],
+            '=' => ['a.sn','a.status','a.pay_status','a.pay_way','a.refund_status','a.group_activity_id','a.user_equity_id','a.group_order_id','c.group_order_status','d.mobile'],
         ];
     }
 
@@ -67,9 +67,10 @@ class GroupUserOrderLists extends BaseAdminDataLists implements ListsSearchInter
         $list = GroupUserOrder::alias('a')
             ->leftJoin('group_activity b', 'b.id = a.group_activity_id')
             ->leftJoin('group_order c', 'c.id = a.group_order_id')
+            ->leftJoin('user d', 'd.id = a.user_id')
             ->where($this->searchWhere)
             ->where($this->queryWhere())
-            ->field(['a.*', 'b.title','b.image','c.status as group_order_status'])
+            ->field(['a.*', 'b.title','b.image','c.status as group_order_status','d.mobile'])
             ->limit($this->limitOffset, $this->limitLength)
             ->order(['a.id' => 'desc'])
             ->select()
@@ -89,6 +90,7 @@ class GroupUserOrderLists extends BaseAdminDataLists implements ListsSearchInter
         return GroupUserOrder::alias('a')
         ->leftJoin('group_activity b', 'b.id = a.group_activity_id')
         ->leftJoin('group_order c', 'c.id = a.group_order_id')
+        ->leftJoin('user d', 'd.id = a.user_id')
         ->where($this->searchWhere)
         ->where($this->queryWhere())
         ->count();

+ 26 - 2
app/adminapi/logic/group_activity/GroupOrderLogic.php

@@ -41,15 +41,39 @@ class GroupOrderLogic extends BaseLogic
         $detail = GroupOrder::findOrEmpty($params['id'])->toArray();
         if ($detail) {
             //团长信息
-            $detail['user'] = User::where('id', $detail['user_id'])->field('id,account')->findOrEmpty()->toArray();
+            $detail['user'] = User::where('id', $detail['user_id'])->field('id,mobile')->findOrEmpty()->toArray();
             $detail['activity'] = GroupActivity::where('id', $detail['group_activity_id'])->findOrEmpty()->toArray();
             $detail['goods'] = EquityConfig::where('id', $detail['equity_id'])->findOrEmpty()->toArray();
             $detail['users'] = GroupUserOrder::alias('a')->leftJoin('user b','a.user_id=b.id')
                                 ->where('group_order_id', $detail['id'])
-                                ->field('a.*,b.account')
+                                ->field('a.*,b.mobile')
                                 ->select()->toArray();
             $detail['end_time'] = date('Y-m-d H:i:s',$detail['end_time']);
         }
         return $detail;
     }
+    
+    /**
+     * @notes 生成服务工单
+     * @return array
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public static function changeWorkStatus($params) 
+    {
+        $detail = GroupOrder::findOrEmpty($params['id']);
+        if (!$detail->isEmpty() && $detail->work_status == 0 && $detail->status == 1) {
+            //$detail->work_status = 1;
+            //$detail->save();
+            // 异步调用 changeWorkStatus 方法
+            //Queue::push(AddServiceWorkJob::class, $params);
+
+            // //执行队列任务,批量生成服务工单数据
+            $command = new addServiceWork();
+            $message = ['id' => $params['id']];
+            $command->sendMessageToQueue($message);
+        }
+        return $detail->toArray();
+    }
 }