个人相关

master
管理员 3 years ago
parent 2c0207ed82
commit 0b806d82f1

@ -1,6 +1,10 @@
package com.ruoyi.web.controller.system;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.binarywang.wx.miniapp.util.WxMaConfigHolder;
import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R;
@ -9,12 +13,14 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.domain.model.SmsLoginBody;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.system.domain.vo.RouterVo;
import com.ruoyi.system.service.ISysMenuService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.SysLoginService;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@ -40,6 +46,8 @@ public class SysLoginController {
private final SysLoginService loginService;
private final ISysMenuService menuService;
private final ISysUserService userService;
private final WxMaService wxMaService;
private final RuoYiConfig config;
/**
@ -149,4 +157,20 @@ public class SysLoginController {
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return R.ok(menuService.buildMenus(menus));
}
@Log(title = "获取微信手机号码", businessType = BusinessType.GRANT)
@PostMapping("xcxPhone")
@SaIgnore
public R<?> xcxPhone(@NotBlank(message = "{xcx.code.not.blank}") String code) {
try {
WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getNewPhoneNoInfo(code);
WxMaConfigHolder.remove();//清理ThreadLocal
return R.ok(phoneNoInfo);
} catch (WxErrorException e) {
throw new RuntimeException(e);
}
}
}

@ -2,7 +2,9 @@ package com.ruoyi.web.controller.system;
import cn.dev33.satoken.secure.BCrypt;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
@ -59,10 +61,10 @@ public class SysProfileController extends BaseController {
@PutMapping
public R<Void> updateProfile(@RequestBody SysUser user) {
if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) {
return R.fail("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
return R.fail("手机已存在");
}
if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
return R.fail("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
return R.fail("邮箱已存在");
}
user.setUserId(getUserId());
user.setUserName(null);
@ -72,8 +74,32 @@ public class SysProfileController extends BaseController {
if (userService.updateUserProfile(user) > 0) {
return R.ok();
}
return R.fail("修改个人信息异常,请联系管理员");
return R.fail("修改个人异常");
}
@Log(title = "绑定用户名", businessType = BusinessType.UPDATE)
@RepeatSubmit
@PutMapping("bindUserName")
public R<Void> bindUserName(String userName) {
SysUser u = new SysUser();
u.setUserId(getUserId());
u.setUserName(userName);
String oldUsername = userService.selectUserById(u.getUserId()).getUserName();
if(!(StrUtil.isBlank(oldUsername) || oldUsername.startsWith("_"))) {
return R.fail("只能绑定一次");
}
if(!userService.checkUserNameUnique(u)){
return R.fail("账户已存在");
}
if (userService.updateUserProfile(u) > 0) {
return R.ok();
}
return R.fail("绑定帐号异常");
}
/**
*
@ -87,17 +113,17 @@ public class SysProfileController extends BaseController {
SysUser user = userService.selectUserById(LoginHelper.getUserId());
String userName = user.getUserName();
String password = user.getPassword();
if (!BCrypt.checkpw(oldPassword, password)) {
return R.fail("修改密码失败,旧密码错误");
if (StrUtil.isNotBlank(password) && !BCrypt.checkpw(oldPassword, password)) {
return R.fail("旧密码错误");
}
if (BCrypt.checkpw(newPassword, password)) {
return R.fail("新密码不能与旧密码相同");
return R.fail("新旧密码相同");
}
if (userService.resetUserPwd(userName, BCrypt.hashpw(newPassword)) > 0) {
return R.ok();
}
return R.fail("修改密码异常,请联系管理员");
return R.fail("修改密码异常");
}
/**

@ -48,14 +48,14 @@ public class SysUser extends BaseEntity {
*/
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
@Size(min = 0, max = 20, message = "用户账号长度不能超过{max}个字符")
private String userName;
/**
*
*/
@Xss(message = "用户昵称不能包含脚本字符")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
@Size(min = 0, max = 20, message = "用户昵称长度不能超过{max}个字符")
private String nickName;
/**

@ -151,6 +151,7 @@ public class SysLoginService {
user.setAvatar(url);
user.setUserName("_"+new StringBuffer(Long.toString(id.nextId(null).longValue(),36)).reverse().toString());
user.setNickName(nickname);
user.setRemark(user.getUserName());
userService.insertUser(user);
return xcxLoginByOpenId(openid);
}

Loading…
Cancel
Save