Logins.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace app\routine\controller;
  3. use app\admin\model\system\SystemConfig;
  4. use app\routine\model\routine\RoutineServer;
  5. use app\routine\model\user\RoutineUser;
  6. use service\JsonService;
  7. use service\UtilService;
  8. use service\MiniProgramService;
  9. use think\Controller;
  10. use think\Request;
  11. class Logins extends Controller{
  12. /**
  13. * 获取用户信息
  14. * @param Request $request
  15. * @return \think\response\Json
  16. */
  17. public function index(Request $request){
  18. $data = UtilService::postMore([['info',[]]],$request);//获取前台传的code
  19. $data = $data['info'];
  20. unset($data['info']);
  21. //解密获取用户信息
  22. $iv = urlencode($data['iv']);
  23. $data['iv'] = urldecode($iv);
  24. try{
  25. $userInfo = $this->decryptCode($data['session_key'], $data['iv'], $data['encryptedData']);
  26. if(!isset($userInfo['openId'])) return JsonService::fail('openid获取失败');
  27. if(!isset($userInfo['unionId'])) $userInfo['unionid'] = '';
  28. $userInfo['session_key'] = $data['session_key'];
  29. $userInfo['spid'] = $data['spid'];//推广人ID
  30. $userInfo['spreadid'] = (int)$data['spreadid'];//推广人ID 2.5.36
  31. $dataOauthInfo = RoutineUser::routineOauthnew($userInfo);
  32. $userInfo['uid'] = $dataOauthInfo['uid'];
  33. $userInfo['page'] = $dataOauthInfo['page'];
  34. $userInfo['status'] = RoutineUser::isUserStatus($userInfo['uid']);
  35. $userInfo['uidShare'] = RoutineUser::isUserShare($userInfo['uid']);//我的推广二维码ID
  36. return JsonService::successful($userInfo);
  37. }catch (\Exception $e){
  38. return JsonService::fail('error',$e->getMessage());
  39. }
  40. }
  41. /**
  42. * 根据前台传code 获取 openid 和 session_key //会话密匙
  43. * @param string $code
  44. * @return array|mixed
  45. */
  46. public function setCode(Request $request){
  47. $data = UtilService::postMore([['info', []]], $request);//获取前台传的code
  48. // var_dump($data);die;
  49. $code = '';
  50. if(isset($data['info']['code']))
  51. $code = $data['info']['code'];
  52. else
  53. JsonService::fail('未获取到code');
  54. if($code == '') return [];
  55. $info = MiniProgramService::getUserInfo($code);
  56. return $info;
  57. }
  58. /**
  59. * 解密数据
  60. * @param string $code
  61. * @return array|mixed
  62. */
  63. public function decryptCode($session = '', $iv = '', $encryptData = '')
  64. {
  65. if (!$session) return JsonService::fail('session参数错误');
  66. if (!$iv) return JsonService::fail('iv参数错误');
  67. if (!$encryptData) return JsonService::fail('encryptData参数错误');
  68. return MiniProgramService::encryptor($session, $iv, $encryptData);
  69. }
  70. /**
  71. * 获取网站logo
  72. */
  73. public function get_enter_logo(){
  74. $siteLogo = SystemConfig::getValue('routine_logo');
  75. $siteName = SystemConfig::getValue('routine_name');
  76. $data['site_logo'] = $siteLogo;
  77. $data['site_name'] = $siteName;
  78. return JsonService::successful($data);
  79. }
  80. /**
  81. * 获取网站顶部颜色
  82. */
  83. public function get_routine_config(){
  84. $routineConfig = SystemConfig::getMore('site_name,site_logo,site_url,site_close,site_service_phone,routine_logo,routine_name,routine_style');
  85. $data['routine_config'] = $routineConfig;
  86. return JsonService::successful($data);
  87. }
  88. /**
  89. * 获取网站顶部颜色
  90. */
  91. public function get_routine_style(){
  92. $routineStyle = SystemConfig::getValue('routine_style');
  93. $data['routine_style'] = $routineStyle;
  94. return JsonService::successful($data);
  95. }
  96. /**
  97. * 获取客服电话
  98. */
  99. public function get_site_service_phone(){
  100. $siteServicePhone = SystemConfig::getValue('site_service_phone');
  101. $data['site_service_phone'] = $siteServicePhone;
  102. return JsonService::successful($data);
  103. }
  104. }