WechatInnerService.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. /**
  3. * 微信接口中间转发service
  4. */
  5. namespace App\Modules\WechatInner\Services;
  6. use App\Modules\OfficialAccount\Services\ForceSubscribeService;
  7. use App\Http\Controllers\Wechat\OfficialAccount\OfficialInteractiveEventController;
  8. use App\Modules\OfficialAccount\Models\ForceSubscribeUsers;
  9. use App\Modules\OfficialAccount\Models\TempForceSubscribeUsers;
  10. use App\Modules\OfficialAccount\Models\OfficialAccount;
  11. use App\Modules\SendOrder\Services\SendOrderService;
  12. use App\Modules\User\Services\UserService;
  13. use App\Modules\Subscribe\Services\OrderService;
  14. use App\Modules\Subscribe\Services\YearOrderService;
  15. use App\Modules\User\Models\YqMove;
  16. use App\Libs\OSS;
  17. use Illuminate\Http\Request;
  18. use Redis;
  19. use App\Jobs\SendTemplate;
  20. use App\Jobs\SendStatisticsList;
  21. use GuzzleHttp\Client;
  22. class WechatInnerService
  23. {
  24. //-----------强关用户---------------
  25. /**
  26. * 通过appid和openid获取强关用户
  27. */
  28. static function get_event_data($post_data,$event)
  29. {
  30. $params = [];
  31. // 获取用户
  32. if($event == 'get_force_wx_user'){
  33. $params['appid'] = $post_data['appid'];
  34. $params['openid'] = $post_data['openid'];
  35. $force_subscribe = ForceSubscribeService::forceSubscribeUsersByAppidAndOpenId($params);
  36. if(count($force_subscribe) > 1){
  37. $force_subscribe = $force_subscribe->toArray();
  38. }
  39. return $force_subscribe;
  40. }elseif($event == 'update_user_interaction_time'){
  41. $params['appid'] = $post_data['appid'];
  42. $params['openid'] = $post_data['openid'];
  43. $params['distribution_channel_id'] = $post_data['distribution_channel_id'];
  44. $params['last_interactive_time'] = $post_data['last_interactive_time'];
  45. $resultStatus = ForceSubscribeService::forceSubscribeUsersLastTimeUpdate($params);
  46. // 更新交互中间表
  47. $tempResultStatus = ForceSubscribeService::tempForceSubscribeUsersLastTimeUpdate($params);
  48. }
  49. // get_event_content
  50. elseif($event == 'get_event_content'){
  51. $request = new Request();
  52. foreach($post_data as $key=>$val){
  53. $request->offsetSet($key, $val);
  54. }
  55. $inner_event = new OfficialInteractiveEventController();
  56. $inner_event_data = $inner_event->officialInteractiveEventFeedback($request);
  57. if(empty($inner_event_data)){
  58. v('empty_inner:'.json_encode($post_data));
  59. return null;
  60. }
  61. $inner_data = $inner_event_data->getData();
  62. $inner_data = objectToArray($inner_data);
  63. $last_data = isset($inner_data['data'])?$inner_data['data']:null;
  64. v('inter_last_data');v($last_data);
  65. return $last_data;
  66. }
  67. // 素材映射
  68. elseif($event == 'get_material_force_subscribe_mapping'){
  69. }
  70. // 取关
  71. elseif($event == 'unsubscribe_wx_user'){
  72. }
  73. return true;
  74. }
  75. }