dongxiaoqin 1 год назад
Родитель
Сommit
2e3683dd7a

+ 3 - 0
app/adminapi/logic/group_activity/GroupActivityCategoryLogic.php

@@ -239,6 +239,9 @@ class GroupActivityCategoryLogic extends BaseLogic
     public static function getQRCode($params,$url)
     {
         try {
+            if (empty($params['id'])) {
+                return '';
+            }
             $mnp_page = 'pages/web_view/group';
             
             $scene_page = 'good';

+ 2 - 2
app/adminapi/logic/works/GroupServiceWorkLogic.php

@@ -427,7 +427,7 @@ class GroupServiceWorkLogic extends BaseLogic
                 throw new Exception('工单不存在');
             }
             if($work->work_status >=7 ){
-                throw new \Exception('工单已完结,不支持退款');
+                throw new \Exception('工单不支持退款');
             }
             if(!$work->group_user_order_id ){
                 throw new \Exception('临时工单,不支持退款');
@@ -453,7 +453,7 @@ class GroupServiceWorkLogic extends BaseLogic
             $work->work_status = 9;
             $work->service_status = 5;
             $work->save();
-
+            
             // 生成退款记录
             $recordSn = generate_sn(RefundRecord::class, 'sn');
             $record = RefundRecord::create([

+ 20 - 0
app/api/controller/GroupActivityController.php

@@ -8,6 +8,8 @@ use app\api\validate\GroupOrderValidate;
 use app\api\lists\group_activity\UserOrderLists;
 use app\api\lists\property\PropertyGroupOrderLists;
 use app\api\lists\property\PropertyServiceWorkLists;
+use app\api\lists\property\PropertyGroupActivityLists;
+use app\adminapi\logic\group_activity\GroupActivityCategoryLogic;
 
 
 /**
@@ -182,6 +184,15 @@ class GroupActivityController extends BaseApiController
         return $this->success('',['qrcode'=>GroupActivityLogic::getQRCode($params, $this->request->domain())], 1, 1);
     }
 
+     /**
+     * 获取拼团活动首页二维码
+     */
+    public function getIndexQRCode()
+    {
+        $id = (int)$this->request->param('id');
+        return $this->success('',['qrcode'=>GroupActivityCategoryLogic::getQRCode(['id' => $id], $this->request->domain())], 1, 1);
+    }
+
     /**
      * 代理人拼团订单列表
      */
@@ -197,4 +208,13 @@ class GroupActivityController extends BaseApiController
     {
         return $this->dataLists(new PropertyServiceWorkLists());
     }
+
+    /**
+     * 代理人团购活动列表
+     */
+    public function propertyGroupActivityLists()
+    {
+        return $this->dataLists(new PropertyGroupActivityLists());
+    }
+    
 }

+ 70 - 0
app/api/lists/property/PropertyGroupActivityLists.php

@@ -0,0 +1,70 @@
+<?php
+namespace app\api\lists\property;
+
+use app\api\lists\BaseApiDataLists;
+use app\common\lists\ListsSearchInterface;
+use app\common\model\group_activity\GroupActivityCategory;
+use app\common\model\property\PropertyHead;
+
+/**
+ * 代理人拼团活动列表
+ * Class PropertyGroupActivityLists
+ * @package app\api\lists\property
+ */
+class PropertyGroupActivityLists extends BaseApiDataLists implements ListsSearchInterface
+{
+    /**
+     * @notes 设置搜索条件
+     * @return \string[][]
+     * @author likeadmin
+     * @date 2024/07/07 18:37
+     */
+    public function setSearch(): array
+    {
+        return [
+            '=' => [],
+        ];
+    }
+    public function queryWhere()
+    {
+        // 指定用户
+        $propertyHeadId = (int)PropertyHead::where('user_id',$this->userId)->value('id');
+        $where[] = ['property_head_id', '=', $propertyHeadId];
+        $where[] = ['status','=',1];
+        if (isset($this->params['start_time']) && !empty($this->params['start_time'])) {
+            $monthStart = strtotime(date("Y-m-01",strtotime($this->params['start_time'])));
+            $monthEnd = strtotime(date("Y-m-t 23:59:59",strtotime($this->params['start_time'])));
+            $where[] = ['start_time', 'between', [$monthStart, $monthEnd]];
+        }
+        return $where;
+    }
+    
+    /**
+     * @notes 获取列表
+     * @return array
+     */
+    public function lists(): array
+    {
+        $lists = GroupActivityCategory::where($this->queryWhere())
+            ->field('id,title,start_time,end_time,participant_num')
+            ->limit($this->limitOffset, $this->limitLength)
+            ->order('start_time', 'desc')
+            ->select()
+            ->toArray();
+        foreach($lists as &$item) {
+            $item['start_time'] = date('Y-m-d', strtotime($item['start_time']));
+            $item['end_time'] = date('m-d', $item['end_time']);
+        }
+        return $lists;
+    }
+
+    /**
+     * @notes  获取数量
+     * @return int
+     */
+    public function count(): int
+    {
+        return GroupActivityCategory::where($this->queryWhere())->count();
+    }
+
+}

+ 26 - 8
app/api/lists/property/PropertyGroupOrderLists.php

@@ -1,6 +1,7 @@
 <?php
 namespace app\api\lists\property;
 
+use think\facade\Db;
 use app\api\lists\BaseApiDataLists;
 use app\common\lists\ListsSearchInterface;
 use app\common\model\property\PropertyHead;
@@ -28,16 +29,20 @@ class PropertyGroupOrderLists extends BaseApiDataLists implements ListsSearchInt
     public function queryWhere()
     {
         // 指定用户
-        $propertyHeadId = PropertyHead::where('user_id',$this->userId)->value('id');
+        $propertyHeadId = (int)PropertyHead::where('user_id',$this->userId)->value('id');
         $where[] = ['b.property_head_id', '=', $propertyHeadId];
 
         if (isset($this->params['status'])) {
             if ($this->params['status'] == 0) {
-                $where[] = ['a.status', '=', 0];
-            } elseif ($this->params['status'] == 1) {
+                //待完成
                 $where[] = ['a.status', '=', 1];
+                $where[] = ['c.service_status', 'exp', Db::Raw('IS NULL OR c.service_status <> 3')];
+            } elseif ($this->params['status'] == 1) {
+                //工单已完成
+                $where[] = ['c.service_status', '=', 3];
             } else {
-                $where[] = ['a.status', '>', 1];
+                //已退款
+                $where[] = ['a.status', 'in', [2,3]];
             }
         }
         if (isset($this->params['start_time']) && !empty($this->params['start_time'])) {
@@ -55,14 +60,27 @@ class PropertyGroupOrderLists extends BaseApiDataLists implements ListsSearchInt
     public function lists(): array
     {
         $lists = GroupUserOrder::alias('a')
-        ->leftJoin('group_order b','a.group_order_id=b.id')
-        ->leftJoin('group_activity c','a.group_activity_id=c.id')
-        ->field('a.id,a.sn,a.group_activity_id,a.status,a.order_amount,a.paid_amount,a.pay_status,a.refund_status,a.create_time,b.goods_id,b.num,b.origin_price,b.end_time,c.title,c.image')
+            ->leftJoin('group_order b','a.group_order_id=b.id')
+            ->leftJoin('group_service_work c','a.id=c.group_user_order_id')
+            ->field('a.id,a.status,a.order_amount,a.mobile,a.area,a.address,a.create_time,a.num,c.service_status')
             ->where($this->queryWhere())
             ->limit($this->limitOffset, $this->limitLength)
             ->order('a.create_time', 'desc')
             ->select()
             ->toArray();
+        foreach($lists as &$item) {
+            if ($item['status'] == 0) {
+                $item['status_txt'] = '未支付';
+            } else if ($item['status'] == 2 || $item['status'] == 3) {
+                $item['status_txt'] = '已退款';
+            } else if ($item['status'] == 4) {
+                $item['status_txt'] = '已取消';
+            } else if ($item['service_status'] == 3) {
+                $item['status_txt'] = '已完成';
+            } else {
+                $item['status_txt'] = '待完成';
+            }
+        }
         return $lists;
     }
 
@@ -74,7 +92,7 @@ class PropertyGroupOrderLists extends BaseApiDataLists implements ListsSearchInt
     {
         return GroupUserOrder::alias('a')
             ->leftJoin('group_order b','a.group_order_id=b.id')
-            ->leftJoin('group_activity c','a.group_activity_id=c.id')
+            ->leftJoin('group_service_work c','a.id=c.group_user_order_id')
             ->where($this->queryWhere())
             ->count();
     }

+ 21 - 16
app/api/lists/property/PropertyServiceWorkLists.php

@@ -6,7 +6,6 @@ use app\common\lists\ListsExtendInterface;
 use app\common\lists\ListsSearchInterface;
 use app\common\model\property\PropertyHead;
 use app\common\model\works\GroupServiceWork;
-use app\common\model\group_activity\GroupUserOrder;
 
 /**
  * 代理人完结工单列表
@@ -30,14 +29,15 @@ class PropertyServiceWorkLists extends BaseApiDataLists implements ListsSearchIn
     public function queryWhere()
     {
         // 指定用户
-        $propertyHeadId = PropertyHead::where('user_id',$this->userId)->value('id');
+        $propertyHeadId = (int)PropertyHead::where('user_id',$this->userId)->value('id');
+        
         $where[] = ['b.property_head_id', '=', $propertyHeadId];
         if (isset($this->params['start_time']) && !empty($this->params['start_time'])) {
             $monthStart = strtotime(date("Y-m-01",strtotime($this->params['start_time'])));
             $monthEnd = strtotime(date("Y-m-t 23:59:59",strtotime($this->params['start_time'])));
-            $where[] = ['b.create_time', 'between', [$monthStart, $monthEnd]];
+            $where[] = ['a.appointment_time', 'between', [$monthStart, $monthEnd]];
         }
-       // $where[] = ['a.service_status', '=', 3];
+        $where[] = ['a.service_status', '=', 3];
         return $where;
     }
     
@@ -49,12 +49,17 @@ class PropertyServiceWorkLists extends BaseApiDataLists implements ListsSearchIn
     {
         $lists = GroupServiceWork::alias('a')
             ->leftJoin('group_order b','a.group_order_id=b.id')
-            ->field('a.id,a.work_total,a.address,a.mobile,a.real_name,b.create_time')
+            ->leftJoin('user c','a.user_id=c.id')
+            ->field('a.id,a.work_sn,a.title,a.appointment_time,a.work_total,c.avatar as image')
             ->where($this->queryWhere())
             ->limit($this->limitOffset, $this->limitLength)
-            ->order('b.create_time', 'desc')
+            ->order('a.appointment_time', 'desc')
             ->select()
             ->toArray();
+
+        foreach($lists as &$item) {
+            $item['appointment_time'] = date('n月j日', strtotime($item['appointment_time']));
+        }
         return $lists;
     }
 
@@ -76,17 +81,17 @@ class PropertyServiceWorkLists extends BaseApiDataLists implements ListsSearchIn
      */
     public function extend(): array
     {
-        $totalWorkTotal = GroupUserOrder::alias('a')
-            ->leftJoin('group_order b', 'a.group_order_id = b.id')
-            ->leftJoin('group_service_work c', 'a.id = c.group_user_order_id')
-            ->where($this->queryWhere())
-            ->sum('c.work_total');
+        $totalWorkTotal = GroupServiceWork::alias('a')
+                            ->leftJoin('group_order b','a.group_order_id=b.id')
+                            ->where($this->searchWhere)
+                            ->where($this->queryWhere())
+                            ->sum('a.work_total');
 
-        $totalWorkAmount = GroupUserOrder::alias('a')
-            ->leftJoin('group_order b', 'a.group_order_id = b.id')
-            ->leftJoin('group_service_work c', 'a.id = c.group_user_order_id')
-            ->where($this->queryWhere())
-            ->sum('c.work_amount');
+        $totalWorkAmount = GroupServiceWork::alias('a')
+                            ->leftJoin('group_order b','a.group_order_id=b.id')
+                            ->where($this->searchWhere)
+                            ->where($this->queryWhere())
+                            ->sum('a.work_amount');
         return ["total_amount" => $totalWorkTotal - $totalWorkAmount];
     }
 

+ 1 - 1
app/api/logic/GroupActivityLogic.php

@@ -277,7 +277,7 @@ class GroupActivityLogic extends BaseLogic
             $order =  GroupUserOrder::where([
                     'user_id' => $params['user_id'],
                     'id'=>$params['order_id']
-                ])->field('id,group_order_id,sn,status,num,order_amount,pay_status,pay_way,user_equity_id,user_id,order_terminal,transaction_id')->findOrEmpty()->toArray();
+                ])->field('id,group_order_id,sn,status,num,paid_amount,order_amount,pay_status,pay_way,user_equity_id,user_id,order_terminal,transaction_id')->findOrEmpty()->toArray();
             if(empty($order)){
                 throw new Exception('订单不存在');
             }

+ 1 - 1
app/workerapi/logic/GroupServiceWorkLogLogic.php

@@ -22,7 +22,7 @@ class GroupServiceWorkLogLogic extends BaseLogic
      */
     public static function add(array $params): bool
     {
-        if(empty($params['type']) || empty($params['work_id']) || empty($params['master_worker_id']) || empty($params['opera_log'])) {
+        if(empty($params['type']) || empty($params['work_id']) || !isset($params['master_worker_id']) || empty($params['opera_log'])) {
             throw new Exception('参数错误');
         }
         GroupServiceWorkLog::create([