Browse Source

新增 党员认证信息提交和党员认证信息补充功能

master
hosinokamui 5 years ago
parent
commit
21e36c8aa3
  1. 34
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberSubmitFromDTO.java
  2. 5
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java
  3. 25
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java
  4. 46
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/ResiPartymemberFeignClient.java
  5. 28
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java
  6. 24
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/ResiPartymemberFeignClientFallBack.java
  7. 25
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java
  8. 19
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java
  9. 30
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java
  10. 10
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberInfoDTO.java
  11. 6
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/PartymemberRegisterRelationDTO.java
  12. 11
      epmet-module/resi-partymember/resi-partymember-server/pom.xml
  13. 43
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java
  14. 14
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  15. 9
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java
  16. 25
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java
  17. 31
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java
  18. 8
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberInfoEntity.java
  19. 9
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/PartymemberRegisterRelationEntity.java
  20. 3
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberInfoExcel.java
  21. 6
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/PartymemberRegisterRelationExcel.java
  22. 22
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java
  23. 9
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java
  24. 195
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
  25. 283
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java
  26. 35
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml
  27. 8
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberInfoDao.xml
  28. 10
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserResiInfoController.java
  29. 163
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserResiInfoService.java
  30. 343
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

34
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;
}

5
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
*/

25
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java

@ -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<PartyMemberInitResultDTO> init(@RequestBody PartyMemberInitFromDTO fromDto);
@PostMapping("/resi/partymember/confirm/getverificationcode")
Result getVerificationCode(@RequestBody VerificationCodeFromDTO fromDto);
}

46
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<PartyMemberInitResultDto>
* @date 2020/3/30 13:50
*/
@PostMapping("/resi/partymember/confirm/init")
Result<PartyMemberInitResultDTO> init(@RequestBody PartyMemberInitFromDTO fromDto);
/**
* 党员认证页获取手机验证码
*
* @param fromDto 参数
* @return Result<PartyMemberInitResultDto>
* @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);
}

28
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java

@ -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<PartyMemberInitResultDTO> 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);
}
}

24
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<PartyMemberInitResultDTO> 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);
}
}

25
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);
}
}

19
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);
}

30
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<PartyMemberInitResultDTO> 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);
}
}

10
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;
}

6
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.已删除

11
epmet-module/resi-partymember/resi-partymember-server/pom.xml

@ -70,6 +70,17 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>info.debatty</groupId>
<artifactId>java-string-similarity</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

43
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";
}

14
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/UserResiInfoFeignClient.java → 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<UserResiInfoDTO> getUserResiInfoDTO(@RequestBody UserResiInfoFormDTO userResiInfoFormDTO);
/**
* 党员认证时如果没有注册居民则注册居民信息
* @param userResiInfoDTO
* @author zhaoqifeng
**/
@PostMapping("/epmetuser/userresiinfo/saveResiInfo")
Result saveResiInfo (@RequestBody UserResiInfoDTO userResiInfoDTO);
}

9
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/UserResiInfoFeignClientFallBack.java → 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<UserResiInfoDTO> 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);
}
}

25
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);
}
}

31
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<PartymemberBaseInfoEntity> {
/**
* 根据身份证匹配数据
*
* @param param 参数
* @return List
*/
List<PartymemberBaseInfoEntity> selectBaseInfoByIdCard(PartymemberInfoDTO param);
/**
* 手根据机号匹配数据
*
* @param param 参数
* @return List
*/
List<PartymemberBaseInfoEntity> selectBaseInfoByMobile(PartymemberInfoDTO param);
/**
* 根据姓名匹配数据
*
* @param param 参数
* @return List
*/
List<PartymemberBaseInfoEntity> selectBaseInfoByName(PartymemberInfoDTO param);
}

8
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;
/**
* 党组织关系(工作单位或其他街道)
*/

9
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;
}

3
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;

6
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;

22
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);
}

