登录功能实现

This commit is contained in:
TinyAnts 2022-09-05 17:09:48 +08:00
parent 006978a484
commit ee6fe3c37a
4 changed files with 87 additions and 12 deletions

View File

@ -26,7 +26,8 @@ public class User implements Serializable {
private Integer channel; // 注册渠道
private String salt; // 加密盐巴
private Integer sex; // 用户性别: [1=, 2=]
private Integer is_delete; // 是否删除: [0=, 1=]
private Integer isDisable; // 是否禁用: [0=, 1=]
private Integer isDelete; // 是否删除: [0=, 1=]
private String lastLoginIp; // 最后登录IP
private Long lastLoginTime; // 最后登录时间
private Long createTime; // 创建时间

View File

@ -41,12 +41,11 @@ public class LoginController {
case "mnp":
map = iLoginService.mnpLogin(params);
break;
case "sms":
Assert.isNull(params.get("code"), "code参数缺失!");
iLoginService.smsLogin(params);
case "mobile":
map = iLoginService.mobileLogin(params);
break;
case "account":
iLoginService.accountLogin(params);
map = iLoginService.accountLogin(params);
break;
}

View File

@ -18,17 +18,38 @@ public interface ILoginService {
void register(RegisterParam registerParam);
/**
* 微信小程序登录
* 微信登录
*
* @author fzr
* @param scene 场景
* @param code 编码
* @param params 参数
* @return Map<String, Object>
*/
Map<String, Object> mnpLogin(Map<String, String> params);
void smsLogin(Map<String, String> params);
/**
* 手机登录
*
* @author fzr
* @param params 参数
* @return Map<String, Object>
*/
Map<String, Object> mobileLogin(Map<String, String> params);
void accountLogin(Map<String, String> params);
/**
* 账号登录
*
* @author fzr
* @param params 参数
* @return Map<String, Object>
*/
Map<String, Object> accountLogin(Map<String, String> params);
/**
* 忘记密码
*
* @author fzr
* @param params 参数
*/
void forgotPassword(Map<String, String> params);
}

View File

@ -172,14 +172,67 @@ public class LoginServiceImpl implements ILoginService {
}
}
/**
* 手机号登录
*
* @author fzr
* @param params 参数
* @return Map<String, Object>
*/
@Override
public void smsLogin(Map<String, String> params) {
public Map<String, Object> mobileLogin(Map<String, String> params) {
Assert.notNull(params.get("mobile"), "mobile参数缺失!");
Assert.notNull(params.get("code"), "code参数缺失!");
// 校验验证码
// 查询手机号
User user = userMapper.selectOne(new QueryWrapper<User>()
.select("id,username,mobile,is_disable")
.eq("mobile", params.get("mobile"))
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(user, "账号不存在!");
Assert.isFalse(user.getIsDisable() != 0, "账号已禁用!");
String token = ToolsUtil.makeToken();
Map<String, Object> response = new LinkedHashMap<>();
response.put("id", user.getId());
response.put("token", token);
return response;
}
/**
* 账号登录
*
* @author fzr
* @param params 参数
* @return Map<String, Object>
*/
@Override
public void accountLogin(Map<String, String> params) {
public Map<String, Object> accountLogin(Map<String, String> params) {
Assert.notNull(params.get("username"), "username参数缺失!");
Assert.notNull(params.get("password"), "password参数缺失!");
String username = params.get("username");
String password = params.get("password");
User user = userMapper.selectOne(new QueryWrapper<User>()
.select("id,username,password,salt,mobile,is_disable")
.eq("username", username)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(user, "账号不存在!");
String pwd = ToolsUtil.makeMd5(password+user.getSalt());
Assert.isFalse(!pwd.equals(user.getPassword()), "账号或密码错误!");
Assert.isFalse(user.getIsDisable() != 0, "账号已被禁用!");
String token = ToolsUtil.makeToken();
Map<String, Object> response = new LinkedHashMap<>();
response.put("id", user.getId());
response.put("token", token);
return response;
}
@Override
@ -207,4 +260,5 @@ public class LoginServiceImpl implements ILoginService {
}
return sn;
}
}