实体类
public class User extends UserLoginRo implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "uuid")
@TableId("pk_id")
private String pkId;
@ApiModelProperty(value = "用户名")
@TableField("user_name")
private String userName;
@ApiModelProperty(value = "用户手机")
@TableField("user_tel")
private String userTel;
@ApiModelProperty(value = "头像图片")
@TableField("head_portrait")
private String headPortrait;
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "昵称")
private String nickname;
@ApiModelProperty(value = "性别")
private String sex;
@ApiModelProperty(value = "生日")
private LocalDateTime birthday;
@ApiModelProperty(value = "地址")
private String address;
@ApiModelProperty(value = "签名")
private String sign;
}
service
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
private UserMapper userMapper;
/**
* @description 通过用户查询密码
*/
@Override
public UserLoginRo findByPassword(String uName){
QueryWrapper wrapper=new QueryWrapper();
wrapper
.select("password")
.eq("user_name",uName);
UserLoginRo userLogin1=userMapper.selectOne(wrapper);
return userLogin1;
}
/**
* @description 判断用户是否存在,验证密码
*/
@Override
public boolean VerifyPassword(String pwd, String uName){
if(ObjectUtils.isEmpty(findByPassword(uName))){
return false;
}else if (Md5Utils.code(pwd).equals(findByPassword(uName).getPassword())){
return true;
}else {
return false;
}
}
@Override
public boolean VerifyPhone(String uName){
boolean phone=uName.matches("^((13[0-9])|(14[5-9])|(15([0-3]|[5-9]))|(16[6-7])|(17[1-8])|(18[0-9])|(19[1|3])|(19[5|6])|(19[8|9]))\\d{8}$");
return phone;
}
工具类
public class Md5Utils {
/**
* @description md5加密
*/
public static String code(String str) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(str.getBytes());
byte[] byteDigest = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < byteDigest.length; offset++) {
i = byteDigest[offset];
if (i < 0) {
i += 256;
}
if (i < 16) {
buf.append("0");
}
buf.append(Integer.toHexString(i));
}
//32位加密(小写)
return buf.toString();
//32位加密(大写)
//return buf.toString().toUpperCase();
// 16位的加密(小写)
//return buf.toString().substring(8, 24);
// 16位的加密(大写)
//return buf.toString().substring(8, 24).toUpperCase();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
controller
@PostMapping("/myLogin")
@ApiOperation("用户登录")
public Results logins(@Validated @RequestBody UserLoginRo userLoginro) {
if (!StringUtils.hasLength(userLoginro.getUserName())) {
return Results.fail("请输入用户名");
} else {
String uName = userLoginro.getUserName();
String pwd = userLoginro.getPassword();
if (userService.VerifyPhone(uName)) {
if (userService.VerifyPassword(pwd, uName)) {
return Results.ok();
} else {
return Results.fail("用户名或密码错误");
}
} else {
return Results.fail("用户名错误");
}
}
}