ソースを参照

提交拼团工单

dongxiaoqin 1 年間 前
コミット
789b94d837

+ 149 - 0
app/adminapi/controller/works/GroupServiceWorkController.php

@@ -0,0 +1,149 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+
+namespace app\adminapi\controller\works;
+
+
+use app\adminapi\controller\BaseAdminController;
+use app\adminapi\lists\works\GroupServiceWorkLists;
+use app\adminapi\logic\works\GroupServiceWorkLogic;
+use app\adminapi\validate\works\GroupServiceWorkValidate;
+use app\common\model\master_worker\MasterWorkerTemporary;
+
+/**
+ * ServiceWork控制器
+ * Class WorksController
+ * @package app\adminapi\controller\works
+ */
+class ServiceWorkController extends BaseAdminController
+{
+
+
+    /**
+     * @notes 获取列表
+     * @return \think\response\Json
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function lists()
+    {
+        return $this->dataLists(new GroupServiceWorkLists());
+    }
+
+    /**
+     * @notes 编辑
+     * @return \think\response\Json
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function edit()
+    {
+        $params = (new GroupServiceWorkValidate())->post()->goCheck('edit');
+        $workDetail = GroupServiceWorkLogic::detail($params);
+        
+        $result = GroupServiceWorkLogic::edit($params);
+        if (true === $result) {
+            if(strtotime($workDetail['appointment_time']) !== strtotime($params['appointment_time']) && !empty($workDetail['master_worker_id'])){
+                $masterDetail = MasterWorkerTemporary::where(['id'=>$workDetail['master_worker_id']])->findOrEmpty()->toArray();
+                // 修改预约时间通知【给用户的通知】
+                $res = event('Notice',  [
+                    'scene_id' => 117,
+                    'params' => [
+                        'user_id' => $workDetail['user_id'],
+                        'date' => $params['appointment_time'],
+                        'tel' => asteriskString($masterDetail['mobile']),
+                    ]
+                ]);
+                // 修改预约时间通知【给工程师的通知,仅限公众号】
+                $res = event('Notice',  [
+                    'scene_id' => 118,
+                    'params' => [
+                        'user_id' => $workDetail['master_worker_id'],
+                        'order_id' => $workDetail['id'],
+                        'thing4' => $workDetail['title'],
+                        'time5' => $workDetail['appointment_time'],
+                        'time6' => $params['appointment_time'],
+                        'thing11' => (iconv_strlen($workDetail['address'])>15)?(mb_substr($workDetail['address'],0,15,'UTF-8').'...'):$workDetail['address'],
+                        'phone_number8' => asteriskString($workDetail['mobile']),
+                    ]
+                ]);
+            }
+            return $this->success('编辑成功', [], 1, 1);
+        }
+        return $this->fail(GroupServiceWorkLogic::getError());
+    }
+
+
+    /**
+     * @notes 删除
+     * @return \think\response\Json
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function delete()
+    {
+        $params = (new GroupServiceWorkValidate())->post()->goCheck('delete');
+        $result = GroupServiceWorkLogic::edit($params);
+        if (true === $result) {
+            return $this->success('编辑成功', [], 1, 1);
+        }
+        return $this->success('分配成功', [], 1, 1);
+    }
+
+
+    /**
+     * @notes 获取详情
+     * @return \think\response\Json
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function detail()
+    {
+        $params = (new GroupServiceWorkValidate())->goCheck('detail');
+        $result = GroupServiceWorkLogic::detail($params);
+        return $this->data($result);
+    }
+
+
+    public function allocateWorker()
+    {
+        $params = (new GroupServiceWorkValidate())->post()->goCheck('allocateWorker');
+        $result = GroupServiceWorkLogic::allocateWorker($params,$this->adminInfo);
+        if (true === $result) {
+            return $this->success('分配工程师成功', [], 1, 1);
+        }
+        return $this->fail(GroupServiceWorkLogic::getError());
+    }
+
+    public function cancelAllocation()
+    {
+        $params = (new GroupServiceWorkValidate())->post()->goCheck('allocateWorker');
+        $result = GroupServiceWorkLogic::cancelAllocation($params,$this->adminInfo);
+        if (true === $result) {
+            return $this->success('操作成功!', [], 1, 1);
+        }
+        return $this->fail(GroupServiceWorkLogic::getError());
+    }
+
+    public function confirmServiceFinish()
+    {
+        $params = request()->post();
+        $params['admin_id'] = $this->adminId;
+      
+        return $this->success('操作成功!', [], 1, 1);
+    }
+
+
+}

+ 136 - 0
app/adminapi/lists/works/GroupServiceWorkLists.php

@@ -0,0 +1,136 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\adminapi\lists\works;
+
+
+use think\db\Query;
+use app\adminapi\lists\BaseAdminDataLists;
+use app\common\lists\ListsSearchInterface;
+use app\common\model\works\GroupServiceWork;
+use app\common\model\goods_category\GoodsCategory;
+use app\common\model\master_worker\MasterWorkerTemporary;
+
+
+/**
+ * ServiceWork列表
+ * Class ServiceWorkLists
+ * @package app\adminapi\listsworks
+ */
+class GroupServiceWorkLists extends BaseAdminDataLists implements ListsSearchInterface
+{
+
+    /**
+     * @notes 设置搜索条件
+     * @return \string[][]
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function setSearch(): array
+    {
+        return [
+            '=' => ['id','category_type', 'work_status', 'service_status', 'master_worker_id','third_type','group_order_id'],
+            '%like%'=>[ 'work_sn','mobile','real_name', 'title', 'address']
+        ];
+    }
+
+    public function queryWhere(){
+        $where = [];
+        if (isset($this->params['all_tenant'])) {
+            if((int)$this->params['all_tenant'] === 1){
+                $where[] = ['tenant_id','>' ,0];
+            }else{
+                $where[] = ['tenant_id','=', 0];
+            }
+        }
+        if (isset($this->params['master_worker_name']) && !empty($this->params['master_worker_name'])) {
+            $master_worker_ids = MasterWorkerTemporary::where([['worker_number|mobile|real_name', 'like','%' .$this->params['master_worker_name'] . '%']])->column('id')??[0];
+            $where[] = ['master_worker_id','in' ,$master_worker_ids];
+        }
+        if(isset($this->params['workid']) && !empty($this->params['workid'])){
+            $where[] = ['master_worker_id', '=', $this->params['workid']];
+            $where[] = ['work_status', 'NOT IN', [7,8,9]];
+        }
+        if (!empty($this->params['goods_category_id'])) {
+            $goodsCategoryId = end($this->params['goods_category_id']);
+            $goodsCategoryData = GoodsCategory::where(['status'=>1])->order(['pid' => 'asc','weigh' => 'desc', 'id' => 'desc'])
+                ->select()->toArray();
+            $ids =get_tree_ids($goodsCategoryData,$goodsCategoryId);
+            $ids[] = $goodsCategoryId;
+            $where[] = ['goods_category_id','in' ,$ids];
+        }
+        if(isset($this->params['work_status']) && (!empty($this->params['work_status']) || $this->params['work_status'] != '')){
+            switch ($this->params['work_status']){
+                case 0:
+                    $where[] = ['service_status','<' ,3];
+                    break;
+            }
+        }
+        return $where;
+    }
+    /**
+     * @notes 获取列表
+     * @return array
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function lists(): array
+    {
+        return GroupServiceWork::with([
+            'serviceWorkLog' =>function(Query $query){
+                $query->field('id,work_id,opera_log,create_time');
+            },
+        ])
+            ->where($this->searchWhere)
+            ->where($this->queryWhere())
+            ->field(['id', 'work_sn', 'real_name', 'mobile', 'address', 'title', 'category_type', 'goods_category_ids', 'goods_category_id', 'work_status', 'service_status', 'dispatch_time', 'receive_time', 'appointment_time', 'finished_images', 'finished_time', 'master_worker_id', 'work_amount',  'create_time', 'finally_door_time','third_type'])
+            ->append(['service_status_text','category_type_text','third_type_text'])
+            ->limit($this->limitOffset, $this->limitLength)
+            ->order(['id' => 'desc'])
+            ->select()
+            ->toArray();
+    }
+
+
+    /**
+     * @notes 获取数量
+     * @return int
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function count(): int
+    {
+        return GroupServiceWork::where($this->searchWhere)->where($this->queryWhere())->count();
+    }
+
+    public function setExcelComplexFields(): array
+    {
+        $zh_cn_fields = [
+            '客户名字','工单编号','下单时间','手机号','服务内容','工程师',
+            '工单状态','消费金额','订单来源','完成时间','城市','服务类别'
+        ];
+        $data_fields = [
+            'real_name','work_sn','create_time','mobile','title',function ($row) { return $row['worker']['real_name'] ?? ''; },
+            'service_status_text','work_total','third_type_text','finished_time','area_name','category_type_text'
+        ];
+        return [
+            'zh_cn_fields' => $zh_cn_fields,
+            'data_fields' => $data_fields
+        ];
+    }
+
+}

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

@@ -87,6 +87,7 @@ class GroupActivityCategoryLogic extends BaseLogic
                         'origin_price' => $activity['origin_price'],
                         'price' => $activity['price'],
                         'work_amount' => isset($activity['work_amount']) ? $activity['work_amount'] : 0,
+                        'settlement_amount' => isset($activity['settlement_amount']) ? $activity['settlement_amount'] : 0,
                     ]);
                     $activity['data_id'] = $res['id'];
                 }
@@ -145,6 +146,7 @@ class GroupActivityCategoryLogic extends BaseLogic
                         'origin_price' => $activity['origin_price'],
                         'price' => $activity['price'],
                         'work_amount' => isset($activity['work_amount']) ? $activity['work_amount'] : 0,
+                        'settlement_amount' => isset($activity['settlement_amount']) ? $activity['settlement_amount'] : 0,
                         'delete_time' => null,
                     ];
                     if (!empty($activity['data_id'])) {
@@ -223,7 +225,7 @@ class GroupActivityCategoryLogic extends BaseLogic
         $detail['master_worker_name'] = MasterWorker::where('id',$detail['master_worker_id'])->value('real_name');
         foreach($detail['block_data'] as $key => $item) {
             $detail['block_data'][$key]['activity'] = GroupActivity::where(['block_key' => $item['block_key'],'group_category_id' => $detail['id']])
-                    ->field('id,id as data_id,title,image,equity_id,block_key,origin_price,price,work_amount')
+                    ->field('id,id as data_id,title,image,equity_id,block_key,origin_price,price,work_amount,settlement_amount')
                     ->select()
                     ->toArray();
         }
@@ -249,7 +251,6 @@ class GroupActivityCategoryLogic extends BaseLogic
                 env('miniprogram.mini_env_version', 'release'),
                 false
             );
-            Log::info('getQRCode:'.json_encode([$response]));
             $qrcode = $response->getContent();
             if(!is_dir('./uploads/wx_qrcode/'.date('Ymd'))){
                 mkdir('./uploads/wx_qrcode/'.date('Ymd'));

+ 65 - 0
app/adminapi/logic/works/GroupServiceWorkLogic.php

@@ -19,6 +19,7 @@ use think\facade\Db;
 use app\common\logic\BaseLogic;
 use app\common\model\works\ServiceWork;
 use app\common\model\works\GroupServiceWork;
+use app\workerapi\logic\GroupServiceWorkLogLogic;
 use app\common\model\master_worker\MasterWorkerTemporary;
 
 /**
@@ -76,7 +77,25 @@ class GroupServiceWorkLogic extends BaseLogic
             $work->work_status = 4;//已上门
             $work->work_images = $params['work_images'];
             $work->save();
+
+            //添加变更日志
+            $work_log = [
+                'work_id'=>$work->id,
+                'master_worker_id'=>$work->master_worker_id,
+                'opera_log'=>'编号['.$params['user_info']['worker_number'].']'.$params['user_info']['real_name'].'于'.date('y-m-d H:i:s',time()).'于'.date('Y-m-d H:i:s',time()).'已上门',
+            ];
+            GroupServiceWorkLogLogic::add($work_log);
             Db::commit();
+
+            //给客户发送工单验证码
+            event('Notice',  [
+                'scene_id' => 105,
+                'params' => [
+                    'user_id' => 0,
+                    'mobile' => $work->mobile,
+                    'code' => $work->code,
+                ]
+            ]);
         }
         catch (\Exception $e) {
             Db::rollback();
@@ -109,6 +128,13 @@ class GroupServiceWorkLogic extends BaseLogic
             $work->user_confirm_status = 3;//待确认服务完成
             $work->save();
 
+            //添加变更日志
+            $work_log = [
+                'work_id'=>$work->id,
+                'master_worker_id'=>$work->master_worker_id,
+                'opera_log'=>'编号['.$params['user_info']['worker_number'].']'.$params['user_info']['real_name'].'于'.date('y-m-d H:i:s',time()).'于'.date('Y-m-d H:i:s',time()).'提交了待用户确认服务完成',
+            ];
+            GroupServiceWorkLogLogic::add($work_log);
             Db::commit();
 
         } catch (\Exception $e) {
@@ -166,6 +192,45 @@ class GroupServiceWorkLogic extends BaseLogic
         }
     }
 
+    public static function cancelAllocation($params,$userInfo){
+        Db::startTrans();
+        try {
+
+            $work = GroupServiceWork::findOrEmpty($params['id']);
+            if($work->isEmpty()){
+                throw new Exception('工单不存在');
+            }
+            if($work->work_status >=6 ){
+                throw new \Exception('工单状态只能修改待结算之前的');
+            }
+            $worker = MasterWorkerTemporary::where(['id'=>$work->master_worker_id])->findOrEmpty();
+            if($worker->isEmpty()){
+                throw new \Exception('工程师不存在');
+            }
+            $params['master_worker_id'] = (isset($params['master_worker_id']) && !empty($params['master_worker_id']))?$params['master_worker_id']:$work->master_worker_id;
+            $work->master_worker_id = 0;
+            $work->work_status = 0;
+            $work->dispatch_time = 0;
+            $work->receive_time = 0;
+            $work->save();
+
+            //添加变更日志
+            $work_log = [
+                'work_id'=>$work->id,
+                'master_worker_id'=>$work->master_worker_id,
+                'opera_log'=>'后台用户['.$userInfo['admin_id'].']'.$userInfo['name'].'于'.date('Y-m-d H:i:s',time()).'取消了工程师'.'编号['.$worker->worker_number.']'.$worker->real_name
+            ];
+            GroupServiceWorkLogLogic::add($work_log);
+            Db::commit();
+            return true;
+        }catch(\Exception $e){
+            Db::rollback();
+            self::setError($e->getMessage());
+            return false;
+        }
+    }
+
+
     /**
      * 工单详情
      * @param $params

+ 136 - 0
app/adminapi/validate/works/GroupServiceWorkValidate.php

@@ -0,0 +1,136 @@
+<?php
+// +----------------------------------------------------------------------
+// | likeadmin快速开发前后端分离管理后台(PHP版)
+// +----------------------------------------------------------------------
+// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
+// | 开源版本可自由商用,可去除界面版权logo
+// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
+// | github下载:https://github.com/likeshop-github/likeadmin
+// | 访问官网:https://www.likeadmin.cn
+// | likeadmin团队 版权所有 拥有最终解释权
+// +----------------------------------------------------------------------
+// | author: likeadminTeam
+// +----------------------------------------------------------------------
+
+namespace app\adminapi\validate\works;
+
+
+use app\common\validate\BaseValidate;
+
+
+/**
+ * GroupServiceWork验证器
+ * Class GroupServiceWorkValidate
+ * @package app\adminapi\validate\works
+ */
+class GroupServiceWorkValidate extends BaseValidate
+{
+
+     /**
+      * 设置校验规则
+      * @var string[]
+      */
+    protected $rule = [
+        'id' => 'require',
+        'work_sn' => 'require',
+        'mobile' => 'require',
+        'address' => 'require',
+        'title' => 'require',
+        'category_type' => 'require',
+        'goods_category_ids' => 'require',
+        'goods_category_id' => 'require',
+        'work_status' => 'require',
+        'service_status' => 'require',
+        'dispatch_time' => 'require',
+        'receive_time' => 'require',
+        'appointment_time' => 'require',
+        'finished_time' => 'require',
+        'master_worker_id' => 'require',
+
+    ];
+
+
+    /**
+     * 参数描述
+     * @var string[]
+     */
+    protected $field = [
+        'id' => 'id',
+        'work_sn' => '工单编号',
+        'mobile' => '手机号',
+        'address' => '客户地址',
+        'title' => '工单名称',
+        'category_type' => '服务类别',
+        'goods_category_ids' => '服务类目',
+        'goods_category_id' => '服务产品',
+        'base_service_fee' => '基础服务费',
+        'service_fee' => '服务费用',
+        'work_status' => '工单状态',
+        'service_status' => '订单服务状态',
+        'dispatch_time' => '派单时间',
+        'receive_time' => '领单时间',
+        'appointment_time' => '预约上门时间',
+        'finished_time' => '结单时间',
+        'master_worker_id' => '工程师',
+
+    ];
+
+
+    /**
+     * @notes 添加场景
+     * @return ServiceWorkValidate
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function sceneAdd()
+    {
+        return $this->only(['work_sn','mobile','address','title','category_type','goods_category_ids','goods_category_id','work_status','service_status','dispatch_time','receive_time','appointment_time','finished_time','master_worker_id']);
+    }
+
+
+    /**
+     * @notes 编辑场景
+     * @return ServiceWorkValidate
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function sceneEdit()
+    {
+        return $this->only(['id','address','appointment_time']);
+    }
+
+
+    /**
+     * @notes 删除场景
+     * @return ServiceWorkValidate
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function sceneDelete()
+    {
+        return $this->only(['id']);
+    }
+
+
+    /**
+     * @notes 详情场景
+     * @return ServiceWorkValidate
+     * @author likeadmin
+     * @date 2024/07/10 15:06
+     */
+    public function sceneDetail()
+    {
+        return $this->only(['id']);
+    }
+
+    /**
+     * 分配工程师场景
+     * @return ServiceWorkValidate
+     * @author 林海涛
+     * @date 2024/7/16 下午4:38
+     */
+    public function sceneAllocateWorker()
+    {
+        return $this->only(['id','master_worker_id']);
+    }
+}

+ 6 - 10
app/common/model/works/GroupServiceWork.php

@@ -16,16 +16,7 @@ namespace app\common\model\works;
 
 
 use app\adminapi\logic\ConfigLogic;
-use app\api\logic\PerformanceLogic;
 use app\common\model\BaseModel;
-use app\common\model\equity\UserEquity;
-use app\common\model\goods_category\GoodsCategory;
-use app\common\model\master_commission\MasterWorkerCommissionConfig;
-use app\common\model\master_commission\MasterWorkerCommissionRatio;
-use app\common\model\master_worker\MasterWorker;
-use app\common\model\orders\RechargeOrder;
-use app\common\model\property\PropertyHead;
-use think\facade\Log;
 
 
 /**
@@ -41,7 +32,12 @@ class GroupServiceWork extends BaseModel
         'goods_category_ids' =>  'array',
     ];
     const WORK_STATUS_TXT  = [0=>'待派单',1=>'待领单',2=>'待联系',3=>'待上门',4=>'已上门',5=>'服务中',6=>'待结算',7=>'已完结',8=>'已评价',9=>'已退费'];
-   
+    
+    //跟进记录
+    public function serviceWorkLog()
+    {
+        return $this->hasMany(GroupServiceWorkLog::class,'work_id','id')->order(['id'=>'desc']);
+    }
     public function getWorkStatusTextAttr($value,$data)
     {
         return (isset($data['service_status']) && $data['service_status']===4)?'已取消':self::WORK_STATUS_TXT[$data['work_status']];

+ 17 - 0
app/common/model/works/GroupServiceWorkLog.php

@@ -0,0 +1,17 @@
+<?php
+namespace app\common\model\works;
+
+
+use app\common\model\BaseModel;
+
+
+/**
+ * GroupServiceWorkLog模型
+ * Class GroupServiceWorkLog
+ * @package app\common\model\works
+ */
+class GroupServiceWorkLog extends BaseModel
+{
+    protected $name = 'group_service_work_log';
+
+}

+ 15 - 33
app/job/AddServiceWorkJob.php

@@ -6,10 +6,10 @@ use think\queue\Job;
 use think\facade\Log;
 use app\common\enum\WorkEnum;
 use app\common\model\equity\UserEquity;
-use app\common\model\works\ServiceWork;
 use app\common\model\recharge\OrderGoods;
 use app\common\model\equity\UserEquityLog;
-use app\common\model\orders\RechargeOrder;
+use app\common\model\group_activity\GroupActivity;
+use app\common\model\works\GroupServiceWork;
 use app\common\model\group_activity\GroupOrder;
 use app\common\model\group_activity\GroupUserOrder;
 
@@ -22,8 +22,9 @@ class AddServiceWorkJob
         $goods = [];
         $category = GroupOrder::alias('a')
                     ->leftJoin('group_activity_category b','a.group_category_id=b.id')
+                    ->leftJoin('group_activity c','a.group_activity_id=c.id')
                     ->where('a.id', $group_order_id)
-                    ->field('b.service_time,b.master_worker_id')
+                    ->field('b.service_time,b.master_worker_id,c.price,c.work_amount,c.settlement_amount')
                     ->findOrEmpty()
                     ->toArray();
         try {
@@ -50,61 +51,42 @@ class AddServiceWorkJob
                         ->findOrEmpty()
                         ->toArray();
                 }
-                //生成服务工单
+                //生成拼团服务工单
                 $work_data = [
-                    'work_sn' => generate_sn(ServiceWork::class, 'work_sn'),
+                    'work_sn' => generate_sn(GroupServiceWork::class, 'work_sn'),
                     'real_name' => '',
                     'mobile' => $item['mobile'],
                     'address' => $item['area'].$item['address'],
-                    'province' => 0,
-                    'city' => 0,
-                    'area_name' => '',
                     'title' => $goods['goods_name'],
                     'category_type' => $goods['category_type'],
                     'goods_category_ids' => $goods['goods_category_ids'],
                     'goods_category_id' => $goods['goods_category_id'],
-                    'base_service_fee' => $goods['base_service_fee'],
-                    'service_fee' => $item['paid_amount'],
                     'work_pay_status'=>WorkEnum::IS_PAY_STATUS,
                     'master_worker_id' => $category['master_worker_id'],
                     'appointment_time' => $category['service_time'],
                     'dispatch_time' => time(),
                     'receive_time' => time(),
                     'user_id'=>$item['user_id'],
-                    'lon'=>'',
-                    'lat'=>'',
-                    'property_activity_id'=>0,
                     'user_equity_id'=>0,
                     'third_type'=>1,
                     'work_total'=>$item['paid_amount'],
                     'work_status' => 5,
                     'user_confirm_status' => 3,
                     'service_status' => 1,
-                    'remark' => '拼团单:'.$item['id'],
+                    'remark' => '拼团用户订单:'.$item['id'],
                     'user_equity_id' => $item['user_equity_id'],
-                    'group_order_id' => $item['id'],
-                    'third_type' => 0,
-                ];
-                $service_work = ServiceWork::create($work_data);
-
-                //生成客户订单
-                $data = [
-                    'work_id'=> $service_work['id'],
-                    'sn' => generate_sn(RechargeOrder::class, 'sn'),
-                    'order_type'=>0,//服务订单
-                    'order_terminal' => $item['order_terminal'],
-                    'user_id' => $item['user_id'],
-                    'pay_status' => $item['pay_status'],
-                    'pay_way' => $item['pay_way'],
-                    'pay_time' => time(),
-                    'order_total' => 0,
-                    'order_amount' => 0,
+                    'group_order_id' => $group_order_id,
+                    'group_user_order_id' => $item['id'],
+                    'work_total' => $category['price'],
+                    'work_amount' => $category['work_amount'],
+                    'settlement_amount' => $category['settlement_amount'],
                 ];
-                $order = RechargeOrder::create($data);
+                   
+                $service_work = GroupServiceWork::create($work_data);
 
                 //生成订单服务详情
                 OrderGoods::create([
-                    'sn' => $order['sn'],
+                    'sn' => $service_work['sn'],
                     'goods_id' => $goods['goods_id'],
                     'category_type' => $goods['category_type'],
                     'goods_category_ids' => $goods['goods_category_ids'],

+ 2 - 2
app/workerapi/controller/GroupWorksController.php

@@ -1,10 +1,10 @@
 <?php
 namespace app\workerapi\controller;
 
-use app\adminapi\logic\works\GroupServiceWorkLogic;
+use Exception;
 use app\workerapi\lists\GroupServiceWorkLists;
+use app\adminapi\logic\works\GroupServiceWorkLogic;
 use app\workerapi\validate\GroupServiceWorkValidate;
-use Exception;
 
 /**
  * 拼团工单系统

+ 1 - 1
app/workerapi/http/middleware/LoginMiddleware.php

@@ -64,7 +64,7 @@ class LoginMiddleware
             }
 
             //临时工程师校验一下权限
-            if ($userInfo['type'] == 2 && $request->controller() != 'Groupworks') {
+            if (isset($userInfo['type']) && $userInfo['type'] == 2 && !in_array($request->controller(), ['Groupworks','Sms','Login'])) {
                 return JsonService::fail('暂无权限', [], 401);
             }
         }

+ 36 - 0
app/workerapi/logic/GroupServiceWorkLogLogic.php

@@ -0,0 +1,36 @@
+<?php
+namespace app\workerapi\logic;
+use app\common\logic\BaseLogic;
+use app\common\model\works\GroupServiceWorkLog;
+use think\Exception;
+
+
+/**
+ * GroupServiceWorkLog逻辑
+ * Class GroupServiceWorkLogLogic
+ * @package app\workerapi\logic\works
+ */
+class GroupServiceWorkLogLogic extends BaseLogic
+{
+    /**
+     * @notes 添加
+     * @param array $params
+     * @return bool
+     * @throws Exception
+     * @author whitef
+     * @date 2024/07/10 15:06
+     */
+    public static function add(array $params): bool
+    {
+        if(empty($params['work_id']) || empty($params['master_worker_id']) || empty($params['opera_log'])) {
+            throw new Exception('参数错误');
+        }
+        GroupServiceWorkLog::create([
+            'work_id' => $params['work_id'],
+            'master_worker_id' => $params['master_worker_id'],
+            'opera_log'=>$params['opera_log']
+        ]);
+
+        return true;
+    }
+}