From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 04 七月 2025 17:56:41 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 43 +++++++++++++++++++++++++++++++++++++------ 1 files changed, 37 insertions(+), 6 deletions(-) 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 b655567..056421e 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 @@ -3,7 +3,6 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.baomidou.mybatisplus.extension.api.R; import com.doumee.config.shiro.ShiroToken; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; @@ -90,9 +89,11 @@ @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())); + if(StringUtils.isNotBlank(loginUserInfo.getOpenid())){ + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() + .set(SystemUser::getOpenid,null) + .eq(SystemUser::getId,loginUserInfo.getId())); + } } @@ -160,7 +161,7 @@ } // 鏍¢獙鐢ㄦ埛鍚嶅拰瀵嗙爜 Subject subject = SecurityUtils.getSubject(); - ShiroToken token = new ShiroToken(dto.getUsername(), dto.getPassword(),true,type); + ShiroToken token = new ShiroToken(dto.getUsername(), dto.getPassword(),true,type,null); try { subject.login(token); loginLog.setUserId(((LoginUserInfo)subject.getPrincipal()).getId()); @@ -213,7 +214,7 @@ } // 鏍¢獙鐢ㄦ埛鍚嶅拰瀵嗙爜 Subject subject = SecurityUtils.getSubject(); - ShiroToken token = new ShiroToken(dto.getPhone(), null,false,type); + ShiroToken token = new ShiroToken(dto.getPhone(), null,false,type,null); try { subject.login(token); loginLog.setUserId(((LoginUserInfo)subject.getPrincipal()).getId()); @@ -232,6 +233,36 @@ + @Override + public String switchCompany (LoginUserInfo loginUserInfo,Integer companyId, HttpServletRequest request) { + SystemLoginLog loginLog = new SystemLoginLog(); + loginLog.setLoginUsername(loginUserInfo.getMobile()); + loginLog.setLoginTime(new Date()); + loginLog.setSystemVersion(systemVersion); + loginLog.setIp(Utils.User_Client.getIP(request)); + 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)); + loginLog.setServerIp(Utils.Server.getIP()); + + // 鏍¢獙鐢ㄦ埛鍚嶅拰瀵嗙爜 + Subject subject = SecurityUtils.getSubject(); + ShiroToken token = new ShiroToken(loginUserInfo.getMobile(), null,false,loginUserInfo.getType(),companyId); + try { + subject.login(token); + loginLog.setUserId(((LoginUserInfo)subject.getPrincipal()).getId()); + loginLog.setSuccess(Boolean.TRUE); + systemLoginLogService.create(loginLog); + return (String)subject.getSession().getId(); + } catch (AuthenticationException e) { + log.error(ResponseStatus.ACCOUNT_INCORRECT.getMessage(), e); + loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage()); + loginLog.setSuccess(Boolean.FALSE); + systemLoginLogService.create(loginLog); + throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT.getCode(), Objects.isNull(e.getCause())?ResponseStatus.ACCOUNT_INCORRECT.getMessage():e.getCause().getMessage()); + } + } } -- Gitblit v1.9.3