RefundMessageService.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: yunzhong
  5. * Date: 2018/3/15
  6. * Time: 18:09
  7. */
  8. namespace app\frontend\modules\refund\services;
  9. use app\common\services\MessageService;
  10. use app\common\facades\Setting;
  11. use app\common\models\notice\MessageTemp;
  12. use app\backend\modules\order\models\Order;
  13. use app\backend\modules\member\models\Member;
  14. use app\backend\modules\goods\models\Goods;
  15. use app\backend\modules\order\models\OrderGoods;
  16. use app\common\models\notice\MinAppTemplateMessage;
  17. use app\common\services\notice\official\buyer\OrderBuyerRefundNotice;
  18. use app\common\services\notice\official\OrderRefundNotice;
  19. class RefundMessageService extends MessageService
  20. {
  21. public static function applyRefundNotice($refundApply,$uniacid = '')
  22. {
  23. $couponNotice = Setting::get('shop.notice');
  24. $temp_id = $couponNotice['order_refund_apply'];
  25. $refundNotice = new OrderBuyerRefundNotice($refundApply,$refundApply->order);
  26. $refundNotice->sendMessage();
  27. return ;
  28. // if ($temp_id) {
  29. // $memberDate = Member::getMemberBaseInfoById($refundApply->uid);
  30. // $orderDate = Order::getOrderDetailById($refundApply->order_id);
  31. //// $goods = Order::find($refundApply->order_id)->hasManyOrderGoods()->value('goods_option_title');//商品详情
  32. //// $goods_title = Order::find($refundApply->order_id)->hasManyOrderGoods()->value('title').$goods;
  33. // $params = [
  34. // ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  35. // ['name' => '粉丝昵称', 'value' => $memberDate['nickname']],
  36. // ['name' => '退款单号', 'value' => $refundApply->refund_sn],
  37. //// ['name' => '下单时间', 'value' => $orderDate['create_time']],
  38. //// ['name' => '订单金额', 'value' => $orderDate['price']],
  39. //// ['name' => '运费', 'value' => $orderDate['dispatch_price']],
  40. //// ['name' => '商品详情(含规格)', 'value' => $goods_title],
  41. //// ['name' => '支付方式', 'value' => $orderDate->pay_type_name],
  42. // ['name' => '退款申请时间', 'value' => $refundApply->create_time],
  43. // ['name' => '退款方式', 'value' => $orderDate->pay_type_name],
  44. // ['name' => '退款金额', 'value' => $refundApply->price],
  45. // ['name' => '退款原因', 'value' => $refundApply->reason],
  46. // ];
  47. //
  48. // $msg = MessageTemp::getSendMsg($temp_id, $params);
  49. // if (!$msg) {
  50. // return false;
  51. // }
  52. // MessageService::notice(MessageTemp::$template_id, $msg, $refundApply->uid, $uniacid);
  53. // }
  54. $is_open = MinAppTemplateMessage::getTitle('退款通知');
  55. if (!$is_open->is_open){
  56. return;
  57. }
  58. $orderDate = Order::getOrderDetailById($refundApply->order_id);
  59. $msg = [
  60. 'keyword1'=>['value'=> $orderDate->pay_type_name],// 退款类型
  61. 'keyword2'=>['value'=> $refundApply->price],//退款金额
  62. 'keyword3'=>['value'=> date("Y-m-d H:i:s")],// 退款时间
  63. 'keyword4'=>['value'=> $refundApply->reason],// 退款原因
  64. 'keyword5'=>['value'=> $refundApply->refund_sn],// 订单编号
  65. ];
  66. $news_link = MessageTemp::find($temp_id)->news_link;
  67. $news_link = $news_link ?:'';
  68. MessageService::MiniNotice($is_open->template_id,$msg,$refundApply->uid.'',$news_link);
  69. }
  70. public static function applyRefundNoticeBuyer($refundApply,$uniacid = '')
  71. {
  72. $couponNotice = Setting::get('shop.notice');
  73. // \Log::info('shop.notice', $couponNotice);
  74. //获取用户退货退款通知商家的消息模板
  75. $temp_id = $couponNotice['order_refund_apply_to_saler'];
  76. $refundNotice = new OrderRefundNotice($refundApply,$refundApply->order);
  77. $refundNotice->sendMessage();
  78. return ;
  79. if (!$temp_id) {
  80. return false;
  81. }
  82. $nickname = \app\common\models\Member::where('uid', $refundApply->uid)->first()->nickname;
  83. $ordersn = Order::find($refundApply->order_id)->order_sn;
  84. $orderDate = Order::getOrderDetailById($refundApply->order_id);
  85. //品详情
  86. $goods = Order::find($refundApply->order_id)->hasManyOrderGoods()->value('goods_option_title');
  87. $goods_title = Order::find($refundApply->order_id)->hasManyOrderGoods()->value('title').$goods;
  88. //统计通知用户人数并整理数据
  89. $peonum = count($couponNotice['salers']);
  90. $key = range(0, $peonum-1);
  91. $new_perpson = array_combine($key, $couponNotice['salers']);
  92. if ($peonum >= 1) {
  93. $params = [
  94. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  95. ['name' => '粉丝昵称', 'value' => $nickname],
  96. ['name' => '退款单号', 'value' => $refundApply->refund_sn],
  97. ['name' => '退款申请时间', 'value' => $refundApply->create_time],
  98. ['name' => '退款类型', 'value' => $refundApply->refund_type_name],
  99. ['name' => '退款方式', 'value' => $orderDate->pay_type_name],
  100. ['name' => '退款原因', 'value' => $refundApply->reason],
  101. ['name' => '订单编号', 'value' => $ordersn],
  102. ['name' => '退款金额', 'value' => $refundApply->price],
  103. ['name' => '商品详情(含规格)', 'value' => $goods_title],
  104. ];
  105. $msg = MessageTemp::getSendMsg($temp_id, $params);
  106. foreach ($new_perpson as $k => $v) {
  107. if ($msg) {
  108. //公众号通知
  109. $wx_link = MessageTemp::find($temp_id)->news_link ? : '';
  110. MessageService::notice(MessageTemp::$template_id, $msg, $v['uid'], $uniacid,$wx_link);
  111. }
  112. $is_open = MinAppTemplateMessage::getTitle('退款申请通知');
  113. if (!$is_open->is_open){
  114. \Log::debug('暂未开启小程序退款申请通知');
  115. continue;
  116. }
  117. \Log::debug('----------------小程序退款通知+++++++++++++++++');
  118. $msg = [
  119. 'keyword1'=>['value'=> $nickname],// 退款人
  120. 'keyword2'=>['value'=> $refundApply->refund_sn],//退款单号
  121. 'keyword3'=>['value'=> $refundApply->create_time],// 退款时间
  122. 'keyword4'=>['value'=> $orderDate->pay_type_name],// 退款方式
  123. 'keyword5'=>['value'=> $refundApply->price],// 订单金额
  124. 'keyword6'=>['value'=> $refundApply->reason],// 订单原因
  125. ];
  126. $news_link = MessageTemp::find($temp_id)->news_link ? : '';
  127. MessageService::MiniNotice($is_open->template_id, $msg, $v['uid'], $news_link);
  128. }
  129. } else {
  130. return false;
  131. }
  132. }
  133. }