From 9395e58307307b74f7437aa399559f9dea68d4f8 Mon Sep 17 00:00:00 2001 From: wanggeng <450292408@qq.com> Date: Wed, 4 Dec 2024 09:58:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BF=AB=E9=80=9F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../systemuser/QuickLoginAppController.java | 41 +++++++++++++ .../login/phone/auth/LoginPhoneAuthToken.java | 2 +- .../operator/service/UserRegisterService.java | 4 +- .../handler/LoginAppHandlerServiceImpl.java | 26 ++++++++ .../quick/login/QuickLoginService.java | 59 +++++++++++++++++++ 5 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 src/main/java/cn/com/tenlion/operator/controller/app/api/systemuser/QuickLoginAppController.java create mode 100644 src/main/java/cn/com/tenlion/operator/service/login/handler/LoginAppHandlerServiceImpl.java create mode 100644 src/main/java/cn/com/tenlion/operator/service/quick/login/QuickLoginService.java diff --git a/src/main/java/cn/com/tenlion/operator/controller/app/api/systemuser/QuickLoginAppController.java b/src/main/java/cn/com/tenlion/operator/controller/app/api/systemuser/QuickLoginAppController.java new file mode 100644 index 0000000..e8d6f47 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/controller/app/api/systemuser/QuickLoginAppController.java @@ -0,0 +1,41 @@ +package cn.com.tenlion.operator.controller.app.api.systemuser; + +import cn.com.tenlion.operator.service.quick.login.QuickLoginService; +import ink.wgink.annotation.CheckRequestBodyAnnotation; +import ink.wgink.interfaces.consts.ISystemConstant; +import ink.wgink.module.sms.service.sms.ISmsService; +import ink.wgink.pojo.result.SuccessResultData; +import ink.wgink.register.base.pojo.vos.RegisterPhoneVO; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * ClassName: QuickLoginAppController + * Description: + * Author: wanggeng + * Date: 2024/12/2 16:24 + * Version: 1.0 + */ +@Api(tags = ISystemConstant.API_TAGS_APP_PREFIX + "快速登录接口") +@RestController +@RequestMapping(ISystemConstant.APP_PREFIX + "/quick/login") +public class QuickLoginAppController { + + @Autowired + private ISmsService smsService; + @Autowired + private QuickLoginService quickLoginService; + + @PostMapping("phone") + @CheckRequestBodyAnnotation + public SuccessResultData phone(@RequestBody RegisterPhoneVO registerPhoneVO) { + smsService.checkVerifyCode(registerPhoneVO.getPhone(), registerPhoneVO.getVerifyCode()); + String token = quickLoginService.saveAndLogin(registerPhoneVO); + return new SuccessResultData<>(token); + } + +} diff --git a/src/main/java/cn/com/tenlion/operator/login/phone/auth/LoginPhoneAuthToken.java b/src/main/java/cn/com/tenlion/operator/login/phone/auth/LoginPhoneAuthToken.java index f802f32..e3e2d29 100644 --- a/src/main/java/cn/com/tenlion/operator/login/phone/auth/LoginPhoneAuthToken.java +++ b/src/main/java/cn/com/tenlion/operator/login/phone/auth/LoginPhoneAuthToken.java @@ -8,7 +8,7 @@ import java.util.Collection; public class LoginPhoneAuthToken extends AbstractAuthenticationToken { private final Object principal; - private Object credentials; + private final Object credentials; public LoginPhoneAuthToken(Object principal, Object credentials) { super(null); diff --git a/src/main/java/cn/com/tenlion/operator/service/UserRegisterService.java b/src/main/java/cn/com/tenlion/operator/service/UserRegisterService.java index 1320434..5327ead 100644 --- a/src/main/java/cn/com/tenlion/operator/service/UserRegisterService.java +++ b/src/main/java/cn/com/tenlion/operator/service/UserRegisterService.java @@ -16,7 +16,7 @@ import java.util.Map; /** * 用户注册时候的监听 - * */ + */ @Component public class UserRegisterService implements IRegisterHandlerService, IRegisterWithExpandInfoHandlerService { @@ -40,7 +40,7 @@ public class UserRegisterService implements IRegisterHandlerService, IRegisterWi throw new SaveException("角色不存在"); } String roleName = "普通用户"; - if(roleDTO.getRoleName().contains("代理商")) { + if (roleDTO.getRoleName().contains("代理商")) { roleName = "代理商"; } // 1.修改用户的角色 diff --git a/src/main/java/cn/com/tenlion/operator/service/login/handler/LoginAppHandlerServiceImpl.java b/src/main/java/cn/com/tenlion/operator/service/login/handler/LoginAppHandlerServiceImpl.java new file mode 100644 index 0000000..de8e4a4 --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/service/login/handler/LoginAppHandlerServiceImpl.java @@ -0,0 +1,26 @@ +package cn.com.tenlion.operator.service.login.handler; + +import cn.com.tenlion.operator.service.user.expand.UserExpandServiceImpl; +import ink.wgink.interfaces.expand.login.ILoginAppHandlerService; +import ink.wgink.pojo.bos.LoginAppUser; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * ClassName: LoginAppHandlerServiceImpl + * Description: + * Author: wanggeng + * Date: 2024/12/2 17:53 + * Version: 1.0 + */ +@Service +public class LoginAppHandlerServiceImpl implements ILoginAppHandlerService { + + @Autowired + private UserExpandServiceImpl userExpandService; + + @Override + public void handle(LoginAppUser loginAppUser) throws Exception { + userExpandService.updateRedis(loginAppUser.getUserId()); + } +} diff --git a/src/main/java/cn/com/tenlion/operator/service/quick/login/QuickLoginService.java b/src/main/java/cn/com/tenlion/operator/service/quick/login/QuickLoginService.java new file mode 100644 index 0000000..39782ac --- /dev/null +++ b/src/main/java/cn/com/tenlion/operator/service/quick/login/QuickLoginService.java @@ -0,0 +1,59 @@ +package cn.com.tenlion.operator.service.quick.login; + +import ink.wgink.common.base.DefaultBaseService; +import ink.wgink.common.manager.env.EnvManager; +import ink.wgink.exceptions.base.SystemException; +import ink.wgink.login.app.pojo.vos.appsign.AppLoginPhoneVO; +import ink.wgink.login.app.service.appsign.IAppSignService; +import ink.wgink.register.base.pojo.vos.RegisterPhoneVO; +import ink.wgink.register.base.service.IRegisterService; +import ink.wgink.service.user.pojo.pos.UserPO; +import ink.wgink.service.user.service.IUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; + +/** + * ClassName: QuickLoginService + * Description: + * Author: wanggeng + * Date: 2024/12/2 16:25 + * Version: 1.0 + */ +@Service +public class QuickLoginService extends DefaultBaseService { + + @Autowired + private IUserService userService; + @Autowired + private IRegisterService registerService; + @Autowired + private IAppSignService appSignService; + + /** + * 新增和登录 + * + * @param username + * @return + */ + public String saveAndLogin(RegisterPhoneVO registerPhoneVO) { + UserPO userPO = userService.getPOByUsername(registerPhoneVO.getPhone()); + if (userPO == null) { + LOG.debug("用户不存在,注册用户"); + } + try { + registerService.registerPhone(registerPhoneVO, new HashMap() {{ + put("userRole", EnvManager.value("NORMAL_USER_ROLE_ID")); + }}); + AppLoginPhoneVO appLoginPhoneVO = new AppLoginPhoneVO(); + appLoginPhoneVO.setUsername(registerPhoneVO.getPhone()); + return appSignService.phoneSign(appLoginPhoneVO); + } catch (Exception e) { + LOG.error(e.getMessage(), e); + throw new SystemException("登录失败"); + } + } + + +}