Browse Source

feat(api): 添加忘记密码功能- 在 Common 控制器中添加 forgetPassword 方法,用于重置密码

- 在路由文件中添加对应的 API 路由
- 在 CommonService 中实现 forgetPassword 方法,根据用户类型重置密码
- 支持学生和员工两种用户类型的密码重置
master
liutong 10 months ago
parent
commit
a221698605
  1. 26
      niucloud/app/api/controller/apiController/Common.php
  2. 6
      niucloud/app/api/route/route.php
  3. 54
      niucloud/app/service/api/apiService/CommonService.php

26
niucloud/app/api/controller/apiController/Common.php

@ -35,4 +35,30 @@ class Common extends BaseApiService
}
return success($res);
}
//忘记密码-通过短信验证码进行密码重置(学生/员工通用)
public function forgetPassword(Request $request)
{
$phone = $request->param('phone', '');//手机号
$code = $request->param('code', '');//短信验证码
$code_type = $request->param('code_type', '');//短信验证码类型(发送/验证 短信验证码的类型)|修改密码=editPassword
$password = $request->param('password', '');//新密码
$user_type = $request->param('user_type', '');//用户类型|customer=学生|personnel=员工(销售/教师)
if (empty($phone) || empty($code) || empty($code_type) || empty($password) || empty($user_type)) {
return fail('缺少必填参数');
}
//@todo 验证短信验证码是否正确(等发送短信验证码接入后在写)
//...
//重置密码
$res = (new CommonService())->forgetPassword($phone, $password, $user_type);
if(!$res['code']){
return fail($res['msg']);
}
return success([]);
}
}

6
niucloud/app/api/route/route.php

@ -176,8 +176,8 @@ Route::group(function () {
Route::post('personnelLogin', 'login.Login/personnelLogin');
//获取字典
Route::get('common/getDictionary', 'apiController.Common/getDictionary');
//员工端-修改密码操作
Route::post('personnel/edidPassword', 'apiController.Personnel/edidPassword');
//忘记密码-通过短信验证码进行密码重置(学生/员工通用)
Route::post('common/forgetPassword', 'apiController.Common/forgetPassword');
@ -209,6 +209,8 @@ Route::group(function () {
Route::post('personnel/edit', 'apiController.Personnel/edit');
//员工端-验证旧密码是否正确
Route::post('personnel/checkOldPwd', 'apiController.Personnel/checkOldPwd');
//员工端-修改密码操作(通过旧密码修改新密码)
Route::post('personnel/edidPassword', 'apiController.Personnel/edidPassword');
//员工端-获取全部人员列表

54
niucloud/app/service/api/apiService/CommonService.php

@ -12,6 +12,8 @@
namespace app\service\api\apiService;
use app\model\dict\Dict;
use app\model\member\Member;
use app\model\sys\SysUser;
use core\base\BaseApiService;
/**
@ -43,6 +45,58 @@ class CommonService extends BaseApiService
}
/**
* 忘记密码功能 - 根据用户类型重置密码
* @param string $phone 用户手机号
* @param string $new_password 用户新密码
* @param string $user_type 用户类型|customer=学生|personnel=员工(销售/教师)
*/
public function forgetPassword($phone, $new_password, $user_type){
if($user_type == 'personnel'){
//重置员工(销售/教师)密码
$update = SysUser::where('username', $phone)->update([
'password' => create_password($new_password),//创建密码
'update_time' => time(),
]);
if (!$update) {
$res = [
'code' => 0,
'msg' => '操作失败',
'data' => []
];
} else {
$res = [
'code' => 1,
'msg' => '操作成功',
'data' => []
];
}
return $res;
}else{
//重置用户(学生)密码
$update = Member::where('username', $phone)->update([
'password' => create_password($new_password),//创建密码
'update_time' => time(),
]);
if (!$update) {
$res = [
'code' => 0,
'msg' => '操作失败',
'data' => []
];
} else {
$res = [
'code' => 1,
'msg' => '操作成功',
'data' => []
];
}
return $res;
}
}
/**
* 对比新旧数据改变
* @param array $old_data 旧数据

Loading…
Cancel
Save