MqUserPaySuccessService.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace app\main\service;
  3. use app\common\service\CampaignService;
  4. use app\main\service\BaseService;
  5. use app\main\service\MqService;
  6. use think\Config;
  7. class MqUserPaySuccessService extends BaseService
  8. {
  9. protected const EXCHANGE_NAME ='cps.ex.delay.topic';
  10. protected const ROUTING_KEY = 'user.recharge.success';
  11. /**
  12. * @var MqUserPayCancelService
  13. */
  14. protected static $self = null;
  15. /**
  16. * @return BaseService|MqUserPayCancelService
  17. */
  18. public static function instance()
  19. {
  20. if (self::$self == NULL) {
  21. self::$self = new self();
  22. }
  23. return self::$self;
  24. }
  25. /**
  26. * 充值成功 活动推送
  27. */
  28. public function sendActiveToUser( $order, $userInfo )
  29. {
  30. $createDate = date('Ymd',$userInfo['createtime']);//用户注册时间不是当天的
  31. if ( $userInfo['id'] && date('Ymd',time()) != $createDate ){
  32. $activeId = CampaignService::instance()->checkActive($userInfo['id']);
  33. LogService::info('充值成功-活动id'.$activeId);
  34. if ( $activeId > 0 ){
  35. $host = getCurrentDomain($userInfo['channel_id']);
  36. $url = $host."/index/recharge/campaignIndex?from=wechat&user_id=".$userInfo['id']."&active_id=".$activeId;
  37. $data['user_id'] = $userInfo['id'];
  38. $data['channel_id'] = $userInfo['channel_id'];
  39. $data['openid'] = $userInfo['openid'];
  40. $data['goods_id'] = $order['goods_id'];
  41. $data['active_id'] = $activeId;
  42. $msg2['title'] = "您已充值".$order['money']."元,获得".$order['kandian']."书币。";
  43. $msg2['image'] = $host."assets/img/campaign_push.png";
  44. $msg2['url'] = $url;
  45. $msg2['description'] = '恭喜获得读书挑战赛资格,快来一起瓜分书币大奖吧~';
  46. $data['msg'] = $msg2;
  47. $timeout = 60;
  48. $mq = MqService::instance()->getDotMqInstance();
  49. $mq->transferDelayExchange($data, self::ROUTING_KEY,$timeout,self::EXCHANGE_NAME, 'topic');
  50. }
  51. }
  52. return;
  53. }
  54. }