From b245b6a354c7b861376b35cab4c093ffdd8f2986 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 九月 2025 10:59:30 +0800
Subject: [PATCH] jtt808初始化
---
server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 72 ++++++++++++++++++++++++++++++++++--
1 files changed, 68 insertions(+), 4 deletions(-)
diff --git a/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index a0a4413..2c016e0 100644
--- a/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.system.impl;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
@@ -7,6 +8,9 @@
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.LoginDTO;
import com.doumee.dao.system.dto.WebLoginDTO;
import com.doumee.dao.system.model.SystemLoginLog;
@@ -28,6 +32,7 @@
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
+import java.util.Objects;
@Slf4j
@Service
@@ -36,8 +41,13 @@
@Value("${project.version}")
private String systemVersion;
+
+ @Autowired
+ private SystemUserMapper systemUserMapper;
@Autowired
private CaptchaService captchaService;
+ @Autowired
+ private MemberMapper memberMapper;
@Autowired
private SystemUserService systemUserService;
@@ -67,7 +77,65 @@
return doLogin(d,false,request);
}
+ @Override
+ public void logoutWx(String memberId){
+ memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+ .set(Member::getSysuserId,null)
+ .eq(Member::getId,memberId));//瑙i櫎缁戝畾鍓嶇鐢ㄦ埛openId鍏崇郴
+ }
+ @Override
+ public SystemUser loginByPasswordWx(WebLoginDTO dto, HttpServletRequest request) {
+ if(StringUtils.isBlank(dto.getUsername())
+ ||StringUtils.isBlank(dto.getPassword())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ SystemLoginLog loginLog = new SystemLoginLog();
+ loginLog.setLoginUsername(dto.getUsername());
+ loginLog.setLoginTime(new Date());
+ loginLog.setSystemVersion(systemVersion);
+ loginLog.setIp(Utils.User_Client.getIP(request));
+ loginLog.setPlatform(Utils.User_Client.getPlatform(request));
+ loginLog.setClientInfo(Utils.User_Client.getBrowser(request));
+ loginLog.setOsInfo(Utils.User_Client.getOS(request));
+ loginLog.setServerIp(Utils.Server.getIP());
+ try {
+ SystemUser s = new SystemUser();
+ s.setUsername(dto.getUsername());
+ SystemUser systemUser =systemUserService.findOne(s);
+ if(systemUser ==null){
+ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(), "瀵逛笉璧凤紝璐﹀彿鎴栧瘑鐮侀敊璇紒");
+ }
+ if (!StringUtils.equals(systemUser.getPassword(),Utils.Secure.encryptPassword(dto.getPassword(), systemUser.getSalt()))) {
+ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(), "瀵逛笉璧凤紝璐﹀彿鎴栧瘑鐮侀敊璇�");
+ }
+ if(Objects.equals(s.getStatus(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐧诲綍璐﹀彿宸茬鐢紝璇疯仈绯荤鐞嗗憳锛�");
+ }
+ memberMapper.update(null,new UpdateWrapper<Member>().lambda()
+ .set(Member::getSysuserId,systemUser.getId())
+ .eq(Member::getId,dto.getMemberId()));//缁戝畾鍓嶇鐢ㄦ埛openId鍏崇郴
+ return systemUser;
+/* SystemUser u = new SystemUser();
+ u.setLastLogin(DateUtil.getCurrentDate());
+ u.setId(systemUser.getId());
+ systemUserService.updateById(u);//鏇存柊鏈�鍚庣櫥褰曟椂闂�
+
+ loginLog.setUserId(u.getId());
+ loginLog.setSuccess(Constants.ZERO);
+ systemLoginLogService.create(loginLog);//鐧诲綍鏃ュ織*/
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.error(ResponseStatus.ACCOUNT_INCORRECT.getMessage(), e);
+ loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
+ loginLog.setSuccess(Constants.ONE);
+ systemLoginLogService.create(loginLog);
+ if (e.getCause() instanceof BusinessException) {
+ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(), e.getCause().getMessage());
+ }
+ throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(), "瀵逛笉璧凤紝璐﹀彿鎴栧瘑鐮侀敊璇紒");
+ }
+ }
public String doLogin(LoginDTO dto,boolean needCheckCode, HttpServletRequest request) {
if(StringUtils.isBlank(dto.getUsername())
||StringUtils.isBlank(dto.getPassword())
@@ -126,9 +194,5 @@
throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(), "瀵逛笉璧凤紝璐﹀彿鎴栧瘑鐮侀敊璇紒");
}
}
-
-
-
-
}
--
Gitblit v1.9.3