BuyerMessage.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. namespace app\frontend\modules\order\services\message;
  3. use app\common\models\Member;
  4. use app\common\models\MemberShopInfo;
  5. use app\common\models\notice\MessageTemp;
  6. use app\common\models\notice\MinAppTemplateMessage;
  7. /**
  8. * Created by PhpStorm.
  9. * User: shenyang
  10. * Date: 2017/6/7
  11. * Time: 上午10:15
  12. */
  13. class BuyerMessage extends Message
  14. {
  15. protected $goods_title;
  16. public function __construct($order,$formId = '',$type = 1,$title)
  17. {
  18. parent::__construct($order,$formId,$type,$title);
  19. $this->goods_title = $this->order->hasManyOrderGoods()->first()->title;
  20. $this->goods_title .= $this->order->hasManyOrderGoods()->first()->goods_option_title ?: '';
  21. }
  22. protected function sendToBuyer()
  23. {
  24. try {
  25. return $this->sendToMember($this->order->uid);
  26. } catch (\Exception $exception) {
  27. }
  28. }
  29. protected function sendToMember($uid)
  30. {
  31. if (empty($this->templateId)) {
  32. return;
  33. }
  34. $this->notice($this->templateId, $this->msg, $uid,'',$this->news_link);
  35. }
  36. protected function miniSendToShops($templateId,$msg)
  37. {
  38. if (empty($templateId)) {
  39. return;
  40. }
  41. \Log::debug('===============',[$templateId]);
  42. $this->MiniNotice($templateId, $msg, $this->order->uid);
  43. }
  44. private function transfer($temp_id, $params)
  45. {
  46. $this->msg = MessageTemp::getSendMsg($temp_id, $params);
  47. if (!$this->msg) {
  48. return;
  49. }
  50. $this->templateId = MessageTemp::$template_id;
  51. $news_link = MessageTemp::find($temp_id)->news_link;
  52. $this->news_link = $news_link ?:'';
  53. $this->sendToBuyer();
  54. }
  55. public function created()
  56. {
  57. $temp_id = \Setting::get('shop.notice')['order_submit_success'];
  58. if ($temp_id) {
  59. $params = [
  60. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  61. ['name' => '粉丝昵称', 'value' => $this->order->belongsToMember->nickname],
  62. ['name' => '订单号', 'value' => $this->order->order_sn],
  63. ['name' => '下单时间', 'value' => $this->order['create_time']->toDateTimeString()],
  64. ['name' => '订单金额', 'value' => $this->order['price']],
  65. ['name' => '运费', 'value' => $this->order['dispatch_price']],
  66. ['name' => '商品详情(含规格)', 'value' => $this->goods_title],
  67. ];
  68. $this->transfer($temp_id, $params);
  69. }
  70. //小程序消息
  71. $is_open = MinAppTemplateMessage::getTitle('订单提交成功通知');
  72. if (!$is_open->is_open){
  73. return;
  74. }
  75. $msg = [
  76. 'keyword1'=>['value'=> $this->order->belongsToMember->nickname],// 客户姓名
  77. 'keyword2'=>['value'=> $this->order->order_sn],//订单号
  78. 'keyword3'=>['value'=> $this->order['create_time']->toDateTimeString()],// 下单时间
  79. 'keyword4'=>['value'=> $this->order['price']],// 订单金额
  80. 'keyword5'=>['value'=> $this->goods_title],// 商品信息
  81. ];
  82. $this->miniSendToShops($is_open->template_id,$msg);
  83. }
  84. public function paid()
  85. {
  86. $temp_id = \Setting::get('shop.notice')['order_pay_success'];
  87. if (!$temp_id) {
  88. return;
  89. }
  90. $params = [
  91. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  92. ['name' => '粉丝昵称', 'value' => $this->order->belongsToMember->nickname],
  93. ['name' => '订单号', 'value' => $this->order->order_sn],
  94. ['name' => '下单时间', 'value' => $this->order['create_time']->toDateTimeString()],
  95. ['name' => '订单金额', 'value' => $this->order['price']],
  96. ['name' => '运费', 'value' => $this->order['dispatch_price']],
  97. ['name' => '商品详情(含规格)', 'value' => $this->goods_title],
  98. ['name' => '支付方式', 'value' => $this->order->pay_type_name],
  99. ['name' => '支付时间', 'value' => $this->order['pay_time']->toDateTimeString()],
  100. ];
  101. $this->transfer($temp_id, $params);
  102. }
  103. // public function canceled()
  104. // {
  105. // $temp_id = \Setting::get('shop.notice')['order_cancel'];
  106. // if (!$temp_id) {
  107. // return;
  108. // }
  109. // $params = [
  110. // ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  111. // ['name' => '粉丝昵称', 'value' => $this->order->belongsToMember->nickname],
  112. // ['name' => '订单号', 'value' => $this->order->order_sn],
  113. // ['name' => '下单时间', 'value' => $this->order['create_time']->toDateTimeString()],
  114. // ['name' => '订单金额', 'value' => $this->order['price']],
  115. // ['name' => '运费', 'value' => $this->order['dispatch_price']],
  116. // ['name' => '商品详情(含规格)', 'value' => $this->goods_title],
  117. // ['name' => '支付方式', 'value' => $this->order->pay_type_name],
  118. // ['name' => '订单取消时间', 'value' => $this->order['cancel_time']->toDateTimeString()],
  119. // ];
  120. // $this->transfer($temp_id, $params);
  121. // }
  122. public function canceled()
  123. {
  124. $temp_id = \Setting::get('shop.notice')['order_cancel'];
  125. if ($temp_id) {
  126. $params = [
  127. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  128. ['name' => '粉丝昵称', 'value' => $this->order->belongsToMember->nickname],
  129. ['name' => '订单号', 'value' => $this->order->order_sn],
  130. ['name' => '下单时间', 'value' => $this->order['create_time']->toDateTimeString()],
  131. ['name' => '订单金额', 'value' => $this->order['price']],
  132. ['name' => '运费', 'value' => $this->order['dispatch_price']],
  133. ['name' => '商品详情(含规格)', 'value' => $this->goods_title],
  134. ['name' => '支付方式', 'value' => $this->order->pay_type_name],
  135. ['name' => '订单取消时间', 'value' => $this->order['cancel_time']->toDateTimeString()],
  136. ];
  137. $this->transfer($temp_id, $params);
  138. }
  139. //小程序消息
  140. $is_open = MinAppTemplateMessage::getTitle('订单取消通知');
  141. if (!$is_open->is_open){
  142. return;
  143. }
  144. $msg = [
  145. 'keyword1'=>['value'=> $this->order->belongsToMember->nickname],// 用户名
  146. 'keyword2'=>['value'=> $this->order->order_sn],//订单号
  147. 'keyword3'=>['value'=> $this->order['create_time']->toDateTimeString()],// 下单时间
  148. 'keyword4'=>['value'=> $this->order['price']],// 订单金额
  149. 'keyword5'=>['value'=> $this->order['price']],// 订单运费
  150. 'keyword6'=>['value'=> $this->goods_title],// 商品详情
  151. 'keyword7'=>['value'=> $this->order['cancel_time']->toDateTimeString()],// 取消时间
  152. ];
  153. $this->miniSendToShops($is_open->template_id,$msg);
  154. }
  155. public function sent()
  156. {
  157. $temp_id = \Setting::get('shop.notice')['order_send'];
  158. if ($temp_id) {
  159. $params = [
  160. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  161. ['name' => '粉丝昵称', 'value' => $this->order->belongsToMember->nickname],
  162. ['name' => '订单号', 'value' => $this->order->order_sn],
  163. ['name' => '下单时间', 'value' => $this->order['create_time']->toDateTimeString()],
  164. ['name' => '订单金额', 'value' => $this->order['price']],
  165. ['name' => '运费', 'value' => $this->order['dispatch_price']],
  166. ['name' => '商品详情(含规格)', 'value' => $this->goods_title],
  167. ['name' => '发货时间', 'value' => $this->order['send_time']->toDateTimeString()],
  168. ['name' => '快递公司', 'value' => $this->order['express']['express_company_name'] ?: "暂无信息"],
  169. ['name' => '快递单号', 'value' => $this->order['express']['express_sn'] ?: "暂无信息"],
  170. ];
  171. $this->transfer($temp_id, $params);
  172. }
  173. //小程序消息模板
  174. $is_open = MinAppTemplateMessage::getTitle('订单发货提醒');
  175. if (!$is_open->is_open){
  176. return;
  177. }
  178. $msg = [
  179. 'keyword1'=>['value'=> $this->order->belongsToMember->nickname],// 用户名
  180. 'keyword2'=>['value'=> $this->order->order_sn],//订单号
  181. 'keyword3'=>['value'=> $this->order['create_time']->toDateTimeString()],// 下单时间
  182. 'keyword4'=>['value'=> $this->order['price']],// 订单金额
  183. 'keyword5'=>['value'=> $this->goods_title],// 商品信息
  184. 'keyword6'=>['value'=> $this->order['send_time']->toDateTimeString()],// 发货时间
  185. 'keyword7'=>['value'=> $this->order['express']['express_company_name'] ?: "暂无信息"],// 快递公司
  186. 'keyword8'=>['value'=> $this->order['express']['express_sn'] ?: "暂无信息"],// 快递单号
  187. ];
  188. $this->miniSendToShops($is_open->template_id,$msg);
  189. }
  190. public function received()
  191. {
  192. $temp_id = \Setting::get('shop.notice')['order_finish'];
  193. if ($temp_id) {
  194. $params = [
  195. ['name' => '商城名称', 'value' => \Setting::get('shop.shop')['name']],
  196. ['name' => '粉丝昵称', 'value' => $this->order->belongsToMember->nickname],
  197. ['name' => '订单号', 'value' => $this->order->order_sn],
  198. ['name' => '下单时间', 'value' => $this->order['create_time']->toDateTimeString()],
  199. ['name' => '订单金额', 'value' => $this->order['price']],
  200. ['name' => '运费', 'value' => $this->order['dispatch_price']],
  201. ['name' => '商品详情(含规格)', 'value' => $this->goods_title],
  202. ['name' => '确认收货时间', 'value' => $this->order['finish_time']->toDateTimeString()],
  203. ];
  204. $this->transfer($temp_id, $params);
  205. }
  206. //小程序消息模板
  207. $is_open = MinAppTemplateMessage::getTitle('确认收货通知');
  208. if (!$is_open->is_open){
  209. return;
  210. }
  211. $msg = [
  212. 'keyword1'=>['value'=> $this->goods_title],// 商品名称
  213. 'keyword2'=>['value'=> $this->order->belongsToMember->nickname],//买家昵称
  214. 'keyword3'=>['value'=> $this->order->order_sn],// 订单编号
  215. 'keyword4'=>['value'=> $this->order['create_time']->toDateTimeString()],// 订订单时间
  216. 'keyword5'=>['value'=> $this->order['price']],// 订单金额
  217. 'keyword6'=>['value'=> $this->order['finish_time']->toDateTimeString()],// 确认收货时间
  218. ];
  219. $this->miniSendToShops($is_open->template_id,$msg);
  220. }
  221. }