1
0
whitefang 1 жил өмнө
parent
commit
4a05389a41

+ 107 - 116
app/adminapi/logic/works/ServiceWorkLogic.php

@@ -345,127 +345,118 @@ class ServiceWorkLogic extends BaseLogic
      * @return array|false
      */
     public static function detail($params){
-        try {
-            $result = ServiceWork::with([
-                'worker'=> function(Query $query) {
-                    $query->field('id,worker_number,real_name');
-                },
-                'allocateWorkerLog' =>function(Query $query){
-                    $query->field('id,work_id,opera_log,create_time');
-                },
-                'serviceWorkLog' =>function(Query $query){
-                    $query->field('id,work_id,opera_log,create_time');
-                }
-
-            ])->append(['id','work_status_text','service_status_text'])
-                ->findOrEmpty($params['id'])->toArray();
-
-            //师傅工单按钮状态
-            $work_service_status = 0;
-            $work_service_status_text = '待派单';
-            //工单状态
-            if($result['work_status'] == 1){
-                $work_service_status = 1;
-                $work_service_status_text = '待领单';
-            }
-            if($result['work_status'] == 2){
-                $work_service_status = 2;
-                $work_service_status_text = '预约上门';
-            }
-            if($result['work_status'] == 3){
-                $work_service_status = 3;
-                $work_service_status_text = '等待上门';
-                if(date('Y-m-d') === date('Y-m-d',strtotime($result['appointment_time']))){
-                    $work_service_status = 4;
-                    $work_service_status_text = '确认上门';
-                }
-            }
-            if($result['work_status'] == 4 and $result['user_confirm_status']==0){
-                $work_service_status = 5;
-                $work_service_status_text = '确认报价';
-            }
-            if($result['work_status'] == 4 and $result['user_confirm_status']==1){
-                $work_service_status = 6;
-                $work_service_status_text = '用户确认报价中';
-            }
-            if($result['work_status'] == 5 and $result['user_confirm_status']==2){
-                $work_service_status = 7;
-                $work_service_status_text = '完成服务';
-            }
-            if($result['work_status'] == 5 and $result['user_confirm_status']==3){
-                $work_service_status = 8;
-                $work_service_status_text = '用户确认完成服务中';
-            }
-            if($result['work_status'] ==6){
-                $work_service_status = 9;
-                $work_service_status_text = '待结算';
-            }
-            if($result['work_status'] ==7){
-                $work_service_status = 10;
-                $work_service_status_text = '已完结';
-            }
-            if($result['work_status'] ==8){
-                $work_service_status = 11;
-                $work_service_status_text = '已评价';
-            }
-
-            $result['work_service_status'] = $work_service_status;
-            $result['work_service_status_text'] = $work_service_status_text;
-
-
-            //搜索当前工单下的所有订单记录
-            $result['pay_orders'] = RechargeOrder::with(['orderGoods'=>function(Query $query){
-                $query->field('id,sn,goods_id,goods_name,goods_image,goods_number,good_unit,goods_size,goods_type,goods_brand,base_service_fee,service_total,service_fee')->order(['id'=>'desc']);
-            }])->where(['work_id'=>$result['id']])->field('id as order_id,sn,order_type,pay_status,payment_type,pay_way,pay_time,order_amount,order_total,coupon_price,create_time')->order('id asc')->select()->toArray();
-            $pay_status_data = DictData::where('type_value','pay_status')->column('name','value');
-            $payment_type_data = DictData::where('type_value','payment_type')->column('name','value');
-            $pay_way_data = DictData::where('type_value','pay_way')->column('name','value');
-            $order_type_data = DictData::where('type_value','order_type')->column('name','value');
-            $coupon_price = 0;
-            foreach ($result['pay_orders'] as $k=>&$v){
-                $v['pay_status_name'] = $pay_status_data[$v['pay_status']];
-                $v['payment_type_name'] = $payment_type_data[$v['payment_type']];
-                $v['pay_way_name'] = $pay_way_data[$v['pay_way']];
-                $v['order_type_name'] = $order_type_data[$v['order_type']];
-                $v['pay_time'] = $v['pay_time'] && is_numeric($v['pay_time']) ? date('Y-m-d H:i:s',$v['pay_time']):'';
-                if($v['payment_type']!=1 and !empty($result['spare_total'])){
-                    $v['order_total'] = $v['order_total'] - $result['spare_total'];
-                    $v['order_amount'] = $v['order_amount'] - $result['spare_total'];
-                }
-                $coupon_price += $v['coupon_price'];
-            }
-
-            //汇总优惠卷额度
-            $result['coupon_price'] = $coupon_price;
-
-            //工单总支付金额
-            $result['worker_account'] = $result['work_amount'];
-
-            // 配件信息
-            $result['spare_parts'] = [];
-            if($result['service_work_spare_id']){
-                $work_spare_parts = json_decode(ServiceWorkSpare::where('id',$result['service_work_spare_id'])->value('spare_parts'),true);
-                $spare_parts = SparePart::where('id','in',array_column($work_spare_parts,'id'))
-                            ->field(['id', 'goods_category_id', 'spare_name', 'spare_image', 'spare_number', 'spare_unit','spare_status'])
-                            ->select()
-                            ->toArray();
-                $spare_parts = array_column($spare_parts,null,'id');
-                foreach (array_column($work_spare_parts,null,'id') as $k=>&$v){
-                    $spare_parts[$k] = array_merge($spare_parts[$k],$v);
-                }
-                $result['spare_parts'] = array_values($spare_parts)??[];
+        $result = ServiceWork::with([
+            'worker'=> function(Query $query) {
+                $query->field('id,worker_number,real_name');
+            },
+            'allocateWorkerLog' =>function(Query $query){
+                $query->field('id,work_id,opera_log,create_time');
+            },
+            'serviceWorkLog' =>function(Query $query){
+                $query->field('id,work_id,opera_log,create_time');
+            }
+        ])->append(['id','work_status_text','service_status_text'])
+            ->findOrEmpty($params['id'])->toArray();
+
+        //师傅工单按钮状态
+        $work_service_status = 0;
+        $work_service_status_text = '待派单';
+        //工单状态
+        if($result['work_status'] == 1){
+            $work_service_status = 1;
+            $work_service_status_text = '待领单';
+        }
+        if($result['work_status'] == 2){
+            $work_service_status = 2;
+            $work_service_status_text = '预约上门';
+        }
+        if($result['work_status'] == 3){
+            $work_service_status = 3;
+            $work_service_status_text = '等待上门';
+            if(date('Y-m-d') === date('Y-m-d',strtotime($result['appointment_time']))){
+                $work_service_status = 4;
+                $work_service_status_text = '确认上门';
             }
+        }
+        if($result['work_status'] == 4 and $result['user_confirm_status']==0){
+            $work_service_status = 5;
+            $work_service_status_text = '确认报价';
+        }
+        if($result['work_status'] == 4 and $result['user_confirm_status']==1){
+            $work_service_status = 6;
+            $work_service_status_text = '用户确认报价中';
+        }
+        if($result['work_status'] == 5 and $result['user_confirm_status']==2){
+            $work_service_status = 7;
+            $work_service_status_text = '完成服务';
+        }
+        if($result['work_status'] == 5 and $result['user_confirm_status']==3){
+            $work_service_status = 8;
+            $work_service_status_text = '用户确认完成服务中';
+        }
+        if($result['work_status'] ==6){
+            $work_service_status = 9;
+            $work_service_status_text = '待结算';
+        }
+        if($result['work_status'] ==7){
+            $work_service_status = 10;
+            $work_service_status_text = '已完结';
+        }
+        if($result['work_status'] ==8){
+            $work_service_status = 11;
+            $work_service_status_text = '已评价';
+        }
 
-            //查收师傅提成金额
-            $result['change_amount'] = MasterWorkerAccountLog::where(['work_sn'=>$result['work_sn'],'action'=>1])->value('change_amount');
+        $result['work_service_status'] = $work_service_status;
+        $result['work_service_status_text'] = $work_service_status_text;
+
+
+        //搜索当前工单下的所有订单记录
+        $result['pay_orders'] = RechargeOrder::with(['orderGoods'=>function(Query $query){
+            $query->field('id,sn,goods_id,goods_name,goods_image,goods_number,good_unit,goods_size,goods_type,goods_brand,base_service_fee,service_total,service_fee')->order(['id'=>'desc']);
+        }])->where(['work_id'=>$result['id']])->field('id as order_id,sn,order_type,pay_status,payment_type,pay_way,pay_time,order_amount,order_total,coupon_price,create_time')->order('id asc')->select()->toArray();
+        $pay_status_data = DictData::where('type_value','pay_status')->column('name','value');
+        $payment_type_data = DictData::where('type_value','payment_type')->column('name','value');
+        $pay_way_data = DictData::where('type_value','pay_way')->column('name','value');
+        $order_type_data = DictData::where('type_value','order_type')->column('name','value');
+        $coupon_price = 0;
+        foreach ($result['pay_orders'] as $k=>&$v){
+            $v['pay_status_name'] = $pay_status_data[$v['pay_status']];
+            $v['payment_type_name'] = $payment_type_data[$v['payment_type']];
+            $v['pay_way_name'] = $pay_way_data[$v['pay_way']];
+            $v['order_type_name'] = $order_type_data[$v['order_type']];
+            $v['pay_time'] = $v['pay_time'] && is_numeric($v['pay_time']) ? date('Y-m-d H:i:s',$v['pay_time']):'';
+            if($v['payment_type']!=1 and !empty($result['spare_total'])){
+                $v['order_total'] = $v['order_total'] - $result['spare_total'];
+                $v['order_amount'] = $v['order_amount'] - $result['spare_total'];
+            }
+            $coupon_price += $v['coupon_price'];
+        }
 
-            return  $result;
-        }catch(\Exception $e){
-            Db::rollback();
-            self::setError($e->getMessage());
-            return false;
+        //汇总优惠卷额度
+        $result['coupon_price'] = $coupon_price;
+
+        //工单总支付金额
+        $result['worker_account'] = $result['work_amount'];
+
+        // 配件信息
+        $result['spare_parts'] = [];
+        if($result['service_work_spare_id']){
+            $work_spare_parts = json_decode(ServiceWorkSpare::where('id',$result['service_work_spare_id'])->value('spare_parts'),true);
+            $spare_parts = SparePart::where('id','in',array_column($work_spare_parts,'id'))
+                ->field(['id', 'goods_category_id', 'spare_name', 'spare_image', 'spare_number', 'spare_unit','spare_status'])
+                ->select()
+                ->toArray();
+            $spare_parts = array_column($spare_parts,null,'id');
+            foreach (array_column($work_spare_parts,null,'id') as $k=>&$v){
+                $spare_parts[$k] = array_merge($spare_parts[$k],$v);
+            }
+            $result['spare_parts'] = array_values($spare_parts)??[];
         }
 
+        //查收师傅提成金额
+        $result['change_amount'] = MasterWorkerAccountLog::where(['work_sn'=>$result['work_sn'],'action'=>1])->value('change_amount');
+        return  $result;
     }
 
     /**

+ 1 - 1
app/common/model/works/ServiceWork.php

@@ -68,7 +68,7 @@ class ServiceWork extends BaseModel
     }
     public function getWorkStatusTextAttr($value,$data)
     {
-         $status = [0=>'待派单',1=>'待领单',2=>'待联系',3=>'待上门',4=>'已上门',5=>'服务中',6=>'待结算',7=>'已完结',8=>'已评价'];
+         $status = [0=>'待派单',1=>'待领单',2=>'待联系',3=>'待上门',4=>'已上门',5=>'服务中',6=>'待结算',7=>'已完结',8=>'已评价',9=>'已退费'];
         return $data['service_status']===4?'已取消':$status[$data['work_status']];
     }