UsersController.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Http\Controllers\Controller;
  4. use App\Module\Base;
  5. use App\Module\Users;
  6. use DB;
  7. use Request;
  8. use Session;
  9. /**
  10. * @apiDefine users
  11. *
  12. * 会员
  13. */
  14. class UsersController extends Controller
  15. {
  16. public function __invoke($method, $action = '')
  17. {
  18. $app = $method ? $method : 'main';
  19. if ($action) {
  20. $app .= "__" . $action;
  21. }
  22. return (method_exists($this, $app)) ? $this->$app() : Base::ajaxError("404 not found (" . str_replace("__", "/", $app) . ").");
  23. }
  24. /**
  25. * 登陆
  26. * @return array
  27. */
  28. public function login()
  29. {
  30. $user = Base::DBC2A(DB::table('users')->where('username', trim(Request::input('username')))->first());
  31. if (empty($user)) {
  32. return Base::retError('账号或密码错误。');
  33. }
  34. if ($user['userpass'] != Base::md52(Request::input('userpass'))) {
  35. return Base::retError('账号或密码错误!');
  36. }
  37. //
  38. $array = [
  39. 'token' => Users::token($user),
  40. 'loginnum' => $user['loginnum'] + 1,
  41. 'lastip' => Base::getIp(),
  42. 'lastdate' => Base::time(),
  43. 'lineip' => Base::getIp(),
  44. 'linedate' => Base::time(),
  45. ];
  46. Base::array_over($user, $array);
  47. DB::table('users')->where('id', $user['id'])->update($array);
  48. //
  49. if (intval(Request::input('onlydata')) !== 1) {
  50. Session::put('sessionToken', $array['token']);
  51. }
  52. return Base::retSuccess("登陆成功", Users::retInfo($user));
  53. }
  54. /**
  55. * 获取会员信息
  56. * @return array|mixed
  57. */
  58. public function info()
  59. {
  60. $callback = Request::input('callback');
  61. //
  62. $user = Users::authE();
  63. if (Base::isError($user)) {
  64. if (strlen($callback) > 3) {
  65. return $callback . '(' . json_encode($user) . ')';
  66. }
  67. return $user;
  68. } else {
  69. $user = $user['data'];
  70. }
  71. //
  72. if (strlen($callback) > 3) {
  73. return $callback . '(' . json_encode(Base::retSuccess('success', Users::retInfo($user))) . ')';
  74. }
  75. return Base::retSuccess('success', Users::retInfo($user));
  76. }
  77. /**
  78. * 修改资料
  79. * @return array|mixed
  80. */
  81. public function editdata()
  82. {
  83. $user = Users::authE();
  84. if (Base::isError($user)) {
  85. return $user;
  86. } else {
  87. $user = $user['data'];
  88. }
  89. //
  90. $array = [];
  91. //头像
  92. $userimg = Request::input('userimg');
  93. if ($userimg) {
  94. $userimg = is_array($userimg) ? $userimg[0]['path'] : $userimg;
  95. $array['userimg'] = Base::unFillUrl($userimg);
  96. }
  97. //昵称
  98. $nickname = trim(Request::input('nickname'));
  99. if ($nickname) {
  100. if (mb_strlen($nickname) < 2) {
  101. return Base::retError('昵称不可以少于2个字!');
  102. } elseif (mb_strlen($nickname) > 8) {
  103. return Base::retError('昵称最多只能设置8个字!');
  104. } else {
  105. $array['nickname'] = $nickname;
  106. }
  107. }
  108. //职位/职称
  109. $profession = trim(Request::input('profession'));
  110. if ($profession) {
  111. if (mb_strlen($profession) < 2) {
  112. return Base::retError('昵称不可以少于2个字!');
  113. } elseif (mb_strlen($profession) > 20) {
  114. return Base::retError('昵称最多只能设置20个字!');
  115. } else {
  116. $array['profession'] = $profession;
  117. }
  118. }
  119. //
  120. if ($array) {
  121. DB::table('users')->where('id', $user['id'])->update($array);
  122. } else {
  123. return Base::retError('请设置要修改的内容!');
  124. }
  125. return Base::retSuccess('修改成功!');
  126. }
  127. /**
  128. * 修改密码
  129. * @return array|mixed
  130. */
  131. public function editpass()
  132. {
  133. $user = Users::authE();
  134. if (Base::isError($user)) {
  135. return $user;
  136. } else {
  137. $user = $user['data'];
  138. }
  139. //
  140. $oldpass = trim(Request::input('oldpass'));
  141. $newpass = trim(Request::input('newpass'));
  142. if (strlen($newpass) < 6) {
  143. return Base::retError('密码设置不能小于6位数!');
  144. }
  145. if ($oldpass == $newpass) {
  146. return Base::retError('新旧密码一致!');
  147. }
  148. //
  149. if ($user['setpass']) {
  150. $verify = DB::table('users')->where(['id'=>$user['id'], 'userpass'=>Base::md52($oldpass)])->count();
  151. if (empty($verify)) {
  152. return Base::retError('请填写正确的旧密码!');
  153. }
  154. }
  155. DB::table('users')->where('id', $user['id'])->update(['encrypt' => Base::generatePassword(6), 'userpass'=>Base::md52($newpass)]);
  156. return Base::retSuccess('修改成功');
  157. }
  158. }