From b3059e1a596b4fb05a708f3c3ac0ff3bc369d06b Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 12 十二月 2024 16:03:27 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit
---
server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 57 ++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 48 insertions(+), 9 deletions(-)
diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index b9b8bf2..d3c77df 100644
--- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -1,6 +1,7 @@
package com.doumee.service.system.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.config.jwt.JwtTokenUtil;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
@@ -11,6 +12,7 @@
import com.doumee.dao.business.dao.SmsEmailMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.business.model.SmsEmail;
+import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.LoginByOpenidDTO;
import com.doumee.dao.system.dto.LoginDTO;
import com.doumee.dao.system.dto.LoginPhoneDTO;
@@ -47,6 +49,8 @@
@Lazy
@Autowired
private SystemUserService systemUserService;
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Autowired
private SmsEmailMapper smsEmailMapper;
@@ -83,7 +87,7 @@
loginLog.setLoginTime(new Date());
loginLog.setSystemVersion(systemVersion);
loginLog.setIp(Utils.User_Client.getIP(request));
- loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
+// loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
loginLog.setPlatform(Utils.User_Client.getPlatform(request));
loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
loginLog.setOsInfo(Utils.User_Client.getOS(request));
@@ -124,7 +128,7 @@
loginLog.setLoginUsername(dto.getUsername());
loginLog.setLoginTime(new Date());
loginLog.setSystemVersion(systemVersion);
- loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
+// loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){
loginLog.setIp(Utils.User_Client.getIP(request));
loginLog.setPlatform(Utils.User_Client.getPlatform(request));
@@ -132,7 +136,7 @@
loginLog.setOsInfo(Utils.User_Client.getOS(request));
}
loginLog.setServerIp(Utils.Server.getIP());
- if(isDebug == null || !isDebug && dto.getCheckCode()){
+// if(isDebug == null || !isDebug && dto.getCheckCode()){
// 鏍¢獙楠岃瘉鐮�
try {
captchaService.check(dto.getUuid(), dto.getCode());
@@ -143,7 +147,7 @@
systemLoginLogService.create(loginLog);
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛�");
}
- }
+// }
// 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
SystemUser queryDto = new SystemUser();
queryDto.setUsername(dto.getUsername());
@@ -160,6 +164,7 @@
if( !StringUtils.equals(pwd, user.getPassword())){
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
+ dealOpenIdBiz(user,dto.getOpenid());
Company company = new Company();
if(Objects.nonNull(user.getCompanyId())){
company = companyMapper.selectById(user.getCompanyId());
@@ -177,8 +182,24 @@
return userInfo;
}
-
-
+ private void dealOpenIdBiz(SystemUser user, String openid) {
+ if(StringUtils.isNotBlank(openid)){
+ //濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getOpenid,null)
+ .set(SystemUser::getOpenidHkDate,null)
+ .set(SystemUser::getOpenidHkInfo,null)
+ .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+ .eq(SystemUser::getOpenid,openid)
+ .eq(SystemUser::getType,user.getType()));
+ systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda()
+ .set(SystemUser::getOpenid,openid)
+ .set(SystemUser::getOpenidHkStatus,Constants.ZERO)
+ .set(SystemUser::getOpenidHkDate,null)
+ .set(SystemUser::getOpenidHkInfo,null)
+ .eq(SystemUser::getId,user.getId()));
+ }
+ }
@Override
@@ -187,7 +208,7 @@
loginLog.setLoginUsername(dto.getPhone());
loginLog.setLoginTime(new Date());
loginLog.setSystemVersion(systemVersion);
- loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
+// loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){
loginLog.setIp(Utils.User_Client.getIP(request));
loginLog.setPlatform(Utils.User_Client.getPlatform(request));
@@ -258,8 +279,9 @@
SystemLoginLog loginLog = new SystemLoginLog();
loginLog.setLoginUsername(dto.getUsername());
loginLog.setLoginTime(new Date());
+ loginLog.setReason("銆愬叕浼楀彿銆戝徃鏈虹鐧婚檰锛歰penid="+dto.getOpenid());
loginLog.setSystemVersion(systemVersion);
- loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
+// loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){
loginLog.setIp(Utils.User_Client.getIP(request));
loginLog.setPlatform(Utils.User_Client.getPlatform(request));
@@ -275,11 +297,28 @@
if (user == null) {
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
+ //娉ㄥ唽鍙告満/鍔冲姟浜哄憳
+ if((Constants.equalsInteger(user.getType(),Constants.ZERO)||Constants.equalsInteger(user.getType(),Constants.TWO)) && Objects.nonNull(user.getMemberId())){
+ if(Constants.equalsInteger(user.getType(),Constants.TWO)){
+ if(Objects.isNull(user.getCompanyId())){
+ throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN);
+ }
+ Company company = companyMapper.selectById(user.getCompanyId());
+ if(Objects.isNull(company) || Constants.equalsInteger(company.getType(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN);
+ }
+ }
+ }else{
+ throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN);
+ }
+
+
String pwd = Utils.Secure.encryptPassword(new String(dto.getPassword()), user.getSalt());
// 姣旇緝瀵嗙爜
if( !StringUtils.equals(pwd, user.getPassword())){
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT);
}
+ dealOpenIdBiz(user,dto.getOpenid());
Company company = new Company();
if(Objects.nonNull(user.getCompanyId())){
company = companyMapper.selectById(user.getCompanyId());
@@ -298,7 +337,7 @@
SystemLoginLog loginLog = new SystemLoginLog();
loginLog.setLoginTime(new Date());
loginLog.setSystemVersion(systemVersion);
- loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
+// loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp()));
loginLog.setServerIp(Utils.Server.getIP());
// 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞�
--
Gitblit v1.9.3