Explorar el Código

退货退款站内信

gorden hace 7 meses
padre
commit
f86f7954be

+ 15 - 1
app/admin/controller/order/ReturnController.php

@@ -16,6 +16,7 @@ use support\exception\BusinessException;
 use support\Request;
 use support\Response;
 use Tinywan\Jwt\JwtToken;
+use Webman\Event\Event;
 
 class ReturnController extends Curd
 {
@@ -92,6 +93,14 @@ class ReturnController extends Curd
         return [$id, $data];
     }
 
+    /**
+     * @Desc 退货退款状态变更通知
+     * @Author Gorden
+     * @Date 2024/7/16 14:22
+     *
+     * @param Request $request
+     * @return Response
+     */
     public function updateStatus(Request $request)
     {
         try {
@@ -103,6 +112,12 @@ class ReturnController extends Curd
             }
 
             $this->doUpdate($id, $data);
+
+            // 退货、退款状态变更通知
+            $data['orders_return_id'] = $id;
+            Event::dispatch('client_message.return_status',$data);
+
+            return json_success('success');
         } catch (BusinessException $e) {
             return json_fail($e->getMessage());
         } catch (\Exception $e) {
@@ -110,6 +125,5 @@ class ReturnController extends Curd
             return json_fail('数据更新失败');
         }
 
-        return json_success('success');
     }
 }

+ 4 - 2
app/admin/controller/order/WholeController.php

@@ -150,7 +150,7 @@ class WholeController extends Curd
         if ($field) {
             $model = $model->orderBy($field, $order);
         }
-        $model = $model->select('order.*','order_return.orders_return_id', 'order_return.join_return_order_id', 'order_return.order_return_status');
+        $model = $model->select('order.*','order_return.orders_return_id', 'order_return.join_return_order_id', 'order_return.order_return_status','order_return.order_return_apply_json','order_return.order_return_remark');
         return $model;
     }
 
@@ -173,7 +173,9 @@ class WholeController extends Curd
                 $item['return'] = [
                     'orders_return_id'=>$item['orders_return_id'],
                     'join_return_order_id' => $item['join_return_order_id'],
-                    'order_return_status' => $item['order_return_status']
+                    'order_return_status' => $item['order_return_status'],
+                    'order_return_apply_json' => $item['order_return_apply_json'],
+                    'order_return_remark'=>$item['order_return_remark']
                 ];
             }
         }

+ 47 - 0
app/event/ClientMessageEvent.php

@@ -4,6 +4,7 @@ namespace app\event;
 
 use app\model\ClientMessage;
 use app\model\Order;
+use app\model\OrderReturn;
 use app\model\OrderSheet;
 
 class ClientMessageEvent
@@ -56,7 +57,53 @@ class ClientMessageEvent
         }
     }
 
+    /**
+     * @Desc 退货/退款状态变更站内信
+     * @Author Gorden
+     * @Date 2024/7/16 14:19
+     *
+     * @param $params
+     * @return void
+     */
+    public function returnStatus($params)
+    {
+        try {
+            $orderReturn = OrderReturn::where('orders_return_id',$params['orders_return_id'])->first();
+            if (!$orderReturn){
+                return;
+            }
+
+            if ($params['order_return_status'] == 'DOING'){
+                $content = "商家已同意您的退货/退款申请。";
+            }else{
+                $content = "商家已拒绝您的退货/退款申请。";
+            }
 
+            $clientMessage = new ClientMessage();
+            $clientMessage->client_message_classify = 'ORDER';
+            $clientMessage->join_client_message_send = 'SYSTEM';
+            $clientMessage->join_client_message_recv_member_id = $orderReturn->join_return_member_id;
+            $clientMessage->client_message_sendtime = date('Y-m-d H:i:s');
+            $clientMessage->client_message_status = 'PENDING';
+            $clientMessage->client_message_category = 'NORMAL';
+            $clientMessage->client_message_header_json = json_encode(['title' => '订单消息']);
+            $clientMessage->client_message_body_json = json_encode(['content' => '退货/退款通知:'.$content]);
+            $clientMessage->client_message_addtimes = time();
+            $clientMessage->save();
+
+        } catch (\Exception $e) {
+        }
+    }
+
+
+    /**
+     * @Desc 退款成功通知
+     * @Author Gorden
+     * @Date 2024/7/16 14:09
+     *
+     * @param $memberId
+     * @return void
+     */
     public function refund($memberId)
     {
         try {

+ 3 - 0
config/event.php

@@ -7,4 +7,7 @@ return [
     'client_message.refund' => [
         [\app\event\ClientMessageEvent::class, 'refund']
     ],
+    'client_message.return_status' => [
+        [\app\event\ClientMessageEvent::class, 'returnStatus']
+    ],
 ];