update api user module
This commit is contained in:
parent
66fd313640
commit
37341885ed
|
@ -18,7 +18,7 @@ class UserController extends BaseApiController
|
||||||
$params = (new PasswordValidate())->post()->goCheck('resetPassword');
|
$params = (new PasswordValidate())->post()->goCheck('resetPassword');
|
||||||
$result = UserLogic::resetPassword($params);
|
$result = UserLogic::resetPassword($params);
|
||||||
if (true === $result) {
|
if (true === $result) {
|
||||||
return $this->success('操作成功', [], 1, 1);
|
return $this->success('操作成功');
|
||||||
}
|
}
|
||||||
return $this->fail(UserLogic::getError());
|
return $this->fail(UserLogic::getError());
|
||||||
}
|
}
|
||||||
|
@ -29,25 +29,30 @@ class UserController extends BaseApiController
|
||||||
$params = (new PasswordValidate())->post()->goCheck('changePassword');
|
$params = (new PasswordValidate())->post()->goCheck('changePassword');
|
||||||
$result = UserLogic::changePassword($params, $this->userId);
|
$result = UserLogic::changePassword($params, $this->userId);
|
||||||
if (true === $result) {
|
if (true === $result) {
|
||||||
return $this->success('操作成功', [], 1, 1);
|
return $this->success('操作成功');
|
||||||
}
|
}
|
||||||
return $this->fail(UserLogic::getError());
|
return $this->fail(UserLogic::getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
//绑定/变更 手机号
|
//绑定/变更 手机号
|
||||||
public function bindMobile(): Json
|
public function changeMobile(): Json
|
||||||
{
|
{
|
||||||
$params = (new UserValidate())->post()->goCheck('bindMobile');
|
$params = (new UserValidate())->post()->goCheck('changeMobile');
|
||||||
$params['user_id'] = $this->userId;
|
$result = UserLogic::changeMobile($params,$this->userId);
|
||||||
$result = UserLogic::bindMobile($params);
|
|
||||||
if($result) {
|
if($result) {
|
||||||
return $this->success('绑定成功', [], 1, 1);
|
return $this->success('修改成功');
|
||||||
}
|
}
|
||||||
return $this->fail(UserLogic::getError());
|
return $this->fail(UserLogic::getError());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 实名认证
|
// 更新用户信息
|
||||||
public function identifiy() {
|
public function updateUser(): Json
|
||||||
//todo
|
{
|
||||||
|
$params = (new UserValidate())->post()->goCheck('edit');
|
||||||
|
$result = UserLogic::updateUser($params,$this->userId);
|
||||||
|
if($result) {
|
||||||
|
return $this->success('更新成功');
|
||||||
|
}
|
||||||
|
return $this->fail(UserLogic::getError());
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,10 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace app\api\logic;
|
namespace app\api\logic;
|
||||||
use app\common\{enum\notice\NoticeEnum,
|
use app\common\{enum\notice\NoticeEnum, logic\BaseLogic, model\auth\Admin, model\user\User, service\sms\SmsDriver};
|
||||||
logic\BaseLogic,
|
|
||||||
model\user\User,
|
|
||||||
service\sms\SmsDriver,};
|
|
||||||
use think\facade\Config;
|
use think\facade\Config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,7 +24,7 @@ class UserLogic extends BaseLogic
|
||||||
$passwordSalt = Config::get('project.unique_identification');
|
$passwordSalt = Config::get('project.unique_identification');
|
||||||
$password = create_password($params['password'], $passwordSalt);
|
$password = create_password($params['password'], $passwordSalt);
|
||||||
// 更新
|
// 更新
|
||||||
User::where('user_phone', $params['phone'])->update(['user_password' => $password]);
|
User::where('phone', $params['phone'])->update(['password' => $password]);
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
self::setError($e->getMessage());
|
self::setError($e->getMessage());
|
||||||
|
@ -47,12 +44,12 @@ class UserLogic extends BaseLogic
|
||||||
$passwordSalt = Config::get('project.unique_identification');
|
$passwordSalt = Config::get('project.unique_identification');
|
||||||
// 加密原密码
|
// 加密原密码
|
||||||
$oldPassword = create_password($params['old_password'], $passwordSalt);
|
$oldPassword = create_password($params['old_password'], $passwordSalt);
|
||||||
if($oldPassword != $user['user_password']){
|
if($oldPassword != $user['password']){
|
||||||
throw new \Exception('原密码不正确');
|
throw new \Exception('原密码不正确');
|
||||||
}
|
}
|
||||||
// 保存密码
|
// 保存密码
|
||||||
$password = create_password($params['password'], $passwordSalt);
|
$password = create_password($params['password'], $passwordSalt);
|
||||||
$user->user_password = $password;
|
$user->password = $password;
|
||||||
$user->save();
|
$user->save();
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
@ -61,35 +58,26 @@ class UserLogic extends BaseLogic
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//绑定手机号
|
//修改手机号
|
||||||
public static function bindMobile(array $params): bool
|
public static function changeMobile(array $params,int $uid): bool
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
// 变更手机号场景
|
$user = User::field('admin_id')->where('id',$uid)->findOrEmpty();
|
||||||
$sceneId = NoticeEnum::CHANGE_MOBILE_CAPTCHA;
|
if($user->isEmpty()){
|
||||||
$where = [
|
throw new \Exception('数据错误');
|
||||||
['id', '=', $params['user_id']],
|
|
||||||
['user_phone', '=', $params['phone']]
|
|
||||||
];
|
|
||||||
// 绑定手机号场景
|
|
||||||
if ($params['type'] == 'bind') {
|
|
||||||
$sceneId = NoticeEnum::BIND_MOBILE_CAPTCHA;
|
|
||||||
$where = [
|
|
||||||
['user_phone', '=', $params['phone']]
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
// 校验短信
|
// 校验短信
|
||||||
$checkSmsCode = (new SmsDriver())->verify($params['phone'], $params['code'], $sceneId);
|
$checkSmsCode = (new SmsDriver())->verify($params['phone'], $params['code'], NoticeEnum::CHANGE_MOBILE_CAPTCHA);
|
||||||
if (!$checkSmsCode) {
|
if (!$checkSmsCode) {
|
||||||
throw new \Exception('验证码错误');
|
throw new \Exception('验证码错误');
|
||||||
}
|
}
|
||||||
$user = User::where($where)->findOrEmpty();
|
|
||||||
if (!$user->isEmpty()) {
|
|
||||||
throw new \Exception('该手机号已被使用');
|
|
||||||
}
|
|
||||||
User::update([
|
User::update([
|
||||||
'id' => $params['user_id'],
|
'id' => $uid,
|
||||||
'user_phone' => $params['phone'],
|
'phone' => $params['phone'],
|
||||||
|
]);
|
||||||
|
Admin::update([
|
||||||
|
'id' => $user['admin_id'],
|
||||||
|
'account' => $params['phone']
|
||||||
]);
|
]);
|
||||||
return true;
|
return true;
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
|
@ -98,4 +86,26 @@ class UserLogic extends BaseLogic
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//更新用户信息
|
||||||
|
public static function updateUser(array $params, int $uid): bool
|
||||||
|
{
|
||||||
|
if(empty($params)){
|
||||||
|
self::setError('参数列表为空');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$user = User::where('id',$uid)->findOrEmpty();
|
||||||
|
if ($user->isEmpty()) {
|
||||||
|
self::setError('数据不存在');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$params['id'] = $uid;
|
||||||
|
try {
|
||||||
|
User::update($params);
|
||||||
|
return true;
|
||||||
|
}catch (\Exception $e){
|
||||||
|
self::setError($e->getMessage());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -3,20 +3,52 @@
|
||||||
namespace app\common\validate\user;
|
namespace app\common\validate\user;
|
||||||
|
|
||||||
|
|
||||||
|
use app\common\enum\notice\NoticeEnum;
|
||||||
use app\common\validate\BaseValidate;
|
use app\common\validate\BaseValidate;
|
||||||
|
|
||||||
class UserValidate extends BaseValidate
|
class UserValidate extends BaseValidate
|
||||||
{
|
{
|
||||||
protected $rule = [
|
protected $rule = [
|
||||||
'id' => 'require',
|
'phone' => 'require|mobile|unique:user',
|
||||||
|
'code' => 'require',
|
||||||
|
'age' => 'number|gt:0',
|
||||||
|
'gender' => 'in:0,1,2',
|
||||||
|
'real_name' => 'chs|length:2,25',
|
||||||
|
'id_card' => 'idCard',
|
||||||
|
'province' => 'number',
|
||||||
|
'city' => 'number',
|
||||||
|
'area' => 'number',
|
||||||
|
'street' => 'number',
|
||||||
|
'village' => 'number',
|
||||||
|
'brigade' => 'number',
|
||||||
];
|
];
|
||||||
|
|
||||||
protected $message = [
|
protected $message = [
|
||||||
'id.require' => '请选择用户',
|
'phone.require' => '请输入手机号码',
|
||||||
|
'phone.mobile' => '请输入正确的手机号码',
|
||||||
|
'phone.unique' => '该手机号码已注册',
|
||||||
|
'code.require' => '请输入验证码',
|
||||||
|
'age.number' => '年龄必须是数字',
|
||||||
|
'age.gt' => '年龄必须大于0',
|
||||||
|
'gender.in' => '用户性别值错误',
|
||||||
|
'real_name.chs' => '真实姓名必须是汉字',
|
||||||
|
'real_name.length' => '真实姓名长度必须大于2个汉字且不得超过25个汉字',
|
||||||
|
'id_card.idCard' => '身份证号码不正确',
|
||||||
|
'province.number' => '省份编码值错误',
|
||||||
|
'city.number' => '城市编码值错误',
|
||||||
|
'area.number' => '区县编码值错误',
|
||||||
|
'street.number' => '镇街编码值错误',
|
||||||
|
'village.number' => '村社编码值错误',
|
||||||
|
'brigade.number' => '小组编码值错误',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function sceneDetail(): UserValidate
|
public function sceneChangeMobile(): UserValidate
|
||||||
{
|
{
|
||||||
return $this->only(['id']);
|
return $this->only(['phone','code']);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sceneEdit(): UserValidate
|
||||||
|
{
|
||||||
|
return $this->only(['age','gender','real_name','id_card','province','city','area','street','village','brigade','address']);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue