From 94c670060fb681b4e7262989bdea9748f03fb93c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 18 三月 2024 16:19:28 +0800
Subject: [PATCH] git ch
---
server/service/src/main/java/com/doumee/service/system/SystemLoginService.java | 10 --
server/service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java | 1
server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java | 1
server/company/src/main/java/com/doumee/api/system/SystemController.java | 9 --
server/service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java | 3 +
server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 86 ++++++++++++++++++----------
server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java | 3 -
server/shop/src/main/java/com/doumee/api/system/SystemController.java | 10 +--
8 files changed, 66 insertions(+), 57 deletions(-)
diff --git a/server/company/src/main/java/com/doumee/api/system/SystemController.java b/server/company/src/main/java/com/doumee/api/system/SystemController.java
index 3ebf770..85cb705 100644
--- a/server/company/src/main/java/com/doumee/api/system/SystemController.java
+++ b/server/company/src/main/java/com/doumee/api/system/SystemController.java
@@ -53,7 +53,6 @@
return ApiResponse.success(systemLoginService.loginByPhone(dto, Constants.ONE, true, request));
}
-
@PreventRepeat(limit = 10, lockTime = 10000)
@ApiOperation("寰俊灏忕▼搴忕櫥褰�")
@PostMapping("/loginByWxMini")
@@ -61,16 +60,10 @@
return ApiResponse.success(systemLoginService.loginByWxMini(dto, request));
}
- @ApiOperation(value = "鎺堟潈openId",notes = "鐧诲綍鍚�")
- @GetMapping("/wxEmpower")
- public ApiResponse<String> wxEmpower (@RequestParam String code, HttpServletRequest request) {
- LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
- return ApiResponse.success(systemLoginService.wxEmpower(code, loginUserInfo.getId()));
- }
-
@ApiOperation("閫�鍑虹櫥褰�")
@PostMapping("/logout")
public ApiResponse logout () {
+ systemLoginService.cleaOpenid();
Subject subject = SecurityUtils.getSubject();
subject.logout();
return ApiResponse.success(null);
diff --git a/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index 18aeb0a..7078689 100644
--- a/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/service/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -90,6 +90,7 @@
// 璺緞鎷︽埅閰嶇疆
map.put("/system/login", "anon");
map.put("/system/loginByPhone", "anon");
+ map.put("/system/loginByWxMini", "anon");
map.put("/system/logout", "anon");
map.put("/common/captcha", "anon");
map.put("/business/smsEmail/sendSms", "anon");
diff --git a/server/service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java b/server/service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
index b215c59..7ffff82 100644
--- a/server/service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/system/dto/LoginDTO.java
@@ -31,4 +31,7 @@
@ApiModelProperty(value = "楠岃瘉鐮乁UID")
private String uuid;
+ @ApiModelProperty(value = "openid",hidden = true)
+ private String openid;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java b/server/service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
index b1bbdf4..4646b5f 100644
--- a/server/service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java
@@ -21,5 +21,4 @@
@NotBlank(message = "楠岃瘉鐮佷笉鑳戒负绌�")
@ApiModelProperty(value = "楠岃瘉鐮�")
private String code;
-
}
diff --git a/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java
index 9f39744..74ae18e 100644
--- a/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java
+++ b/server/service/src/main/java/com/doumee/dao/system/model/SystemUser.java
@@ -73,9 +73,6 @@
@ApiModelProperty(value = "瀵嗙爜")
@NotBlank(message = "鍒濆瀵嗙爜涓嶈兘涓虹┖")
private String password;
- @ApiModelProperty(value = "openid")
- @NotBlank(message = "openid")
- private String openid;
@ApiModelProperty(value = "鐩�")
private String salt;
diff --git a/server/service/src/main/java/com/doumee/service/system/SystemLoginService.java b/server/service/src/main/java/com/doumee/service/system/SystemLoginService.java
index 1e3e3da..8ce4a7e 100644
--- a/server/service/src/main/java/com/doumee/service/system/SystemLoginService.java
+++ b/server/service/src/main/java/com/doumee/service/system/SystemLoginService.java
@@ -22,18 +22,12 @@
String loginByPhone (LoginPhoneDTO dto, int type,Boolean checkSmsCode, HttpServletRequest request);
/**
- * 寰俊鎺堟潈
- * @param code
- * @param userId
- * @return
- */
- String wxEmpower(String code,Integer userId);
-
- /**
*
* @param wxMiniLoginDTO
* @param request
* @return
*/
String loginByWxMini (WxMiniLoginDTO wxMiniLoginDTO, HttpServletRequest request);
+
+ void cleaOpenid();
}
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 0a9ff2d..b655567 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,49 @@
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();
+ 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 +112,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 +129,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 +166,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);
diff --git a/server/shop/src/main/java/com/doumee/api/system/SystemController.java b/server/shop/src/main/java/com/doumee/api/system/SystemController.java
index 3cdb87f..902b3ed 100644
--- a/server/shop/src/main/java/com/doumee/api/system/SystemController.java
+++ b/server/shop/src/main/java/com/doumee/api/system/SystemController.java
@@ -7,10 +7,7 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
-import com.doumee.dao.system.dto.LoginDTO;
-import com.doumee.dao.system.dto.LoginPhoneDTO;
-import com.doumee.dao.system.dto.UpdatePwdDto;
-import com.doumee.dao.system.dto.WebLoginDTO;
+import com.doumee.dao.system.dto.*;
import com.doumee.service.system.SystemLoginService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -46,17 +43,18 @@
@ApiOperation("鐧诲綍 - 鍚庣")
@PostMapping("/login")
public ApiResponse<String> login (@Validated @RequestBody LoginDTO dto, HttpServletRequest request) {
- return ApiResponse.success(systemLoginService.loginByPassword(dto, Constants.TWO, request));
+ return ApiResponse.success(systemLoginService.loginByPassword(dto, Constants.TWO,true, request));
}
@PreventRepeat(limit = 10, lockTime = 10000)
@ApiOperation("鐭俊楠岃瘉鐮佺櫥褰�")
@PostMapping("/loginByPhone")
public ApiResponse<String> loginByPhone (@Validated @RequestBody LoginPhoneDTO dto, HttpServletRequest request) {
- return ApiResponse.success(systemLoginService.loginByPhone(dto, Constants.TWO, request));
+ return ApiResponse.success(systemLoginService.loginByPhone(dto, Constants.TWO,true, request));
}
+
@ApiOperation("閫�鍑虹櫥褰�")
@PostMapping("/logout")
public ApiResponse logout () {
--
Gitblit v1.9.3