liugc пре 1 година
родитељ
комит
eb3257016d

+ 4 - 4
app/adminapi/controller/auth/AdminController.php

@@ -113,11 +113,11 @@ class AdminController extends BaseAdminController
      */
      */
     public function mySelf()
     public function mySelf()
     {
     {
-        //$result = cache('mySelf:'.$this->adminId);
-        //if(empty($result) || !env('APP_DEBUG')){
+        $result = cache('mySelf:'.$this->adminId);
+        if(empty($result) || !env('APP_DEBUG')){
             $result = AdminLogic::detail(['id' => $this->adminId], 'auth');
             $result = AdminLogic::detail(['id' => $this->adminId], 'auth');
-            //cache('mySelf:'.$this->adminId,$result);
-        //}
+            cache('mySelf:'.$this->adminId,$result);
+        }
         return $this->data($result);
         return $this->data($result);
     }
     }
 
 

+ 4 - 4
app/adminapi/logic/auth/MenuLogic.php

@@ -44,8 +44,8 @@ class MenuLogic extends BaseLogic
     public static function getMenuByAdminId($adminId)
     public static function getMenuByAdminId($adminId)
     {
     {
         // 缓存优化
         // 缓存优化
-        //$data = cache('MenuLogic:getMenuByAdminId:'.$adminId);
-        //if(empty($data)){
+        $data = cache('MenuLogic:getMenuByAdminId:'.$adminId);
+        if(empty($data)){
             $admin = Admin::findOrEmpty($adminId);
             $admin = Admin::findOrEmpty($adminId);
             $where = [];
             $where = [];
             $where[] = ['type', 'in', ['M', 'C']];
             $where[] = ['type', 'in', ['M', 'C']];
@@ -58,8 +58,8 @@ class MenuLogic extends BaseLogic
                 ->order(['sort' => 'desc', 'id' => 'asc'])
                 ->order(['sort' => 'desc', 'id' => 'asc'])
                 ->select();
                 ->select();
             $data = linear_to_tree($menu, 'children');
             $data = linear_to_tree($menu, 'children');
-            //cache('MenuLogic:getMenuByAdminId:'.$adminId,$data);
-        //}
+            cache('MenuLogic:getMenuByAdminId:'.$adminId,$data);
+        }
         return $data;
         return $data;
     }
     }
 
 

+ 2 - 3
app/adminapi/logic/effective/OrderEffectiveLogLogic.php

@@ -256,7 +256,7 @@ class OrderEffectiveLogLogic extends BaseLogic
                 'goods_type' => $goods['goods_type'],
                 'goods_type' => $goods['goods_type'],
                 'goods_brand' => $goods['goods_brand'],
                 'goods_brand' => $goods['goods_brand'],
                 'install_guide' => $goods['install_guide'],
                 'install_guide' => $goods['install_guide'],
-                'goods_payment_type'=>$goods['goods_payment_type'],
+                'goods_payment_type'=>1,
                 'base_service_fee' => $goods['base_service_fee'],
                 'base_service_fee' => $goods['base_service_fee'],
                 'service_total' => $goods['service_total'],
                 'service_total' => $goods['service_total'],
                 'service_fee' => $goods['service_fee'],
                 'service_fee' => $goods['service_fee'],
@@ -264,6 +264,7 @@ class OrderEffectiveLogLogic extends BaseLogic
                 'warranty_period'=>$goods['warranty_period'],
                 'warranty_period'=>$goods['warranty_period'],
                 'fee_schedule' => $goods['fee_schedule'],
                 'fee_schedule' => $goods['fee_schedule'],
                 'goods_status' => $goods['goods_status'],
                 'goods_status' => $goods['goods_status'],
+                'is_show' => 0,
             ]);
             ]);
 
 
             Db::commit();
             Db::commit();
@@ -274,8 +275,6 @@ class OrderEffectiveLogLogic extends BaseLogic
             return true;
             return true;
         } catch (\Exception $e) {
         } catch (\Exception $e) {
             Db::rollback();
             Db::rollback();
-
-            dd($e->getMessage());
             self::setError($e->getMessage());
             self::setError($e->getMessage());
             return false;
             return false;
         }
         }

+ 7 - 0
app/api/logic/PerformanceLogic.php

@@ -203,6 +203,9 @@ class PerformanceLogic extends BaseLogic
         Log::info('effectivePerformance:'.json_encode($work->toArray()));
         Log::info('effectivePerformance:'.json_encode($work->toArray()));
         // 判断该工单是否为新工程师 - 保修前工单的工程师是谁
         // 判断该工单是否为新工程师 - 保修前工单的工程师是谁
         $orderEffectiveLog = OrderEffectiveLog::where('id',$work->order_effective_id)->findOrEmpty();
         $orderEffectiveLog = OrderEffectiveLog::where('id',$work->order_effective_id)->findOrEmpty();
