MemberController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\ApiController;
  4. use App\Models\Member;
  5. use App\Servers\MemberOpenServer;
  6. use App\Servers\MemberServer;
  7. use App\Servers\PassServer;
  8. use App\Servers\WeixinServer;
  9. use Illuminate\Support\Facades\DB;
  10. /**
  11. * 会员信息
  12. */
  13. class MemberController extends ApiController
  14. {
  15. /**
  16. * 微信小程序注册登录
  17. */
  18. function appletLogin()
  19. {
  20. $code = request()->input('code');
  21. if (empty($code)){
  22. return $this->apiResponseError('缺少必要信息');
  23. }
  24. $openInfo = WeixinServer::creatServer()->getAppletsOpenId($code);
  25. if(!isset($openInfo['openid'])){
  26. return $this->apiResponseError(empty($openInfo['msg'])?'openid获取失败':$openInfo['msg']);
  27. }
  28. DB::beginTransaction();
  29. // try {
  30. //检查openid是否存在
  31. $m_id = MemberOpenServer::creatServer()->getUserId(4,$openInfo['openid'],$openInfo['unionid']);
  32. if($m_id){
  33. //重置token
  34. $token_str = PassServer::creatServer()->getMemberToken($m_id);
  35. Member::where('id', $m_id)->update(['token_str' => $token_str]);
  36. $member = ['m_id' => $m_id, 'token' => $token_str];
  37. }else{
  38. $member=MemberServer::creatServer()->register();
  39. if (empty($member)){
  40. DB::rollBack();
  41. return $this->apiResponseError('注册失败1');
  42. }
  43. $memberOpen=MemberOpenServer::creatServer()->setUserOpenid($member['m_id'],$member['main_id'],4,$openInfo['openid'],$openInfo['unionid']);
  44. if(empty($memberOpen)){
  45. DB::rollBack();
  46. return $this->apiResponseError('注册失败2');
  47. }
  48. }
  49. //清除会员缓存
  50. MemberServer::creatServer()->delMemberCache($member['m_id']);
  51. DB::commit();
  52. return $this->apiResponseSuccess('成功',$member);
  53. // }catch (\Exception $e){
  54. // DB::rollBack();
  55. // return $this->apiResponseError('注册失败');
  56. // }
  57. }
  58. }