diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberSubmitFromDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberSubmitFromDTO.java new file mode 100644 index 0000000000..0b9b6fea50 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberSubmitFromDTO.java @@ -0,0 +1,34 @@ +package com.epmet.resi.mine.dto.from; + +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/3/31 13:31 + */ +@Data +public class PartyMemberSubmitFromDTO implements Serializable { + + private static final long serialVersionUID = 2869322535180774823L; + /** + * 客户ID + */ + private String customerId; + /** + * 网格ID + */ + private String gridId; + /** + * 党员认证行为记录表Id + */ + private String visitId; + /** + * 党员认证信息 + */ + private PartymemberInfoDTO partyMemberInfo; + +} diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java index 65113a2a7d..5f655ffb7a 100644 --- a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java @@ -15,6 +15,11 @@ public class VerificationCodeFromDTO implements Serializable { private static final long serialVersionUID = 1L; + /** + * 客户ID + */ + private String customerId; + /** * 用户ID */ diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java deleted file mode 100644 index 85505e516e..0000000000 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.epmet.modules.feign; - -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.Result; -import com.epmet.modules.feign.fallback.PartyMemberConfirmFeignClientFallBack; -import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; -import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; -import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; - -/** - * @author zhaoqifeng - * @dscription - * @date 2020/3/30 16:03 - */ -@FeignClient(name = ServiceConstant.RESI_PARTYMEMBER_SERVER, fallback = PartyMemberConfirmFeignClientFallBack.class) -public interface PartyMemberConfirmFeignClient { - @PostMapping("/resi/partymember/confirm/init") - Result init(@RequestBody PartyMemberInitFromDTO fromDto); - - @PostMapping("/resi/partymember/confirm/getverificationcode") - Result getVerificationCode(@RequestBody VerificationCodeFromDTO fromDto); -} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java index d22948a183..3393371ca6 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java @@ -3,11 +3,16 @@ package com.epmet.modules.feign; import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.feign.fallback.ResiPartymemberFeignClientFallBack; +import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; +import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; +import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * @Description 居民端陌生人导览 调用epmet-user服务 @@ -30,4 +35,45 @@ public interface ResiPartymemberFeignClient { **/ @PostMapping(value = "resi/partymember/resiwarmheartedapply/submit") Result submit(ResiWarmheartedSubmitFormDTO formDTO); + + /** + * 党员认证页面初始化 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("/resi/partymember/confirm/init") + Result init(@RequestBody PartyMemberInitFromDTO fromDto); + + + /** + * 党员认证页获取手机验证码 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("/resi/partymember/confirm/getverificationcode") + Result getVerificationCode(@RequestBody VerificationCodeFromDTO fromDto); + + + /** + * 党员认证信息提交 + * + * @param partyMemberInfoDTO 参数 + * @return Result + * @date 2020/3/31 10:50 + */ + @PostMapping("/resi/partymember/confirm/submit") + Result submit(@RequestBody PartymemberInfoDTO partyMemberInfoDTO); + + /** + * 党员认证信息补充 + * + * @param partyMemberInfoDTO 参数 + * @return Result + */ + @PostMapping("extra") + Result partyMemberInfoExtra(@RequestBody PartymemberInfoDTO partyMemberInfoDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java deleted file mode 100644 index a42b5b8198..0000000000 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.epmet.modules.feign.fallback; - -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.ModuleUtils; -import com.epmet.commons.tools.utils.Result; -import com.epmet.modules.feign.PartyMemberConfirmFeignClient; -import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; -import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; -import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; -import org.springframework.stereotype.Component; - -/** - * @author zhaoqifeng - * @dscription - * @date 2020/3/30 16:04 - */ -@Component -public class PartyMemberConfirmFeignClientFallBack implements PartyMemberConfirmFeignClient { - @Override - public Result init(PartyMemberInitFromDTO fromDto) { - return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "init", fromDto); - } - - @Override - public Result getVerificationCode(VerificationCodeFromDTO fromDto) { - return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "getVerificationCode", fromDto); - } -} diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java index da9c740fd4..7559eb81fb 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java @@ -4,6 +4,10 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.feign.ResiPartymemberFeignClient; +import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; +import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; +import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedFormDTO; import com.epmet.resi.partymember.dto.warmhearted.form.ResiWarmheartedSubmitFormDTO; import com.epmet.resi.partymember.dto.warmhearted.result.ResiWarmheartedResultDTO; @@ -37,4 +41,24 @@ public class ResiPartymemberFeignClientFallBack implements ResiPartymemberFeignC public Result submit(ResiWarmheartedSubmitFormDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "submit", formDTO); } + + @Override + public Result init(PartyMemberInitFromDTO fromDto) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "init", fromDto); + } + + @Override + public Result getVerificationCode(VerificationCodeFromDTO fromDto) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "getVerificationCode", fromDto); + } + + @Override + public Result submit(PartymemberInfoDTO partyMemberInfoDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "submit", partyMemberInfoDTO); + } + + @Override + public Result partyMemberInfoExtra(PartymemberInfoDTO partyMemberInfoDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "partyMemberInfoExtra", partyMemberInfoDTO); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java index 4f1ae79c86..39c2a91b87 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java @@ -5,6 +5,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.modules.partymember.service.PartyMemberService; import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; +import com.epmet.resi.mine.dto.from.PartyMemberSubmitFromDTO; import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; import org.springframework.beans.factory.annotation.Autowired; @@ -49,4 +50,28 @@ public class PartyMemberController { public Result getVerificationCode(@LoginUser TokenDto tokenDto, @RequestBody VerificationCodeFromDTO fromDto) { return partyMemberService.getVerificationCode(tokenDto, fromDto); } + + /** + * 党员认证信息提交 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("submit") + public Result submit(@LoginUser TokenDto tokenDto, @RequestBody PartyMemberSubmitFromDTO fromDto) { + return partyMemberService.submit(tokenDto, fromDto); + } + + /** + * 党员认证信息补充 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("extra") + public Result partyMemberInfoExtra(@LoginUser TokenDto tokenDto, @RequestBody PartyMemberSubmitFromDTO fromDto) { + return partyMemberService.partyMemberInfoExtra(tokenDto, fromDto); + } } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java index 41b2884d25..b98ee1ebfd 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java @@ -3,6 +3,7 @@ package com.epmet.modules.partymember.service; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; +import com.epmet.resi.mine.dto.from.PartyMemberSubmitFromDTO; import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; @@ -29,4 +30,22 @@ public interface PartyMemberService { * @return Result */ Result getVerificationCode(TokenDto tokenDto, VerificationCodeFromDTO fromDTO); + + /** + * 党员认证信息提交 + * + * @param tokenDto token + * @param fromDTO 参数 + * @return Result + */ + Result submit(TokenDto tokenDto, PartyMemberSubmitFromDTO fromDTO); + + /** + * 党员认证信息补充 + * + * @param tokenDto token + * @param fromDTO 参数 + * @return Result + */ + Result partyMemberInfoExtra(TokenDto tokenDto, PartyMemberSubmitFromDTO fromDTO); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java index 292729f11f..3ddbbdaef0 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java @@ -2,11 +2,13 @@ package com.epmet.modules.partymember.service.impl; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; -import com.epmet.modules.feign.PartyMemberConfirmFeignClient; +import com.epmet.modules.feign.ResiPartymemberFeignClient; import com.epmet.modules.partymember.service.PartyMemberService; import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; +import com.epmet.resi.mine.dto.from.PartyMemberSubmitFromDTO; import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -20,16 +22,36 @@ import org.springframework.stereotype.Service; public class PartyMemberServiceImpl implements PartyMemberService { @Autowired - PartyMemberConfirmFeignClient partyMemberConfirmFeignClient; + ResiPartymemberFeignClient resiPartymemberFeignClient; @Override public Result init(PartyMemberInitFromDTO fromDto) { - return partyMemberConfirmFeignClient.init(fromDto); + return resiPartymemberFeignClient.init(fromDto); } @Override public Result getVerificationCode(TokenDto tokenDto, VerificationCodeFromDTO fromDTO) { fromDTO.setUserId(tokenDto.getUserId()); - return partyMemberConfirmFeignClient.getVerificationCode(fromDTO); + return resiPartymemberFeignClient.getVerificationCode(fromDTO); + } + + @Override + public Result submit(TokenDto tokenDto, PartyMemberSubmitFromDTO fromDTO) { + PartymemberInfoDTO partyMemberInfo = fromDTO.getPartyMemberInfo(); + partyMemberInfo.setCustomerId(fromDTO.getCustomerId()); + partyMemberInfo.setGridId(fromDTO.getGridId()); + partyMemberInfo.setUserId(tokenDto.getUserId()); + partyMemberInfo.setPartymemberVisitId(fromDTO.getVisitId()); + return resiPartymemberFeignClient.submit(partyMemberInfo); + } + + @Override + public Result partyMemberInfoExtra(TokenDto tokenDto, PartyMemberSubmitFromDTO fromDTO) { + PartymemberInfoDTO partyMemberInfo = fromDTO.getPartyMemberInfo(); + partyMemberInfo.setCustomerId(fromDTO.getCustomerId()); + partyMemberInfo.setGridId(fromDTO.getGridId()); + partyMemberInfo.setUserId(tokenDto.getUserId()); + partyMemberInfo.setPartymemberVisitId(fromDTO.getVisitId()); + return resiPartymemberFeignClient.partyMemberInfoExtra(partyMemberInfo); } } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberInfoDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberInfoDTO.java index 21b7eb5bac..b9d15433d6 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberInfoDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberInfoDTO.java @@ -99,6 +99,11 @@ public class PartymemberInfoDTO implements Serializable { */ private String building; + /** + * 组织关系类型 0:工作单位 1:其他街道 + */ + private String organizationType; + /** * 党组织关系(工作单位或其他街道) */ @@ -144,4 +149,9 @@ public class PartymemberInfoDTO implements Serializable { */ private Date updatedTime; + /** + * 验证码 + */ + private String code; + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java index dc2e9d5fa8..35ebdcbb38 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java @@ -57,17 +57,17 @@ public class PartymemberRegisterRelationDTO implements Serializable { /** * 首次注册用户 (0表示不参与计数 1表示参与计数) */ - private String firstRegister; + private Integer firstRegister; /** * 注册用户 (0表示不参与计数 1表示参与计数) */ - private String register; + private Integer register; /** * 参与用户 (0表示不参与计数 1表示参与计数) */ - private String partake; + private Integer partake; /** * 删除标识:0.未删除 1.已删除 diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index 4cdb866055..460f436997 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -70,6 +70,17 @@ 2.0.0 compile + + info.debatty + java-string-similarity + 1.2.1 + + + org.jetbrains + annotations + RELEASE + compile + diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java index 5cccc88819..a544a768d9 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java @@ -29,7 +29,7 @@ public interface PartyMemberConstant { /** * 信息补充 */ - String OPERATE_EXTRA = "auto_extra"; + String OPERATE_EXTRA = "extra"; /** * 未提交 @@ -40,4 +40,45 @@ public interface PartyMemberConstant { * 已提交 */ String SUBMITTED = "1"; + + /** + * 党员自动认证是否成功基准 + */ + String BENCHMARK = "110010"; + + /** + * 比对结果大部分相同最低值 + */ + + Double MOST = 0.8; + + /** + * 比对结果小部分相同最低值 + */ + Double SMALL = 0.5; + + /** + * 比对结果相同 + */ + String SAME = "1"; + + /** + * 比对结果不同 + */ + String DIFF = "0"; + + /** + * 审核状态 待审核 + */ + String UNDER_AUDITTING = "under_auditting"; + + /** + * 审核状态 通过 + */ + String APPROVED = "approved"; + + /** + * 审核状态 未通过 + */ + String REJECTED = "rejected"; } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/UserResiInfoFeignClient.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java similarity index 66% rename from epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/UserResiInfoFeignClient.java rename to epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java index 1ba46a8572..167118e581 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/UserResiInfoFeignClient.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java @@ -4,7 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.UserResiInfoFormDTO; -import com.epmet.modules.feign.fallback.UserResiInfoFeignClientFallBack; +import com.epmet.modules.feign.fallback.EpmetUserFeignClientFallBack; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -14,8 +14,8 @@ import org.springframework.web.bind.annotation.RequestBody; * @dscription * @date 2020/3/30 14:51 */ -@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = UserResiInfoFeignClientFallBack.class) -public interface UserResiInfoFeignClient { +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallBack.class) +public interface EpmetUserFeignClient { /** * 查询用户注册信息 @@ -25,4 +25,12 @@ public interface UserResiInfoFeignClient { @PostMapping("/epmetuser/userresiinfo/getUserResiInfoDTO") Result getUserResiInfoDTO(@RequestBody UserResiInfoFormDTO userResiInfoFormDTO); + /** + * 党员认证时,如果没有注册居民,则注册居民信息 + * @param userResiInfoDTO + * @author zhaoqifeng + **/ + @PostMapping("/epmetuser/userresiinfo/saveResiInfo") + Result saveResiInfo (@RequestBody UserResiInfoDTO userResiInfoDTO); + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/UserResiInfoFeignClientFallBack.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java similarity index 67% rename from epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/UserResiInfoFeignClientFallBack.java rename to epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java index abde8a0c44..77735f4aad 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/UserResiInfoFeignClientFallBack.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java @@ -5,7 +5,7 @@ import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.UserResiInfoFormDTO; -import com.epmet.modules.feign.UserResiInfoFeignClient; +import com.epmet.modules.feign.EpmetUserFeignClient; import org.springframework.stereotype.Component; /** @@ -14,9 +14,14 @@ import org.springframework.stereotype.Component; * @date 2020/3/30 14:53 */ @Component -public class UserResiInfoFeignClientFallBack implements UserResiInfoFeignClient { +public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient { @Override public Result getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserResiInfoDTO", userResiInfoFormDTO); } + + @Override + public Result saveResiInfo(UserResiInfoDTO userResiInfoDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "saveResiInfo", userResiInfoDTO); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java index 6142fde61d..22be95f523 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java @@ -5,6 +5,7 @@ import com.epmet.modules.partymember.service.PartyMemberConfirmService; import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -12,7 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** - * * 党员认证 * * @author zhaoqifeng @@ -48,4 +48,27 @@ public class PartyMemberConfirmController { public Result getVerificationCode(@RequestBody VerificationCodeFromDTO fromDto) { return partyMemberConfirmService.getVerificationCode(fromDto); } + + /** + * 党员认证信息提交 + * + * @param partyMemberInfoDTO 参数 + * @return Result + * @date 2020/3/31 10:50 + */ + @PostMapping("submit") + public Result submit(@RequestBody PartymemberInfoDTO partyMemberInfoDTO) { + return partyMemberConfirmService.submit(partyMemberInfoDTO); + } + + /** + * 党员认证信息补充 + * + * @param partyMemberInfoDTO 参数 + * @return Result + */ + @PostMapping("extra") + public Result partyMemberInfoExtra(@RequestBody PartymemberInfoDTO partyMemberInfoDTO) { + return partyMemberConfirmService.partyMemberInfoExtra(partyMemberInfoDTO); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java index 83d17e7fef..7a879e4072 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java @@ -19,15 +19,42 @@ package com.epmet.modules.partymember.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** - * 党员库基本信息表 + * 党员库基本信息表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-30 */ @Mapper public interface PartymemberBaseInfoDao extends BaseDao { - + + /** + * 根据身份证匹配数据 + * + * @param param 参数 + * @return List + */ + List selectBaseInfoByIdCard(PartymemberInfoDTO param); + + /** + * 手根据机号匹配数据 + * + * @param param 参数 + * @return List + */ + List selectBaseInfoByMobile(PartymemberInfoDTO param); + + /** + * 根据姓名匹配数据 + * + * @param param 参数 + * @return List + */ + List selectBaseInfoByName(PartymemberInfoDTO param); + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberInfoEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberInfoEntity.java index 208319f394..11da2e7334 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberInfoEntity.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberInfoEntity.java @@ -18,13 +18,10 @@ package com.epmet.modules.partymember.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 党员认证信息表 * @@ -98,6 +95,11 @@ public class PartymemberInfoEntity extends BaseEpmetEntity { */ private String building; + /** + * 组织关系类型 0:工作单位 1:其他街道 + */ + private String organizationType; + /** * 党组织关系(工作单位或其他街道) */ diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java index d040ca3b74..07aa0380ff 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java @@ -18,13 +18,10 @@ package com.epmet.modules.partymember.entity; import com.baomidou.mybatisplus.annotation.TableName; - import com.epmet.commons.mybatis.entity.BaseEpmetEntity; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - /** * 党员注册关系表 用于统计客户网格的认证党员数 * @@ -56,16 +53,16 @@ public class PartymemberRegisterRelationEntity extends BaseEpmetEntity { /** * 首次注册用户 (0表示不参与计数 1表示参与计数) */ - private String firstRegister; + private Integer firstRegister; /** * 注册用户 (0表示不参与计数 1表示参与计数) */ - private String register; + private Integer register; /** * 参与用户 (0表示不参与计数 1表示参与计数) */ - private String partake; + private Integer partake; } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberInfoExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberInfoExcel.java index 33e3afe872..100bde6481 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberInfoExcel.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberInfoExcel.java @@ -70,6 +70,9 @@ public class PartymemberInfoExcel { @Excel(name = "楼栋单元") private String building; + @Excel(name = "组织关系类型 0:工作单位 1:其他街道") + private String organizationType; + @Excel(name = "党组织关系(工作单位或其他街道)") private String extraOrganization; diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberRegisterRelationExcel.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberRegisterRelationExcel.java index b9a268a211..69e3221b7b 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberRegisterRelationExcel.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberRegisterRelationExcel.java @@ -44,13 +44,13 @@ public class PartymemberRegisterRelationExcel { private String userId; @Excel(name = "首次注册用户 (0表示不参与计数 1表示参与计数)") - private String firstRegister; + private Integer firstRegister; @Excel(name = "注册用户 (0表示不参与计数 1表示参与计数)") - private String register; + private Integer register; @Excel(name = "参与用户 (0表示不参与计数 1表示参与计数)") - private String partake; + private Integer partake; @Excel(name = "删除标识:0.未删除 1.已删除") private Integer delFlag; diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java index ce67b62177..e9503682e1 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java @@ -4,9 +4,9 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.resi.mine.dto.from.PartyMemberInitFromDTO; import com.epmet.resi.mine.dto.from.VerificationCodeFromDTO; import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; /** - * * 党员认证 * * @author zhaoqifeng @@ -15,7 +15,6 @@ import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; public interface PartyMemberConfirmService { /** - * * 党员认证页面初始化 * * @param fromDto 参数 @@ -25,9 +24,26 @@ public interface PartyMemberConfirmService { /** * 获取手机验证码 + * * @param fromDTO 参数 * @return Result */ - Result getVerificationCode( VerificationCodeFromDTO fromDTO); + Result getVerificationCode(VerificationCodeFromDTO fromDTO); + + /** + * 党员认证信息提交 + * + * @param partyMemberInfoDTO 参数 + * @return Result + */ + Result submit(PartymemberInfoDTO partyMemberInfoDTO); + + /** + * 党员信息补充 + * + * @param partyMemberInfoDTO 参数 + * @return Result + */ + Result partyMemberInfoExtra(PartymemberInfoDTO partyMemberInfoDTO); } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java index 3c5fd5a308..f9b379a912 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java @@ -21,6 +21,8 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberConfirmAutoDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import java.util.List; import java.util.Map; @@ -92,4 +94,11 @@ public interface PartymemberBaseInfoService extends BaseService init(PartyMemberInitFromDTO fromDto) { PartyMemberInitResultDTO result = new PartyMemberInitResultDTO(); @@ -61,36 +71,30 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); userResiInfoFormDTO.setCustomerId(fromDto.getCustomerId()); userResiInfoFormDTO.setUserId(fromDto.getUserId()); - Result userResiInfoResult = userResiInfoFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); + Result userResiInfoResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); result.setPartyMemberInfo(ConvertUtils.sourceToTarget(userResiInfoResult.getData(), PartymemberInfoDTO.class)); } // 将访问行为存入热心居民申请行为记录表 - PartymemberVisitEntity partymemberVisitEntity = new PartymemberVisitEntity(); - partymemberVisitEntity.setCustomerId(fromDto.getCustomerId()); - partymemberVisitEntity.setGridId(fromDto.getGridId()); - partymemberVisitEntity.setUserId(fromDto.getUserId()); - partymemberVisitEntity.setOperateVisit(PartyMemberConstant.OPERATE_INITIALIZE); - partymemberVisitEntity.setVisitFrom(fromDto.getVisitFrom()); - partymemberVisitEntity.setVisitTime(new Date()); - partymemberVisitService.insert(partymemberVisitEntity); + String visitId = saveOrUpdateVisit(null, fromDto, PartyMemberConstant.OPERATE_INITIALIZE); - result.setVisitId(partymemberVisitEntity.getId()); + result.setVisitId(visitId); return new Result().ok(result); } @Override + @Transactional(rollbackFor = Exception.class) public Result getVerificationCode(VerificationCodeFromDTO fromDTO) { Result result = new Result(); //手机是否可用 - PartymemberInfoEntity partyMemberInfoParam= new PartymemberInfoEntity(); + PartymemberInfoEntity partyMemberInfoParam = new PartymemberInfoEntity(); partyMemberInfoParam.setMobile(fromDTO.getMobile()); PartymemberInfoDTO partyMemberInfoResult = partymemberInfoService.getPartyMemberInfoByMobile(partyMemberInfoParam); if (null != partyMemberInfoResult) { - //TODO + //TODO code待定 result.setCode(0); - result.setMsg(""); + result.setMsg("该手机已被使用,请更换手机或使用原绑定的微信用户登录"); return result; } @@ -101,12 +105,153 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService partyMemberInfoRedis.setUserMobileCode(fromDTO.getUserId(), fromDTO.getMobile(), code); //将访问记录更新到热心居民申请行为记录表 - PartymemberVisitEntity partymemberVisitEntity = new PartymemberVisitEntity(); - partymemberVisitEntity.setId(fromDTO.getVisitId()); - partymemberVisitEntity.setVisitTime(new Date()); - partymemberVisitEntity.setOperateVisit(PartyMemberConstant.OPERATE_OPERATE_SMS_CODE); - partymemberVisitService.updateById(partymemberVisitEntity); + saveOrUpdateVisit(fromDTO.getVisitId(), null, PartyMemberConstant.OPERATE_OPERATE_SMS_CODE); return result; } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result submit(PartymemberInfoDTO partyMemberInfoDTO) { + Result result = new Result(); + + //校验手机验证码是否正常 + String code = partyMemberInfoRedis.getUserMobileCode(partyMemberInfoDTO.getUserId(), + partyMemberInfoDTO.getMobile(), + partyMemberInfoDTO.getCode()); + if (null == code) { + saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null, + PartyMemberConstant.OPERATE_AUTO_FAILED); + //TODO code待定 + result.setCode(0); + result.setMsg("验证码错误"); + } + + //获取党员基本信息 + PartymemberConfirmAutoDTO confirmAutoDTO = + partymemberBaseInfoService.getPartyMemberBaseInfo(partyMemberInfoDTO); + + //党员信息存入党员认证信息表 + PartymemberInfoEntity partyMemberInfoEntity = ConvertUtils.sourceToTarget(partyMemberInfoDTO, + PartymemberInfoEntity.class); + + if (confirmAutoDTO == null || confirmAutoDTO.getResult().compareTo(PartyMemberConstant.BENCHMARK) < 0) { + //自动认证失败 + partyMemberInfoEntity.setConfirmResult("1"); + partymemberInfoService.insert(partyMemberInfoEntity); + //将访问记录更新到热心居民申请行为记录表 + saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null, PartyMemberConstant.OPERATE_AUTO_FAILED); + //TODO code待定 + result.setCode(0); + result.setMsg("认证失败"); + } else { + //自动认证成功 + partyMemberInfoEntity.setConfirmResult("0"); + partymemberInfoService.insert(partyMemberInfoEntity); + //将访问记录更新到热心居民申请行为记录表 + saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null, PartyMemberConstant.OPERATE_AUTO_SUCCESS); + //存入党员注册关系表 用于统计客户网格的认证党员数 + saveRegisterRelation(partyMemberInfoDTO); + } + ; + + //将自动认证结果存入党员认证自动审核表 + if (confirmAutoDTO != null) { + confirmAutoDTO.setPartymemberInfoId(partyMemberInfoEntity.getPartymemberVisitId()); + partymemberConfirmAutoService.insert(ConvertUtils.sourceToTarget(confirmAutoDTO, + PartymemberConfirmAutoEntity.class)); + } + + //TODO 判断是否已注册居民,如果没有则注册居民 + isResiRegister(partyMemberInfoDTO); + + return result; + } + + @Override + public Result partyMemberInfoExtra(PartymemberInfoDTO infoDTO) { + //将访问记录更新到热心居民申请行为记录表 + saveOrUpdateVisit(infoDTO.getPartymemberVisitId(), null, PartyMemberConstant.OPERATE_EXTRA); + + //补充信息更新到党员基本信息表 + PartymemberInfoDTO partyMemberInfo = partymemberInfoService.getPartyMemberInfo(infoDTO); + infoDTO.setId(partyMemberInfo.getId()); + partymemberInfoService.updateById(ConvertUtils.sourceToTarget(infoDTO, PartymemberInfoEntity.class)); + + //待审核数据存入党员认证人工审核表 + PartymemberConfirmManualEntity manualEntity = new PartymemberConfirmManualEntity(); + manualEntity.setCustomerId(infoDTO.getCustomerId()); + manualEntity.setGridId(infoDTO.getGridId()); + manualEntity.setUserId(infoDTO.getUserId()); + manualEntity.setPartymemberInfoId(infoDTO.getId()); + manualEntity.setAuditStatus(PartyMemberConstant.UNDER_AUDITTING); + partymemberConfirmManualService.insert(manualEntity); + + return new Result(); + } + + /** + * 判断是否已注册居民,如果没有则注册居民 + * + * @param partyMemberInfoDTO 参数 + */ + private void isResiRegister(PartymemberInfoDTO partyMemberInfoDTO) { + UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); + userResiInfoFormDTO.setCustomerId(partyMemberInfoDTO.getCustomerId()); + userResiInfoFormDTO.setUserId(partyMemberInfoDTO.getUserId()); + Result userResiInfoResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); + if (null == userResiInfoResult.getData()) { + //TODO 判断手机号是否可用 + UserResiInfoDTO userResiInfoDTO = ConvertUtils.sourceToTarget(partyMemberInfoDTO, UserResiInfoDTO.class); + userResiInfoDTO.setRegMobile(partyMemberInfoDTO.getMobile()); + epmetUserFeignClient.saveResiInfo(userResiInfoDTO); + //TODO 注册居民 + } + } + + /** + * 存入党员注册关系表 用于统计客户网格的认证党员数 + * + * @param partyMemberInfoDTO 参数 + */ + private void saveRegisterRelation(PartymemberInfoDTO partyMemberInfoDTO) { + PartymemberRegisterRelationEntity registerRelationEntity = new PartymemberRegisterRelationEntity(); + registerRelationEntity.setCustomerId(partyMemberInfoDTO.getCustomerId()); + registerRelationEntity.setGridId(partyMemberInfoDTO.getGridId()); + registerRelationEntity.setUserId(partyMemberInfoDTO.getUserId()); + registerRelationEntity.setFirstRegister(1); + registerRelationEntity.setRegister(1); + registerRelationEntity.setPartake(1); + partymemberRegisterRelationService.insert(registerRelationEntity); + } + + + /** + * 保存或者更新热心居民申请行为记录表 + * + * @param visitId 主键 + * @param fromDTO 参数 + * @param operate 操作 + * @return String + */ + private String saveOrUpdateVisit(String visitId, PartyMemberInitFromDTO fromDTO, String operate) { + PartymemberVisitEntity partymemberVisitEntity = new PartymemberVisitEntity(); + if (null == visitId) { + partymemberVisitEntity.setCustomerId(fromDTO.getCustomerId()); + partymemberVisitEntity.setGridId(fromDTO.getGridId()); + partymemberVisitEntity.setUserId(fromDTO.getUserId()); + partymemberVisitEntity.setOperateVisit(operate); + partymemberVisitEntity.setVisitFrom(fromDTO.getVisitFrom()); + partymemberVisitEntity.setVisitTime(new Date()); + partymemberVisitService.insert(partymemberVisitEntity); + } else { + partymemberVisitEntity.setId(visitId); + partymemberVisitEntity.setVisitTime(new Date()); + partymemberVisitEntity.setOperateVisit(operate); + partymemberVisitService.updateById(partymemberVisitEntity); + } + + return partymemberVisitEntity.getId(); + } + } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java index ff2372e058..37d11ff2db 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java @@ -23,22 +23,25 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.constant.PartyMemberConstant; import com.epmet.modules.partymember.dao.PartymemberBaseInfoDao; import com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity; import com.epmet.modules.partymember.redis.PartymemberBaseInfoRedis; import com.epmet.modules.partymember.service.PartymemberBaseInfoService; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberConfirmAutoDTO; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; +import info.debatty.java.stringsimilarity.JaroWinkler; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** - * 党员库基本信息表 + * 党员库基本信息表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-30 @@ -46,59 +49,223 @@ import java.util.Map; @Service public class PartymemberBaseInfoServiceImpl extends BaseServiceImpl implements PartymemberBaseInfoService { - @Autowired - private PartymemberBaseInfoRedis partymemberBaseInfoRedis; - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, PartymemberBaseInfoDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, PartymemberBaseInfoDTO.class); - } - - private QueryWrapper getWrapper(Map params){ - String id = (String)params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public PartymemberBaseInfoDTO get(String id) { - PartymemberBaseInfoEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, PartymemberBaseInfoDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(PartymemberBaseInfoDTO dto) { - PartymemberBaseInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberBaseInfoEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(PartymemberBaseInfoDTO dto) { - PartymemberBaseInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberBaseInfoEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } + @Autowired + private PartymemberBaseInfoRedis partymemberBaseInfoRedis; + + private final static String EQUAL = "11"; + private final static int START = 0; + private final static int ID_CARD_COUNT = 2; + private final static int MOBILE_COUNT = 4; + private final static int NAME_COUNT = 6; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, PartymemberBaseInfoDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, PartymemberBaseInfoDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public PartymemberBaseInfoDTO get(String id) { + PartymemberBaseInfoEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, PartymemberBaseInfoDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(PartymemberBaseInfoDTO dto) { + PartymemberBaseInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberBaseInfoEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(PartymemberBaseInfoDTO dto) { + PartymemberBaseInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberBaseInfoEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + public PartymemberConfirmAutoDTO getPartyMemberBaseInfo(PartymemberInfoDTO partyMemberInfo) { + + PartymemberConfirmAutoDTO confirmAutoDTO; + + String name = partyMemberInfo.getSurname().concat(partyMemberInfo.getName()); + + List sortList = new ArrayList<>(); + + //根据身份证匹配数据 + List idCardList = baseDao.selectBaseInfoByIdCard(partyMemberInfo); + + if (null != idCardList && idCardList.size() > 0) { + //优先判断身份证和手机号 + Optional matchingResult = + idCardList.stream().filter(baseInfo -> baseInfo.getMobile().equals(partyMemberInfo.getMobile())).findFirst(); + + if (matchingResult.isPresent()) { + confirmAutoDTO = getResult(matchingResult.get(), partyMemberInfo); + return confirmAutoDTO; + } + + //判断身份证和姓名 + matchingResult = idCardList.stream().filter(baseInfo -> baseInfo.getName().equals(name)).findFirst(); + + if (matchingResult.isPresent()) { + confirmAutoDTO = getResult(matchingResult.get(), partyMemberInfo); + return confirmAutoDTO; + } + + //获取匹配度最高的数据 + sortList.add(idCardList.stream().sorted(Comparator.comparing((PartymemberBaseInfoEntity p) -> + getSimilarity(p, partyMemberInfo)).reversed()).collect(Collectors.toList()).get(0)); + + } else { + //根据手机号匹配数据 + List mobileList = baseDao.selectBaseInfoByIdCard(partyMemberInfo); + + if (null != mobileList && mobileList.size() > 0) { + //判断手机号和姓名 + Optional matchingResult = + mobileList.stream().filter(baseInfo -> baseInfo.getName().equals(name)).findFirst(); + + if (matchingResult.isPresent()) { + confirmAutoDTO = getResult(matchingResult.get(), partyMemberInfo); + return confirmAutoDTO; + } + + //获取匹配度最高的数据 + sortList.add(mobileList.stream().sorted(Comparator.comparing((PartymemberBaseInfoEntity p) -> + getSimilarity(p, partyMemberInfo)).reversed()).collect(Collectors.toList()).get(0)); + } else { + //根据姓名匹配数据 + List nameList = baseDao.selectBaseInfoByIdCard(partyMemberInfo); + + if (null != nameList && nameList.size() > 0) { + //获取匹配度最高的数据 + sortList.add(nameList.stream().sorted(Comparator.comparing((PartymemberBaseInfoEntity p) -> + getSimilarity(p, partyMemberInfo)).reversed()).collect(Collectors.toList()).get(0)); + + PartymemberBaseInfoEntity similar = + nameList.stream().sorted(Comparator.comparing((PartymemberBaseInfoEntity p) -> + getSimilarity(p, partyMemberInfo)).reversed()).collect(Collectors.toList()).get(0); + + confirmAutoDTO = getResult(similar, partyMemberInfo); + return confirmAutoDTO; + + } + } + } + return null; + } + + + /** + * 生成返回结果 + * + * @param baseInfo 基本信息 + * @param info 录入信息 + * @return PartymemberConfirmAutoDTO + */ + private PartymemberConfirmAutoDTO getResult(PartymemberBaseInfoEntity baseInfo, PartymemberInfoDTO info) { + PartymemberConfirmAutoDTO confirmAutoDTO = new PartymemberConfirmAutoDTO(); + confirmAutoDTO.setPatryMemberBaseInfoId(baseInfo.getId()); + confirmAutoDTO.setBaseName(baseInfo.getName()); + confirmAutoDTO.setInputName(info.getSurname().concat(info.getName())); + confirmAutoDTO.setBaseIdCard(baseInfo.getIdCard()); + confirmAutoDTO.setInputIdCard(info.getIdCard()); + confirmAutoDTO.setBaseMobile(baseInfo.getMobile()); + confirmAutoDTO.setInputMobile(info.getIdCard()); + confirmAutoDTO.setContrastTime(new Date()); + String result = getSimilarity(baseInfo, info); + //身份证比对结果 + if (EQUAL.equals(result.substring(START, ID_CARD_COUNT))) { + confirmAutoDTO.setIdCardResult(PartyMemberConstant.SAME); + } else { + confirmAutoDTO.setIdCardResult(PartyMemberConstant.DIFF); + } + //手机号比对结果 + if (EQUAL.equals(result.substring(ID_CARD_COUNT, MOBILE_COUNT))) { + confirmAutoDTO.setMobileResult(PartyMemberConstant.SAME); + } else { + confirmAutoDTO.setMobileResult(PartyMemberConstant.DIFF); + } + //姓名比对结果 + if (EQUAL.equals(result.substring(MOBILE_COUNT, NAME_COUNT))) { + confirmAutoDTO.setNameResult(PartyMemberConstant.SAME); + } else { + confirmAutoDTO.setNameResult(PartyMemberConstant.DIFF); + } + confirmAutoDTO.setResult(result); + return confirmAutoDTO; + } + + + /** + * 相似度判断 + * + * @param baseInfo 基本信息 + * @param info 录入信息 + * @return String + */ + private String getSimilarity(PartymemberBaseInfoEntity baseInfo, PartymemberInfoDTO info) { + + String result = ""; + + JaroWinkler jw = new JaroWinkler(); + double idCardResult = jw.similarity(baseInfo.getIdCard(), info.getIdCard()); + double mobileResult = jw.similarity(baseInfo.getMobile(), info.getMobile()); + double nameResult = jw.similarity(baseInfo.getName(), info.getName()); + if (idCardResult > PartyMemberConstant.MOST) { + result.concat("10"); + } else if (idCardResult < PartyMemberConstant.SMALL) { + result.concat("00"); + } else { + result.concat("01"); + } + + if (mobileResult > PartyMemberConstant.MOST) { + result.concat("10"); + } else if (mobileResult < PartyMemberConstant.SMALL) { + result.concat("00"); + } else { + result.concat("01"); + } + + if (nameResult > PartyMemberConstant.MOST) { + result.concat("10"); + } else if (nameResult < PartyMemberConstant.SMALL) { + result.concat("00"); + } else { + result.concat("01"); + } + + return result; + + } } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml index 824f049d3b..eb61f263ec 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml @@ -18,6 +18,41 @@ + + + + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberInfoDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberInfoDao.xml index 6d5246434e..601f396817 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberInfoDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberInfoDao.xml @@ -17,6 +17,7 @@ + @@ -32,7 +33,7 @@ SELECT * FROM - partymember_info + epmet_resi_partymember.partymember_info WHERE CUSTOMER_ID = #{customerId} AND GRID_ID = #{gridId} @@ -45,9 +46,10 @@ SELECT * FROM - partymember_info + epmet_resi_partymember.partymember_info WHERE - MOBILE = #{mobile} + CUSTOMER_ID = #{customerId} + AND MOBILE = #{mobile} AND DEL_FLAG = 0 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java index 7f333c98b6..862d296a49 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java @@ -126,4 +126,14 @@ public class UserResiInfoController { return userResiInfoService.getVerificationCode(formDTO); } + /** + * 党员认证时,如果没有注册居民,则注册居民信息 + * @param userResiInfoDTO + * @author zhaoqifeng + **/ + @PostMapping("saveResiInfo") + public Result saveResiInfo (@RequestBody UserResiInfoDTO userResiInfoDTO) { + return userResiInfoService.saveResiInfo(userResiInfoDTO); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java index 1a7035bbc5..2ea687b27a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java @@ -36,89 +36,98 @@ import java.util.Map; */ public interface UserResiInfoService extends BaseService { - /** - * 默认分页 - * - * @param params - * @return PageData - * @author generator - * @date 2020-03-30 - */ - PageData page(Map params); + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-03-30 + */ + PageData page(Map params); - /** - * 默认查询 - * - * @param params - * @return java.util.List - * @author generator - * @date 2020-03-30 - */ - List list(Map params); + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-03-30 + */ + List list(Map params); - /** - * 单条查询 - * - * @param id - * @return UserResiInfoDTO - * @author generator - * @date 2020-03-30 - */ - UserResiInfoDTO get(String id); + /** + * 单条查询 + * + * @param id + * @return UserResiInfoDTO + * @author generator + * @date 2020-03-30 + */ + UserResiInfoDTO get(String id); - /** - * 默认保存 - * - * @param dto - * @return void - * @author generator - * @date 2020-03-30 - */ - void save(UserResiInfoDTO dto); + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-03-30 + */ + void save(UserResiInfoDTO dto); - /** - * 默认更新 - * - * @param dto - * @return void - * @author generator - * @date 2020-03-30 - */ - void update(UserResiInfoDTO dto); + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-03-30 + */ + void update(UserResiInfoDTO dto); - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2020-03-30 - */ - void delete(String[] ids); + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-03-30 + */ + void delete(String[] ids); - /** - * @param userResiInfoFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 查询用户注册信息 - * @Date 2020/3/30 11:07 - **/ - Result getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO); + /** + * @param userResiInfoFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 查询用户注册信息 + * @Date 2020/3/30 11:07 + **/ + Result getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO); - /** - * 居民端-居民注册信息提交 - * - * @param userResiInfoDTO - * @return void - * @author sun - */ - Result submit(UserResiInfoDTO userResiInfoDTO); + /** + * 居民端-居民注册信息提交 + * + * @param userResiInfoDTO + * @return void + * @author sun + */ + Result submit(UserResiInfoDTO userResiInfoDTO); - /** - * 居民端-居民注册根据手机号获取验证码 - * - * @param formDTO - * @author sun - */ - Result getVerificationCode(VerificationCodeFormDTO formDTO); + /** + * 居民端-居民注册根据手机号获取验证码 + * + * @param formDTO + * @author sun + */ + Result getVerificationCode(VerificationCodeFormDTO formDTO); + + /** + * 注册居民信息 + * + * @param userResiInfoDTO 参数 + * @return Result + * @author zhaoqifeng + */ + Result saveResiInfo(UserResiInfoDTO userResiInfoDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java index 580857ec89..57e95af9ae 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java @@ -32,6 +32,7 @@ import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.form.UserResiInfoFormDTO; import com.epmet.dto.form.VerificationCodeFormDTO; import com.epmet.entity.UserResiInfoEntity; +import com.epmet.entity.UserResiRegisterVisitEntity; import com.epmet.redis.UserResiInfoRedis; import com.epmet.service.RegisterRelationService; import com.epmet.service.UserResiInfoService; @@ -57,165 +58,187 @@ import java.util.Map; @Service public class UserResiInfoServiceImpl extends BaseServiceImpl implements UserResiInfoService { - private static final Logger log = LoggerFactory.getLogger(UserResiInfoServiceImpl.class); - @Autowired - private UserResiInfoRedis userResiInfoRedis; - @Autowired - private UserResiRegisterVisitService userResiRegisterVisitService; - @Autowired - private UserResiInfoDao userResiInfoDao; - @Autowired - private RegisterRelationService registerRelationService; - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, UserResiInfoDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, UserResiInfoDTO.class); - } - - private QueryWrapper getWrapper(Map params) { - String id = (String) params.get(FieldConstant.ID_HUMP); - - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); - - return wrapper; - } - - @Override - public UserResiInfoDTO get(String id) { - UserResiInfoEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, UserResiInfoDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(UserResiInfoDTO dto) { - UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(UserResiInfoDTO dto) { - UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } - - /** - * @param userResiInfoFormDTO - * @return com.epmet.commons.tools.utils.Result - * @Author yinzuomei - * @Description 查询用户注册信息 - * @Date 2020/3/30 11:07 - **/ - @Override - public Result getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO) { - UserResiInfoDTO userResiInfoDTO = baseDao.selectUserResiInfoDTO(userResiInfoFormDTO); - if (null != userResiInfoDTO) { - String showName = userResiInfoDTO.getStreet() + "-" + userResiInfoDTO.getSurname() + userResiInfoDTO.getName(); - userResiInfoDTO.setShowName(showName); - } - return new Result().ok(userResiInfoDTO); - } - - @Override - public Result submit(UserResiInfoDTO userResiInfoDTO) { - Result result = new Result(); - //1:手机验证码数据校验//TODO - - //2:验证码校验失败则更新行为记录表数据 返回前台结果 - if (false) { - userResiRegisterVisitService.updateResiRegisterVisit(false, userResiInfoDTO); - result.error(UserResiRegisterConstant.PARAMETER_ERROR); - result.setMsg(UserResiRegisterConstant.MOBILECODE_EXCEPTION); - return result; - } - //3:校验成功 数据存入居民注册表 更新行为记录表数据 - saveUserResiInfo(userResiInfoDTO); - userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO); - //4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 - registerRelationService.saveRegisterRelation(userResiInfoDTO); - return result; - } - - /** - * 居民注册信息表新增数据 - * - * @param userResiInfoDTO - * @Author sun - */ - @Transactional(rollbackFor = Exception.class) - public void saveUserResiInfo(UserResiInfoDTO userResiInfoDTO) { - Date date = new Date(); - userResiInfoDTO.setId(IdWorker.get32UUID()); - userResiInfoDTO.setDelFlag(NumConstant.ZERO); - userResiInfoDTO.setRevision(NumConstant.ZERO); - userResiInfoDTO.setCreatedBy(userResiInfoDTO.getUserId()); - userResiInfoDTO.setCreatedTime(date); - userResiInfoDTO.setUpdatedBy(userResiInfoDTO.getUserId()); - userResiInfoDTO.setUpdatedTime(date); - userResiInfoDao.saveUserResiInfo(userResiInfoDTO); - } - - /** - * @param verificationCodeFormDTO - * @Author sun - * @Description 居民端-居民注册根据手机号获取验证码 - **/ - @Override - public Result getVerificationCode(VerificationCodeFormDTO verificationCodeFormDTO) { - Result result = new Result(); - //1:更新居民注册访问记录表数据 - userResiRegisterVisitService.updateResiVisitOperate(verificationCodeFormDTO); - //2:判断手机号是否可用 - if (!getResiInfoByMobile(verificationCodeFormDTO.getMobile())) { - result.error(UserResiRegisterConstant.PARAMETER_ERROR); - result.setMsg(UserResiRegisterConstant.MOBILE_EXIST); - return result; - } - //3:调用短信服务 生成验证码发送短信 TODO - - //4:将验证码存入redis TODO - - return result; - } - - /** - * 判断手机号是否可用-根据手机号查询居民注册信息(user_resi_info)表数据 - * - * @param mobile - * @return - * @Author sun - */ - private Boolean getResiInfoByMobile(String mobile) { - Boolean bl = true; - if (StringUtils.isBlank(mobile)) { - log.error(UserResiRegisterConstant.PARAMETER_ERROR); - return bl; - } - List list = userResiInfoDao.selectResiInfoByMobile(mobile); - if (list.size() > 0) { - bl = false; - } - return bl; - } + private static final Logger log = LoggerFactory.getLogger(UserResiInfoServiceImpl.class); + @Autowired + private UserResiInfoRedis userResiInfoRedis; + @Autowired + private UserResiRegisterVisitService userResiRegisterVisitService; + @Autowired + private UserResiInfoDao userResiInfoDao; + @Autowired + private RegisterRelationService registerRelationService; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, UserResiInfoDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, UserResiInfoDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public UserResiInfoDTO get(String id) { + UserResiInfoEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, UserResiInfoDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(UserResiInfoDTO dto) { + UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(UserResiInfoDTO dto) { + UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param userResiInfoFormDTO + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 查询用户注册信息 + * @Date 2020/3/30 11:07 + **/ + @Override + public Result getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO) { + UserResiInfoDTO userResiInfoDTO = baseDao.selectUserResiInfoDTO(userResiInfoFormDTO); + if (null != userResiInfoDTO) { + String showName = userResiInfoDTO.getStreet() + "-" + userResiInfoDTO.getSurname() + userResiInfoDTO.getName(); + userResiInfoDTO.setShowName(showName); + } + return new Result().ok(userResiInfoDTO); + } + + @Override + public Result submit(UserResiInfoDTO userResiInfoDTO) { + Result result = new Result(); + //1:手机验证码数据校验//TODO + + //2:验证码校验失败则更新行为记录表数据 返回前台结果 + if (false) { + userResiRegisterVisitService.updateResiRegisterVisit(false, userResiInfoDTO); + result.error(UserResiRegisterConstant.PARAMETER_ERROR); + result.setMsg(UserResiRegisterConstant.MOBILECODE_EXCEPTION); + return result; + } + //3:校验成功 数据存入居民注册表 更新行为记录表数据 + saveUserResiInfo(userResiInfoDTO); + userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO); + //4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 + registerRelationService.saveRegisterRelation(userResiInfoDTO); + return result; + } + + /** + * 居民注册信息表新增数据 + * + * @param userResiInfoDTO + * @Author sun + */ + @Transactional(rollbackFor = Exception.class) + public void saveUserResiInfo(UserResiInfoDTO userResiInfoDTO) { + Date date = new Date(); + userResiInfoDTO.setId(IdWorker.get32UUID()); + userResiInfoDTO.setDelFlag(NumConstant.ZERO); + userResiInfoDTO.setRevision(NumConstant.ZERO); + userResiInfoDTO.setCreatedBy(userResiInfoDTO.getUserId()); + userResiInfoDTO.setCreatedTime(date); + userResiInfoDTO.setUpdatedBy(userResiInfoDTO.getUserId()); + userResiInfoDTO.setUpdatedTime(date); + userResiInfoDao.saveUserResiInfo(userResiInfoDTO); + } + + /** + * @param verificationCodeFormDTO + * @Author sun + * @Description 居民端-居民注册根据手机号获取验证码 + **/ + @Override + public Result getVerificationCode(VerificationCodeFormDTO verificationCodeFormDTO) { + Result result = new Result(); + //1:更新居民注册访问记录表数据 + userResiRegisterVisitService.updateResiVisitOperate(verificationCodeFormDTO); + //2:判断手机号是否可用 + if (!getResiInfoByMobile(verificationCodeFormDTO.getMobile())) { + result.error(UserResiRegisterConstant.PARAMETER_ERROR); + result.setMsg(UserResiRegisterConstant.MOBILE_EXIST); + return result; + } + //3:调用短信服务 生成验证码发送短信 TODO + + //4:将验证码存入redis TODO + + return result; + } + + @Override + public Result saveResiInfo(UserResiInfoDTO userResiInfoDTO) { + Result result = new Result(); + + //判断手机号是否可用 + if (getResiInfoByMobile(userResiInfoDTO.getRegMobile())) { + UserResiRegisterVisitEntity visitEntity = new UserResiRegisterVisitEntity(); + visitEntity.setCustomerId(userResiInfoDTO.getCustomerId()); + visitEntity.setGridId(userResiInfoDTO.getGridId()); + visitEntity.setUserId(userResiInfoDTO.getUserId()); + visitEntity.setLastOperateVisit(UserResiRegisterConstant.SUCCESS); + //TODO + visitEntity.setVisitFrom("党员认证"); + visitEntity.setVisitTime(new Date()); + userResiRegisterVisitService.insert(visitEntity); + //数据存入居民注册表 + userResiInfoDTO.setResiVisitId(visitEntity.getId()); + saveUserResiInfo(userResiInfoDTO); + //4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一 + registerRelationService.saveRegisterRelation(userResiInfoDTO); + } + + return result; + } + + /** + * 判断手机号是否可用-根据手机号查询居民注册信息(user_resi_info)表数据 + * + * @param mobile + * @return + * @Author sun + */ + private Boolean getResiInfoByMobile(String mobile) { + Boolean bl = true; + + List list = userResiInfoDao.selectResiInfoByMobile(mobile); + if (list.size() > 0) { + bl = false; + } + return bl; + } }