+        if($orderEffectiveLog->effective_status == 3){
+            return false;
+        }
         // 前工单
         // 前工单
         $serviceWork = ServiceWork::where('id',$orderEffectiveLog->work_id)->findOrEmpty();
         $serviceWork = ServiceWork::where('id',$orderEffectiveLog->work_id)->findOrEmpty();
         if($serviceWork->master_worker_id != $work->master_worker_id){
         if($serviceWork->master_worker_id != $work->master_worker_id){
@@ -236,6 +239,10 @@ class PerformanceLogic extends BaseLogic
         }
         }
         $orderEffectiveLog->effective_status = 3;
         $orderEffectiveLog->effective_status = 3;
         $orderEffectiveLog->save();
         $orderEffectiveLog->save();
+
+        $work->work_pay_status = 2;
+        $work->save();
+
         return true;
         return true;
     }
     }
 }
 }

+ 26 - 1
app/api/logic/ServiceOrderLogic.php

@@ -854,8 +854,33 @@ class ServiceOrderLogic extends BaseLogic
                 $service_work->user_confirm_status = 4;
                 $service_work->user_confirm_status = 4;
             }
             }
             $service_work->finished_time = time();
             $service_work->finished_time = time();
-
             $service_work->save();
             $service_work->save();
+
+
+            //保修工单时,且尾款=0,直接支付无需用户操作支付
+            if($service_work->order_effective_id >0){
+                $paid_amount = 0;
+                $order_id = 0;
+                foreach ($orders as $order) {
+                    if($order['payment_type'] == 2) $order_id = $order['id'];
+                    $paid_amount += $order['order_amount'];
+                }
+                if($paid_amount == 0){
+                    // 直接支付
+                    $order = PaymentLogic::getPayOrderInfo(['order_id'=>$order_id]);
+                    if ($order) {
+                        //支付流程
+                        $result = PaymentLogic::workerPay(1, 'goods', $order, ['terminal'=>0], '');
+                        /*if ($result && ($result['need_pay'] == 0)) {
+                            $service_work->work_status = 7;
+                            $service_work->user_confirm_status = 5;
+                            $service_work->service_status = 3;
+                            $service_work->work_pay_status = 1;
+                        }*/
+                    }
+                }
+            }
+
             //更新工程师的进行工单数量
             //更新工程师的进行工单数量
             MasterWorker::setWorktotal('dec',$service_work->master_worker_id);
             MasterWorker::setWorktotal('dec',$service_work->master_worker_id);
             $work_log = [
             $work_log = [

+ 17 - 14
app/common/model/works/ServiceWork.php

@@ -41,22 +41,25 @@ class ServiceWork extends BaseModel
     public static function onAfterUpdate($model)
     public static function onAfterUpdate($model)
     {
     {
         if($model->user_confirm_status == 5 and $model->work_status == 7 and $model->work_pay_status==1){
         if($model->user_confirm_status == 5 and $model->work_status == 7 and $model->work_pay_status==1){
-            // 保修工单完结,进行结算
-            PerformanceLogic::effectivePerformance($model);
-            //工单已完结,进行结算,结算完成后设置work_pay_status为2,已结算
-            $ratio = 0;
-            $commissionConfig = MasterWorkerCommissionConfig::where('master_worker_id',$model->master_worker_id)->where('voucher_status',2)->findOrEmpty();
-            !$commissionConfig->isEmpty() && $ratio = MasterWorkerCommissionRatio::where('commission_config_id',$commissionConfig['id'])->where('goods_category_id',$model->goods_category_id)->value('ratio')?:0;
-            if($commissionConfig->isEmpty() || empty($ratio)){
-                PerformanceLogic::calculatePerformance($model);
+            // 保修工单完结,若新工程师则进行结算,用户支付的尾款不再提成
+            if($model->order_effective_id >0){
+                PerformanceLogic::effectivePerformance($model);
             }else{
             }else{
-                // 存在服务分类比例进行结算
-                PerformanceLogic::calculatePerformanceCommission($model);
+                //工单已完结,进行结算,结算完成后设置work_pay_status为2,已结算
+                $ratio = 0;
+                $commissionConfig = MasterWorkerCommissionConfig::where('master_worker_id',$model->master_worker_id)->where('voucher_status',2)->findOrEmpty();
+                !$commissionConfig->isEmpty() && $ratio = MasterWorkerCommissionRatio::where('commission_config_id',$commissionConfig['id'])->where('goods_category_id',$model->goods_category_id)->value('ratio')?:0;
+                if($commissionConfig->isEmpty() || empty($ratio)){
+                    PerformanceLogic::calculatePerformance($model);
+                }else{
+                    // 存在服务分类比例进行结算
+                    PerformanceLogic::calculatePerformanceCommission($model);
+                }
+                // 优惠券逆向为活动工单+代理订单
+                event('ReverseCouponToActivity',['id'=>$model->id]);
+                //工单已完结, - 物业后续分成事件 $params['user_id']) || empty($params['sn']
+                event('PropertyCommission',['id'=>$model->id]);
             }
             }
-            // 优惠券逆向为活动工单+代理订单
-            event('ReverseCouponToActivity',['id'=>$model->id]);
-            //工单已完结, - 物业后续分成事件 $params['user_id']) || empty($params['sn']
-            event('PropertyCommission',['id'=>$model->id]);
         }
         }
     }
     }
     //分配记录
     //分配记录