From fa7ac16021db8d9a6a5bc214f50600420876325e Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 九月 2025 10:57:41 +0800
Subject: [PATCH] jtt808初始化

---
 server/services/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java |   68 ++++++++++++++++++++++++++++++++++
 1 files changed, 68 insertions(+), 0 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 d1a6d7d..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())

--
Gitblit v1.9.3