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