UserModel.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | LARAVEL8.0 框架 [ LARAVEL ][ RXThinkCMF ]
  4. // +----------------------------------------------------------------------
  5. // | 版权所有 2017~2021 LARAVEL研发中心
  6. // +----------------------------------------------------------------------
  7. // | 官方网站: http://www.laravel.cn
  8. // +----------------------------------------------------------------------
  9. // | Author: laravel开发员 <laravel.qq.com>
  10. // +----------------------------------------------------------------------
  11. namespace App\Models;
  12. use App\Services\Api\MemberService;
  13. use App\Services\Common\UserRoleService;
  14. use Earnp\GoogleAuthenticator\GoogleAuthenticator;
  15. /**
  16. * 会员管理-模型
  17. * @author laravel开发员
  18. * @since 2020/11/10
  19. * Class AdminModel
  20. * @package App\Models
  21. */
  22. class UserModel extends BaseModel
  23. {
  24. // 设置数据表
  25. protected $table = 'user';
  26. /**
  27. * 获取数据信息
  28. * @param int $id 用户ID
  29. * @return array|string
  30. * @author laravel开发员
  31. * @since 2020/11/10
  32. */
  33. public function getInfo($id)
  34. {
  35. $info = parent::getInfo($id); // TODO: Change the autogenerated stub
  36. if ($info) {
  37. // 头像
  38. if ($info['avatar']) {
  39. $info['avatar'] = get_image_url($info['avatar']);
  40. }
  41. // 性别
  42. if ($info['gender']) {
  43. $info['gender_name'] = config('admin.gender_list')[$info['gender']];
  44. }
  45. // 谷歌验证码处理
  46. $info['google_qrcode'] = '';
  47. if(empty($info['google_key'])){
  48. $googleData = GoogleAuthenticator::CreateSecret();
  49. $googleKey = isset($googleData['secret'])?$googleData['secret'] : '';
  50. $googleUrl = isset($googleData['codeurl'])?$googleData['codeurl'] : '';
  51. if($googleKey && $googleUrl){
  52. UserModel::where(['id'=>$id])->update(['google_key'=> $googleKey,'update_time'=>time()]);
  53. $info['google_key'] = $googleKey;
  54. $info['google_qrcode'] = MemberService::make()->makeQrcode($googleUrl,'google',true);
  55. $info['google_qrcode'] = get_image_url($info['google_qrcode']);
  56. }
  57. }else{
  58. $googleUrl = "otpauth://totp/?secret={$info['google_key']}";
  59. $info['google_qrcode'] = MemberService::make()->makeQrcode($googleUrl,'google',true);
  60. $info['google_qrcode'] = get_image_url($info['google_qrcode']);
  61. }
  62. // 获取用户角色列表
  63. $userRoleService = new UserRoleService();
  64. $roleList = $userRoleService->getUserRoleList($id);
  65. $info['roles'] = $roleList;
  66. }
  67. return $info;
  68. }
  69. }