实现用户手机号码的重置功能

添加了新的API端点,允许用户重置其关联的手机号码。实现包括在SysProfileController中添加新的更新方法,使用正则表达式验证手机号码格式,并处理相关的业务逻辑。此外,更新了SysUserMapper接口和SysUserServiceImpl类,以支持数据库操作的变更。
master
wxy 2024-09-02 20:14:14 +08:00
parent d62d8d48b6
commit 4981ed3c6b
6 changed files with 61 additions and 0 deletions

View File

@ -15,6 +15,7 @@ import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.system.domain.resp.ProfileResp;
import com.muyu.system.service.SysUserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -26,6 +27,7 @@ import java.util.Arrays;
*
* @author muyu
*/
@Slf4j
@RestController
@RequestMapping("/user/profile")
public class SysProfileController extends BaseController {
@ -105,6 +107,45 @@ public class SysProfileController extends BaseController {
return error("修改密码异常,请联系管理员");
}
/**
*
*/
@Log(title = "重置手机号", businessType = BusinessType.UPDATE)
@RequestMapping(value = "/updatePhonenumber/{phonenumber}",method = RequestMethod.POST)
public Result updatePhonenumber(@PathVariable(value = "phonenumber") String phonenumber) {
try {
if (!isValidPhoneNumber(phonenumber)) {
return error("手机号格式不正确");
}
String username = SecurityUtils.getUsername();
SysUser user = userService.selectUserByUserName(username);
if (user == null) {
return error("用户不存在");
}
if (userService.updateUserPhonenumber(username, phonenumber) > 0) {
LoginUser loginUser = SecurityUtils.getLoginUser();
loginUser.getSysUser().setPhonenumber(phonenumber);
tokenService.setLoginUser(loginUser);
return success();
} else {
return error("修改手机号失败,请联系管理员");
}
} catch (Exception e) {
// 记录异常日志
log.error("更新手机号时发生异常", e);
return error("系统异常,请稍后重试");
}
}
private boolean isValidPhoneNumber(String phoneNumber) {
// 正则表达式校验手机号格式
String regex = "^1[3-9]\\d{9}$";
return phoneNumber.matches(regex);
}
/**
*
*/

View File

@ -294,6 +294,11 @@ public class SysUserController extends BaseController {
/**
*
*/

View File

@ -160,4 +160,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
SysUser findByPhone(String phonenumber);
int updateUserPhonenumber(@Param("username") String username, @Param("phonenumber") String phonenumber);
}

View File

@ -244,4 +244,7 @@ public interface SysUserService extends IService<SysUser> {
String sendCode(String phonenumber);
String checkCode(String phonenumber, String code);
int updateUserPhonenumber(String username, String phonenumber);
}

View File

@ -586,6 +586,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
}
@Override
public int updateUserPhonenumber(String username, String phonenumber) {
return userMapper.updateUserPhonenumber(username,phonenumber);
}
}

View File

@ -291,6 +291,12 @@
where user_name = #{userName}
</update>
<update id="updateUserPhonenumber">
update sys_user
set phonenumber = #{phonenumber}
where user_name = #{username}
</update>
<delete id="deleteUserById" parameterType="Long">
update sys_user