From 93fc01349aa48a086c71123a2317765a925c0897 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 06 一月 2025 10:22:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 105 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 97 insertions(+), 8 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 00d21b3..506b502 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 @@ -5,7 +5,8 @@ import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.jwt.JwtTokenUtil; import com.doumee.core.exception.BusinessException; -import com.doumee.core.model.LoginUserInfo; +import com.doumee.service.business.third.TmsService; +import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; @@ -16,13 +17,13 @@ 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; import com.doumee.dao.system.dto.LoginDTO; import com.doumee.dao.system.dto.LoginPhoneDTO; import com.doumee.dao.system.model.*; +import com.doumee.service.business.third.model.request.TmsEmployeeListRequest; +import com.doumee.service.business.third.model.response.TmsEmployeeListResponse; import com.doumee.service.common.CaptchaService; 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; @@ -35,6 +36,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -58,8 +60,10 @@ private MemberMapper memberMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; + @Lazy @Autowired private SystemUserMapper systemUserMapper; + @Lazy @Autowired private SmsEmailMapper smsEmailMapper; @@ -74,15 +78,18 @@ @Lazy @Autowired private SystemPermissionService systemPermissionService; - + @Lazy @Autowired private CaptchaService captchaService; + @Lazy @Autowired private SystemLoginLogService systemLoginLogService; @Autowired private CompanyMapper companyMapper; + @Autowired + private TmsService tmsService; @Resource private JwtTokenUtil jwtTokenUtil; @@ -250,7 +257,27 @@ .set(SystemUser::getOpenidHkInfo,null) .set(SystemUser::getOpenidHkStatus,Constants.ZERO) .eq(SystemUser::getOpenid,openid) - .eq(SystemUser::getType,user.getType())); +// .eq(SystemUser::getType,user.getType()) + ); + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() + .set(SystemUser::getOpenid,openid) + .set(SystemUser::getOpenidHkStatus,Constants.ZERO) + .set(SystemUser::getOpenidHkDate,null) + .set(SystemUser::getOpenidHkInfo,null) + .eq(SystemUser::getId,user.getId())); + } + } + private void dealOpenIdBizForGk(SystemUser user, String openid) { + if(StringUtils.isNotBlank(openid)){ + //濡傛灉openId涓嶄负绌�,缁戝畾璇ョ敤鎴穙penid + systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() + .set(SystemUser::getOpenid,null) + .set(SystemUser::getOpenidHkDate,null) + .set(SystemUser::getOpenidHkInfo,null) + .set(SystemUser::getOpenidHkStatus,Constants.ZERO) + .eq(SystemUser::getOpenid,openid) + .eq(SystemUser::getType,user.getType()) + ); systemUserMapper.update(null,new UpdateWrapper<SystemUser>().lambda() .set(SystemUser::getOpenid,openid) .set(SystemUser::getOpenidHkStatus,Constants.ZERO) @@ -370,8 +397,6 @@ }else{ throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN); } - - String pwd = Utils.Secure.encryptPassword(new String(dto.getPassword()), user.getSalt()); // 姣旇緝瀵嗙爜 if( !StringUtils.equals(pwd, user.getPassword())){ @@ -411,6 +436,7 @@ } @Override + @Transactional public LoginUserInfo loginDriverWithCode(LoginPhoneDTO param, ServerHttpRequest request) { isCaptcheValide(param.getPhone(),param.getCode());//妫�鏌ラ獙璇佺爜 @@ -446,6 +472,7 @@ systemUser = new SystemUser(); systemUser.setCreateTime(new Date()); + systemUser.setCreateUser(1); systemUser.setDeleted(Boolean.FALSE); systemUser.setUsername(param.getPhone()); systemUser.setRealname(null); @@ -458,13 +485,75 @@ systemUser.setSource(Constants.TWO); systemUser.setOpenid(param.getOpenid()); systemUserMapper.insert(systemUser); + }else{ + if(!Constants.equalsInteger(systemUser.getType(),Constants.memberType.driver)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇蜂娇鐢ㄦ纭殑鍙告満璐﹀彿鐧婚檰锛�"); + } } - 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,company,null); + return userInfo; + } + @Override + @Transactional + public LoginUserInfo loginGkUserWithCode(LoginPhoneDTO param, ServerHttpRequest request) { + isCaptcheValide(param.getPhone(),param.getCode());//妫�鏌ラ獙璇佺爜 + SystemLoginLog loginLog = new SystemLoginLog(); + loginLog.setLoginUsername(param.getPhone()); + loginLog.setLoginTime(new Date()); + loginLog.setReason("銆愬叕浼楀彿銆戣繍鍗曟煡璇㈢鎺т汉鍛橀獙璇佺爜鐧婚檰锛歰penid="+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.setType(Constants.memberType.gkuser); + 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.setCreateUser(1); + 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); + }else{ + if(!Constants.equalsInteger(systemUser.getType(),Constants.memberType.gkuser)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇蜂娇鐢ㄦ纭殑绠℃帶浜哄憳鎵嬫満鍙风櫥闄嗭紒"); + } + } + dealOpenIdBizForGk(systemUser,param.getOpenid()); LoginUserInfo userInfo = LoginUserInfo.from(systemUser, null, null,null,null); return userInfo; } -- Gitblit v1.9.3