9
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<PartymemberBaseI
* @date 2020-03-30
*/
void delete(String[] ids);
/**
* 根据身份证手机号姓名匹配党员基本信息
* @param partyMemberInfoDTO 参数
* @return GetPartyMemberBaseInfoResultDTO
*/
PartymemberConfirmAutoDTO getPartyMemberBaseInfo(PartymemberInfoDTO partyMemberInfoDTO);
}

195
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java

@ -5,19 +5,18 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.PartyMemberConstant;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.modules.feign.UserResiInfoFeignClient;
import com.epmet.modules.partymember.entity.PartymemberInfoEntity;
import com.epmet.modules.partymember.entity.PartymemberVisitEntity;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.partymember.entity.*;
import com.epmet.modules.partymember.redis.PartymemberInfoRedis;
import com.epmet.modules.partymember.service.PartyMemberConfirmService;
import com.epmet.modules.partymember.service.PartymemberInfoService;
import com.epmet.modules.partymember.service.PartymemberVisitService;
import com.epmet.modules.partymember.service.*;
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.PartymemberConfirmAutoDTO;
import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
@ -31,15 +30,26 @@ import java.util.Date;
public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService {
@Autowired
private UserResiInfoFeignClient userResiInfoFeignClient;
private EpmetUserFeignClient epmetUserFeignClient;
@Autowired
private PartymemberInfoService partymemberInfoService;
@Autowired
private PartymemberVisitService partymemberVisitService;
@Autowired
private PartymemberInfoRedis partyMemberInfoRedis;
@Autowired
private PartymemberBaseInfoService partymemberBaseInfoService;
@Autowired
private PartymemberConfirmAutoService partymemberConfirmAutoService;
@Autowired
private PartymemberConfirmManualService partymemberConfirmManualService;
@Autowired
private PartymemberRegisterRelationService partymemberRegisterRelationService;
private final static String BENCHMARK = "110010";
@Override
@Transactional(rollbackFor = Exception.class)
public Result<PartyMemberInitResultDTO> 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<UserResiInfoDTO> userResiInfoResult = userResiInfoFeignClient.getUserResiInfoDTO(userResiInfoFormDTO);
Result<UserResiInfoDTO> 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<PartyMemberInitResultDTO>().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<UserResiInfoDTO> 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();
}
}

283
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<PartymemberBaseInfoDao, PartymemberBaseInfoEntity> implements PartymemberBaseInfoService {
@Autowired
private PartymemberBaseInfoRedis partymemberBaseInfoRedis;
@Override
public PageData<PartymemberBaseInfoDTO> page(Map<String, Object> params) {
IPage<PartymemberBaseInfoEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, PartymemberBaseInfoDTO.class);
}
@Override
public List<PartymemberBaseInfoDTO> list(Map<String, Object> params) {
List<PartymemberBaseInfoEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, PartymemberBaseInfoDTO.class);
}
private QueryWrapper<PartymemberBaseInfoEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<PartymemberBaseInfoEntity> 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<PartymemberBaseInfoDTO> page(Map<String, Object> params) {
IPage<PartymemberBaseInfoEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, PartymemberBaseInfoDTO.class);
}
@Override
public List<PartymemberBaseInfoDTO> list(Map<String, Object> params) {
List<PartymemberBaseInfoEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, PartymemberBaseInfoDTO.class);
}
private QueryWrapper<PartymemberBaseInfoEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<PartymemberBaseInfoEntity> 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<PartymemberBaseInfoEntity> sortList = new ArrayList<>();
//根据身份证匹配数据
List<PartymemberBaseInfoEntity> idCardList = baseDao.selectBaseInfoByIdCard(partyMemberInfo);
if (null != idCardList && idCardList.size() > 0) {
//优先判断身份证和手机号
Optional<PartymemberBaseInfoEntity> 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<PartymemberBaseInfoEntity> mobileList = baseDao.selectBaseInfoByIdCard(partyMemberInfo);
if (null != mobileList && mobileList.size() > 0) {
//判断手机号和姓名
Optional<PartymemberBaseInfoEntity> 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<PartymemberBaseInfoEntity> 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;
}
}

35
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml

