From 94c670060fb681b4e7262989bdea9748f03fb93c Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 18 三月 2024 16:19:28 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 86 +++++++++++++++++++++++++++--------------- 1 files changed, 55 insertions(+), 31 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 0a9ff2d..b655567 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 @@ -56,39 +56,49 @@ private SystemUserMapper systemUserMapper; - /** - * 寰俊鎺堟潈锛堢櫥褰曞悗锛� - * @param code - */ - @Override - public String wxEmpower(String code,Integer userId){ - try { - //鑾峰彇寰俊鏁忔劅鏁版嵁 - WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); - String openId = session.getOpenid(); - if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�"); - } - if(Objects.nonNull(userId)){ - systemUserMapper.update(null,new UpdateWrapper<SystemUser>() - .lambda().set(SystemUser::getOpenid,null) - .eq(SystemUser::getOpenid,openId) - .ne(SystemUser::getId,userId)); +// /** +// * 寰俊鎺堟潈锛堢櫥褰曞悗锛� +// * @param code +// */ +// @Override +// public String wxEmpower(String code,Integer userId){ +// try { +// //鑾峰彇寰俊鏁忔劅鏁版嵁 +// WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(code); +// String openId = session.getOpenid(); +// if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) { +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�"); +// } +// if(Objects.nonNull(userId)){ +// systemUserMapper.update(null,new UpdateWrapper<SystemUser>() +// .lambda() +// .set(SystemUser::getOpenid,null) +// .eq(SystemUser::getOpenid,openId) +// .ne(SystemUser::getId,userId)); +// +// systemUserMapper.update(null,new UpdateWrapper<SystemUser>() +// .lambda() +// .set(SystemUser::getOpenid,openId) +// .eq(SystemUser::getId,userId)); +// } +// return openId; +// } catch (WxErrorException e) { +// throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�"); +// } +// } - systemUserMapper.update(null,new UpdateWrapper<SystemUser>() - .lambda() - .set(SystemUser::getOpenid,openId) - .eq(SystemUser::getId,userId)); - } - return openId; - } catch (WxErrorException e) { - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�"); - } + @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())); } @Override public String loginByWxMini (WxMiniLoginDTO wxMiniLoginDTO, HttpServletRequest request){ + LoginDTO dto = new LoginDTO(); if(StringUtils.isNotBlank(wxMiniLoginDTO.getCode())){ try{ WxMaJscode2SessionResult session = WxMiniConfig.wxMaService.getUserService().getSessionInfo(wxMiniLoginDTO.getCode()); @@ -102,10 +112,14 @@ .last(" limit 1") ); if(Objects.nonNull(systemUser)){ - LoginPhoneDTO dto = new LoginPhoneDTO(); - dto.setPhone(systemUser.getMobile()); - return this.loginByPhone(dto,Constants.ZERO,false,request); + LoginPhoneDTO loginPhoneDTO = new LoginPhoneDTO(); + loginPhoneDTO.setPhone(systemUser.getMobile()); + return this.loginByPhone(loginPhoneDTO,Constants.ONE,false,request); + }else{ + return null; } + }else{ + dto.setOpenid(openId); } } catch (WxErrorException e) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�"); @@ -115,7 +129,6 @@ || StringUtils.isBlank(wxMiniLoginDTO.getPassword())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - LoginDTO dto = new LoginDTO(); dto.setUsername(wxMiniLoginDTO.getUsername()); dto.setPassword(wxMiniLoginDTO.getPassword()); return this.loginByPassword(dto,Constants.ONE,false,request); @@ -153,6 +166,17 @@ loginLog.setUserId(((LoginUserInfo)subject.getPrincipal()).getId()); loginLog.setSuccess(Boolean.TRUE); systemLoginLogService.create(loginLog); + + //鏇存柊openid鎵�灞炵敤鎴蜂俊鎭� + if(StringUtils.isNotBlank(dto.getOpenid())){ + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() + .set(SystemUser::getOpenid,null) + .eq(SystemUser::getOpenid,dto.getOpenid()) + .ne(SystemUser::getId,loginLog.getUserId())); + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() + .set(SystemUser::getOpenid,dto.getOpenid()) + .eq(SystemUser::getId,loginLog.getUserId())); + } return (String)subject.getSession().getId(); } catch (AuthenticationException e) { log.error(ResponseStatus.ACCOUNT_INCORRECT.getMessage(), e); -- Gitblit v1.9.3