From 3ea4aa5f783011fc5e8858dc646c51288c7e51d1 Mon Sep 17 00:00:00 2001 From: luyan Date: Mon, 25 Mar 2024 14:29:13 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8D=E7=99=BB=E9=99=86?= =?UTF-8?q?=E4=B8=8E=E5=85=9A=E7=BE=A4e=E5=AE=B6=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E7=99=BB=E9=99=86=E5=86=B2=E7=AA=81=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=EF=BC=9B=202=E3=80=81=E4=BF=AE=E5=A4=8D=E4=B8=AA?= =?UTF-8?q?=E4=BA=BA=E4=BF=A1=E6=81=AF=E6=9B=B4=E6=96=B0=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/service/impl/AppUserServiceImpl.java | 186 ++++++++++++------ .../epdc/user/dto/CachingUserInfoDTO.java | 5 + .../form/EpdcAppQueryUserInfoFormDTO.java | 5 +- .../elink/esua/epdc/user/dao/UserDjylDao.java | 2 + .../service/impl/UserDjylServiceImpl.java | 16 +- .../src/main/resources/mapper/UserDjlyDao.xml | 37 ++++ 6 files changed, 186 insertions(+), 65 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index d59320ca3..d4aa32bf6 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -246,7 +246,27 @@ public class AppUserServiceImpl implements AppUserService { if (!userInfoResult.success()) { return new Result().error(userInfoResult.getMsg()); } - return this.getTokenByUserDto(userInfoResult.getData(), null); + return this.getTokenByUserDto(userInfoResult.getData()); + } + + private Result getTokenByUserDto(CachingUserInfoDTO userDto){ + EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); + // 用户未注册 + if (null == userDto) { + authorization.setUserState(AppUserStatesEnum.STATE_NOT_REGISTERED.value()); + return new Result().ok(authorization); + } + TokenDto tokenDto = ConvertUtils.sourceToTarget(userDto, TokenDto.class); + + String state = userDto.getState(); + authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), state); + + Result result = new Result().ok(authorization); + // 已注册,未完善信息 + if (AppUserStatesEnum.STATE_INFORMATION_NOT_PASSED.value().equals(state)) { + result.setMsg(userDto.getRemark()); + } + return result; } private Result getNPMTokenByOpenId(WxMaJscode2SessionResult wxMaJscode2SessionResult, EpdcAppUserTokenFormDTO loginDto) { @@ -254,11 +274,13 @@ public class AppUserServiceImpl implements AppUserService { EpdcAppQueryUserInfoFormDTO formDTO = new EpdcAppQueryUserInfoFormDTO(); formDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); formDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); + formDTO.setMobile(loginDto.getMobile()); + formDTO.setPassword(loginDto.getPassword()); Result userInfoResult = userFeignClient.npmNeedCachingUserInfo(formDTO); if (!userInfoResult.success()) { return new Result().error(userInfoResult.getMsg()); } - return this.getTokenByUserDto(userInfoResult.getData(), loginDto); + return this.getTokenByNpmUserDto(userInfoResult.getData(), loginDto); } @@ -270,7 +292,7 @@ public class AppUserServiceImpl implements AppUserService { * @author work@yujt.net.cn * @date 2019/9/19 19:17 */ - private Result getTokenByUserDto(CachingUserInfoDTO userDto, EpdcAppUserTokenFormDTO loginDto) { + private Result getTokenByNpmUserDto(CachingUserInfoDTO userDto, EpdcAppUserTokenFormDTO loginDto) { EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); // 用户未注册 @@ -278,7 +300,19 @@ public class AppUserServiceImpl implements AppUserService { authorization.setUserState(AppUserStatesEnum.STATE_NOT_REGISTERED.value()); return new Result().ok(authorization); } - if (StringUtils.isEmpty(loginDto.getMobile()) || !userDto.getMobile().equals(loginDto.getMobile())) { + log.info("loginDto:{}", loginDto.toString()); + log.info("userDto:{}", userDto.toString()); + if (StringUtils.isNotEmpty(loginDto.getMobile())) { + if (loginDto.getMobile().length() > 11) { + if (!userDto.getIdentityNo().equals(loginDto.getMobile())) { + return new Result().error(-1, "请确认账号或密码是否正确!"); + } + } else { + if (!userDto.getMobile().equals(loginDto.getMobile())) { + return new Result().error(-1, "请确认账号或密码是否正确!"); + } + } + } else { return new Result().error(-1, "请确认账号或密码是否正确!"); } if (StringUtils.isNotEmpty(loginDto.getPassword())) { @@ -291,7 +325,6 @@ public class AppUserServiceImpl implements AppUserService { tokenDto.setCouplingCommunity(userDto.getCouplingCommunity().split(",")); } String state = userDto.getState(); - authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), state); authorization.setGridId(userDto.getGridId()); Result result = new Result().ok(authorization); @@ -557,10 +590,8 @@ public class AppUserServiceImpl implements AppUserService { */ private UserDTO packageUserDto(EpdcUserRegistFormDTO formDto, String unionId, String openId, CompleteDeptDTO completeDept) { UserDTO user = ConvertUtils.sourceToTarget(formDto, UserDTO.class); - user.setWxOpenId(openId); user.setWxUnionId(unionId); - PhoneDto phoneDto = PhoneUtil.getPhoneDto(formDto.getMobile()); if (phoneDto != null) { user.setMobileProvince(phoneDto.getProvinceName()); @@ -596,7 +627,6 @@ public class AppUserServiceImpl implements AppUserService { user.setPartyFlag(formDto.getPartFlag() == null ? YesOrNoEnum.NO.value() : String.valueOf(formDto.getPartFlag())); user.setRegisterWay(AppUserRegisterWayEnum.WX.value()); user.setRegisterSource(AppUserRegisterSourceEnum.WP.value()); -// user.setFaceImg(USER_FACE); return user; } @@ -1745,69 +1775,115 @@ public class AppUserServiceImpl implements AppUserService { @Override public Result npmUserRegister(EpdcUserNpmRegisterFormDTO formDto) { - UserDTO userDTO = generateNpmUserDTO(formDto); - return userFeignClient.nmpUserRegister(userDTO); + return userFeignClient.nmpUserRegister(generateNpmUserDTO(formDto)); } @Override public Result npmUserUpdate(EpdcUserNpmRegisterFormDTO formDto) { - UserDTO userDTO = generateNpmUserDTO(formDto); - //更新头像 - if (StringUtils.isNotEmpty(formDto.getFaceImg()) && !formDto.getFaceImg().equals(userDTO.getFaceImg())) { - userDTO.setFaceImg(formDto.getFaceImg()); - } - return userFeignClient.npmUserUpdate(userDTO); + UserDTO user = ConvertUtils.sourceToTarget(formDto, UserDTO.class); + return userFeignClient.npmUserUpdate(user); } + + /** + * 分离原油代码的注册封装逻辑,避免代码污染 + * + * @param formDto + * @return + * @author yan Lu + * @date 2024年3月25日 + */ private UserDTO generateNpmUserDTO(EpdcUserNpmRegisterFormDTO formDto) { - EpdcUserRegistFormDTO epdcUserRegistFormDTO = ConvertUtils.sourceToTarget(formDto, EpdcUserRegistFormDTO.class); - if (StringUtils.isNotEmpty(formDto.getPassword())) { - String pwd = PasswordUtils.encode(formDto.getPassword()); - epdcUserRegistFormDTO.setPassword(pwd); - npmVerifyUserRegisterData(epdcUserRegistFormDTO); + EpdcUserRegistFormDTO registDTO = ConvertUtils.sourceToTarget(formDto, EpdcUserRegistFormDTO.class); + //校验身份证号码是否注册 + if (StringUtils.isEmpty(formDto.getUserId())) { + npmVerifyUserRegisterData(registDTO); } - epdcUserRegistFormDTO.setRoad(""); - if (null != formDto.getCouplingCommunity()) { - epdcUserRegistFormDTO.setCouplingCommunity(String.join(",", formDto.getCouplingCommunity())); + //密码加密 + if (StringUtils.isNotEmpty(formDto.getPassword())) { + registDTO.setPassword(PasswordUtils.encode(formDto.getPassword())); } - - UserDTO userDTO = new UserDTO(); - //判断是否在市北居住,如果居住,需要填写社区信息 + //微信绑定 + WxMaJscode2SessionResult nmpWxUser = this.getNMPWxUser(formDto.getWxCode()); + Long deptId = 0L; + CompleteDeptDTO completeDept = null; + //如果在市北,获取网格机构详情 if (formDto.getShibei() == 1) { - Long deptId; - if (formDto.getAllDeptIds() != null && formDto.getAllDeptIds().length > 1) { - deptId = Long.parseLong(formDto.getAllDeptIds()[formDto.getAllDeptIds().length - 1]); - } else { - UserDetail user = SecurityUser.getUser(); - deptId = user.getDeptId(); + if (null != formDto.getAllDeptIds()) { + if (formDto.getAllDeptIds().length > 1) { + //默认获取社区第一网格 + deptId = Long.parseLong(formDto.getAllDeptIds()[formDto.getAllDeptIds().length - 1]); + } } - // 获取网格机构详情 - Result adminDeptResult = adminFeignClient.getCompleteDept(deptId); - if (!adminDeptResult.success() || null == adminDeptResult.getData()) { + completeDept = adminFeignClient.getCompleteDept(deptId).getData(); + if (null == completeDept) { throw new RenException("查询网格信息失败"); } - CompleteDeptDTO completeDept = adminDeptResult.getData(); - - epdcUserRegistFormDTO.setGridId(deptId); - WxMaJscode2SessionResult nmpWxUser = this.getNMPWxUser(formDto.getWxCode()); - userDTO = this.packageUserDto(epdcUserRegistFormDTO, nmpWxUser.getUnionid(), nmpWxUser.getOpenid(), completeDept); - userDTO.setDeptId(deptId); + registDTO.setGridId(deptId); + //暂时关闭,此时还没有登陆 +// else { +// UserDetail user = SecurityUser.getUser(); +// deptId = user.getDeptId(); +// } + } + + //解偶北尚速办业务,UserDto数据封装 + UserDTO user = ConvertUtils.sourceToTarget(registDTO, UserDTO.class); + user.setWxOpenId(nmpWxUser.getOpenid()); + user.setWxUnionId(nmpWxUser.getUnionid()); + PhoneDto phoneDto = PhoneUtil.getPhoneDto(formDto.getMobile()); + if (phoneDto != null) { + user.setMobileProvince(phoneDto.getProvinceName()); + user.setMobileCity(phoneDto.getCityName()); + user.setMobileCarrier(phoneDto.getCarrier()); } - userDTO.setHobbies(formDto.getHobbies()); - userDTO.setPartyFlag(String.valueOf(formDto.getPartyFlag())); - userDTO.setShibei(formDto.getShibei()); - userDTO.setWorkUnit(formDto.getWorkUnit()); - userDTO.setWorkType(formDto.getWorkType()); - userDTO.setWorkIndustry(formDto.getWorkIndustry()); - userDTO.setWorkIndustryText(formDto.getWorkIndustryText()); - if (StringUtils.isNotEmpty(formDto.getFaceImg())) { - userDTO.setFaceImg(formDto.getFaceImg()); + user.setSex(IdentityNoUtils.getSex(registDTO.getIdentityNo())); + user.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(registDTO.getIdentityNo()), DateUtils.DATE_PATTERN)); + + if (null != completeDept) {//设置组织 + user.setDistrict(completeDept.getDistrict()); + user.setDistrictId(completeDept.getDistrictId()); + user.setStreet(completeDept.getStreet()); + user.setStreetId(completeDept.getStreetId()); + user.setCommunity(completeDept.getCommunity()); + user.setCommunityId(completeDept.getCommunityId()); + user.setGrid(completeDept.getGrid()); + user.setGridId(completeDept.getGridId()); + registDTO.setRoad(completeDept.getCommunity());//设置昵称前缀 + String address = registDTO.getRoad() + .concat(StringUtils.isNotBlank(registDTO.getVillageName()) ? registDTO.getVillageName() : "") + .concat(StringUtils.isNotBlank(registDTO.getDwellingPlace()) ? registDTO.getDwellingPlace() : ""); + user.setAddress(address); + user.setDeptId(completeDept.getCommunityId()); + } + String nickName = registDTO.getRealName().substring(NumConstant.ZERO, NumConstant.ONE).concat(NumConstant.ZERO_STR.equals(user.getSex()) ? "女士" : "先生"); + if (StringUtils.isNotBlank(registDTO.getRoad())) { + nickName = registDTO.getRoad().concat("-").concat(nickName); } - // IP地址 + user.setNickname(nickName); + //设置注册信息 + Date now = new Date(); + user.setRegisterTime(now); + user.setLastLoginTime(now); + user.setState(AppUserAuditStateEnum.UNDER_AUDIT.value()); + user.setPartyFlag(registDTO.getPartFlag() == null ? YesOrNoEnum.NO.value() : String.valueOf(registDTO.getPartFlag())); + user.setRegisterWay(AppUserRegisterWayEnum.WX.value()); + user.setRegisterSource(AppUserRegisterSourceEnum.WP.value()); + //设置注册表单数据 + user.setHobbies(formDto.getHobbies());//爱好 + user.setPartyFlag(String.valueOf(formDto.getPartyFlag()));//是否党员 + user.setShibei(formDto.getShibei());//是否在市北 + user.setWorkUnit(formDto.getWorkUnit());//工作单位 + user.setWorkType(formDto.getWorkType());//单位类型 + user.setWorkIndustry(formDto.getWorkIndustry());//行业 + user.setWorkIndustryText(formDto.getWorkIndustryText()); + if (StringUtils.isNotEmpty(formDto.getFaceImg())) {//设置头像 + user.setFaceImg(formDto.getFaceImg()); + } + // 设置注册登陆的IP地址 HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); - userDTO.setLastLoginIp(IpUtils.getIpAddr(request)); - - return userDTO; + user.setLastLoginIp(IpUtils.getIpAddr(request)); + return user; } private UserDTO generateUserDTO(EpdcUserNpmRegisterFormDTO formDto) { diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/CachingUserInfoDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/CachingUserInfoDTO.java index adb0302a1..0c0ce0e3e 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/CachingUserInfoDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/CachingUserInfoDTO.java @@ -35,6 +35,11 @@ public class CachingUserInfoDTO { */ private String mobile; + /** + * 身份证号码 + */ + private String identityNo; + /** * 密码 */ diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/epdc/form/EpdcAppQueryUserInfoFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/epdc/form/EpdcAppQueryUserInfoFormDTO.java index b9b488c13..760f2badb 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/epdc/form/EpdcAppQueryUserInfoFormDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/user/dto/epdc/form/EpdcAppQueryUserInfoFormDTO.java @@ -15,6 +15,9 @@ public class EpdcAppQueryUserInfoFormDTO implements Serializable { private String openId; - private String unionId; + + private String mobile; + + private String password; } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/dao/UserDjylDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/dao/UserDjylDao.java index b403dfce6..88f62da4e 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/dao/UserDjylDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/dao/UserDjylDao.java @@ -25,6 +25,8 @@ public interface UserDjylDao extends BaseDao { CachingUserInfoDTO selectNpmCachingUserInfoDTO(@Param("openId") String openId, @Param("unionId") String unionId); + CachingUserInfoDTO getNpmCachingUserInfoDTO(@Param("mobile") String mobile); + /** * 获取个人用户信息 * diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/service/impl/UserDjylServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/service/impl/UserDjylServiceImpl.java index 70ee722a8..efde3bc5e 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/service/impl/UserDjylServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/user/service/impl/UserDjylServiceImpl.java @@ -88,7 +88,7 @@ public class UserDjylServiceImpl extends BaseServiceImpl parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(userDto.getGridId().toString()); if (!parentAndAllDeptDTOResult.success()) { return new Result().error(parentAndAllDeptDTOResult.getMsg()); @@ -112,13 +112,11 @@ public class UserDjylServiceImpl extends BaseServiceImpl npmUserUpdate(UserDTO userDto) { - //修改数据库结构 - UserDjylEntity djylEntity = baseDao.selectById(userDto.getUserId()); - userDto.setPassword(djylEntity.getPassword()); - userDto.setId(djylEntity.getId()); UserDjylEntity entity = ConvertUtils.sourceToTarget(userDto, UserDjylEntity.class); - if(null != userDto.getGridId()){ - Result parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(userDto.getGridId().toString()); + entity.setId(userDto.getUserId()); + if (StringUtils.isNotEmpty(userDto.getAllDeptIds())) { + String gridId = userDto.getAllDeptIds().substring(userDto.getAllDeptIds().length() - 1); + Result parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(gridId); if (!parentAndAllDeptDTOResult.success()) { return new Result().error(parentAndAllDeptDTOResult.getMsg()); } @@ -142,7 +140,7 @@ public class UserDjylServiceImpl extends BaseServiceImpl().ok(baseDao.selectNpmCachingUserInfoDTO(formDTO.getOpenId(), formDTO.getUnionId())); + return new Result().ok(baseDao.getNpmCachingUserInfoDTO(formDTO.getMobile())); } @Override @@ -160,7 +158,7 @@ public class UserDjylServiceImpl extends BaseServiceImpl parentAndAllDeptDTOResult = adminFeignClient.getParentAndAllDept(userGridRel.getGridId().toString()); diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDjlyDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDjlyDao.xml index b969ad34d..b8e1c40b6 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDjlyDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDjlyDao.xml @@ -9,6 +9,7 @@ + @@ -25,6 +26,7 @@ eu.ID, eu.NICKNAME, eu.MOBILE, + eu.IDENTITY_NO AS identityNo, eu.PASSWORD, eu.FACE_IMG, eu.SEX, @@ -52,6 +54,41 @@ limit 1 + +