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