抖音小程序

UserController.php 7.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\Securecode;
  5. use App\Models\Users;
  6. use App\Service\UserService;
  7. use Illuminate\Http\Request;
  8. class UserController extends Controller
  9. {
  10. /* 发送验证码 */
  11. public function sendMobileCode(Request $request) {
  12. $validator = \Validator::make($request->all(), [
  13. 'mobile' => 'required|regex:/^1\d{10}$/',
  14. 'open_id' => 'required',
  15. 'app_id' => 'required',
  16. ], [
  17. 'mobile.required' => '手机号必填',
  18. 'mobile.regex' => '手机号不合法',
  19. 'open_id.required' => '用户标识必填',
  20. 'app_id.required' => '小程序标识必填'
  21. ]);
  22. if ($validator->fails()) {
  23. return self::returnValue($validator->getMessageBag(), 1102);
  24. }
  25. $mobile = $request->input('mobile');
  26. $openId = $request->input('open_id');
  27. $appId = $request->input('app_id');
  28. # 查询openid是否合法
  29. $userInfo = Users::getUserInfo($appId, $openId);
  30. if(empty($userInfo)) {
  31. return self::returnValue('', 1001);
  32. }
  33. # 更新用户表
  34. if(empty($userInfo->mobile) || $userInfo->mobile != $mobile) {
  35. list($user, $code) = UserService::updateUserByOpenId($userInfo->id, ['mobile' => $mobile]);
  36. if(0 != $code) {
  37. return self::returnValue('', $code);
  38. }
  39. }
  40. # 发送短信验证码
  41. $data = Securecode::sendPhoneVerify($userInfo);
  42. return self::returnValue($data);
  43. }
  44. /* 短信验证码登录 */
  45. public function loginMobileCode(Request $request) {
  46. $validator = \Validator::make($request->all(), [
  47. 'mobile' => 'required|regex:/^1\d{10}$/',
  48. 'open_id' => 'required',
  49. 'app_id' => 'required',
  50. 'code' => 'required'
  51. ], [
  52. 'mobile.required' => '手机号必填',
  53. 'mobile.regex' => '手机号不合法',
  54. 'open_id.required' => '用户标识必填',
  55. 'app_id.required' => '小程序标识必填',
  56. 'code.required' => '验证码必填'
  57. ]);
  58. if ($validator->fails()) {
  59. return self::returnValue($validator->getMessageBag(), 1102);
  60. }
  61. $mobile = $request->input('mobile');
  62. $openId = $request->input('open_id');
  63. $appId = $request->input('app_id');
  64. $code = $request->input('code');
  65. # 查询openid是否合法
  66. $userInfo = Users::getUserInfo($appId, $openId);
  67. if(empty($userInfo)) {
  68. return self::returnValue('', 1001);
  69. }
  70. $flag = Securecode::receivePhoneVerify($mobile, $code);
  71. if(!$flag) {
  72. return self::returnValue('', 1004);
  73. }
  74. return self::returnValue($userInfo, 0);
  75. }
  76. /* 抖音默认授权码登录 */
  77. public function loginCode(Request $request) {
  78. $validator = \Validator::make($request->all(),[
  79. 'app_id' => 'required',
  80. 'code' => 'required',
  81. ]);
  82. if ($validator->fails()) {
  83. return self::returnValue($validator->getMessageBag(), 1102);
  84. }
  85. $appId = $request->input('app_id');
  86. $code = $request->input('code');
  87. list($data, $errcode) = UserService::loginCode($appId, $code);
  88. return self::returnValue($data, $errcode);
  89. }
  90. /* 收藏浏览列表 */
  91. public function likeList(Request $request) {
  92. $validator = \Validator::make($request->all(), [
  93. 'app_id' => 'required|string',// 小程序appid
  94. 'open_id' => 'required|string'
  95. ]);
  96. if ($validator->fails()) {
  97. return self::returnValue($validator->getMessageBag(), 1102);
  98. }
  99. $appId = $request->input('app_id');
  100. $openId = $request->input('open_id');
  101. $page = $request->input('page');
  102. $pageSize = $request->input('page_size');
  103. $source = $request->input('source');// 列表 1追剧列表 2历史记录 3收藏喜欢
  104. list($data, $count) = UserService::likeList($appId, $openId, $source, $page, $pageSize);
  105. return self::returnPageValue($data, $count, $pageSize, $page);
  106. }
  107. /* 收藏、取消收藏、浏览上报 */
  108. public function like(Request $request) {
  109. $validator = \Validator::make($request->all(), [
  110. 'app_id' => 'required|string',// 小程序appid
  111. 'open_id' => 'required|string',
  112. 'album_id' => 'required',
  113. 'type' => 'required|in:1,2',
  114. 'status' => 'required|in:1,0',// 1添加 0取消
  115. ]);
  116. if ($validator->fails()) {
  117. return self::returnValue($validator->getMessageBag(), 1102);
  118. }
  119. $appId = $request->input('app_id');
  120. $openId = $request->input('open_id');
  121. $type = $request->input('type');
  122. $albumId = $request->input('album_id');
  123. $episodeId = $request->input('episode_id');
  124. $seq = $request->input('seq');
  125. $status = $request->input('status');
  126. list($res, $code) = UserService::like($appId, $openId, $type, $albumId, $episodeId, $status, $seq);
  127. return self::returnValue($res, $code);
  128. }
  129. /* 用户观看广告行为上报 */
  130. public function watchAd(Request $request) {
  131. $validator = \Validator::make($request->all(), [
  132. 'app_id' => 'required',// 小程序appid
  133. 'open_id' => 'required',
  134. ]);
  135. if ($validator->fails()) {
  136. return self::returnValue($validator->getMessageBag(), 1102);
  137. }
  138. $appId = $request->input('app_id');
  139. $openId = $request->input('open_id');
  140. $albumId = $request->input('album_id');
  141. $episodeId = $request->input('episode_id');
  142. $adPlacementId = $request->input('ad_placement_id');
  143. $code = UserService::watchAd($appId, $openId, $albumId, $episodeId, $adPlacementId);
  144. return self::returnValue('', $code);
  145. }
  146. public function userProfile(Request $request) {
  147. $validator = \Validator::make($request->all(), [
  148. 'app_id' => 'required',// 小程序appid
  149. 'open_id' => 'required',
  150. ]);
  151. if ($validator->fails()) {
  152. return self::returnValue($validator->getMessageBag(), 1102);
  153. }
  154. $appId = $request->input('app_id');
  155. $openId = $request->input('open_id');
  156. $params['avatar_url'] = $request->input('avatar_url');
  157. $params['nick_name'] = $request->input('nick_name');
  158. $params['gender'] = $request->input('gender');
  159. $params['city'] = $request->input('city');
  160. $params['province'] = $request->input('province');
  161. $params['country'] = $request->input('country');
  162. $params['language'] = $request->input('language');
  163. # 查询openid是否合法
  164. $userInfo = Users::getUserInfo($appId, $openId);
  165. if(empty($userInfo)) {
  166. return self::returnValue('', 1001);
  167. }
  168. list($user, $code) = UserService::updateUserByOpenId($userInfo->id, $params);
  169. return self::returnValue($user, $code);
  170. }
  171. }