ClientMessageEvent.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace app\event;
  3. use app\model\ClientMessage;
  4. use app\model\Order;
  5. use app\model\OrderSheet;
  6. class ClientMessageEvent
  7. {
  8. /**
  9. * @Desc 发货通知
  10. * @Author Gorden
  11. * @Date 2024/7/16 10:28
  12. *
  13. * @param $params
  14. * @return void
  15. */
  16. public function delivery($params)
  17. {
  18. try {
  19. $order = Order::where('order_id', $params['order_id'])
  20. ->select('join_order_member_id')
  21. ->first();
  22. $clientMessage = new ClientMessage();
  23. $clientMessage->client_message_classify = 'ORDER';
  24. $clientMessage->join_client_message_send = 'SYSTEM';
  25. $clientMessage->join_client_message_recv_member_id = $order->join_order_member_id;
  26. $clientMessage->client_message_sendtime = date('Y-m-d H:i:s');
  27. $clientMessage->client_message_status = 'PENDING';
  28. $clientMessage->client_message_category = 'NORMAL';
  29. $clientMessage->client_message_header_json = json_encode(['title' => '订单消息']);
  30. $clientMessage->client_message_addtimes = time();
  31. $sheet = OrderSheet::with([
  32. 'goods' => function ($query) {
  33. $query->select('goods_id', 'goods_name');
  34. }
  35. ])->where('join_sheet_order_id', $params['order_id'])
  36. ->select('order_sheet_id', 'join_sheet_goods_id', 'join_sheet_order_id', 'order_sheet_num')
  37. ->first();
  38. if ($params['express_type'] == '自提') {
  39. $clientMessage->client_message_body_json = json_encode([
  40. 'content' => '提货通知:您于' . date('Y年m月d日') . '在' . $params['order_express_premises'] . '提取了您购买的商品【' . $sheet->goods->goods_name . '】,数量:【' . intval($sheet->order_sheet_num) . '】。'
  41. ]);
  42. } else {
  43. $clientMessage->client_message_body_json = json_encode([
  44. 'content' => '发货通知:您购买的商品【' . $sheet->goods->goods_name . '】,数量:【' . intval($sheet->order_sheet_num) . '】已发货,物流公司:' . $params['order_express_company'] . ',物流单号:' . $params['order_express_code'] . ',请注意查收。'
  45. ]);
  46. }
  47. $clientMessage->save();
  48. } catch (\Exception $e) {
  49. }
  50. }
  51. public function refund($memberId)
  52. {
  53. try {
  54. $clientMessage = new ClientMessage();
  55. $clientMessage->client_message_classify = 'ORDER';
  56. $clientMessage->join_client_message_send = 'SYSTEM';
  57. $clientMessage->join_client_message_recv_member_id = $memberId;
  58. $clientMessage->client_message_sendtime = date('Y-m-d H:i:s');
  59. $clientMessage->client_message_status = 'PENDING';
  60. $clientMessage->client_message_category = 'NORMAL';
  61. $clientMessage->client_message_header_json = json_encode(['title' => '订单消息']);
  62. $clientMessage->client_message_body_json = json_encode(['content' => '退款通知:您申请的退款已原路返回,请注意查收。']);
  63. $clientMessage->client_message_addtimes = time();
  64. $clientMessage->save();
  65. } catch (\Exception $e) {
  66. }
  67. }
  68. }