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 c1656235e..3341f96fd 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 @@ -18,7 +18,10 @@ import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO; import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.GridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.*; -import com.elink.esua.epdc.dto.epdc.result.*; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserGridResultDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserInfoResultDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO; +import com.elink.esua.epdc.dto.epdc.result.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; import com.elink.esua.epdc.dto.group.form.GroupUserFormDTO; import com.elink.esua.epdc.dto.group.form.GroupUserPartyMemberFormDTO; @@ -1057,7 +1060,7 @@ public class AppUserServiceImpl implements AppUserService { */ @Override public Result volunteerAuthenticate(TokenDto tokenDto, EpdcCompleteVolunteerInfoFormDTO formDto) { - //是否为志愿者验证 + //验证是否为志愿者 Result volunteerCountResult = userFeignClient.getVolunteerCountById(tokenDto.getUserId()); if (!volunteerCountResult.success() || null == volunteerCountResult.getData()) { return new Result().error("志愿者认证失败"); @@ -1067,13 +1070,14 @@ public class AppUserServiceImpl implements AppUserService { Result insertCountResult = userFeignClient.insertVolunteerInfo(formDto); } - //用户完善个人信息-保存 + //调用用户完善个人信息-保存 EpdcCompleteUserInfoFormDTO epdcCompleteUserInfoFormDTO = ConvertUtils.sourceToTarget(formDto, EpdcCompleteUserInfoFormDTO.class); String sex = IdentityNoAnalysisUtil.getSex(formDto.getIdentityNo());//身份证解析性别 - epdcCompleteUserInfoFormDTO.setSex(sex); - Result result = completeUserInfo(tokenDto, epdcCompleteUserInfoFormDTO); + epdcCompleteUserInfoFormDTO.setSex(sex);//性别 + epdcCompleteUserInfoFormDTO.setPartyFlag(tokenDto.getPartyFlag());//党员标志 + Result result = completeUserInfoNoVerifyCode(tokenDto, epdcCompleteUserInfoFormDTO); - return new Result().ok("志愿者认证成功"); + return result; } /** @@ -1097,6 +1101,77 @@ public class AppUserServiceImpl implements AppUserService { return result; } + public Result completeUserInfoNoVerifyCode(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) { + + UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class); + userDto.setDeptId(Long.valueOf(infoDto.getGridId())); + userDto.setId(tokenDto.getUserId()); + + if (StringUtils.isNotBlank(infoDto.getWxCode())) { + String sessionKey = this.getUserSessionKey(infoDto.getWxCode()); + WxMaUserInfo wxMaUserInfo = wxMaServiceUtils.normalWxMaService().getUserService().getUserInfo(sessionKey, infoDto.getEncryptedData(), infoDto.getIv()); + if (StringUtils.isBlank(wxMaUserInfo.getUnionId())) { + return new Result().error("解析微信开放平台ID失败"); + } + userDto.setWxUnionId(wxMaUserInfo.getUnionId()); + } + + // 党员提交,验证身份证号 + if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) { + String identityNo = userDto.getIdentityNo(); + if (StringUtils.isBlank(identityNo)) { + return new Result().error("身份证号不能为空"); + } else { + String verification = IdentityNoUtils.IdentityNoVerification(identityNo); + if (StringUtils.isNotBlank(verification)) { + return new Result().error(verification); + } + } + } + // 验证手机号验证码 + //this.checkSmsCode(userDto.getMobile(), infoDto.getSmsCode()); + // 验证用户提交的信息 + Result verifyResult = userFeignClient.verifyUserCompleteData(userDto); + if (!verifyResult.success()) { + return new Result().error(verifyResult.getMsg()); + } + String userState = verifyResult.getData(); + + UserGridRelationDTO userGrid = this.packageUserGridRelationInfo(infoDto.getGridId()); + EpdcCompleteAppUserDTO completeAppUserDto = ConvertUtils.sourceToTarget(userDto, EpdcCompleteAppUserDTO.class); + completeAppUserDto = this.packageUserCompleteInfo(completeAppUserDto, userState); + // 组装对象,准备保存用户信息 + EpdcAppUserCompleteInfoFormDTO dto = new EpdcAppUserCompleteInfoFormDTO(); + dto.setCompleteAppUser(completeAppUserDto); + dto.setUserGridRelation(userGrid); + + Result completeResult = userFeignClient.completeUserInfo(dto); + if (!completeResult.success()) { + return new Result().error(completeResult.getMsg()); + } + UserDTO user = completeResult.getData(); + tokenDto.setRealName(user.getRealName()); + tokenDto.setNickname(user.getNickname()); + tokenDto.setMobile(user.getMobile()); + tokenDto.setPartyFlag(user.getPartyFlag()); + EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(tokenDto, userGrid.getGrid(), userDto.getState()); + + // 更新社群用户党员标识并加入关联的所有网格党员群 + if (NumConstant.ONE_STR.equals(user.getPartyFlag())) { + GroupUserPartyMemberFormDTO formDto = new GroupUserPartyMemberFormDTO(); + formDto.setUserId(user.getId()); + formDto.setPartyMember(user.getPartyFlag()); + formDto.setNickname(user.getNickname()); + formDto.setUserAvatar(user.getFaceImg()); + formDto.setMobile(user.getMobile()); + formDto.setDeptId(user.getGridId()); + formDto.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue()); + + groupTask.updateUserPartyMember(formDto); + } + + return new Result().ok(authorizationDto); + } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java index 874237abc..f20e4ea8d 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcCompleteVolunteerInfoFormDTO.java @@ -39,6 +39,7 @@ public class EpdcCompleteVolunteerInfoFormDTO implements Serializable { /** * 身份证号码 */ + @NotBlank(message = "身份证号码不能为空") private String identityNo; /** @@ -89,12 +90,10 @@ public class EpdcCompleteVolunteerInfoFormDTO implements Serializable { /** * 短信验证码 */ - @NotBlank(message = "短信验证码不能为空") private String smsCode; /** * 0女,1男 */ - @NotBlank(message = "性别不能为空") private String sex; diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java index 2b4a164bf..25b146201 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/VolunteerInfoServiceImpl.java @@ -224,7 +224,7 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl insertVolunteerInfo(EpdcCompleteVolunteerInfoFormDTO epdcCompleteVolunteerInfoFormDTO) { VolunteerInfoEntity volunteerEntity = ConvertUtils.sourceToTarget(epdcCompleteVolunteerInfoFormDTO, VolunteerInfoEntity.class); insert(volunteerEntity); - return new Result().ok(0); + return new Result().ok(1); } /** diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/VolunteerInfoDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/VolunteerInfoDao.xml index 50c24c3f9..cc63523f3 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/VolunteerInfoDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/VolunteerInfoDao.xml @@ -148,7 +148,7 @@