Browse Source

完善功能

gorden 8 months ago
parent
commit
6b732056f6
1 changed files with 37 additions and 20 deletions
  1. 37 20
      app/admin/service/order/AppointmentService.php

+ 37 - 20
app/admin/service/order/AppointmentService.php

@@ -356,8 +356,8 @@ class AppointmentService
                 foreach ($extendJson['times'] as $key => $time) {
                     if ($time['duration'] == $params['appointment_times']) {
                         if (!empty($appointments)){
-                            foreach ($appointments as $appointment) {
-                                $applyJson = json_decode($appointment['appointment_apply_json'], true);
+                            foreach ($appointments as $appointmentItem) {
+                                $applyJson = json_decode($appointmentItem['appointment_apply_json'], true);
                                 $applyJsonTimes = $applyJson['times'] ?? '';
 
                                 if ($time['duration'] == $applyJsonTimes) {
@@ -501,17 +501,50 @@ class AppointmentService
                     Order::where('order_id', $orderId)->update(['order_status_system' => 'CONFIRM', 'order_status_payment' => 'SUCCESS']);
                     OrderSheet::where('join_sheet_order_id', $orderId)->update(['order_sheet_status' => 'CONFIRM']);
                 }
+
+                // 回写权益表
+                $benefitId = 'BF'.date('YmdHis').random_string(6,'up');
+                $benefitData = [
+                    'member_benefit_id'=>$benefitId,
+                    'join_benefit_member_id'=>$params['join_appointment_member_id'],
+                    'join_benefit_goods_id'=>$params['join_appointment_goods_id'],
+                    'join_benefit_goods_sku_id'=>$params['join_appointment_goods_sku_id'] ?? '',
+                    'join_benefit_order_id'=>$orderId,
+                    'member_benefit_status'=>'DONE',
+                    'member_benefit_name'=>$goods->goods_name,
+                    'member_benefit_limit_count'=>1,
+                    'member_benefit_used_count'=>1,
+                    'member_benefit_addtimes'=>time()
+                ];
+                MemberBenefit::insert($benefitData);
+                
+                // $premisesName = SysDept::where('dept_id',$params['premises'])->value('dept_name');
+                // 记录核销
+                $paramsData = [
+                    'dept_premises_id' => $params['premises'],
+                    'order_remark'=>$params['appointment_remark'],
+                    'write_off_member_id' => $params['write_off_member_id'],
+                    'join_order_member_id' => $params['join_appointment_member_id'],
+                ];
+                $writeOffData = OrderService::generateWriteOffData($paramsData);
+
+                Appointment::where('appointment_id', $appointmentId)->update([
+                    'join_appointment_member_benefit_id' => $benefitId,
+                    'appointment_status' => 'DONE',
+                    'appointment_done_datetime' => $params['appointment_done_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_done_datetime'])) : null,
+                    'appointment_done_json' => json_encode($writeOffData)
+                ]);
             }
             // 已有服务核销
             if($params['appointment_status'] == 'DONE' && $params['settlement_mode'] == 'QUOTA' && !empty($params['quota_id'])){
-                $premisesName = SysDept::where('dept_id',$params['premises'])->value('dept_name');
+                // $premisesName = SysDept::where('dept_id',$params['premises'])->value('dept_name');
                 $paramsData = [
                     'member_id'=>$params['join_appointment_member_id'],
                     'nbr'=>$params['person'],
                     'times'=>date('Y-m-d H:i:s'),
                     'write_off_member_id' => $params['write_off_member_id'],
                     'remark'=>$params['appointment_remark'],
-                    'dept_premises_id'=>$premisesName
+                    'dept_premises_id'=>$params['premises']
                 ];
                 $quotaType = substr($params['quota_id'],0,2);
                 if($quotaType == 'MQ'){
@@ -531,22 +564,6 @@ class AppointmentService
                     Appointment::where('appointment_id', $appointmentId)->update(['join_appointment_member_benefit_id' => $params['quota_id']]);
                 }
             }
-            if($params['appointment_status'] == 'DONE' && $params['settlement_mode'] != 'QUOTA'){
-                $premisesName = SysDept::where('dept_id',$params['premises'])->value('dept_name');
-                // 记录核销
-                $paramsData = [
-                    'dept_premises_id' => $premisesName,
-                    'order_remark'=>$params['appointment_remark'],
-                    'write_off_member_id' => $params['write_off_member_id'],
-                    'join_order_member_id' => $params['join_appointment_member_id'],
-                ];
-                $writeOffData = OrderService::generateWriteOffData($paramsData);
-                Appointment::where('appointment_id', $appointment->appointment_id)->update([
-                    'appointment_status' => 'DONE',
-                    'appointment_done_datetime' => $params['appointment_done_datetime'] ? date('Y-m-d H:i:s', strtotime($params['appointment_done_datetime'])) : null,
-                    'appointment_done_json' => json_encode($writeOffData)
-                ]);
-            }
 
 
             Db::commit();