Просмотр исходного кода

Merge branch 'master' of e.coding.net:zdap/weixiu/weixiu_api

liugc 1 год назад
Родитель
Сommit
d72d4c9953

+ 21 - 1
app/adminapi/logic/works/GroupServiceWorkLogic.php

@@ -187,7 +187,27 @@ class GroupServiceWorkLogic extends BaseLogic
             return false;
         }
     }
-    
+
+    //修改备注
+    public static function remark($params)
+    {
+        try {
+            $work = GroupServiceWork::where(['master_worker_id'=>$params['user_id'],'work_sn'=>$params['work_sn']])->findOrEmpty();
+            if($work->isEmpty()){
+                throw new Exception('工单不存在');
+            }
+            if (mb_strlen($params['remark']) > 100) {
+                throw new Exception('备注不能超过100个字符');
+            }
+            $work->remark = $params['remark'];
+            $work->save();
+            return true;
+        } catch (\Exception $e) {
+            self::setError($e->getMessage());
+            return false;
+        }
+    }  
+
     public static function allocateWorker($params,$userInfo){
         Db::startTrans();
         try {

+ 11 - 4
app/api/logic/GroupActivityLogic.php

@@ -45,7 +45,7 @@ class GroupActivityLogic extends BaseLogic
             $detail['timestamp'] = time();
             $detail['goods'] = self::getEquityGoods($detail['equity_id']);
             //查询用户是否已有付款订单
-            $detail['order'] = GroupUserOrder::with('group_order')->where(['user_id'=>$userId,'group_activity_id'=>$id,'pay_status'=>1])->where('refund_status','<>',1)->field('id,status,num,order_amount,paid_amount,pay_way,pay_time,pay_status,remark,create_time,group_order_id')->findOrEmpty()->toArray();
+            $detail['order'] = [];//GroupUserOrder::with('group_order')->where(['user_id'=>$userId,'group_activity_id'=>$id,'pay_status'=>1])->where('refund_status','<>',1)->field('id,status,num,order_amount,paid_amount,pay_way,pay_time,pay_status,remark,create_time,group_order_id')->findOrEmpty()->toArray();
         }
 
         return $detail;
@@ -152,9 +152,9 @@ class GroupActivityLogic extends BaseLogic
         Db::startTrans();
         try {
             $userOrder = GroupUserOrder::where(['group_activity_id' => $params['group_activity_id'], 'user_id' => $params['user_id'],'refund_status' => 0])->where("pay_status","<>",1)->findOrEmpty()->toArray();
-            if ($userOrder && $userOrder['pay_status'] == 1) {
-                throw new Exception('您已参加过该活动!');
-            }
+            // if ($userOrder && $userOrder['pay_status'] == 1) {
+            //     throw new Exception('您已参加过该活动!');
+            // }
 
             $activity = GroupActivity::getDetail($params['group_activity_id']); //活动详情
             if (!$activity) {
@@ -172,6 +172,13 @@ class GroupActivityLogic extends BaseLogic
             if ($num > 5) {
                 throw new Exception('下单数量不能超过5个!'); 
             }
+
+            //每人每团限量10份
+            $totalNum = GroupUserOrder::where(['group_activity_id' => $params['group_activity_id'], 'user_id' => $params['user_id'],'status' => 1])->sum('num');
+            if ($totalNum + $params['num'] >= 10 ) {
+                throw new Exception('每人限购10份,您还可以购买的数量为' . (10 - $totalNum) . '!');
+            }
+
             $order_amount = $activity['price'][0];
             
             //加入已开的拼团单

+ 17 - 0
app/workerapi/controller/GroupWorksController.php

@@ -96,4 +96,21 @@ class GroupWorksController extends BaseApiController
         return $this->success('操作成功,已确定新的预约时间', [], 1, 1);
     }
 
+    /**
+     * 工程师修改备注
+     * @return \think\response\Json
+     */
+    public function remark()
+    {
+        $params = (new GroupServiceWorkValidate())->post()->goCheck('remark', [
+            'user_id' => $this->userId,
+            'user_info' => $this->userInfo
+        ]);
+        $result = GroupServiceWorkLogic::remark($params);
+        if (false === $result) {
+            return $this->fail(GroupServiceWorkLogic::getError());
+        }
+        return $this->success('操作成功', [], 1, 1);
+    }
+
 }

+ 7 - 15
app/workerapi/logic/PropertyHeadLogic.php

@@ -1,17 +1,9 @@
 <?php
 namespace app\workerapi\logic;
 
-
-use Exception;
-use think\facade\Db;
-use think\facade\Log;
 use app\common\logic\BaseLogic;
-use app\common\model\user\User;
-use app\adminapi\logic\user\UserLogic;
 use app\common\model\property\PropertyHead;
-use app\common\service\wechat\WeChatMnpService;
-use app\common\model\group_activity\GroupActivity;
-
+use app\common\model\group_activity\GroupOrder;
 
 /**
  * PropertyHead逻辑
@@ -36,13 +28,13 @@ class PropertyHeadLogic extends BaseLogic
 
     public static function groupActivityDetail($params): array
     {   
-        $lists = GroupActivity::alias("a")
-            ->leftJoin("group_user_order b","a.id=b.group_activity_id")
+        $lists = GroupOrder::alias("a")
+            ->leftJoin("group_activity b","a.group_activity_id=b.id")
+            ->leftJoin("group_user_order c","a.id=c.group_order_id")
             ->where('a.group_category_id',$params['id'])
             ->field([
-                'a.id','a.title',
-                'SUM(CASE WHEN refund_status = 0 THEN 1 ELSE 0 END) AS pay_count',
-                'SUM(CASE WHEN refund_status > 0 THEN 1 ELSE 0 END) AS refund_count'
+                'a.id','a.status','a.num','a.end_time','b.title',
+                'SUM(CASE WHEN c.refund_status > 0 THEN 1 ELSE 0 END) AS refund_num'
                 ]
             )
             ->group('a.id') 
@@ -50,4 +42,4 @@ class PropertyHeadLogic extends BaseLogic
             ->toArray();
         return $lists;
     }
-}
+}

+ 8 - 1
app/workerapi/validate/GroupServiceWorkValidate.php

@@ -28,6 +28,7 @@ class GroupServiceWorkValidate extends BaseValidate
         'finished_images'=>'require',
         'work_images'=>'require',
         'code' => 'require',
+        'remark' => 'require',
     ];
 
     /**
@@ -45,7 +46,8 @@ class GroupServiceWorkValidate extends BaseValidate
         'finished_time' => '结单时间',
         'finished_images'=>'完结服务拍照',
         'work_images'=>'工作拍照',
-        'code' => '工单验证码'
+        'code' => '工单验证码',
+        'remark' => '备注',
     ];
 
     /**
@@ -75,4 +77,9 @@ class GroupServiceWorkValidate extends BaseValidate
     {
         return $this->only(['work_sn','appointment_time']);
     }
+
+    public function sceneRemark()
+    {
+        return $this->only(['work_sn','remark']);
+    }
 }