MemberService.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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\Services\Common;
  12. use App\Models\MemberModel;
  13. use App\Models\UserModel;
  14. use App\Services\BaseService;
  15. use Earnp\GoogleAuthenticator\GoogleAuthenticator;
  16. /**
  17. * 会员管理-服务类
  18. * @author laravel开发员
  19. * @since 2020/11/11
  20. * Class MemberService
  21. * @package App\Services\Common
  22. */
  23. class MemberService extends BaseService
  24. {
  25. /**
  26. * 构造函数
  27. * @author laravel开发员
  28. * @since 2020/11/11
  29. * MemberService constructor.
  30. */
  31. public function __construct()
  32. {
  33. $this->model = new MemberModel();
  34. }
  35. /**
  36. * 获取资料详情
  37. * @param $where
  38. * @param array $field
  39. */
  40. public function getInfo($where, array $field = [])
  41. {
  42. $field = $field ? $field : ['id', 'username', 'realname', 'credit','trade_password', 'nickname', 'openid', 'idcard', 'trc_address', 'erc_address', 'erc_hexaddress', 'source', 'idcard_check', 'idcard_front_img', 'idcard_back_img', 'idcard_hand_img', 'safe_level', 'user_type', 'member_level', 'usdt_num', 'user_type', 'status', 'credit', 'avatar'];
  43. if (is_array($where)) {
  44. $info = $this->model->where($where)->select($field)->first();
  45. } else {
  46. $info = $this->model->where(['id' => (int)$where])->select($field)->first();
  47. }
  48. $info = $info ? $info->toArray() : [];
  49. if ($info) {
  50. $info['avatar'] = $info['avatar'] ? get_image_url($info['avatar']) : '';
  51. $info['idcard_front_img'] = $info['idcard_front_img'] ? get_image_url($info['idcard_front_img']) : '';
  52. $info['idcard_back_img'] = $info['idcard_back_img'] ? get_image_url($info['idcard_back_img']) : '';
  53. $info['usdt_num'] = isset($info['usdt_num']) ? moneyFormat($info['usdt_num'], 4) : '0.0000';
  54. $bond = UserModel::where(['user_id'=> $info['id']])->value('bond');
  55. $info['bond'] = moneyFormat($bond, 2);
  56. // 收款二维码
  57. $qrcode = \App\Services\Api\MemberService::make()->makeQrcode($info['trc_address']);
  58. $info['trc_qrcode'] = $qrcode? get_image_url($qrcode) : '';
  59. $ercQrcode = \App\Services\Api\MemberService::make()->makeQrcode($info['erc_hexaddress']);
  60. $info['erc_qrcode'] = $ercQrcode? get_image_url($ercQrcode) : '';
  61. // 谷歌验证码
  62. $info['google_qrcode'] = '';
  63. $googleSecret = UserModel::where(['user_id'=> $info['id']])->value('google_secret');
  64. if(empty($googleSecret)){
  65. $google = GoogleAuthenticator::CreateSecret();
  66. $googleSecret = isset($google['secret'])? $google['secret'] : '';
  67. UserModel::where(['user_id'=> $info['id']])->update(['google_secret'=>$googleSecret]);
  68. }
  69. if($googleSecret){
  70. $url = "otpauth://totp/".'otc168('.$info['username'].")?secret=".$googleSecret;
  71. $googleQrcode = \App\Services\Api\MemberService::make()->makeQrcode($url);
  72. $info['google_qrcode'] = $googleQrcode? get_image_url($googleQrcode) : '';
  73. }
  74. }
  75. return $info;
  76. }
  77. /**
  78. * 添加会编辑会员
  79. * @return array
  80. * @since 2020/11/11
  81. * @author laravel开发员
  82. */
  83. public function edit()
  84. {
  85. // 请求参数
  86. $data = request()->all();
  87. // 头像处理
  88. $avatar = trim($data['avatar']);
  89. if (strpos($avatar, "temp")) {
  90. $data['avatar'] = save_image($avatar, 'member');
  91. } else {
  92. $data['avatar'] = str_replace(IMG_URL, "", $data['avatar']);
  93. }
  94. // 出生日期
  95. if ($data['birthday']) {
  96. $data['birthday'] = strtotime($data['birthday']);
  97. }
  98. // 登录密码
  99. if ($data['password']) {
  100. $data['password'] = get_password($data['password'] . $data['username']);
  101. }
  102. // 城市处理
  103. $city = isset($data['city']) ? $data['city'] : [3];
  104. if (!empty($data['city'])) {
  105. // 省份
  106. $data['province_id'] = $city[0];
  107. // 城市
  108. $data['city_id'] = $city[1];
  109. // 县区
  110. $data['district_id'] = $city[2];
  111. }
  112. $id = isset($data['id'])? $data['id'] : 0;
  113. if($id && $this->model->where(['id'=> $id])->value('trade_password')){
  114. $data['safe_level'] = 2;
  115. }
  116. if(isset($data['idcard_check']) && $data['idcard_check']==1){
  117. $data['safe_level'] = $data['safe_level']==2? 3 : $data['safe_level'];
  118. }
  119. unset($data['city']);
  120. return parent::edit($data); // TODO: Change the autogenerated stub
  121. }
  122. }