ForceSubscribeUsersController.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633
  1. <?php
  2. namespace App\Http\Controllers\Wechat\OfficialAccount;
  3. use App\Http\Controllers\Channel\BaseController as ChannelBaseController;
  4. use App\Modules\OfficialAccount\Models\ForceSubscribeUsers;
  5. use App\Modules\OfficialAccount\Services\ForceSubscribeService;
  6. use App\Modules\OfficialAccount\Services\CustomMsgService;
  7. use App\Http\Controllers\Channel\OfficialAccount\Transformers\CustomMsgControllerTransformer;
  8. use App\Http\Controllers\Wechat\OfficialAccount\Transformers\ForceSubscribeUsersTransformer;
  9. use App\Modules\User\Models\SubscribeRecord;
  10. use Illuminate\Http\Request;
  11. use GuzzleHttp\Client;
  12. use App\Libs\OSS;
  13. use Redis;
  14. use OSS\Core\OssException;
  15. use OSS\OssClient;
  16. class ForceSubscribeUsersController extends ChannelBaseController
  17. {
  18. /**
  19. * @apiDefine OfficialAccount 公众号
  20. */
  21. /**
  22. * @apiVersion 1.0.0
  23. * @api {GET} OfficialAccount/forceSubscribeUsersByAppidAndOpenId 通过appid和openid获取强关用户
  24. * @apiGroup OfficialAccount
  25. * @apiName forceSubscribeUsersByAppidAndOpenId
  26. * @apiParam {Number} appid 微信appID.
  27. * @apiParam {Number} openid 公众号openid.
  28. * @apiSuccess {Number} uid 用户id.
  29. * @apiSuccess {Number} official_account_id 公众账号id.
  30. * @apiSuccess {Number} distribution_channel_id 分配的渠道id.
  31. * @apiSuccess {Number} openid 公众号openid.
  32. * @apiSuccess {Number} appid 微信appID.
  33. * @apiSuccess {Number} is_subscribed 是否强关.
  34. * @apiSuccess {String} subscribe_time 强关时间.
  35. * @apiSuccess {String} unsubscribe_time 取关时间.
  36. * @apiSuccess {String} last_interactive_time 强关用户与公众号最后交互时间.
  37. * @apiSuccessExample {json} Success-Response:
  38. *
  39. * {
  40. * "code": 0,
  41. * "msg": "",
  42. * "data": {
  43. * "uid": 12121212,
  44. * "official_account_id": 11111,
  45. * "distribution_channel_id": 2323213,
  46. * "appid": 112211,
  47. * "openid": 11232,
  48. * "is_subscribed": 0,
  49. * "subscribe_time": "2017-11-22 21:37:15",
  50. * "unsubscribe_time": "2017-11-22 22:36:50",
  51. * "last_interactive_time": "2017-11-22 22:36:50"
  52. * }
  53. * }
  54. */
  55. function forceSubscribeUsersByAppidAndOpenId(Request $request)
  56. {
  57. $appid = $request->has('appid') ? $request->input('appid') : '';
  58. if(empty($appid)) {
  59. return response()->error("PARAM_EMPTY");
  60. }
  61. $openid = $request->has('openid') ? $request->input('openid') : '';
  62. if(empty($openid)) {
  63. return response()->error("PARAM_EMPTY");
  64. }
  65. $forceSubscribeUsers['appid'] = $appid;
  66. $forceSubscribeUsers['openid'] = $openid;
  67. $forceSubscribeUsersService = ForceSubscribeService::forceSubscribeUsersByAppidAndOpenId($forceSubscribeUsers);
  68. return response()->item(new ForceSubscribeUsersTransformer(), $forceSubscribeUsersService);
  69. }
  70. function forceSubscribeUsersByOpenidAndAppidAndChannelId(Request $request)
  71. {
  72. $appid = $request->has('appid') ? $request->input('appid') : '';
  73. if(empty($appid)) {
  74. return response()->error("PARAM_EMPTY");
  75. }
  76. $openid = $request->has('openid') ? $request->input('openid') : '';
  77. if(empty($openid)) {
  78. return response()->error("PARAM_EMPTY");
  79. }
  80. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  81. if(empty($distribution_channel_id)) {
  82. return response()->error("PARAM_EMPTY");
  83. }
  84. $forceSubscribeUsers['appid'] = $appid;
  85. $forceSubscribeUsers['openid'] = $openid;
  86. $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id;
  87. $forceSubscribeUsersService = ForceSubscribeService::forceSubscribeUsersByOpenidAndAppidAndChannelId($forceSubscribeUsers);
  88. return response()->item(new ForceSubscribeUsersTransformer(), $forceSubscribeUsersService);
  89. }
  90. /**
  91. * @apiDefine OfficialAccount 公众号
  92. */
  93. /**
  94. * @apiVersion 1.0.0
  95. * @api {GET} OfficialAccount/forceSubscribeUsersByUid 通过uid获取强关用户
  96. * @apiGroup OfficialAccount
  97. * @apiName forceSubscribeUsersByUid
  98. * @apiParam {Number} uid 用户id.
  99. * @apiSuccess {Number} uid 用户id.
  100. * @apiSuccess {Number} official_account_id 公众账号id.
  101. * @apiSuccess {Number} distribution_channel_id 分配的渠道id.
  102. * @apiSuccess {Number} openid 公众号openid.
  103. * @apiSuccess {Number} appid 微信appID.
  104. * @apiSuccess {Number} is_subscribed 是否强关.
  105. * @apiSuccess {String} subscribe_time 强关时间.
  106. * @apiSuccess {String} unsubscribe_time 取关时间.
  107. * @apiSuccess {String} last_interactive_time 强关用户与公众号最后交互时间.
  108. * @apiSuccessExample {json} Success-Response:
  109. *
  110. * {
  111. * "code": 0,
  112. * "msg": "",
  113. * "data": {
  114. * "uid": 12121212,
  115. * "official_account_id": 11111,
  116. * "distribution_channel_id": 2323213,
  117. * "appid": 112211,
  118. * "openid": 11232,
  119. * "is_subscribed": 0,
  120. * "subscribe_time": "2017-11-22 21:37:15",
  121. * "unsubscribe_time": "2017-11-22 22:36:50",
  122. * "last_interactive_time": "2017-11-22 22:36:50"
  123. * }
  124. * }
  125. */
  126. function forceSubscribeUsersByUid(Request $request)
  127. {
  128. $uid = $request->has('uid') ? $request->input('uid') : '';
  129. if(empty($uid)) {
  130. return response()->error("PARAM_EMPTY");
  131. }
  132. $forceSubscribeUsers['uid'] = $uid;
  133. $forceSubscribeUsersService = ForceSubscribeService::forceSubscribeUsersByUid($forceSubscribeUsers);
  134. return response()->item(new ForceSubscribeUsersTransformer(), $forceSubscribeUsersService);
  135. }
  136. /**
  137. * @apiVersion 1.0.0
  138. * @api {POST} OfficialAccount/addForceSubscribeUsers 增加强关用户
  139. * @apiGroup OfficialAccount
  140. * @apiName addForceSubscribeUsers
  141. * @apiParam {Number} uid 用户id.
  142. * @apiParam {Number} official_account_id 公众账号id.
  143. * @apiParam {Number} distribution_channel_id 分配的渠道id.
  144. * @apiParam {Number} openid 公众号openid.
  145. * @apiParam {Number} appid 微信appID.
  146. * @apiParam {Number} is_subscribed 是否强关.
  147. * @apiParam {String} subscribe_time 强关时间.
  148. * @apiParam {String} unsubscribe_time 取关时间.
  149. * @apiParam {String} last_interactive_time 强关用户与公众号最后交互时间.
  150. * @apiSuccessExample {json} Success-Response:
  151. *
  152. * {
  153. * "code": 0,
  154. * "msg": "",
  155. * "data": []
  156. * }
  157. */
  158. function addForceSubscribeUsers(Request $request) {
  159. $uid = $request->has('uid') ? $request->input('uid') : '';
  160. if(empty($uid)) {
  161. return response()->error("PARAM_EMPTY");
  162. }
  163. $appid = $request->has('appid') ? $request->input('appid') : '';
  164. if(empty($appid)) {
  165. return response()->error("PARAM_EMPTY");
  166. }
  167. $openid = $request->has('openid') ? $request->input('openid') : '';
  168. if(empty($openid)) {
  169. return response()->error("PARAM_EMPTY");
  170. }
  171. $is_subscribed = $request->has('is_subscribed') ? $request->input('is_subscribed') : '1';
  172. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  173. $last_interactive_time = date("Y-m-d H:i:s");
  174. $unionid = $request->has('unionid') ? $request->input('unionid') : '1';
  175. $province = $request->has('province') ? $request->input('province') : '';
  176. $city = $request->has('city') ? $request->input('city') : '';
  177. $country = $request->has('country') ? $request->input('country') : '';
  178. $nick_name = $request->has('nick_name') ? $request->input('nick_name') : '';
  179. $sex = $request->has('sex') ? $request->input('sex') : '';
  180. $headimgurl = $request->has('head_img') ? $request->input('head_img') : '';
  181. $forceSubscribeUsers['uid'] = $uid;
  182. $forceSubscribeUsers['appid'] = $appid;
  183. $forceSubscribeUsers['openid'] = $openid;
  184. $forceSubscribeUsers['nick_name'] = $nick_name;
  185. $forceSubscribeUsers['is_subscribed'] = $is_subscribed;
  186. $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id;
  187. $forceSubscribeUsers['last_interactive_time'] = $last_interactive_time;
  188. $forceSubscribeUsers['unionid'] = $unionid;
  189. $forceSubscribeUsers['province'] = $province;
  190. $forceSubscribeUsers['city'] = $city;
  191. $forceSubscribeUsers['country'] = $country;
  192. $forceSubscribeUsers['sex'] = $sex;
  193. $forceSubscribeUsers['headimgurl'] = $headimgurl;
  194. $resultStatus = ForceSubscribeService::addForceSubscribeUsers($forceSubscribeUsers);
  195. // 更新交互中间表
  196. $tempResultStatus = ForceSubscribeService::tempForceSubscribeUsersLastTimeUpdate($forceSubscribeUsers);
  197. // 插入关注记录表
  198. $subscribe_record = [
  199. 'appid'=>$appid,
  200. 'openid'=>$openid,
  201. 'distribution_channel_id'=>$distribution_channel_id,
  202. 'is_subscribed'=>1,
  203. 'subscribe_time'=>date('Y-m-d H:i:s'),
  204. ];
  205. SubscribeRecord::create_subscribe_record($subscribe_record);
  206. if ($resultStatus == 1) {
  207. return response()->success();
  208. }elseif ($resultStatus == 2) {
  209. return response()->error('ADDFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  210. }elseif ($resultStatus == 0) {
  211. return response()->error('ADDFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  212. }else{
  213. return response()->error('ADDFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  214. }
  215. }
  216. /**
  217. * @apiVersion 1.0.0
  218. * @api {GET} OfficialAccount/ForceSubscribeUsersLastTimeUpdate 强关用户与公众号最后交互时间更新
  219. * @apiGroup OfficialAccount
  220. * @apiName ForceSubscribeUsersLastTimeUpdate
  221. * @apiParam {Number} openid 公众号openid.
  222. * @apiParam {String} last_interactive_time 强关用户与公众号最后交互时间.
  223. * @apiSuccessExample {json} Success-Response:
  224. *
  225. * {
  226. * "code": 0,
  227. * "msg": "",
  228. * "data": []
  229. * }
  230. */
  231. function forceSubscribeUsersLastTimeUpdate(Request $request) {
  232. $openid = $request->has('openid') ? $request->input('openid') : '';
  233. \Log::info('forceSubscribeUsersLastTimeUpdate_start:'.$openid);
  234. if(empty($openid)) {
  235. return response()->error("PARAM_EMPTY");
  236. }
  237. $last_interactive_time = $request->has('last_interactive_time') ? $request->input('last_interactive_time') : '';
  238. if(empty($last_interactive_time)) {
  239. return response()->error("PARAM_EMPTY");
  240. }
  241. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  242. $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id;
  243. $appid = $request->has('appid') ? $request->input('appid') : '';
  244. $forceSubscribeUsers['appid'] = $appid;
  245. $forceSubscribeUsers['openid'] = $openid;
  246. $forceSubscribeUsers['last_interactive_time'] = $last_interactive_time;
  247. $resultStatus = ForceSubscribeService::forceSubscribeUsersLastTimeUpdate($forceSubscribeUsers);
  248. // 更新交互中间表
  249. $tempResultStatus = ForceSubscribeService::tempForceSubscribeUsersLastTimeUpdate($forceSubscribeUsers);
  250. if ($resultStatus == 1) {
  251. return response()->success();
  252. }elseif ($resultStatus == 2) {
  253. return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND");
  254. }elseif ($resultStatus == 0) {
  255. return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  256. }else{
  257. return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  258. }
  259. }
  260. /**
  261. * @apiVersion 1.0.0
  262. * @api {GET} OfficialAccount/updateForceSubscribeUsers 强关用户强制更新uid
  263. * @apiGroup OfficialAccount
  264. * @apiName updateForceSubscribeUsers
  265. * @apiParam {Number} openid 公众号openid.
  266. * @apiParam {String} uid 强关用户uid.
  267. * @apiSuccessExample {json} Success-Response:
  268. *
  269. * {
  270. * "code": 0,
  271. * "msg": "",
  272. * "data": []
  273. * }
  274. */
  275. function updateForceSubscribeUsers(Request $request) {
  276. $openid = $request->has('openid') ? $request->input('openid') : '';
  277. if(empty($openid)) {
  278. return response()->error("PARAM_EMPTY");
  279. }
  280. $uid = $request->has('uid') ? $request->input('uid') : '';
  281. if(empty($uid)) {
  282. return response()->error("PARAM_EMPTY");
  283. }
  284. $forceSubscribeUsers = array();
  285. $forceSubscribeUsers['openid'] = $openid;
  286. $forceSubscribeUsers['uid'] = $uid;
  287. $resultStatus = ForceSubscribeService::updateSubscribeUsersUid($forceSubscribeUsers);
  288. if ($resultStatus == 1) {
  289. return response()->success();
  290. }elseif ($resultStatus == 2) {
  291. return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND");
  292. }elseif ($resultStatus == 0) {
  293. return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  294. }else{
  295. return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  296. }
  297. }
  298. /**
  299. * @apiVersion 1.0.0
  300. * @api {GET} OfficialAccount/cancelForceSubscribeUsers 取消用户强制关注
  301. * @apiGroup OfficialAccount
  302. * @apiName cancelForceSubscribeUsers
  303. * @apiParam {Number} uid 用户id.
  304. * @apiParam {Number} openid 公众号openid.
  305. * @apiSuccessExample {json} Success-Response:
  306. *
  307. * {
  308. * "code": 0,
  309. * "msg": "",
  310. * "data": []
  311. * }
  312. */
  313. function cancelForceSubscribeUsers(Request $request) {
  314. // $uid = $request->has('uid') ? $request->input('uid') : '';
  315. $openid = $request->has('openid') ? $request->input('openid') : '';
  316. if(empty($openid)) {
  317. return response()->error("PARAM_EMPTY");
  318. }
  319. $appid = $request->has('appid') ? $request->input('appid') : '';
  320. if(empty($appid)) {
  321. return response()->error("PARAM_EMPTY");
  322. }
  323. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  324. $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id;
  325. $forceSubscribeUsers['openid'] = $openid;
  326. $forceSubscribeUsers['appid'] = $appid;
  327. $resultStatus = ForceSubscribeService::cancelForceSubscribeUsers($forceSubscribeUsers);
  328. $unsubscribe_data = [
  329. 'openid'=>$openid,
  330. 'appid'=>$appid,
  331. 'is_subscribed'=>0,
  332. 'distribution_channel_id'=>$distribution_channel_id,
  333. 'unsubscribe_time'=>date('Y-m-d H:i:s')
  334. ];
  335. // 更新交互中间表
  336. $tempResultStatus = ForceSubscribeService::updateTempForceUser($unsubscribe_data);
  337. // 插入关注记录表
  338. SubscribeRecord::create_subscribe_record($unsubscribe_data);
  339. if ($resultStatus == 1) {
  340. return response()->success();
  341. }elseif ($resultStatus == 2) {
  342. return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND");
  343. }elseif ($resultStatus == 0) {
  344. return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  345. }else{
  346. return response()->error('CANCELFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  347. }
  348. }
  349. /**
  350. * @apiVersion 1.0.0
  351. * @api {POST} OfficialAccount/subscribeForceSubscribeUsers 更新用户为强制关注
  352. * @apiGroup OfficialAccount
  353. * @apiName addForceSubscribeUsers
  354. * @apiParam {Number} uid 用户id.
  355. * @apiParam {Number} official_account_id 公众账号id.
  356. * @apiParam {Number} distribution_channel_id 分配的渠道id.
  357. * @apiParam {Number} openid 公众号openid.
  358. * @apiParam {Number} appid 微信appID.
  359. * @apiParam {Number} is_subscribed 是否强关.
  360. * @apiParam {String} subscribe_time 强关时间.
  361. * @apiParam {String} unsubscribe_time 取关时间.
  362. * @apiParam {String} last_interactive_time 强关用户与公众号最后交互时间.
  363. * @apiSuccessExample {json} Success-Response:
  364. *
  365. * {
  366. * "code": 0,
  367. * "msg": "",
  368. * "data": []
  369. * }
  370. */
  371. function subscribeForceSubscribeUsers(Request $request) {
  372. $appid = $request->has('appid') ? $request->input('appid') : '';
  373. if(empty($appid)) {
  374. return response()->error("PARAM_EMPTY");
  375. }
  376. $openid = $request->has('openid') ? $request->input('openid') : '';
  377. if(empty($openid)) {
  378. return response()->error("PARAM_EMPTY");
  379. }
  380. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  381. $last_interactive_time = date("Y-m-d H:i:s");
  382. $forceSubscribeUsers = ForceSubscribeUsers::getOneForceSubscribeUsersByOpenid($openid);
  383. if(count($forceSubscribeUsers) > 0){
  384. $forceSubscribeUsers = $forceSubscribeUsers->toArray();
  385. }
  386. $forceSubscribeUsers['appid'] = $appid;
  387. $forceSubscribeUsers['openid'] = $openid;
  388. $forceSubscribeUsers['distribution_channel_id'] = $distribution_channel_id;
  389. $forceSubscribeUsers['last_interactive_time'] = $last_interactive_time;
  390. $resultStatus = ForceSubscribeService::subscribeForceSubscribeUsers($forceSubscribeUsers);
  391. ForceSubscribeService::tempSubscribeForceSubscribeUsers($forceSubscribeUsers);
  392. // 插入关注记录表
  393. $subscribe_record = [
  394. 'appid'=>$appid,
  395. 'openid'=>$openid,
  396. 'distribution_channel_id'=>$distribution_channel_id,
  397. 'is_subscribed'=>1,
  398. 'subscribe_time'=>date('Y-m-d H:i:s'),
  399. ];
  400. SubscribeRecord::create_subscribe_record($subscribe_record);
  401. if ($resultStatus == 1) {
  402. return response()->success();
  403. }elseif ($resultStatus == 2) {
  404. return response()->error("FORCESUBSCRIBEUSER_NOT_FOUND");
  405. }elseif ($resultStatus == 0) {
  406. return response()->error('UPDATEFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  407. }else{
  408. return response()->error('CANCELFORCESUBSCRIBEUSER_UNSUCCESSFUL');
  409. }
  410. }
  411. //------------------------------------方法测试--
  412. function testSendTextOfficialMsg(Request $request) {
  413. $user['uid'] = 13;
  414. $user['last_interactive_time'] = '2017-12-19 01:11:12';
  415. $user['distribution_channel_id'] = 1;
  416. $user['appid'] = 'wxdbc486f1b4f6a8c3';
  417. $user['openid'] = 'oAcqg1Lc9cjEPznNcjU_6oi1Wj0s';
  418. $user['is_subscribed'] = 1;
  419. $user['id'] = 16;
  420. $user['bid'] = 3;
  421. // CustomMsgService::add_news_top_book_test($user);
  422. CustomMsgService::add_news_top_book();
  423. return response()->success(['success'=>1]);
  424. }
  425. function forceSubscribeUserCountByChannelIdAndDate(Request $request) {
  426. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  427. if(empty($distribution_channel_id)) {
  428. return response()->error("PARAM_EMPTY");
  429. }
  430. $startTime = $request->has('startTime') ? $request->input('startTime') : '';
  431. if(empty($startTime)) {
  432. return response()->error("PARAM_EMPTY");
  433. }
  434. $endTime = $request->has('endTime') ? $request->input('endTime') : '';
  435. if(empty($startTime)) {
  436. return response()->error("PARAM_EMPTY");
  437. }
  438. $usersCount = ForceSubscribeService::forceSubscribeUserCountByChannelIdAndDate($distribution_channel_id,$startTime,$endTime);
  439. return response()->success($usersCount);
  440. }
  441. function customerImgUrlByChannelId(Request $request) {
  442. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  443. if(empty($distribution_channel_id)) {
  444. return response()->error("PARAM_EMPTY");
  445. }
  446. $distributionChannelSetting = CustomMsgService::customerImgUrlByChannelId($distribution_channel_id);
  447. if (!empty($distributionChannelSetting)) {
  448. # code...
  449. return response()->success($distributionChannelSetting['customer_img_url']);
  450. }else{
  451. return response()->success(['data'=>0]);
  452. }
  453. }
  454. /**
  455. * 得到素材强关的映射关系(distribution_channel_id,openid => uid)
  456. * @param Request $request
  457. */
  458. function getMaterialForceSubscribeMapping(Request $request) {
  459. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  460. if(empty($distribution_channel_id)) {
  461. return response()->error("PARAM_EMPTY");
  462. }
  463. $openid = $request->has('openid') ? $request->input('openid') : '';
  464. if(empty($openid)) {
  465. return response()->error("PARAM_EMPTY");
  466. }
  467. $material_force_subscribe_mapping = ForceSubscribeService::getMaterialForceSubscribeMapping($distribution_channel_id,$openid);
  468. return response()->success($material_force_subscribe_mapping);
  469. }
  470. function uploadCustomerImgUrl(Request $request) {
  471. $distribution_channel_id = $request->has('distribution_channel_id') ? $request->input('distribution_channel_id') : '';
  472. if(empty($distribution_channel_id)) {
  473. return response()->error("PARAM_EMPTY");
  474. }
  475. // dd($request->hasFile('photo'));
  476. if ($request->hasFile('photo')) {
  477. // dd(11);
  478. // $imagePath = $path = $request->photo->store('images');
  479. $file = $request->file('photo');
  480. $ossImgBackData = $this->ossObject()->uploadFile(env('OSS_BUCKET','yueduyun'), 'service/customimage_'.$distribution_channel_id.'_'.time().'.'.$file->getClientOriginalName(), $file->path());
  481. $ossImg = $ossImgBackData['oss-request-url'];
  482. $customerImgPram['distribution_channel_id'] = $distribution_channel_id;
  483. $customerImgPram['customer_img_url'] = $ossImg;
  484. $sustomMsgService = CustomMsgService::updateCustomerImgUrl($customerImgPram);
  485. return response()->item(new CustomMsgControllerTransformer(), $sustomMsgService);
  486. }
  487. }
  488. function ossObject()
  489. {
  490. $accessKeyId = env('OSS_ACCESS_ID');
  491. $accessKeySecret = env('OSS_ACCESS_KEY');
  492. $endpoint = env('OSS_END_POINT');
  493. $ossClient = null;
  494. try {
  495. $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
  496. } catch (OssException $e) {
  497. return null;
  498. }
  499. return $ossClient;
  500. }
  501. }