From 04db198473c7fe92a4cb7b25f7011e7f124b3d51 Mon Sep 17 00:00:00 2001 From: liuchuang Date: Tue, 12 May 2020 09:21:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=8C=E5=96=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E4=B8=8D=E9=9C=80=E8=A6=81=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/v2/ApiAppUserV2Controller.java | 22 ++++++++-- .../esua/epdc/service/AppUserService.java | 12 +++++ .../epdc/service/impl/AppUserServiceImpl.java | 44 +++++++++++++++++++ 3 files changed, 75 insertions(+), 3 deletions(-) diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java index c06725cd..5db7bbe5 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiAppUserV2Controller.java @@ -1,16 +1,17 @@ package com.elink.esua.epdc.controller.v2; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.api.version.ApiVersion; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.form.EpdcAppUserRegisterFormDTO; +import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.service.AppUserService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; /** * 用户模块迭代接口 v2 @@ -39,4 +40,19 @@ public class ApiAppUserV2Controller { ValidatorUtils.validateEntity(formDto); return appUserService.getMaV2Token(formDto); } + + /** + * 完善个人信息,不再进行验证手机号 + * + * @param tokenDto + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/2/20 17:11 + */ + @PostMapping("user/" + Constant.VERSION_CONTROL + "/completeInfo") + public Result completeUserInfo(@LoginUser TokenDto tokenDto, @RequestBody EpdcCompleteUserInfoFormV2DTO formDto) { + ValidatorUtils.validateEntity(formDto); + return appUserService.completeUserInfo(tokenDto, formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java index cf7f01c4..ef9ce9f4 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AppUserService.java @@ -7,6 +7,7 @@ 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.UserInvitationRecordResultDTO; import com.elink.esua.epdc.dto.form.*; +import com.elink.esua.epdc.dto.form.v2.EpdcCompleteUserInfoFormV2DTO; import com.elink.esua.epdc.dto.result.EpdcAppRegisterCallbackDTO; import com.elink.esua.epdc.dto.result.EpdcAppAuthorizationDTO; import com.elink.esua.epdc.dto.result.EpdcCompleteUserInfoDTO; @@ -189,6 +190,17 @@ public interface AppUserService { */ Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO formDto); + /** + * 用户完善个人信息-保存 + * + * @param tokenDto + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/10/26 11:05 + */ + Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormV2DTO formDto); + /** * 用于用户完善个人信息页面,获取个人信息 * 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 073ad804..1492b37e 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 @@ -1197,6 +1197,22 @@ public class AppUserServiceImpl implements AppUserService { return userResult.getData(); } + /** + * 校验用身份证号码 + * + * @param identityNo 身份证号码 + * @param partyFlag 是否党员,非党员身份证号码置空 + * @return java.lang.String 身份证号码 + * @author work@yujt.net.cn + * @date 2020/3/12 19:16 + */ + private String fixAndCheckIdentityNo(String identityNo, String partyFlag) { + if (YesOrNoEnum.NO.value().equals(partyFlag)) { + return null; + } + return fixAndCheckIdentityNo(identityNo); + } + private String fixAndCheckIdentityNo(String identityNo) { identityNo = ModuleUtils.replaceIllegalCharacter(identityNo); if (StringUtils.isBlank(identityNo)) { @@ -1370,4 +1386,32 @@ public class AppUserServiceImpl implements AppUserService { } return new Result().error("解析用户手机号失败"); } + + @Override + public Result completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormV2DTO infoDto) { + // 验证身份证号格式,身份证号码字符串校正 + String identityNo = fixAndCheckIdentityNo(infoDto.getIdentityNo(), infoDto.getPartyFlag()); + infoDto.setIdentityNo(identityNo); + + Result completeResult = completeUserInfoCore(tokenDto, infoDto); + UserDTO user = completeResult.getData(); + + // 更新用户缓存信息 + Result cachingUserResult = userFeignClient.needCachingUserInfoByUserId(tokenDto.getUserId()); + CachingUserInfoDTO cachingUserInfoDTO = cachingUserResult.getData(); + EpdcAppAuthorizationDTO authorizationDto = cachingUserInfoForAuthorization(cachingUserInfoDTO, user.getGrid(), user.getState()); + + // 党员认证失败 + if (100006001 == completeResult.getCode()) { + authorizationDto.setResultCode(YesOrNoEnum.YES.value()); + authorizationDto.setResultMsg(completeResult.getMsg()); + return new Result().ok(authorizationDto); + } + // 更新社群用户党员标识并加入关联的所有网格党员群 + boolean partyFlag = UserTagUtils.containIdentity(cachingUserInfoDTO.getUserTagInfos(), UserTagEnum.PARTY_MEMBER); + if (partyFlag) { + initPartyGroupInfo(cachingUserInfoDTO); + } + return new Result().ok(authorizationDto); + } }