User.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. <?php
  2. namespace app\client\controller;
  3. use app\logics\UserLogic;
  4. use app\model\Customer;
  5. use app\model\CustomerClue;
  6. use app\model\Employee;
  7. use Firebase\JWT\JWT;
  8. use openssl\Aes;
  9. use wx\miniprogram\User as MiniprogramUser;
  10. class User extends Base
  11. {
  12. // /**
  13. // * 授权获取用户信息(客户小程序调用)
  14. // */
  15. // public function setUserInfo($encryptedData, $iv, $signature, $rawData)
  16. // {
  17. // $request = request();
  18. // $token = $request->token;
  19. // // 计算签名是否正确
  20. // $sign = sha1($rawData . $token['session_key']);
  21. // if ($sign != $signature) {
  22. // return json(['code' => self::error_debug_msg, 'msg' => '签名验证失败']);
  23. // }
  24. // $appid = config("app.$token[client_type].mini_appid");
  25. // // 解析获取用户数据
  26. // $user = new MiniprogramUser();
  27. // $data = $user->getInfo($appid, $token['session_key'], $encryptedData, $iv);
  28. // $saveData = [
  29. // 'unionid' => $token['unionid'],
  30. // 'city' => $data['city'],
  31. // 'province' => $data['province'],
  32. // 'country' => $data['country'],
  33. // 'sex' => $data['gender'],
  34. // 'nickname' => $data['nickName'],
  35. // 'headimgurl' => $data['avatarUrl'],
  36. // ];
  37. // // 保存用户信息
  38. // $logic = new UserLogic();
  39. // $info = $logic->saveMiniInfo($saveData);
  40. // // 更新token
  41. // if (empty($token['uid'])) {
  42. // $token['uid'] = $info['id'];
  43. // $binded = Employee::where([['uid', '=', $info['id']], ['grant_id', '<>', 0]])->count();
  44. // $token['isEmployee'] = $binded ? true : false;
  45. // // 添加客户线索
  46. // if ($token['uid'] && !$token['isEmployee']) {
  47. // $this->addClue([
  48. // 'uid' => $token['uid'],
  49. // 'employee_id' => $token['share_employee'] ?? 0,
  50. // 'org_id' => $token['share_org'] ?? $token['root_org']
  51. // ]);
  52. // }
  53. // }
  54. // $data = http_build_query($token);
  55. // $aes = new Aes(config('app.jwt_key'));
  56. // $key = $aes->encrypt($data);
  57. // $payload = array(
  58. // "iss" => "https://" . $this->request->domain(),
  59. // "iat" => time(),
  60. // "nbf" => time(),
  61. // "data" => $key
  62. // );
  63. // // 自定义登陆状态
  64. // $token = JWT::encode($payload, config('app.jwt_key'));
  65. // return json(['code' => self::success, 'msg' => '信息保存成功', 'token' => $token]);
  66. // }
  67. // /**
  68. // * 授权获取并保存用户手机号
  69. // */
  70. // public function setUserMobile($encryptedData, $iv)
  71. // {
  72. // $request = request();
  73. // $appid = config('app.client_appid');
  74. // $user = new MiniprogramUser();
  75. // $data = $user->getInfo($appid, $request->token['session_key'], $encryptedData, $iv);
  76. // $saveData = [
  77. // 'unionid' => $request->token['unionid'],
  78. // 'phone' => $data['phoneNumber']
  79. // ];
  80. // // 保存用户信息
  81. // $logic = new UserLogic();
  82. // $info = $logic->saveMiniInfo($saveData);
  83. // // 将手机号为此号码的客户uid进行更新
  84. // Customer::where([['phone', '=', $data['phoneNumber']], ['uid', '=', 'is NULL']])->update(['uid' => $info->id]);
  85. // // 线索更新手机号
  86. // if (!empty($request->token['share_employee'])) {
  87. // CustomerClue::where([
  88. // 'uid' => $request->token['uid'],
  89. // 'employee_id' => $request->token['share_employee']
  90. // ])->update(['phone' => $data['phoneNumber']]);
  91. // }
  92. // return json(['code' => self::success, 'msg' => '信息保存成功', 'mobile' => $data['phoneNumber']]);
  93. // }
  94. // private function addClue($data)
  95. // {
  96. // $had = CustomerClue::where($data)->find();
  97. // if (!$had) {
  98. // CustomerClue::create($data);
  99. // } else {
  100. // $had->updatetime = date('Y-m-d H:i:s');
  101. // $had->save();
  102. // }
  103. // }
  104. }