CustomerService.php 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace crmeb\services;
  3. use app\models\store\StoreBargain;
  4. use app\models\store\StoreCart;
  5. use app\models\store\StoreCombination;
  6. use app\models\store\StoreProduct;
  7. use app\models\store\StoreSeckill;
  8. use app\models\store\StoreService;
  9. use app\models\user\WechatUser;
  10. use think\facade\Log;
  11. /**
  12. * 客服消息推送
  13. * Class CustomerService
  14. * @package crmeb\services
  15. */
  16. class CustomerService
  17. {
  18. /**
  19. * 订单支付成功后给客服发送客服消息
  20. * @param $order
  21. * @param int $type 1 公众号 0 小程序
  22. * @return string
  23. */
  24. public static function sendOrderPaySuccessCustomerService($order, $type = 0)
  25. {
  26. $serviceOrderNotice = StoreService::getStoreServiceOrderNotice();
  27. if (count($serviceOrderNotice)) {
  28. foreach ($serviceOrderNotice as $key => &$item) {
  29. $userInfo = WechatUser::get($item);
  30. if ($userInfo) {
  31. $userInfo = $userInfo->toArray();
  32. if ($userInfo['subscribe'] && $userInfo['openid']) {
  33. $orderStatus = StoreService::orderServiceStatus($userInfo['uid']);
  34. if ($orderStatus) {
  35. // 统计管理开启 推送图文消息
  36. $head = '订单提醒 订单号:' . $order['order_id'];
  37. $url = SystemConfigService::get('site_url') . '/customer/orderdetail/' . $order['order_id'];
  38. $description = '';
  39. $image = SystemConfigService::get('site_logo');
  40. if (isset($order['seckill_id']) && $order['seckill_id'] > 0) {
  41. $description .= '秒杀产品:' . StoreSeckill::getProductField($order['seckill_id'], 'title');
  42. $image = StoreSeckill::getProductField($order['seckill_id'], 'image');
  43. } else if (isset($order['combination_id']) && $order['combination_id'] > 0) {
  44. $description .= '拼团产品:' . StoreCombination::getCombinationField($order['combination_id'], 'title');
  45. $image = StoreCombination::getCombinationField($order['combination_id'], 'image');
  46. } else if (isset($order['bargain_id']) && $order['bargain_id'] > 0) {
  47. $description .= '砍价产品:' . StoreBargain::getBargainField($order['bargain_id'], 'title');
  48. $image = StoreBargain::getBargainField($order['bargain_id'], 'image');
  49. } else {
  50. $productIds = StoreCart::getCartIdsProduct((array)$order['cart_id']);
  51. $storeProduct = StoreProduct::getProductStoreNameOrImage($productIds);
  52. if (count($storeProduct)) {
  53. foreach ($storeProduct as $value) {
  54. $description .= $value['store_name'] . ' ';
  55. $image = $value['image'];
  56. }
  57. }
  58. }
  59. $message = WechatService::newsMessage($head, $description, $url, $image);
  60. try {
  61. WechatService::staffService()->message($message)->to($userInfo['openid'])->send();
  62. } catch (\Exception $e) {
  63. Log::error($userInfo['nickname'] . '发送失败' . $e->getMessage());
  64. }
  65. } else {
  66. // 推送文字消息
  67. $head = "客服提醒:亲,您有一个新订单 \r\n订单单号:{$order['order_id']}\r\n支付金额:¥{$order['pay_price']}\r\n备注信息:{$order['mark']}\r\n订单来源:小程序";
  68. if ($type) $head = "客服提醒:亲,您有一个新订单 \r\n订单单号:{$order['order_id']}\r\n支付金额:¥{$order['pay_price']}\r\n备注信息:{$order['mark']}\r\n订单来源:公众号";
  69. try {
  70. WechatService::staffService()->message($head)->to($userInfo['openid'])->send();
  71. } catch (\Exception $e) {
  72. Log::error($userInfo['nickname'] . '发送失败' . $e->getMessage());
  73. }
  74. }
  75. }
  76. }
  77. }
  78. }
  79. }
  80. }