init
This commit is contained in:
@@ -63,7 +63,9 @@ public class AuthAppController {
|
||||
if(loginBody.getLoginType() == 2){
|
||||
token = loginManager.login(loginBody.getUsername(), loginBody.getPassword());
|
||||
}else if(loginBody.getLoginType() == 1){
|
||||
token = loginManager.loginSms(loginBody.getUsername(), loginBody.getCode(), loginBody.getInviteCode());
|
||||
token = loginManager.loginSms(loginBody.getUsername(), loginBody.getCode(), loginBody.getInviteCode(), loginBody.getOpenId());
|
||||
}else if(loginBody.getLoginType() == 3){
|
||||
token = loginManager.loginWx(loginBody.getOpenId());
|
||||
}else{
|
||||
return R.fail(600,"登陆失败,参数异常");
|
||||
}
|
||||
|
||||
@@ -9,8 +9,8 @@ import javax.validation.constraints.NotNull;
|
||||
@Data
|
||||
@Schema(description = "登陆入参模型")
|
||||
public class LoginUser {
|
||||
@Schema(description = "登陆类型 1-手机验证码登陆 2-密码登陆")
|
||||
@NotNull(message = "1-手机验证码登陆 2-密码登陆")
|
||||
@Schema(description = "登陆类型 1-手机验证码登陆 2-密码登陆 3-微信登录")
|
||||
@NotNull(message = "1-手机验证码登陆 2-密码登陆 3-微信登录")
|
||||
private Integer loginType = 1;
|
||||
@Schema(description = "登陆账号(手机号码)")
|
||||
@NotEmpty(message = "手机号不能为空")
|
||||
@@ -21,4 +21,6 @@ public class LoginUser {
|
||||
private String code;
|
||||
@Schema(description = "邀请码(手机验证码登陆的时候,如果用户未注册会自动注册,可以输入邀请码)")
|
||||
private String inviteCode;
|
||||
@Schema(description = "微信openId")
|
||||
private String openId;
|
||||
}
|
||||
|
||||
@@ -95,19 +95,19 @@ public class LoginManager {
|
||||
return login(user);
|
||||
}
|
||||
|
||||
public String loginSms(String mobile,String code,String inviteCode){
|
||||
public String loginSms(String mobile,String code,String inviteCode,String openId){
|
||||
boolean check = smsVerifyService.check(CodeEnum.LOGIN, mobile, code);
|
||||
if(!check){
|
||||
throw new ServiceException("验证码错误");
|
||||
}
|
||||
User user = userService.getByUsername(mobile);
|
||||
if(user == null){
|
||||
user = this.register(mobile, inviteCode);
|
||||
user = this.register(mobile, inviteCode,openId);
|
||||
}
|
||||
return login(user);
|
||||
}
|
||||
|
||||
public User register(String mobile,String inviteCode) {
|
||||
public User register(String mobile,String inviteCode,String openId) {
|
||||
User user = userService.getByUsername(mobile);
|
||||
if(user != null){
|
||||
return user;
|
||||
@@ -121,7 +121,7 @@ public class LoginManager {
|
||||
lock.lock();
|
||||
try {
|
||||
LoginManager bean = SpringUtil.getBean(LoginManager.class);
|
||||
user = bean.registerUser(mobile,inviteCode);
|
||||
user = bean.registerUser(mobile,inviteCode,openId);
|
||||
}finally {
|
||||
lock.unlock();
|
||||
}
|
||||
@@ -175,7 +175,7 @@ public class LoginManager {
|
||||
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public User registerUser(String mobile,String inviteCode){
|
||||
public User registerUser(String mobile,String inviteCode,String openId){
|
||||
String cos = systemConfigManager.getSystemConfig(SystemConfigEnum.COS_DOMAIN);
|
||||
String usercode = userCodeGenService.getCodeGen();
|
||||
User user = new User();
|
||||
@@ -188,6 +188,10 @@ public class LoginManager {
|
||||
user.setGender(UserGenderEnum.NONE.getCode());
|
||||
user.setAvatar(cos + UserGenderEnum.NONE.getDefaultAvatar());
|
||||
user.setImToken(IdUtil.simpleUUID());
|
||||
user.setOpenId(openId);
|
||||
if(StringUtils.isNotEmpty(openId)){
|
||||
userService.removeOpenId(openId);
|
||||
}
|
||||
userService.save(user);
|
||||
CreateUserReq req = new CreateUserReq();
|
||||
req.setAccid(user.getId()+"");
|
||||
@@ -276,4 +280,12 @@ public class LoginManager {
|
||||
}
|
||||
userService.resetPassword(user.getId(),password);
|
||||
}
|
||||
|
||||
public String loginWx(String openId) {
|
||||
User user = userService.getByUsername(openId);
|
||||
if(user == null){
|
||||
throw new ServiceException("微信登录失败");
|
||||
}
|
||||
return login(user);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,8 @@ public interface UserService extends IService<User> {
|
||||
|
||||
User getByUsername(String username);
|
||||
|
||||
User getByOpenId(String openId);
|
||||
|
||||
void resetPassword(Long userId, String password);
|
||||
|
||||
User getByUsercode(String usercode);
|
||||
@@ -60,4 +62,6 @@ public interface UserService extends IService<User> {
|
||||
void updateBaseUser(UpdateUserReq updateUserReq);
|
||||
|
||||
void checkFinishStatus(Long userId);
|
||||
|
||||
void removeOpenId(String openId);
|
||||
}
|
||||
|
||||
@@ -97,6 +97,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
.eq(User::getMobile,username));
|
||||
}
|
||||
|
||||
@Override
|
||||
public User getByOpenId(String openId) {
|
||||
List<User> list = this.list(Wrappers.lambdaQuery(User.class)
|
||||
.eq(User::getOpenId, openId));
|
||||
if(list.size() > 1){
|
||||
return null;
|
||||
}
|
||||
if(list.size() == 1){
|
||||
return list.get(0);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetPassword(Long userId, String password) {
|
||||
if(userId == null || StringUtils.isEmpty(password)){
|
||||
@@ -335,7 +348,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
if(user != null){
|
||||
throw new ServiceException("手机号已存在!");
|
||||
}
|
||||
user = loginManager.registerUser(bo.getMobile(), null);
|
||||
user = loginManager.registerUser(bo.getMobile(), null,null);
|
||||
UpdateUserReq updateUser = BeanConvertUtil.convertTo(bo, UpdateUserReq::new);
|
||||
updateUser.setId(user.getId());
|
||||
UserService userService = SpringUtil.getBean(UserService.class);
|
||||
@@ -420,4 +433,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||
.set(User::getFinishBaseStatus, 1));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeOpenId(String openId) {
|
||||
this.update(Wrappers.lambdaUpdate(User.class)
|
||||
.eq(User::getOpenId,openId)
|
||||
.set(User::getOpenId, null));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user