From b6fde711bf33cede4cb84f85146c32b0c0c61aa5 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 04 十一月 2024 09:06:28 +0800
Subject: [PATCH] 优化需求
---
server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 106 ++++++++++++++++++++++++++++++++--------------------
1 files changed, 65 insertions(+), 41 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index dc6cc10..822a624 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -56,39 +56,51 @@
private SystemUserMapper systemUserMapper;
- /**
- * 寰俊鎺堟潈锛堢櫥褰曞悗锛�
- * @param code
- */
- @Override
- public String wxEmpower(String code,Integer userId){
- try {
- //鑾峰彇寰俊鏁忔劅鏁版嵁
- WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
- String openId = session.getOpenid();
- if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
- }
- if(Objects.nonNull(userId)){
- systemUserMapper.update(null,new UpdateWrapper<SystemUser>()
- .lambda().set(SystemUser::getOpenid,null)
- .eq(SystemUser::getOpenid,openId)
- .ne(SystemUser::getId,userId));
+// /**
+// * 寰俊鎺堟潈锛堢櫥褰曞悗锛�
+// * @param code
+// */
+// @Override
+// public String wxEmpower(String code,Integer userId){
+// try {
+// //鑾峰彇寰俊鏁忔劅鏁版嵁
+// WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code);
+// String openId = session.getOpenid();
+// if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
+// }
+// if(Objects.nonNull(userId)){
+// systemUserMapper.update(null,new UpdateWrapper<SystemUser>()
+// .lambda()
+// .set(SystemUser::getOpenid,null)
+// .eq(SystemUser::getOpenid,openId)
+// .ne(SystemUser::getId,userId));
+//
+// systemUserMapper.update(null,new UpdateWrapper<SystemUser>()
+// .lambda()
+// .set(SystemUser::getOpenid,openId)
+// .eq(SystemUser::getId,userId));
+// }
+// return openId;
+// } catch (WxErrorException e) {
+// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
+// }
+// }
- systemUserMapper.update(null,new UpdateWrapper<SystemUser>()
- .lambda()
- .set(SystemUser::getOpenid,openId)
- .eq(SystemUser::getId,userId));
- }
- return openId;
- } catch (WxErrorException e) {
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
+ @Override
+ public void cleaOpenid(){
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if(StringUtils.isNotBlank(loginUserInfo.getOpenid())){
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getOpenid,null)
+ .eq(SystemUser::getId,loginUserInfo.getId()));
}
}
@Override
public String loginByWxMini (WxMiniLoginDTO wxMiniLoginDTO, HttpServletRequest request){
+ LoginDTO dto = new LoginDTO();
if(StringUtils.isNotBlank(wxMiniLoginDTO.getCode())){
try{
WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(wxMiniLoginDTO.getCode());
@@ -102,10 +114,14 @@
.last(" limit 1")
);
if(Objects.nonNull(systemUser)){
- LoginPhoneDTO dto = new LoginPhoneDTO();
- dto.setPhone(systemUser.getMobile());
- return this.loginByPhone(dto,Constants.ZERO,false,request);
+ LoginPhoneDTO loginPhoneDTO = new LoginPhoneDTO();
+ loginPhoneDTO.setPhone(systemUser.getMobile());
+ return this.loginByPhone(loginPhoneDTO,Constants.ONE,false,request);
+ }else{
+ return null;
}
+ }else{
+ dto.setOpenid(openId);
}
} catch (WxErrorException e) {
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
@@ -115,7 +131,6 @@
|| StringUtils.isBlank(wxMiniLoginDTO.getPassword())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
- LoginDTO dto = new LoginDTO();
dto.setUsername(wxMiniLoginDTO.getUsername());
dto.setPassword(wxMiniLoginDTO.getPassword());
return this.loginByPassword(dto,Constants.ONE,false,request);
@@ -153,6 +168,17 @@
loginLog.setUserId(((LoginUserInfo)subject.getPrincipal()).getId());
loginLog.setSuccess(Boolean.TRUE);
systemLoginLogService.create(loginLog);
+
+ //鏇存柊openid鎵�灞炵敤鎴蜂俊鎭�
+ if(StringUtils.isNotBlank(dto.getOpenid())){
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getOpenid,null)
+ .eq(SystemUser::getOpenid,dto.getOpenid())
+ .ne(SystemUser::getId,loginLog.getUserId()));
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getOpenid,dto.getOpenid())
+ .eq(SystemUser::getId,loginLog.getUserId()));
+ }
return (String)subject.getSession().getId();
} catch (AuthenticationException e) {
log.error(ResponseStatus.ACCOUNT_INCORRECT.getMessage(), e);
@@ -176,18 +202,16 @@
loginLog.setOsInfo(Utils.User_Client.getOS(request));
loginLog.setServerIp(Utils.Server.getIP());
// 鏍¢獙楠岃瘉鐮�
- if(type!= Constants.TWO){
- try {
- if(!debugModel&& checkSmsCode){
- SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,dto.getPhone(), dto.getCode());
- }
- } catch (Exception e) {
- log.error(e.getMessage(), e);
- loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
- loginLog.setSuccess(Boolean.FALSE);
- systemLoginLogService.create(loginLog);
- throw e;
+ try {
+ if(!debugModel&& checkSmsCode){
+ SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,dto.getPhone(), dto.getCode());
}
+ } catch (Exception e) {
+ log.error(e.getMessage(), e);
+ loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
+ loginLog.setSuccess(Boolean.FALSE);
+ systemLoginLogService.create(loginLog);
+ throw e;
}
// 鏍¢獙鐢ㄦ埛鍚嶅拰瀵嗙爜
Subject subject = SecurityUtils.getSubject();
--
Gitblit v1.9.3