| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- <?php
- namespace app\index\model;
- use\think\Model;
- use think\Session;
- use think\cache\driver\Redis;
- use think\Loader;
- use think\Cache;
- class User extends Model
- {
- /**
- * 用户登陆
- */
- public function login($getData)
- {
- $code = -2;
- // 获取的用户信息.
- $name = $getData['name'];
- $password = $getData['password'];
- // 验证传参.
- $data = [
- 'name' => $name,
- 'password' => $password,
- ];
- $validate = Loader::validate('User');
- if (!$validate->scene('login')->check($data)) {
- return [
- 'code' => $code,
- 'msg' => $validate->getError(),
- 'data' => [],
- ];
- }
- // 获取用户信息.
- $userInfoWhere['user_name'] = $name;
- $userInfoWhere['user_status'] = 1;
- $getUserInfo = $this
- ->field('user_name, user_identity, user_phone, user_nickname, user_salt, user_password')
- ->where($userInfoWhere)
- ->find();
- if(empty($getUserInfo)){
- return [
- 'code' => $code,
- 'msg' => lang('EA01002'),
- 'data' => [],
- ];
- }
- $userSalt = $getUserInfo['user_salt'];
- // 验证密码.
- if (md5(md5($userSalt.$password)) !== $getUserInfo['user_password']) {
- return [
- 'code' => $code,
- 'msg' => lang('EA01001'),
- 'data' => [],
- ];
- }
- // 存储token及用户信息.
- $userInfo = [
- 'userName' => $getUserInfo['user_name'],
- 'userId' => $getUserInfo['user_identity'],
- 'userNick' => $getUserInfo['user_nickname'],
- 'phone' => $getUserInfo['user_phone'],
- 'lastOperation' => time(),
- ];
- $userToken = getToken();
- // 修改最后操作信息.
- $upData = [
- 'user_last_time' => time(),
- 'user_last_ip' => $_SERVER['REMOTE_ADDR'],
- 'user_token' => $userToken,
- 'user_lastOperation' => $userInfo['lastOperation'],
- ];
- $upUser = $this
- ->where($userInfoWhere)
- ->update($upData);
- return [
- 'code' => 1,
- 'msg' => lang('MA01001'),
- 'data' => [
- 'userToken' => $userToken,
- 'userInfo' => [
- 'phone' => $getUserInfo['user_phone'],
- 'userId' => $getUserInfo['user_identity'],
- 'name' => $name,
- 'lastOperation' => $userInfo['lastOperation'],
- ],
- ],
- ];
- }//end login()
- /**
- * 用户注册
- */
- public function registered($getData)
- {
- $code = -2;
- // 获取的用户信息.
- $name = $getData['name'];
- $password = $getData['password'];
- $phone = $getData['phone'];
- // 验证传参.
- $data = [
- 'name' => $name,
- 'password' => $password,
- 'phone' => $phone,
- ];
- $validate = Loader::validate('User');
- if (!$validate->scene('registered')->check($data)) {
- return [
- 'code' => $code,
- 'msg' => $validate->getError(),
- 'data' => [],
- ];
- }
- // 查询用户是否存在.
- $haveUser = $this
- ->field('user_id')
- ->where('user_name', $name)
- ->find();
- if (empty($haveUser) === false) {
- return [
- 'code' => $code,
- 'msg' => lang('EA01009'),
- 'data' => [],
- ];
- }
- $userToken = getToken();
- // 新增数据.
- $genPassword = GenPassword($password);
- $userData['user_name'] = $name;
- $userData['user_phone'] = $phone;
- $userData['user_identity'] = UUID();
- $userData['user_password'] = $genPassword['password'];
- $userData['user_salt'] = $genPassword['encryption'];
- $userData['user_register_time'] = time();
- $userData['user_register_ip'] = $_SERVER['REMOTE_ADDR'];
- $userData['user_last_time'] = time();
- $userData['user_last_ip'] = $_SERVER['REMOTE_ADDR'];
- $userData['user_token'] = $userToken;
- $userData['user_lastOperation'] = time();
- // 新增用户.
- $addUser = $this->insert($userData);
- if (empty($addUser) === false) {
- // 存储token及用户信息.
- $userInfo = [
- 'userName' => $name,
- 'userId' => $userData['user_identity'],
- 'phone' => $userData['user_phone'],
- 'lastOperation' => time(),
- ];
- return [
- 'code' => 1,
- 'msg' => lang('MA01002'),
- 'data' => [
- 'userToken' => $userToken,
- 'userInfo' => [
- 'phone' => $userInfo['phone'],
- 'name' => $userInfo['userName'],
- 'userId' => $userInfo['userId'],
- 'lastOperation' => $userInfo['lastOperation'],
- ],
- ],
- ];
- } else {
- return [
- 'code' => $code,
- 'msg' => lang('EC01002'),
- 'data' => [],
- ];
- }//end if
- }//end registered()
- /**
- * 退出登陆
- */
- public function logout()
- {
- // // 获取的传参信息.
- $userToken = input('get.userToken');
- $userInfoWhere['user_token'] = $userToken;
- $upData = [
- 'user_token' => '',
- 'user_lastOperation' => '',
- ];
- $upUser = $this
- ->where($userInfoWhere)
- ->update($upData);
- return [
- 'code' => 1,
- 'msg' => lang('MA01003'),
- 'data' => [],
- ];
- }//end logout()
- /**
- * 当前用户信息
- */
- public function currentUser($userToken)
- {
- // $userToken = input('get.userToken');
- // 获取用户信息.
- $userInfoWhere['user_token'] = $userToken;
- $getUserInfo = $this
- ->field('user_name, user_identity, user_phone, user_nickname, user_salt, user_password,user_token,user_lastOperation')
- ->where($userInfoWhere)
- ->find()
- ->toArray();
- return [
- 'code' => 1,
- 'msg' => lang('MA01003'),
- 'data' => $getUserInfo,
- ];
- }//end currentUser()
- /**
- * 更新用户操作时间
- */
- public function updateLastOperation($userToken,$time)
- {
- $userInfoWhere['user_token'] = $userToken;
- $upData = [
- 'user_lastOperation' => $time,
- ];
- $upUser = $this
- ->where($userInfoWhere)
- ->update($upData);
- }//end updateLastOperation()
- /**
- * 修改用户密码
- */
- public function updatePassword($getData)
- {
- $code = -2;
- // 验证传参.
- $validate = Loader::validate('User');
- if (!$validate->scene('updatePassword')->check($getData)) {
- return [
- 'code' => $code,
- 'msg' => $validate->getError(),
- 'data' => [],
- ];
- }
- $userToken = input('get.userToken');
- $conditions_user['user_token'] = $userToken;
- $userInfo = $this
- ->field('user_salt, user_password')
- ->where($conditions_user)
- ->find();
- // 验证旧密码.
- $userSalt = $userInfo['user_salt'];
- if (md5(md5($userSalt.$getData['oldPassword'])) !== $userInfo['user_password']) {
- return [
- 'code' => $code,
- 'msg' => lang('EA01006'),
- 'data' => [],
- ];
- }
- // 修改密码.
- $newPassword = GenPassword($getData['newPassword']);
- $updateData = [
- 'user_password' => $newPassword['password'],
- 'user_salt' => $newPassword['encryption'],
- ];
- $getUserInfo = $this
- ->where($conditions_user)
- ->update($updateData);
- if (empty($getUserInfo) === true) {
- return [
- 'code' => $code,
- 'msg' => lang('EC01002'),
- 'data' => [],
- ];
- } else {
- $code = 1;
- return [
- 'code' => $code,
- 'msg' => lang('MC01004'),
- 'data' => [],
- ];
- }
- }//end updatePassword()
- /**
- * 验证用户密码
- */
- public function checkPwd($getData)
- {
- $userToken = input('get.userToken');
- $conditions_user['user_token'] = $userToken;
- // 获取用户信息.
- $userInfo = $this
- ->field('user_salt, user_password')
- ->where($conditions_user)
- ->find();
- if(empty($getData['password'])){
- return [
- 'code' => -2,
- 'msg' => lang('EA01011'),
- 'data' => [],
- ];
- }
- if(empty($userInfo)){
- return [
- 'code' => -2,
- 'msg' => lang('EA01012'),
- 'data' => [],
- ];
- }
- if($userInfo['user_password'] != md5(md5($userInfo['user_salt'].$getData['password']))){
- return [
- 'code' => -2,
- 'msg' => lang('EA01001'),
- 'data' => [],
- ];
- }
- return [
- 'code' => 1,
- 'msg' => '',
- 'data' => $userInfo,
- ];
- }//end checkPwd()
- }
|