From a6f9e7d4faf7c1c536111e0db7f3317cbda9ddb1 Mon Sep 17 00:00:00 2001 From: liukangdong <898885815@qq.com> Date: 星期一, 30 十二月 2024 18:24:05 +0800 Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmvisit --- server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 92 insertions(+), 0 deletions(-) diff --git a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java index 91a5fb8..00d21b3 100644 --- a/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java +++ b/server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.jwt.JwtTokenUtil; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; @@ -9,8 +10,10 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.dao.CompanyMapper; +import com.doumee.dao.business.dao.MemberMapper; import com.doumee.dao.business.dao.SmsEmailMapper; import com.doumee.dao.business.model.Company; +import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.SmsEmail; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.dto.LoginByOpenidDTO; @@ -21,6 +24,7 @@ import com.doumee.service.system.*; import com.github.yulichang.wrapper.MPJLambdaWrapper; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.RandomStringUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; @@ -49,6 +53,11 @@ @Lazy @Autowired private SystemUserService systemUserService; + @Lazy + @Autowired + private MemberMapper memberMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; @Autowired private SystemUserMapper systemUserMapper; @@ -376,6 +385,89 @@ LoginUserInfo userInfo = LoginUserInfo.from(user, null, null,company,null); return userInfo; } + public void isCaptcheValide( String phone, String captche) { + SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda() + .eq(SmsEmail::getType, Constants.ZERO) + .eq(SmsEmail::getPhone, phone) + .eq(SmsEmail::getRemark, captche) + .eq(SmsEmail::getIsdeleted, Constants.ZERO) + ); + if(model == null){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒"); + } + if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒"); + } + if(model.getCreateDate() !=null && + System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){ + model.setStatus(Constants.ONE); + model.setEditDate(new Date()); + smsEmailMapper.updateById(model); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘"); + } + model.setStatus(Constants.ONE); + model.setEditDate(new Date()); + smsEmailMapper.updateById(model); + } + + @Override + public LoginUserInfo loginDriverWithCode(LoginPhoneDTO param, ServerHttpRequest request) { + isCaptcheValide(param.getPhone(),param.getCode());//妫�鏌ラ獙璇佺爜 + + SystemLoginLog loginLog = new SystemLoginLog(); + loginLog.setLoginUsername(param.getPhone()); + loginLog.setLoginTime(new Date()); + loginLog.setReason("銆愬叕浼楀彿銆戝徃鏈虹楠岃瘉鐮佺櫥闄嗭細openid="+param.getOpenid()); + loginLog.setSystemVersion(systemVersion); +// loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); + if(request!=null&&request.getHeaders()!=null && request.getHeaders().size()>0){ + 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()); + // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� + SystemUser queryDto = new SystemUser(); + queryDto.setUsername(param.getPhone()); + queryDto.setDeleted(Boolean.FALSE); + SystemUser systemUser = systemUserService.findOne(queryDto); + if (systemUser == null) { + String salt = RandomStringUtils.randomAlphabetic(6); + Member member = new Member(); + member.setCreateDate(new Date()); + member.setIsdeleted(Constants.ZERO); + member.setType(Constants.memberType.driver); + member.setPhone(param.getPhone()); + member.setStatus(Constants.ZERO); + member.setOpenid(param.getOpenid()); + member.setPassward(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt)); + memberMapper.insert(member); + + systemUser = new SystemUser(); + systemUser.setCreateTime(new Date()); + systemUser.setDeleted(Boolean.FALSE); + systemUser.setUsername(param.getPhone()); + systemUser.setRealname(null); + systemUser.setMemberId(member.getId()); + systemUser.setMobile(param.getPhone()); + systemUser.setSalt(salt); + systemUser.setPassword(member.getPassward()); + systemUser.setStatus(Constants.ZERO); + systemUser.setType(Constants.memberType.driver); + systemUser.setSource(Constants.TWO); + systemUser.setOpenid(param.getOpenid()); + systemUserMapper.insert(systemUser); + } + + dealOpenIdBiz(systemUser,param.getOpenid()); + Company company = new Company(); + if(Objects.nonNull(systemUser.getCompanyId())){ + company = companyMapper.selectById(systemUser.getCompanyId()); + } + LoginUserInfo userInfo = LoginUserInfo.from(systemUser, null, null,null,null); + return userInfo; + } /** -- Gitblit v1.9.3