From 67e8a1c12ccb42b82704d989c71607d0cbe33356 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期一, 06 一月 2025 11:45:00 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 174 +++++++++++------ server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java | 4 server/system_service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java | 307 ++++++++++++++---------------- server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java | 16 server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java | 34 +++ server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java | 4 server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java | 2 7 files changed, 302 insertions(+), 239 deletions(-) diff --git a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java index ab585f1..539f4d4 100644 --- a/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java +++ b/server/system_gateway/src/main/java/com/doumee/api/gateway/JwtAuthController.java @@ -111,6 +111,23 @@ return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } + @PreventRepeat(limit = 10, lockTime = 10000) + @ApiOperation("H5涓氬姟鐧诲綍") + @PostMapping("/loginH5ByPhone") + @LoginNoRequired + public ApiResponse<String> loginH5ByPhone (@Validated @RequestBody LoginPhoneDTO dto, ServerWebExchange serverWebExchange) { + try { + ServerHttpRequest request = serverWebExchange.getRequest(); + LoginUserInfo user = systemLoginService.loginH5ByPhone(dto,request); + String token = jwtTokenUtil.generateToken(user); + return ApiResponse.success(token); + }catch (BusinessException e){ + return ApiResponse.failed(e.getCode(),e.getMessage()); + }catch (Exception e){ + e.printStackTrace(); + return ApiResponse.failed(ResponseStatus.SERVER_ERROR); + } + } @PreventRepeat(limit = 10, lockTime = 10000) @@ -133,6 +150,23 @@ } @PreventRepeat(limit = 10, lockTime = 10000) + @ApiOperation("鍙告満鐧诲綍(鎵嬫満鍙烽獙璇佺爜鐧诲綍锛�") + @PostMapping("/loginDriverByPhone") + @LoginNoRequired + public ApiResponse<String> loginDriverByPhone (@Validated @RequestBody LoginPhoneDTO dto, ServerWebExchange serverWebExchange) { + try { + ServerHttpRequest request = serverWebExchange.getRequest(); + LoginUserInfo user = systemLoginService.loginDriverByPhone(dto,request); + String token = jwtTokenUtil.generateToken(user); + return ApiResponse.success(token); + }catch (BusinessException e){ + return ApiResponse.failed(e.getCode(),e.getMessage()); + }catch (Exception e){ + e.printStackTrace(); + return ApiResponse.failed(ResponseStatus.SERVER_ERROR); + } + } + @PreventRepeat(limit = 10, lockTime = 10000) @ApiOperation("鍙告満鐧诲綍") @PostMapping("/loginDriver") @LoginNoRequired diff --git a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java index 6dc5f3e..4f8a018 100644 --- a/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java +++ b/server/system_service/src/main/java/com/doumee/dao/system/dto/LoginPhoneDTO.java @@ -23,4 +23,6 @@ private String code; @ApiModelProperty(value = "openid") private String openid; + @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷锛�0=鍙告満锛�1=璁垮锛�2=鍐呴儴鍛樺伐") + private Integer userType; } diff --git a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java index a768ad8..98054d3 100644 --- a/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java +++ b/server/system_service/src/main/java/com/doumee/dao/system/model/SystemUser.java @@ -98,8 +98,8 @@ @ApiModelProperty(value = "寰俊openid鎺ㄩ�佹捣搴锋椂闂�", example = "1", hidden = true) private Date openidHkDate; - //2024骞�12鏈�6鏃�11:00:30 绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹� 2鍐呴儴浜哄憳 - @ApiModelProperty(value = "绫诲瀷 0骞冲彴鐢ㄦ埛 1璁垮", example = "0") + //2024骞�12鏈�6鏃�11:00:30 绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹� 2鍐呴儴浜哄憳 3tms绠℃帶浜哄憳 + @ApiModelProperty(value = "绫诲瀷 0鍙告満浜哄憳 1鏅�氳瀹� 2鍐呴儴浜哄憳 3tms绠℃帶浜哄憳", example = "0") private Integer type; @ApiModelProperty(value = "寰俊鏄电О") diff --git a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java index 83fbc82..6c95876 100644 --- a/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java +++ b/server/system_service/src/main/java/com/doumee/service/system/SystemLoginService.java @@ -37,4 +37,8 @@ * @return */ String loginByUserId(Integer userId); + + LoginUserInfo loginH5ByPhone(LoginPhoneDTO dto, ServerHttpRequest request); + + LoginUserInfo loginDriverByPhone(LoginPhoneDTO dto, ServerHttpRequest request); } 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 506b502..b4adca4 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 @@ -140,19 +140,9 @@ @Override public LoginUserInfo loginByPasswordNew(LoginDTO dto, ServerHttpRequest request) { - SystemLoginLog loginLog = new SystemLoginLog(); - loginLog.setLoginUsername(dto.getUsername()); - loginLog.setLoginTime(new Date()); - 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()); -// if(isDebug == null || !isDebug && dto.getCheckCode()){ + SystemLoginLog loginLog = getInitLoginlog(dto.getUsername(),request); + + if((isDebug == null || !isDebug) && (Objects.isNull(dto.getCheckCode()) || dto.getCheckCode()) ){ // 鏍¢獙楠岃瘉鐮� try { captchaService.check(dto.getUuid(), dto.getCode()); @@ -161,49 +151,17 @@ 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(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛�"); + throw e; } -// } - // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� - SystemUser queryDto = new SystemUser(); - queryDto.setUsername(dto.getUsername()); - queryDto.setDeleted(Boolean.FALSE); - SystemUser user = systemUserService.findOne(queryDto); - if (user == null) { - throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); } - if(!Constants.equalsInteger(user.getSource(),Constants.ZERO)){ - throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN); - } - String pwd = Utils.Secure.encryptPassword(new String(dto.getPassword()), user.getSalt()); - // 姣旇緝瀵嗙爜 - if( !StringUtils.equals(pwd, user.getPassword())){ - throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); - } - dealOpenIdBiz(user,dto.getOpenid()); - Company company = new Company(); - if(Objects.nonNull(user.getCompanyId())){ - company = companyMapper.selectById(user.getCompanyId()); - } - // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 - List<SystemRole> roles = systemRoleService.findByUserId(user.getId()); - List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId()); - - SystemRole rt = new SystemRole(); - rt.setDeleted(Boolean.FALSE); - //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎 - user.setCompanyIdList(systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user)); - - LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,company,null); - return userInfo; + LoginUserInfo user = dealLoginByPwdNewBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid(),request); + systemLoginLogService.create(loginLog); + return user; } - - - @Override - public LoginUserInfo loginByPasswordForPda(LoginDTO dto, ServerHttpRequest request) { + private SystemLoginLog getInitLoginlog(String username, ServerHttpRequest request) { SystemLoginLog loginLog = new SystemLoginLog(); - loginLog.setLoginUsername(dto.getUsername()); + loginLog.setLoginUsername( username); loginLog.setLoginTime(new Date()); loginLog.setSystemVersion(systemVersion); // loginLog.setLocation(Utils.Location.getLocationString(loginLog.getIp())); @@ -214,6 +172,57 @@ loginLog.setOsInfo(Utils.User_Client.getOS(request)); } loginLog.setServerIp(Utils.Server.getIP()); + return loginLog; + } + + @Override + public LoginUserInfo loginH5ByPhone(LoginPhoneDTO dto, ServerHttpRequest request) { + isCaptcheValide(dto.getPhone(),dto.getCode());//妫�鏌ラ獙璇佺爜 + SystemLoginLog loginLog = getInitLoginlog(dto.getPhone(),request); + LoginUserInfo userInfo = dealLoginByPwdNewBiz(null,null,dto.getPhone(),dto.getOpenid(), request ); + systemLoginLogService.create(loginLog); + return userInfo; + } + private LoginUserInfo dealLoginByPwdNewBiz(String username,String pwd, String phone, String openid, ServerHttpRequest request) { + // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� + SystemUser queryDto = new SystemUser(); + queryDto.setMobile(phone); + queryDto.setUsername(username); + queryDto.setType(Constants.memberType.internal); + queryDto.setDeleted(Boolean.FALSE); + SystemUser user = systemUserService.findOne(queryDto); + if (user == null) { + throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); + } + if(!Constants.equalsInteger(user.getSource(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN); + } + if(StringUtils.isNotBlank( pwd)){ + String pppp = Utils.Secure.encryptPassword(new String(pwd), user.getSalt()); + // 姣旇緝瀵嗙爜 + if( !StringUtils.equals(pppp, user.getPassword())){ + throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); + } + } + dealOpenIdBiz(user,openid); + Company company = new Company(); + if(Objects.nonNull(user.getCompanyId())){ + company = companyMapper.selectById(user.getCompanyId()); + } + // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 + List<SystemRole> roles = systemRoleService.findByUserId(user.getId()); + List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId()); + SystemRole rt = new SystemRole(); + rt.setDeleted(Boolean.FALSE); + //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎 + user.setCompanyIdList(systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user)); + LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,company,null); + return userInfo; + } + + @Override + public LoginUserInfo loginByPasswordForPda(LoginDTO dto, ServerHttpRequest request) { + SystemLoginLog loginLog =getInitLoginlog(dto.getUsername(),request); // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� SystemUser queryDto = new SystemUser(); queryDto.setUsername(dto.getUsername()); @@ -290,20 +299,7 @@ @Override public LoginUserInfo loginByPhone(LoginPhoneDTO dto, ServerHttpRequest request) { - SystemLoginLog loginLog = new SystemLoginLog(); - loginLog.setLoginUsername(dto.getPhone()); - loginLog.setLoginTime(new Date()); - 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()); - - + SystemLoginLog loginLog =getInitLoginlog(dto.getPhone(),request); // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� SystemUser queryDto = new SystemUser(); queryDto.setMobile(dto.getPhone()); @@ -349,42 +345,46 @@ // 鑾峰彇鐧诲綍鐢ㄦ埛淇℃伅 List<SystemRole> roles = systemRoleService.findByUserId(user.getId()); List<SystemPermission> permissions = systemPermissionService.findByUserId(user.getId()); - SystemRole rt = new SystemRole(); rt.setDeleted(Boolean.FALSE); //鏁版嵁閮ㄩ棬鏉冮檺闆嗗悎 user.setCompanyIdList(systemDataPermissionService.selectHighRole(new SystemDataPermission(),rt,user)); - LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,company,null); + systemLoginLogService.create(loginLog); return userInfo; } @Override public LoginUserInfo driverLogin(LoginDTO dto, ServerHttpRequest request) { - SystemLoginLog loginLog = new SystemLoginLog(); - loginLog.setLoginUsername(dto.getUsername()); - loginLog.setLoginTime(new Date()); - loginLog.setReason("銆愬叕浼楀彿銆戝徃鏈虹鐧婚檰锛歰penid="+dto.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()); + SystemLoginLog loginLog =getInitLoginlog(dto.getUsername(),request); + LoginUserInfo userInfo = dealLoginDriverBiz(dto.getUsername(),dto.getPassword(),null,dto.getOpenid()); + systemLoginLogService.create(loginLog); + return userInfo; + } + @Override + public LoginUserInfo loginDriverByPhone(LoginPhoneDTO dto, ServerHttpRequest request){ + isCaptcheValide(dto.getPhone(),dto.getCode());//楠岃瘉鐮佹牎楠� + SystemLoginLog loginLog =getInitLoginlog(dto.getPhone(),request); + LoginUserInfo userInfo = dealLoginDriverBiz(null,null,dto.getPhone(),dto.getOpenid()); + systemLoginLogService.create(loginLog); + return userInfo; + } + + private LoginUserInfo dealLoginDriverBiz(String username,String password, String phone, String openid) { // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� SystemUser queryDto = new SystemUser(); - queryDto.setUsername(dto.getUsername()); + queryDto.setUsername(username); + queryDto.setMobile(phone); queryDto.setDeleted(Boolean.FALSE); SystemUser user = systemUserService.findOne(queryDto); if (user == null) { throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); } - //娉ㄥ唽鍙告満/鍔冲姟浜哄憳 - if((Constants.equalsInteger(user.getType(),Constants.ZERO)||Constants.equalsInteger(user.getType(),Constants.TWO)) && Objects.nonNull(user.getMemberId())){ + //娉ㄥ唽鍙告満 + if((Constants.equalsInteger(user.getType(),Constants.ZERO) + ||Constants.equalsInteger(user.getType(),Constants.TWO)) + && Objects.nonNull(user.getMemberId())){ if(Constants.equalsInteger(user.getType(),Constants.TWO)){ if(Objects.isNull(user.getCompanyId())){ throw new BusinessException(ResponseStatus.NO_ALLOW_LOGIN); @@ -397,19 +397,22 @@ }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())){ - throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); + if(StringUtils.isNotBlank(password)){ + String pwd = Utils.Secure.encryptPassword(new String(password), user.getSalt()); + // 姣旇緝瀵嗙爜 + if( !StringUtils.equals(pwd, user.getPassword())){ + throw new BusinessException(ResponseStatus.ACCOUNT_INCORRECT); + } } - dealOpenIdBiz(user,dto.getOpenid()); + dealOpenIdBiz(user,openid); Company company = new Company(); if(Objects.nonNull(user.getCompanyId())){ company = companyMapper.selectById(user.getCompanyId()); } LoginUserInfo userInfo = LoginUserInfo.from(user, null, null,company,null); - return userInfo; + return userInfo; } + public void isCaptcheValide( String phone, String captche) { SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda() .eq(SmsEmail::getType, Constants.ZERO) @@ -439,19 +442,7 @@ @Transactional 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)); - } + SystemLoginLog loginLog =getInitLoginlog(param.getPhone(),request); loginLog.setServerIp(Utils.Server.getIP()); // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� SystemUser queryDto = new SystemUser(); @@ -459,32 +450,7 @@ 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); + systemUser = autoRegisterUser(Constants.memberType.driver,param.getPhone(),param.getOpenid(),true); }else{ if(!Constants.equalsInteger(systemUser.getType(),Constants.memberType.driver)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇蜂娇鐢ㄦ纭殑鍙告満璐﹀彿鐧婚檰锛�"); @@ -496,25 +462,56 @@ company = companyMapper.selectById(systemUser.getCompanyId()); } LoginUserInfo userInfo = LoginUserInfo.from(systemUser, null, null,company,null); + systemLoginLogService.create(loginLog); return userInfo; } + + private SystemUser autoRegisterUser(int type, String phone,String openid,boolean needMember) { + String salt = RandomStringUtils.randomAlphabetic(6); + String pwd =Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt); + Integer memberId = null; + if(needMember){ + Member member = new Member(); + member.setCreateDate(new Date()); + member.setIsdeleted(Constants.ZERO); + member.setType(Constants.memberType.driver); + member.setPhone(phone); + member.setStatus(Constants.ZERO); + member.setOpenid(openid); + member.setPassward(pwd); + memberMapper.insert(member); + memberId = member.getId(); + } + + SystemUser systemUser = new SystemUser(); + systemUser.setCreateTime(new Date()); + systemUser.setCreateUser(1); + systemUser.setDeleted(Boolean.FALSE); + systemUser.setUsername(phone); + systemUser.setRealname(null); + systemUser.setMemberId(memberId); + systemUser.setMobile(phone); + systemUser.setSalt(salt); + systemUser.setPassword(pwd); + systemUser.setStatus(Constants.ZERO); + systemUser.setType(type); + systemUser.setSource(Constants.TWO); + systemUser.setOpenid(openid); + systemUserMapper.insert(systemUser); + return systemUser; + } + @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)); + TmsEmployeeListRequest tp = new TmsEmployeeListRequest(); + tp.setTel(param.getPhone()); + TmsEmployeeListResponse response = tmsService.getEmployeeList(tp); + if(response == null || response.getTel()==null){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鎮ㄨ緭鍏ョ殑鎵嬫満鍙蜂笉姝g‘锛�"); } - loginLog.setServerIp(Utils.Server.getIP()); + SystemLoginLog loginLog = getInitLoginlog(param.getPhone(),request); // 鏍规嵁鐢ㄦ埛鍚嶆煡璇㈢敤鎴峰璞� SystemUser queryDto = new SystemUser(); queryDto.setUsername(param.getPhone()); @@ -522,32 +519,8 @@ 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); + //鏂板绠℃帶浜哄憳鏁版嵁 + systemUser = systemUser = autoRegisterUser(Constants.memberType.gkuser,param.getPhone(),param.getOpenid(),false); }else{ if(!Constants.equalsInteger(systemUser.getType(),Constants.memberType.gkuser)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇蜂娇鐢ㄦ纭殑绠℃帶浜哄憳鎵嬫満鍙风櫥闄嗭紒"); @@ -555,6 +528,7 @@ } dealOpenIdBizForGk(systemUser,param.getOpenid()); LoginUserInfo userInfo = LoginUserInfo.from(systemUser, null, null,null,null); + systemLoginLogService.create(loginLog); return userInfo; } @@ -591,7 +565,6 @@ LoginUserInfo userInfo = LoginUserInfo.from(user, roles, permissions,company,null); String token = jwtTokenUtil.generateToken(userInfo); - return token; } diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java index 8c2c08f..41ca70e 100644 --- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java +++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/TmsCloudController.java @@ -33,13 +33,14 @@ @ApiOperation("銆怲MS銆戠數瀛愰攣涓婇攣鏃堕棿鎺ュ彛") @LoginNoRequired @PostMapping("/lockStatusQuery") - public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(@RequestBody TmsLockStatusQueryRequest request ) { + public TmsBaseResponse<List<TmsLockStatusQueryResponse>> lockStatusQuery(@RequestBody TmsLockStatusQueryRequest request, @RequestHeader(Constants.HEADER_USER_TOKEN) String token ) { return tmsService.lockStatusQuery(request); } @ApiOperation("銆怲MS銆戝悎鍚屽垪琛ㄦ帴鍙�") - @LoginNoRequired +// @LoginNoRequired @PostMapping("/orderList") - public ApiResponse<TmsBasePageResponse<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest param ) { + public ApiResponse<TmsBasePageResponse<TmsOrderListResponse>> orderList(@RequestBody TmsOrderListRequest param , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { + LoginUserInfo user = this.getLoginUser(token); if(param == null){ param = new TmsOrderListRequest(); } @@ -55,18 +56,19 @@ if(param.getPager().getRows() == null){ param.getPager().setRows(10); } - if(StringUtils.isBlank(param.getParameters().getPhoneNumber())){ + param.getParameters().setPhoneNumber(user.getMobile()); + /* if(StringUtils.isBlank(param.getParameters().getPhoneNumber())){ param.getParameters().setPhoneNumber("00000000000");//鎵嬫満鍙峰繀濉� - } + }*/ if(param.getParameters().getContractNumbers()==null || param.getParameters().getContractNumbers().size()==0){ param.getParameters().setContractNumbers(null); } return ApiResponse.success(tmsService.orderList(param)); } @ApiOperation("銆怲MS銆戝悎鍚岃鎯呮帴鍙�") - @LoginNoRequired +// @LoginNoRequired @PostMapping("/orderInfo") - public ApiResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request ) { + public ApiResponse<TmsOrderInfoResponse> ordreInfo(@RequestBody TmsOrderInfoRequest request , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(tmsService.orderInfo(request)); } @ApiOperation("銆怲MS銆戝徃鏈哄緟鍔炰换鍔″垪琛ㄦ帴鍙�") diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index 3698711..0f64ff0 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -19,6 +19,7 @@ import com.doumee.core.haikang.model.param.respose.UserAddResponse; import com.doumee.core.haikang.model.param.respose.UserDelResponse; import com.doumee.core.haikang.service.HKService; +import com.doumee.service.business.third.TmsService; import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; @@ -49,6 +50,8 @@ import com.doumee.service.business.SmsEmailService; import com.doumee.service.business.impl.hksync.HkSyncEmpowerServiceImpl; import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl; +import com.doumee.service.business.third.model.request.TmsEmployeeListRequest; +import com.doumee.service.business.third.model.response.TmsEmployeeListResponse; import com.doumee.service.system.SystemLoginService; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.collections.CollectionUtils; @@ -118,6 +121,8 @@ @Autowired private VisitsMapper visitsMapper; + @Autowired + private TmsService tmsService; @Autowired private SystemUserMapper systemUserMapper; @@ -1725,76 +1730,119 @@ } wxAuthorizeVO.setOpenid(openId); if(source==1){ - //鏍规嵁openId 鏌ヨ鐢ㄦ埛淇℃伅 - Member member = memberJoinMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() - .selectAll(Member.class) - .selectAs(Company::getName,Member::getCompanyName) - .leftJoin(Company.class,Company::getId,Member::getCompanyId) - .eq(Member::getOpenid,openId) - .eq(Member::getType,source) - .eq(Member::getIsdeleted,Constants.ZERO) - .orderByDesc(Member::getCreateDate) - .last(" limit 1 ") - ); - //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 - if(!Objects.isNull(member)){ - if(member.getIsdeleted() == Constants.ONE){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); - } - if(member.getStatus() != Constants.ZERO){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); - } - if(StringUtils.isNotBlank(member.getIdcardNo())){ - member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo())); - } - String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + - systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); - member.setPrefixUrl(prefixUrl); - wxAuthorizeVO.setMember(member); - //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token - if(Constants.equalsInteger(source,Constants.ZERO)||Constants.equalsInteger(source,Constants.TWO)){ - SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMemberId,member.getId()) - .eq(SystemUser::getStatus,Constants.ZERO).last(" limit 1 ")); - if(Objects.nonNull(systemUser)){ - String token = systemLoginService.loginByUserId(systemUser.getId()); - wxAuthorizeVO.setToken(token); - } - } - } + //澶勭悊鏅�氳瀹汉鍛樿嚜鍔ㄦ巿鏉冮�昏緫 + dealVisitUserAuthBiz(wxAuthorizeVO,openId,source); + }else if(source == 3){ + //澶勭悊tms绠℃帶浜哄憳鑷姩鎺堟潈閫昏緫 + dealGkUserAuthBiz(wxAuthorizeVO,openId,source); }else{ //濡傛灉鏄徃鏈烘垨鑰呭唴閮ㄤ汉鍛橈紝鍒欎粠system_user鏌ヨ - SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() - .eq(SystemUser::getOpenid,openId) - .eq(Objects.nonNull(source)&&Constants.equalsInteger(source,Constants.TWO),SystemUser::getType,source) - .eq(SystemUser::getDeleted,Boolean.FALSE) - .last(" limit 1 ")); - //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 - if(!Objects.isNull(user)){ - Member member = memberMapper.selectById(user.getMemberId()); - if(member.getIsdeleted() == Constants.ONE){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); - } - if(member.getStatus() != Constants.ZERO){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); - } - if(StringUtils.isNotBlank(member.getIdcardNo())){ - member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo())); - } - String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + - systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); - member.setPrefixUrl(prefixUrl); - wxAuthorizeVO.setMember(member); - //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token - String token = systemLoginService.loginByUserId(user.getId()); - wxAuthorizeVO.setToken(token); - } + dealSystemUserAuthBiz(wxAuthorizeVO,openId,source); } - - return wxAuthorizeVO; } + private void dealSystemUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId, Integer source) { + SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getOpenid,openId) + .eq(Objects.nonNull(source)&&Constants.equalsInteger(source,Constants.TWO),SystemUser::getType,source) + .eq(SystemUser::getDeleted,Boolean.FALSE) + .last(" limit 1 ")); + //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 + if(!Objects.isNull(user)){ + Member member = memberMapper.selectById(user.getMemberId()); + if(member.getIsdeleted() == Constants.ONE){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); + } + if(member.getStatus() != Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); + } + if(StringUtils.isNotBlank(member.getIdcardNo())){ + member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo())); + } + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + member.setPrefixUrl(prefixUrl); + wxAuthorizeVO.setMember(member); + //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token + String token = systemLoginService.loginByUserId(user.getId()); + wxAuthorizeVO.setToken(token); + } + } + private void dealGkUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId, Integer source) { + //濡傛灉鏄徃鏈烘垨鑰呭唴閮ㄤ汉鍛橈紝鍒欎粠system_user鏌ヨ + SystemUser user = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda() + .eq(SystemUser::getOpenid,openId) + .eq(SystemUser::getType,source) + .eq(Objects.nonNull(source)&&Constants.equalsInteger(source,Constants.TWO),SystemUser::getType,source) + .eq(SystemUser::getDeleted,Boolean.FALSE) + .last(" limit 1 ")); + //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 + if(!Objects.isNull(user)){ + TmsEmployeeListRequest tp = new TmsEmployeeListRequest(); + tp.setTel(user.getMobile()); + TmsEmployeeListResponse response = tmsService.getEmployeeList(tp); + if(response == null || response.getTel()==null){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ヨ处鎴蜂汉鍛樹俊鎭笉姝g‘锛屽鏈夌枒闂鑱旂郴绯荤粺绠$悊鍛樻煡鐪嬶紒"); + } + Member member = memberMapper.selectById(user.getMemberId()); + if(member.getIsdeleted() == Constants.ONE){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); + } + if(member.getStatus() != Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); + } + if(StringUtils.isNotBlank(member.getIdcardNo())){ + member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo())); + } + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + member.setPrefixUrl(prefixUrl); + wxAuthorizeVO.setMember(member); + //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token + String token = systemLoginService.loginByUserId(user.getId()); + wxAuthorizeVO.setToken(token); + } + } + + private void dealVisitUserAuthBiz(WxAuthorizeVO wxAuthorizeVO, String openId,Integer source) { + Member member = memberJoinMapper.selectJoinOne(Member.class,new MPJLambdaWrapper<Member>() + .selectAll(Member.class) + .selectAs(Company::getName,Member::getCompanyName) + .leftJoin(Company.class,Company::getId,Member::getCompanyId) + .eq(Member::getOpenid,openId) + .eq(Member::getType,source) + .eq(Member::getIsdeleted,Constants.ZERO) + .orderByDesc(Member::getCreateDate) + .last(" limit 1 ") + ); + //闈炶瀹㈢敤鎴� 杩涜鍒ゆ柇鏄惁瀛樺湪鐢ㄦ埛 + if(!Objects.isNull(member)){ + if(member.getIsdeleted() == Constants.ONE){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); + } + if(member.getStatus() != Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸茬鐢�,璇疯仈绯荤鐞嗗憳"); + } + if(StringUtils.isNotBlank(member.getIdcardNo())){ + member.setIdcardDecode(DESUtil.decrypt(Constants.EDS_PWD, member.getIdcardNo())); + } + String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); + member.setPrefixUrl(prefixUrl); + wxAuthorizeVO.setMember(member); + //鍙告満 涓� 鍐呴儴浜哄憳 鎻愪緵token + if(Constants.equalsInteger(source,Constants.ZERO)||Constants.equalsInteger(source,Constants.TWO)){ + SystemUser systemUser = systemUserMapper.selectOne(new QueryWrapper<SystemUser>().lambda().eq(SystemUser::getMemberId,member.getId()) + .eq(SystemUser::getStatus,Constants.ZERO).last(" limit 1 ")); + if(Objects.nonNull(systemUser)){ + String token = systemLoginService.loginByUserId(systemUser.getId()); + wxAuthorizeVO.setToken(token); + } + } + } + } @Override -- Gitblit v1.9.3