|
@ -246,7 +246,27 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
if (!userInfoResult.success()) { |
|
|
if (!userInfoResult.success()) { |
|
|
return new Result().error(userInfoResult.getMsg()); |
|
|
return new Result().error(userInfoResult.getMsg()); |
|
|
} |
|
|
} |
|
|
return this.getTokenByUserDto(userInfoResult.getData(), null); |
|
|
return this.getTokenByUserDto(userInfoResult.getData()); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private Result<EpdcAppAuthorizationDTO> 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<EpdcAppAuthorizationDTO> getNPMTokenByOpenId(WxMaJscode2SessionResult wxMaJscode2SessionResult, EpdcAppUserTokenFormDTO loginDto) { |
|
|
private Result<EpdcAppAuthorizationDTO> getNPMTokenByOpenId(WxMaJscode2SessionResult wxMaJscode2SessionResult, EpdcAppUserTokenFormDTO loginDto) { |
|
@ -254,11 +274,13 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
EpdcAppQueryUserInfoFormDTO formDTO = new EpdcAppQueryUserInfoFormDTO(); |
|
|
EpdcAppQueryUserInfoFormDTO formDTO = new EpdcAppQueryUserInfoFormDTO(); |
|
|
formDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); |
|
|
formDTO.setOpenId(wxMaJscode2SessionResult.getOpenid()); |
|
|
formDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); |
|
|
formDTO.setUnionId(wxMaJscode2SessionResult.getUnionid()); |
|
|
|
|
|
formDTO.setMobile(loginDto.getMobile()); |
|
|
|
|
|
formDTO.setPassword(loginDto.getPassword()); |
|
|
Result<CachingUserInfoDTO> userInfoResult = userFeignClient.npmNeedCachingUserInfo(formDTO); |
|
|
Result<CachingUserInfoDTO> userInfoResult = userFeignClient.npmNeedCachingUserInfo(formDTO); |
|
|
if (!userInfoResult.success()) { |
|
|
if (!userInfoResult.success()) { |
|
|
return new Result().error(userInfoResult.getMsg()); |
|
|
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 |
|
|
* @author work@yujt.net.cn |
|
|
* @date 2019/9/19 19:17 |
|
|
* @date 2019/9/19 19:17 |
|
|
*/ |
|
|
*/ |
|
|
private Result<EpdcAppAuthorizationDTO> getTokenByUserDto(CachingUserInfoDTO userDto, EpdcAppUserTokenFormDTO loginDto) { |
|
|
private Result<EpdcAppAuthorizationDTO> getTokenByNpmUserDto(CachingUserInfoDTO userDto, EpdcAppUserTokenFormDTO loginDto) { |
|
|
|
|
|
|
|
|
EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); |
|
|
EpdcAppAuthorizationDTO authorization = new EpdcAppAuthorizationDTO(); |
|
|
// 用户未注册
|
|
|
// 用户未注册
|
|
@ -278,7 +300,19 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
authorization.setUserState(AppUserStatesEnum.STATE_NOT_REGISTERED.value()); |
|
|
authorization.setUserState(AppUserStatesEnum.STATE_NOT_REGISTERED.value()); |
|
|
return new Result().ok(authorization); |
|
|
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<EpdcAppAuthorizationDTO>().error(-1, "请确认账号或密码是否正确!"); |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
if (!userDto.getMobile().equals(loginDto.getMobile())) { |
|
|
|
|
|
return new Result<EpdcAppAuthorizationDTO>().error(-1, "请确认账号或密码是否正确!"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
return new Result<EpdcAppAuthorizationDTO>().error(-1, "请确认账号或密码是否正确!"); |
|
|
return new Result<EpdcAppAuthorizationDTO>().error(-1, "请确认账号或密码是否正确!"); |
|
|
} |
|
|
} |
|
|
if (StringUtils.isNotEmpty(loginDto.getPassword())) { |
|
|
if (StringUtils.isNotEmpty(loginDto.getPassword())) { |
|
@ -291,7 +325,6 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
tokenDto.setCouplingCommunity(userDto.getCouplingCommunity().split(",")); |
|
|
tokenDto.setCouplingCommunity(userDto.getCouplingCommunity().split(",")); |
|
|
} |
|
|
} |
|
|
String state = userDto.getState(); |
|
|
String state = userDto.getState(); |
|
|
|
|
|
|
|
|
authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), state); |
|
|
authorization = this.packageEpdcAppAuthorization(tokenDto, userDto.getGrid(), state); |
|
|
authorization.setGridId(userDto.getGridId()); |
|
|
authorization.setGridId(userDto.getGridId()); |
|
|
Result result = new Result().ok(authorization); |
|
|
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) { |
|
|
private UserDTO packageUserDto(EpdcUserRegistFormDTO formDto, String unionId, String openId, CompleteDeptDTO completeDept) { |
|
|
UserDTO user = ConvertUtils.sourceToTarget(formDto, UserDTO.class); |
|
|
UserDTO user = ConvertUtils.sourceToTarget(formDto, UserDTO.class); |
|
|
|
|
|
|
|
|
user.setWxOpenId(openId); |
|
|
user.setWxOpenId(openId); |
|
|
user.setWxUnionId(unionId); |
|
|
user.setWxUnionId(unionId); |
|
|
|
|
|
|
|
|
PhoneDto phoneDto = PhoneUtil.getPhoneDto(formDto.getMobile()); |
|
|
PhoneDto phoneDto = PhoneUtil.getPhoneDto(formDto.getMobile()); |
|
|
if (phoneDto != null) { |
|
|
if (phoneDto != null) { |
|
|
user.setMobileProvince(phoneDto.getProvinceName()); |
|
|
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.setPartyFlag(formDto.getPartFlag() == null ? YesOrNoEnum.NO.value() : String.valueOf(formDto.getPartFlag())); |
|
|
user.setRegisterWay(AppUserRegisterWayEnum.WX.value()); |
|
|
user.setRegisterWay(AppUserRegisterWayEnum.WX.value()); |
|
|
user.setRegisterSource(AppUserRegisterSourceEnum.WP.value()); |
|
|
user.setRegisterSource(AppUserRegisterSourceEnum.WP.value()); |
|
|
// user.setFaceImg(USER_FACE);
|
|
|
|
|
|
return user; |
|
|
return user; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
@ -1745,69 +1775,115 @@ public class AppUserServiceImpl implements AppUserService { |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Result<EpdcAppRegisterCallbackDTO> npmUserRegister(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
public Result<EpdcAppRegisterCallbackDTO> npmUserRegister(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
UserDTO userDTO = generateNpmUserDTO(formDto); |
|
|
return userFeignClient.nmpUserRegister(generateNpmUserDTO(formDto)); |
|
|
return userFeignClient.nmpUserRegister(userDTO); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public Result<String> npmUserUpdate(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
public Result<String> npmUserUpdate(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
UserDTO userDTO = generateNpmUserDTO(formDto); |
|
|
UserDTO user = ConvertUtils.sourceToTarget(formDto, UserDTO.class); |
|
|
//更新头像
|
|
|
return userFeignClient.npmUserUpdate(user); |
|
|
if (StringUtils.isNotEmpty(formDto.getFaceImg()) && !formDto.getFaceImg().equals(userDTO.getFaceImg())) { |
|
|
|
|
|
userDTO.setFaceImg(formDto.getFaceImg()); |
|
|
|
|
|
} |
|
|
|
|
|
return userFeignClient.npmUserUpdate(userDTO); |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 分离原油代码的注册封装逻辑,避免代码污染 |
|
|
|
|
|
* |
|
|
|
|
|
* @param formDto |
|
|
|
|
|
* @return |
|
|
|
|
|
* @author yan Lu |
|
|
|
|
|
* @date 2024年3月25日 |
|
|
|
|
|
*/ |
|
|
private UserDTO generateNpmUserDTO(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
private UserDTO generateNpmUserDTO(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
EpdcUserRegistFormDTO epdcUserRegistFormDTO = ConvertUtils.sourceToTarget(formDto, EpdcUserRegistFormDTO.class); |
|
|
EpdcUserRegistFormDTO registDTO = ConvertUtils.sourceToTarget(formDto, EpdcUserRegistFormDTO.class); |
|
|
if (StringUtils.isNotEmpty(formDto.getPassword())) { |
|
|
//校验身份证号码是否注册
|
|
|
String pwd = PasswordUtils.encode(formDto.getPassword()); |
|
|
if (StringUtils.isEmpty(formDto.getUserId())) { |
|
|
epdcUserRegistFormDTO.setPassword(pwd); |
|
|
npmVerifyUserRegisterData(registDTO); |
|
|
npmVerifyUserRegisterData(epdcUserRegistFormDTO); |
|
|
|
|
|
} |
|
|
} |
|
|
epdcUserRegistFormDTO.setRoad(""); |
|
|
//密码加密
|
|
|
if (null != formDto.getCouplingCommunity()) { |
|
|
if (StringUtils.isNotEmpty(formDto.getPassword())) { |
|
|
epdcUserRegistFormDTO.setCouplingCommunity(String.join(",", formDto.getCouplingCommunity())); |
|
|
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) { |
|
|
if (formDto.getShibei() == 1) { |
|
|
Long deptId; |
|
|
if (null != formDto.getAllDeptIds()) { |
|
|
if (formDto.getAllDeptIds() != null && formDto.getAllDeptIds().length > 1) { |
|
|
if (formDto.getAllDeptIds().length > 1) { |
|
|
deptId = Long.parseLong(formDto.getAllDeptIds()[formDto.getAllDeptIds().length - 1]); |
|
|
//默认获取社区第一网格
|
|
|
} else { |
|
|
deptId = Long.parseLong(formDto.getAllDeptIds()[formDto.getAllDeptIds().length - 1]); |
|
|
UserDetail user = SecurityUser.getUser(); |
|
|
} |
|
|
deptId = user.getDeptId(); |
|
|
|
|
|
} |
|
|
} |
|
|
// 获取网格机构详情
|
|
|
completeDept = adminFeignClient.getCompleteDept(deptId).getData(); |
|
|
Result<CompleteDeptDTO> adminDeptResult = adminFeignClient.getCompleteDept(deptId); |
|
|
if (null == completeDept) { |
|
|
if (!adminDeptResult.success() || null == adminDeptResult.getData()) { |
|
|
|
|
|
throw new RenException("查询网格信息失败"); |
|
|
throw new RenException("查询网格信息失败"); |
|
|
} |
|
|
} |
|
|
CompleteDeptDTO completeDept = adminDeptResult.getData(); |
|
|
registDTO.setGridId(deptId); |
|
|
|
|
|
//暂时关闭,此时还没有登陆
|
|
|
epdcUserRegistFormDTO.setGridId(deptId); |
|
|
// else {
|
|
|
WxMaJscode2SessionResult nmpWxUser = this.getNMPWxUser(formDto.getWxCode()); |
|
|
// UserDetail user = SecurityUser.getUser();
|
|
|
userDTO = this.packageUserDto(epdcUserRegistFormDTO, nmpWxUser.getUnionid(), nmpWxUser.getOpenid(), completeDept); |
|
|
// deptId = user.getDeptId();
|
|
|
userDTO.setDeptId(deptId); |
|
|
// }
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//解偶北尚速办业务,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()); |
|
|
user.setSex(IdentityNoUtils.getSex(registDTO.getIdentityNo())); |
|
|
userDTO.setPartyFlag(String.valueOf(formDto.getPartyFlag())); |
|
|
user.setBirthday(DateUtils.parse(IdentityNoUtils.getBirthday(registDTO.getIdentityNo()), DateUtils.DATE_PATTERN)); |
|
|
userDTO.setShibei(formDto.getShibei()); |
|
|
|
|
|
userDTO.setWorkUnit(formDto.getWorkUnit()); |
|
|
if (null != completeDept) {//设置组织
|
|
|
userDTO.setWorkType(formDto.getWorkType()); |
|
|
user.setDistrict(completeDept.getDistrict()); |
|
|
userDTO.setWorkIndustry(formDto.getWorkIndustry()); |
|
|
user.setDistrictId(completeDept.getDistrictId()); |
|
|
userDTO.setWorkIndustryText(formDto.getWorkIndustryText()); |
|
|
user.setStreet(completeDept.getStreet()); |
|
|
if (StringUtils.isNotEmpty(formDto.getFaceImg())) { |
|
|
user.setStreetId(completeDept.getStreetId()); |
|
|
userDTO.setFaceImg(formDto.getFaceImg()); |
|
|
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(); |
|
|
HttpServletRequest request = HttpContextUtils.getHttpServletRequest(); |
|
|
userDTO.setLastLoginIp(IpUtils.getIpAddr(request)); |
|
|
user.setLastLoginIp(IpUtils.getIpAddr(request)); |
|
|
|
|
|
return user; |
|
|
return userDTO; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private UserDTO generateUserDTO(EpdcUserNpmRegisterFormDTO formDto) { |
|
|
private UserDTO generateUserDTO(EpdcUserNpmRegisterFormDTO formDto) { |
|
|