@ -18,6 +18,41 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- 根据身份证,手机号,姓名匹配数据 -->
<select id="selectBaseInfoByIdCard"
resultType="com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity"
parameterType="com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO">
SELECT
*
FROM
partymember_base_info
WHERE
CUSTOMER_ID = #{customerId}
AND ID_CARD = #{idCard}
AND DEL_FLAG = 0
</select>
<select id="selectBaseInfoByMobile"
resultType="com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity">
SELECT
*
FROM
partymember_base_info
WHERE
CUSTOMER_ID = #{customerId}
AND MOBILE = #{mobile}
AND DEL_FLAG = 0
</select>
<select id="selectBaseInfoByName"
resultType="com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity">
SELECT
*
FROM
partymember_base_info
WHERE
CUSTOMER_ID = #{customerId}
AND NAME = CONCAT(#{surname}, #{name})
AND DEL_FLAG = 0
</select>
</mapper>

8
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberInfoDao.xml

@ -17,6 +17,7 @@
<result property="street" column="STREET"/>
<result property="estate" column="ESTATE"/>
<result property="building" column="BUILDING"/>
<result property="organizationType" column="ORGANIZATION_TYPE"/>
<result property="extraOrganization" column="EXTRA_ORGANIZATION"/>
<result property="extraCertifierName" column="EXTRA_CERTIFIER_NAME"/>
<result property="extraCertifierMobile" column="EXTRA_CERTIFIER_MOBILE"/>
@ -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
</select>

10
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);
}
}

163
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<UserResiInfoEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<UserResiInfoDTO>
* @author generator
* @date 2020-03-30
*/
PageData<UserResiInfoDTO> page(Map<String, Object> params);
/**
* 默认分页
*
* @param params
* @return PageData<UserResiInfoDTO>
* @author generator
* @date 2020-03-30
*/
PageData<UserResiInfoDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<UserResiInfoDTO>
* @author generator
* @date 2020-03-30
*/
List<UserResiInfoDTO> list(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<UserResiInfoDTO>
* @author generator
* @date 2020-03-30
*/
List<UserResiInfoDTO> list(Map<String, Object> 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<com.epmet.dto.UserResiInfoDTO>
* @Author yinzuomei
* @Description 查询用户注册信息
* @Date 2020/3/30 11:07
**/
Result<UserResiInfoDTO> getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO);
/**
* @param userResiInfoFormDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO>
* @Author yinzuomei
* @Description 查询用户注册信息
* @Date 2020/3/30 11:07
**/
Result<UserResiInfoDTO> 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);
}

343
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<UserResiInfoDao, UserResiInfoEntity> 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<UserResiInfoDTO> page(Map<String, Object> params) {
IPage<UserResiInfoEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserResiInfoDTO.class);
}
@Override
public List<UserResiInfoDTO> list(Map<String, Object> params) {
List<UserResiInfoEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserResiInfoDTO.class);
}
private QueryWrapper<UserResiInfoEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserResiInfoEntity> 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<com.epmet.dto.UserResiInfoDTO>
* @Author yinzuomei
* @Description 查询用户注册信息
* @Date 2020/3/30 11:07
**/
@Override
public Result<UserResiInfoDTO> 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<UserResiInfoDTO>().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<UserResiInfoDTO> 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<UserResiInfoDTO> page(Map<String, Object> params) {
IPage<UserResiInfoEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserResiInfoDTO.class);
}
@Override
public List<UserResiInfoDTO> list(Map<String, Object> params) {
List<UserResiInfoEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserResiInfoDTO.class);
}
private QueryWrapper<UserResiInfoEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserResiInfoEntity> 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<com.epmet.dto.UserResiInfoDTO>
* @Author yinzuomei
* @Description 查询用户注册信息
* @Date 2020/3/30 11:07
**/
@Override
public Result<UserResiInfoDTO> 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<UserResiInfoDTO>().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<UserResiInfoDTO> list = userResiInfoDao.selectResiInfoByMobile(mobile);
if (list.size() > 0) {
bl = false;
}
return bl;
}
}

Loading…
Cancel
Save