NewOrder.Class.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: phperstar
  5. * Date: 2020/11/6
  6. * Time: 11:05 AM
  7. */
  8. namespace Service\Order\Controller;
  9. use Mall\Framework\Core\ErrorCode;
  10. use Service\BaseController;
  11. use Service\Order\Cache\OrderCache;
  12. use Mall\Framework\Factory;
  13. class NewOrder extends BaseController
  14. {
  15. private $objMOrder;
  16. public function __construct()
  17. {
  18. }
  19. /**
  20. * 建立连接
  21. */
  22. public function createConnect($request_params)
  23. {
  24. $params['shop_id'] = $request_params['shop_id'];
  25. $params['platfrom'] = $request_params['platfrom'];
  26. $params['fromId'] = $request_params['fromId'];
  27. $params['userId'] = $request_params['userId'];
  28. foreach ($params as $key => $value) {
  29. if (empty($value)) {
  30. parent::sendOutput(ErrorCode::$paramError, '参数' . $key . '值为空', ErrorCode::$paramError);
  31. }
  32. }
  33. // 缓存一下每个用户在每个店铺下面创建的链接信息
  34. $key = OrderCache::addWebstockFromIdAndShopId($params['platfrom'], $params['shop_id'], $params['userId'], $params['fromId']);
  35. // 存一下webstock链接信息保存在那个redisKey下面,方便浏览器关闭以后销毁缓存
  36. parent::webstockConnectInfo($params['fromId'], $key . '|' . $params['userId']);
  37. return [
  38. 'fromId' => [$params['fromId']],
  39. 'sendData' => parent::sendOutput('创建连接成功'),
  40. ];
  41. }
  42. /**
  43. * 触发通知
  44. */
  45. public function autoSend($request_params)
  46. {
  47. $params['shop_id'] = $request_params['shop_id'];
  48. $params['platfrom'] = $request_params['platfrom'];
  49. $params['fromId'] = $request_params['fromId'];
  50. $params['source'] = empty($request_params['source']) ? "" : $request_params['source'];
  51. foreach ($params as $key => $value) {
  52. if (empty($value)) {
  53. parent::sendOutput(ErrorCode::$paramError, '参数' . $key . '值为空', ErrorCode::$paramError);
  54. }
  55. }
  56. $webStockId = OrderCache::getWebstockFromIdAndShopId($params['platfrom'], $params['shop_id']);
  57. $msg = '';
  58. switch ($params['source']) {
  59. case 'order':
  60. $msg = '有新订单了';
  61. break;
  62. case 'stockOut':
  63. $msg = '有新出库单了';
  64. break;
  65. default:
  66. $msg = '消息类型不存在';
  67. break;
  68. }
  69. $log["date"] = date("Y-m-d H:i:s");
  70. $log["accept"] = $params;
  71. $log["send"] = ['fromId' => $webStockId,'sendData' =>$msg];
  72. $this->addlog(json_encode($log));
  73. if ($webStockId) {
  74. return [
  75. 'fromId' => $webStockId,
  76. 'sendData' => parent::sendOutput($msg),
  77. ];
  78. } else {
  79. return [
  80. 'fromId' => [$params['fromId']],
  81. 'sendData' => parent::sendOutput($msg),
  82. ];
  83. }
  84. }
  85. /**
  86. * 关闭链接以后销毁连接
  87. */
  88. public function closeWebstock($fromId)
  89. {
  90. parent::closeWebstock($fromId);
  91. }
  92. public function addlog($msg){
  93. try {
  94. $config = Factory::config()->all();
  95. $logger = Factory::logs($config['logPath'] ?:'', $config['logSaveFileApp'] ?:'', $config['app_name'] ?:'');
  96. $logger->log($msg);
  97. } catch (Exception $exc) {
  98. }
  99. }
  100. }