From b693c55ed17cc94efb45ea595341d443bfd4259d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期六, 23 十一月 2024 09:19:04 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 42 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 37 insertions(+), 5 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..a1c4a95 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 @@ -90,9 +90,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 +162,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 +215,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 +234,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