InformAdminClass.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. <?php
  2. namespace biz\message\classes;
  3. use biz\admin\classes\AdminClass;
  4. use biz\admin\services\ShopAdminService;
  5. use biz\user\classes\UserClass;
  6. use common\components\httpUtil;
  7. use common\components\wxUtil;
  8. use common\services\xhTMessageService;
  9. use Yii;
  10. use biz\base\classes\BaseClass;
  11. class InformAdminClass extends BaseClass
  12. {
  13. public static $baseFile = '\biz\message\models\InformAdmin';
  14. //增加通知员工 shish
  15. public static function addInform($params, $shopAdmin, $type, $TMList)
  16. {
  17. //没有关注公众号暂时不进行通知
  18. $subscribe = isset($shopAdmin['adminBaseInfo']['subscribe']) ? $shopAdmin['adminBaseInfo']['subscribe'] : 0;
  19. if ($subscribe == 0) {
  20. return false;
  21. }
  22. //没有小程序id暂时不进行通知,目前只有小程序商家版,没有h5
  23. $miniOpenId = isset($shopAdmin['adminBaseInfo']['miniOpenId']) ? $shopAdmin['adminBaseInfo']['miniOpenId'] : '';
  24. if (empty($miniOpenId)) {
  25. return false;
  26. }
  27. switch ($type) {
  28. case 'goodsSold':
  29. //宝贝售出
  30. $respond = self::goodsSoldInform($params, $shopAdmin, $TMList);
  31. break;
  32. case 'income':
  33. //收入提醒
  34. $respond = self::incomeInform($params, $shopAdmin, $TMList);
  35. break;
  36. case 'send':
  37. $respond = self::sendInform($params, $shopAdmin, $TMList);
  38. break;
  39. default:
  40. }
  41. $shopAdminId = $shopAdmin['id'];
  42. $shopId = $shopAdmin['shopId'];
  43. $mobile = isset($shopAdmin['adminBaseInfo']['mobile']) ? $shopAdmin['adminBaseInfo']['mobile'] : '';
  44. //通知管理员的都是平台通知
  45. $isOpen = 1;
  46. $data = [
  47. 'messageType' => 'inform',
  48. 'informWay' => 'miniProgram',
  49. 'userType' => 'admin',
  50. 'mobile' => $mobile,
  51. 'shopAdminId' => $shopAdminId,
  52. 'userId' => 0,
  53. 'shopId' => $shopId,
  54. 'isOpen' => $isOpen,
  55. ];
  56. $data = array_merge($data, $respond);
  57. $producer = Yii::$app->rabbitmq->getProducer('informProducer');
  58. $msg = serialize($data);
  59. Yii::info('消息通知:' . $msg);
  60. $producer->publish($msg, 'informExchange', 'informRoute');
  61. }
  62. //宝贝售出提醒 shish 2020.5.31
  63. public static function goodsSoldInform($params, $admin, $TMList)
  64. {
  65. $totalFee = isset($params['totalFee']) ? $params['totalFee'] : 0;
  66. $orderId = isset($params['orderId']) ? $params['orderId'] : '';
  67. $orderSn = isset($params['orderSn']) ? $params['orderSn'] : '';
  68. $orderName = '商品';
  69. $userName = '石头';
  70. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  71. //收入提醒
  72. $openId = isset($admin['adminBaseInfo']['openId']) ? $admin['adminBaseInfo']['openId'] : '';
  73. $miniOpenId = isset($admin['adminBaseInfo']['miniOpenId']) ? $admin['adminBaseInfo']['miniOpenId'] : '';
  74. $shortTempId = 'OPENTM207422813';
  75. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  76. $tMessage = [
  77. "touser" => $openId,
  78. "template_id" => $tempId,
  79. "url" => Yii::$app->params['adminUrl'] . '/order/detail',
  80. "data" => [
  81. "first" => ["value" => '您有新的收入!', "color" => "#173177"],
  82. "keyword1" => ["value" => (string)$orderSn, "color" => "#173177"],
  83. "keyword2" => ["value" => $orderName, "color" => "#173177"],
  84. "keyword3" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  85. "keyword4" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  86. "keyword5" => ["value" => $userName, "color" => "#173177"],
  87. "remark" => ["value" => '点此查看详细', "color" => "#173177"]
  88. ]
  89. ];
  90. if (!empty($miniOpenId)) {
  91. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  92. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  93. }
  94. $data['tMessage'] = json_encode($tMessage);
  95. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  96. $data['content'] = $msg;
  97. return $data;
  98. }
  99. //送到通知 shish 2020.1.31
  100. public static function sendInform($params, $admin, $TMList)
  101. {
  102. $totalFee = 199;
  103. $userName = '石头';
  104. $orderId = $params['orderId'];
  105. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  106. $openId = isset($admin['openId']) && !empty($admin['openId']) ? $admin['openId'] : '';
  107. $miniOpenId = isset($admin['miniOpenId']) && !empty($admin['miniOpenId']) ? $admin['miniOpenId'] : '';
  108. $shortTempId = 'OPENTM201205968';
  109. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  110. $tMessage = [
  111. "touser" => $openId,
  112. "template_id" => $tempId,
  113. "url" => Yii::$app->params['frontUrl'] . "/center/order-detail?id=1225&account=12362",
  114. "data" => [
  115. "first" => ["value" => '客户订单已送达', "color" => "#173177"],
  116. "keyword1" => ["value" => (string)1525, "color" => "#173177"],
  117. "keyword2" => ["value" => '石头', "color" => "#173177"],
  118. "keyword3" => ["value" => '已送达', "color" => "#173177"],
  119. "remark" => ["value" => '。。。。。。。', "color" => "#173177"]
  120. ]
  121. ];
  122. if (!empty($miniOpenId)) {
  123. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  124. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  125. }
  126. $data['tMessage'] = json_encode($tMessage);
  127. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  128. $data['content'] = $msg;
  129. return $data;
  130. }
  131. public static function incomeInform($params, $admin, $TMList)
  132. {
  133. $totalFee = isset($params['totalFee']) ? $params['totalFee'] : 0;
  134. $orderId = isset($params['orderId']) ? $params['orderId'] : '';
  135. $orderSn = isset($params['orderSn']) ? $params['orderSn'] : '';
  136. $orderName = '商品';
  137. $userName = '石头';
  138. $data['briefContent'] = "客户" . $userName . "付款" . $totalFee . '元';
  139. //收入提醒
  140. $openId = isset($admin['adminBaseInfo']['openId']) ? $admin['adminBaseInfo']['openId'] : '';
  141. $miniOpenId = isset($admin['adminBaseInfo']['miniOpenId']) ? $admin['adminBaseInfo']['miniOpenId'] : '';
  142. $shortTempId = 'OPENTM207422813';
  143. $tempId = isset($TMList[$shortTempId]) ? $TMList[$shortTempId] : '';
  144. $tMessage = [
  145. "touser" => $openId,
  146. "template_id" => $tempId,
  147. "url" => Yii::$app->params['adminUrl'] . '/order/detail',
  148. "data" => [
  149. "first" => ["value" => '您有新的收入!', "color" => "#173177"],
  150. "keyword1" => ["value" => (string)$orderSn, "color" => "#173177"],
  151. "keyword2" => ["value" => $orderName, "color" => "#173177"],
  152. "keyword3" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  153. "keyword4" => ["value" => number_format($totalFee, 2) . '元', "color" => "#173177"],
  154. "keyword5" => ["value" => $userName, "color" => "#173177"],
  155. "remark" => ["value" => '点此查看详细', "color" => "#173177"]
  156. ]
  157. ];
  158. if (!empty($miniOpenId)) {
  159. $tMessage['miniprogram']['appid'] = $params['miniAppId'];
  160. $tMessage['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  161. }
  162. $data['tMessage'] = json_encode($tMessage);
  163. $msg = "客户" . $userName . "付款" . $totalFee . '元';
  164. $data['content'] = $msg;
  165. return $data;
  166. }
  167. //添加通知内容 shish 2020.1.8
  168. public static function addData($data)
  169. {
  170. self::add($data);
  171. }
  172. //订单完成通知店长 shish 2020.3.19
  173. public static function sendComplete($order, $merchant)
  174. {
  175. $merchantId = $merchant['id'];
  176. $orderId = $order['id'];
  177. $shopId = $order['shopId'];
  178. $adminList = ShopAdminService::getNoticeAdminList($shopId);
  179. $tm = xhTMessageService::getList($merchantId);
  180. $shortTempId = 'OPENTM201205968';//订单送达通知
  181. $tempId = $tm[$shortTempId];
  182. if (!empty($adminList)) {
  183. foreach ($adminList as $admin) {
  184. if (isset($admin['subscribe']) && $admin['subscribe'] == 1) {
  185. $openId = $admin['openId'];
  186. $miniOpenId = $admin['miniOpenId'];
  187. $url = Yii::$app->params['shopDomain'] . "/#/admin/order/detail?id=" . $order['id'];
  188. $url = httpUtil::becomeHttps($url);
  189. $data = [
  190. "touser" => $openId,
  191. "template_id" => $tempId,
  192. "url" => $url,
  193. "data" => [
  194. "first" => ["value" => '客户订单已送达', "color" => "#173177"],
  195. "keyword1" => ["value" => (string)$order['orderSn'], "color" => "#173177"],
  196. "keyword2" => ["value" => $order['bookName'], "color" => "#173177"],
  197. "keyword3" => ["value" => '已送达', "color" => "#173177"],
  198. "remark" => ["value" => '', "color" => "#173177"]
  199. ]
  200. ];
  201. if (!empty($miniOpenId)) {
  202. $data['miniprogram']['appid'] = $merchant['miniAppId'];
  203. $data['miniprogram']['pagepath'] = 'admin/order/detail?id=' . $orderId;
  204. }
  205. wxUtil::sendTaskInform($data, $merchant);
  206. }
  207. }
  208. }
  209. }
  210. }