From f28d84f96859f65a8fc6aa976fc81c3b122dc8b4 Mon Sep 17 00:00:00 2001 From: hosinokamui Date: Tue, 31 Mar 2020 11:21:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=85=9A=E5=91=98=E8=AE=A4?= =?UTF-8?q?=E8=AF=81=E9=A1=B5=E9=9D=A2=E5=88=9D=E5=A7=8B=E5=8C=96=E5=92=8C?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=89=8B=E6=9C=BA=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet/commons/tools/redis/RedisKeys.java | 12 ++ .../resi-mine/resi-mine-client/pom.xml | 6 + .../mine/dto/from/PartyMemberInitFromDTO.java | 39 ++++++ .../dto/from/VerificationCodeFromDTO.java | 34 +++++ .../dto/result/PartyMemberInitResultDTO.java | 32 +++++ .../feign/PartyMemberConfirmFeignClient.java | 25 ++++ ...PartyMemberConfirmFeignClientFallBack.java | 28 ++++ .../controller/PartyMemberController.java | 52 ++++++++ .../service/PartyMemberService.java | 32 +++++ .../service/impl/PartyMemberServiceImpl.java | 35 +++++ .../resi-partymember-server/pom.xml | 12 ++ .../epmet/constant/PartyMemberConstant.java | 43 ++++++ .../feign/UserResiInfoFeignClient.java | 28 ++++ .../UserResiInfoFeignClientFallBack.java | 22 +++ .../PartyMemberConfirmController.java | 51 +++++++ .../partymember/dao/PartymemberInfoDao.java | 17 ++- .../redis/PartymemberInfoRedis.java | 11 ++ .../service/PartyMemberConfirmService.java | 33 +++++ .../service/PartymemberInfoService.java | 21 +++ .../impl/PartyMemberConfirmServiceImpl.java | 112 ++++++++++++++++ .../impl/PartymemberInfoServiceImpl.java | 125 ++++++++++-------- .../mapper/partymember/PartymemberInfoDao.xml | 23 ++++ 22 files changed, 736 insertions(+), 57 deletions(-) create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberInitFromDTO.java create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java create mode 100644 epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/PartyMemberInitResultDTO.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java create mode 100644 epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/UserResiInfoFeignClient.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/UserResiInfoFeignClientFallBack.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java index 5171524907..fe3e8b4a0d 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/RedisKeys.java @@ -122,5 +122,17 @@ public class RedisKeys { return rootPrefix.concat("phone:sms:history:").concat(phone); } + /** + * + * 党员认证手机验证码key + * + * @param userId 用户id + * @param mobile 手机号 + * @param code 验证码 + * @return String + */ + public static String getUserMobileCodeKey(String userId, String mobile, String code) { + return rootPrefix.concat("party:member:confirm:").concat(userId).concat("-").concat(mobile).concat("-").concat(code); + } } diff --git a/epmet-module/resi-mine/resi-mine-client/pom.xml b/epmet-module/resi-mine/resi-mine-client/pom.xml index 3841644651..b27b423eb6 100644 --- a/epmet-module/resi-mine/resi-mine-client/pom.xml +++ b/epmet-module/resi-mine/resi-mine-client/pom.xml @@ -26,6 +26,12 @@ io.springfox springfox-swagger-ui + + com.epmet + resi-partymember-client + 2.0.0 + compile + diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberInitFromDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberInitFromDTO.java new file mode 100644 index 0000000000..99e02573fa --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/PartyMemberInitFromDTO.java @@ -0,0 +1,39 @@ +package com.epmet.resi.mine.dto.from; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * + * 党员认证页面初始化参数 + * + * @author zhaoqifeng + * @date 2020/3/30 11:17 + */ +@Data +public class PartyMemberInitFromDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 客户ID + */ + @NotBlank(message = "客户id不能为空") + private String customerId; + /** + * 网格ID + */ + @NotBlank(message = "网格id不能为空") + private String gridId; + /** + * 用户ID + */ + private String userId; + /** + * 访问来源 + */ + @NotBlank(message = "访问来源") + private String visitFrom; + +} 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 new file mode 100644 index 0000000000..65113a2a7d --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/VerificationCodeFromDTO.java @@ -0,0 +1,34 @@ +package com.epmet.resi.mine.dto.from; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/3/30 16:45 + */ +@Data +public class VerificationCodeFromDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 用户ID + */ + private String userId; + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空") + private String mobile; + + /** + * 行为记录表ID + */ + @NotBlank(message = "行为记录表ID不能为空") + private String visitId; +} diff --git a/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/PartyMemberInitResultDTO.java b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/PartyMemberInitResultDTO.java new file mode 100644 index 0000000000..2dd29fdcd1 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/PartyMemberInitResultDTO.java @@ -0,0 +1,32 @@ +package com.epmet.resi.mine.dto.result; + +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; +import lombok.Data; + +import java.io.Serializable; + +/** + * 党员认证页面初始化返回结果 + * + * @author zhaoqifeng + * @date 2020/3/30 11:05 + */ +@Data +public class PartyMemberInitResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 提交状态 0:未提交,1:已提交 + */ + private String submitStatus; + + /** + * 党员认证行为记录表ID + */ + private String visitId; + /** + * 党员认证信息 + */ + private PartymemberInfoDTO partyMemberInfo; +} 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 new file mode 100644 index 0000000000..85505e516e --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/PartyMemberConfirmFeignClient.java @@ -0,0 +1,25 @@ +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/fallback/PartyMemberConfirmFeignClientFallBack.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java new file mode 100644 index 0000000000..a42b5b8198 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/PartyMemberConfirmFeignClientFallBack.java @@ -0,0 +1,28 @@ +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/partymember/controller/PartyMemberController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java new file mode 100644 index 0000000000..4f1ae79c86 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberController.java @@ -0,0 +1,52 @@ +package com.epmet.modules.partymember.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +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.VerificationCodeFromDTO; +import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * 党员认证 + * + * @author zhaoqifeng + * @date 2020/3/30 16:11 + */ +@RestController +@RequestMapping("partymemberbaseinfo") +public class PartyMemberController { + + @Autowired + private PartyMemberService partyMemberService; + + /** + * 党员认证页面初始化 + * + * @param fromDto param + * @return Result + */ + @PostMapping("init") + public Result init(@LoginUser TokenDto tokenDto, @RequestBody PartyMemberInitFromDTO fromDto) { + fromDto.setUserId(tokenDto.getUserId()); + return partyMemberService.init(fromDto); + } + + /** + * 党员认证页获取手机验证码 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("getverificationcode") + public Result getVerificationCode(@LoginUser TokenDto tokenDto, @RequestBody VerificationCodeFromDTO fromDto) { + return partyMemberService.getVerificationCode(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 new file mode 100644 index 0000000000..41b2884d25 --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberService.java @@ -0,0 +1,32 @@ +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.VerificationCodeFromDTO; +import com.epmet.resi.mine.dto.result.PartyMemberInitResultDTO; + +/** + * 党员认证 + * + * @author zhaoqifeng + * @date 2020/3/30 11:00 + */ +public interface PartyMemberService { + /** + * 党员认证页面初始化 + * + * @param fromDto param + * @return Result + */ + Result init(PartyMemberInitFromDTO fromDto); + + /** + * 获取手机验证码 + * + * @param tokenDto token + * @param fromDTO 参数 + * @return Result + */ + Result getVerificationCode(TokenDto tokenDto, VerificationCodeFromDTO 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 new file mode 100644 index 0000000000..292729f11f --- /dev/null +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberServiceImpl.java @@ -0,0 +1,35 @@ +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.partymember.service.PartyMemberService; +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.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * 党员认证页面初始化 + * + * @author zhaoqifeng + * @date 2020/3/30 11:01 + */ +@Service +public class PartyMemberServiceImpl implements PartyMemberService { + + @Autowired + PartyMemberConfirmFeignClient partyMemberConfirmFeignClient; + + @Override + public Result init(PartyMemberInitFromDTO fromDto) { + return partyMemberConfirmFeignClient.init(fromDto); + } + + @Override + public Result getVerificationCode(TokenDto tokenDto, VerificationCodeFromDTO fromDTO) { + fromDTO.setUserId(tokenDto.getUserId()); + return partyMemberConfirmFeignClient.getVerificationCode(fromDTO); + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index f9741d6372..4cdb866055 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -58,6 +58,18 @@ feign-httpclient 10.3.0 + + com.epmet + resi-mine-client + 2.0.0 + compile + + + com.epmet + epmet-user-client + 2.0.0 + 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 new file mode 100644 index 0000000000..5cccc88819 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/constant/PartyMemberConstant.java @@ -0,0 +1,43 @@ +package com.epmet.constant; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/3/30 15:24 + */ +public interface PartyMemberConstant { + /** + * 初始化 + */ + String OPERATE_INITIALIZE = "initialize"; + + /** + * 获取验证码 + */ + String OPERATE_OPERATE_SMS_CODE = "sms_code"; + + /** + * 自动认证成功 + */ + String OPERATE_AUTO_SUCCESS = "auto_success"; + + /** + * 自动认证失败 + */ + String OPERATE_AUTO_FAILED = "auto_failed"; + + /** + * 信息补充 + */ + String OPERATE_EXTRA = "auto_extra"; + + /** + * 未提交 + */ + String NOT_SUBMITTED = "0"; + + /** + * 已提交 + */ + String SUBMITTED = "1"; +} 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/UserResiInfoFeignClient.java new file mode 100644 index 0000000000..1ba46a8572 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/UserResiInfoFeignClient.java @@ -0,0 +1,28 @@ +package com.epmet.modules.feign; + +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 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 14:51 + */ +@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = UserResiInfoFeignClientFallBack.class) +public interface UserResiInfoFeignClient { + + /** + * 查询用户注册信息 + * @param userResiInfoFormDTO 参数 + * @return Result + */ + @PostMapping("/epmetuser/userresiinfo/getUserResiInfoDTO") + Result getUserResiInfoDTO(@RequestBody UserResiInfoFormDTO userResiInfoFormDTO); + +} 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/UserResiInfoFeignClientFallBack.java new file mode 100644 index 0000000000..abde8a0c44 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/UserResiInfoFeignClientFallBack.java @@ -0,0 +1,22 @@ +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.dto.UserResiInfoDTO; +import com.epmet.dto.form.UserResiInfoFormDTO; +import com.epmet.modules.feign.UserResiInfoFeignClient; +import org.springframework.stereotype.Component; + +/** + * @author zhaoqifeng + * @dscription + * @date 2020/3/30 14:53 + */ +@Component +public class UserResiInfoFeignClientFallBack implements UserResiInfoFeignClient { + @Override + public Result getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserResiInfoDTO", userResiInfoFormDTO); + } +} 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 new file mode 100644 index 0000000000..6142fde61d --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartyMemberConfirmController.java @@ -0,0 +1,51 @@ +package com.epmet.modules.partymember.controller; + +import com.epmet.commons.tools.utils.Result; +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 org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * + * 党员认证 + * + * @author zhaoqifeng + * @date 2020/3/30 13:49 + */ +@RestController +@RequestMapping("confirm") +public class PartyMemberConfirmController { + + @Autowired + private PartyMemberConfirmService partyMemberConfirmService; + + /** + * 党员认证页面初始化 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("init") + public Result init(@RequestBody PartyMemberInitFromDTO fromDto) { + return partyMemberConfirmService.init(fromDto); + } + + /** + * 党员认证页获取手机验证码 + * + * @param fromDto 参数 + * @return Result + * @date 2020/3/30 13:50 + */ + @PostMapping("getverificationcode") + public Result getVerificationCode(@RequestBody VerificationCodeFromDTO fromDto) { + return partyMemberConfirmService.getVerificationCode(fromDto); + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberInfoDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberInfoDao.java index 44e062bf11..f01ba56abc 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberInfoDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberInfoDao.java @@ -19,15 +19,28 @@ package com.epmet.modules.partymember.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.partymember.entity.PartymemberInfoEntity; +import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; import org.apache.ibatis.annotations.Mapper; /** - * 党员认证信息表 + * 党员认证信息表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-30 */ @Mapper public interface PartymemberInfoDao extends BaseDao { - + /** + * 获取党员认证信息 + * @param param 用户信息 + * @return PartymemberInfoEntity + */ + PartymemberInfoEntity selectPartyMemberInfo(PartymemberInfoDTO param); + + /** + * 通过手机号获取党员认证信息 + * @param param 手机号 + * @return PartymemberInfoEntity + */ + PartymemberInfoEntity selectPartyMemberInfoByMobile(PartymemberInfoEntity param); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/PartymemberInfoRedis.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/PartymemberInfoRedis.java index 73933fe5e3..02adb2ee95 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/PartymemberInfoRedis.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/redis/PartymemberInfoRedis.java @@ -17,6 +17,7 @@ package com.epmet.modules.partymember.redis; +import com.epmet.commons.tools.redis.RedisKeys; import com.epmet.commons.tools.redis.RedisUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -44,4 +45,14 @@ public class PartymemberInfoRedis { return null; } + public void setUserMobileCode(String userId, String mobile, String code){ + String key = RedisKeys.getUserMobileCodeKey(userId, mobile, code); + redisUtils.set(key, code); + } + + public String getUserMobileCode(String userId, String mobile, String code){ + String key = RedisKeys.getUserMobileCodeKey(userId, mobile, code); + return (String) redisUtils.get(key); + } + } \ No newline at end of file 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 new file mode 100644 index 0000000000..ce67b62177 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartyMemberConfirmService.java @@ -0,0 +1,33 @@ +package com.epmet.modules.partymember.service; + +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; + +/** + * + * 党员认证 + * + * @author zhaoqifeng + * @date 2020/3/30 13:58 + */ +public interface PartyMemberConfirmService { + + /** + * + * 党员认证页面初始化 + * + * @param fromDto 参数 + * @return Result + */ + Result init(PartyMemberInitFromDTO fromDto); + + /** + * 获取手机验证码 + * @param fromDTO 参数 + * @return Result + */ + Result getVerificationCode( VerificationCodeFromDTO fromDTO); + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java index f238c5ca83..125780d0ff 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberInfoService.java @@ -92,4 +92,25 @@ public interface PartymemberInfoService extends BaseService init(PartyMemberInitFromDTO fromDto) { + + PartyMemberInitResultDTO result = new PartyMemberInitResultDTO(); + // 获取党员认证信息,判断是否提交认证 + PartymemberInfoDTO partyMemberInfoParam = new PartymemberInfoDTO(); + partyMemberInfoParam.setCustomerId(fromDto.getCustomerId()); + partyMemberInfoParam.setGridId(fromDto.getGridId()); + partyMemberInfoParam.setUserId(fromDto.getUserId()); + PartymemberInfoDTO partyMemberInfoResult = partymemberInfoService.getPartyMemberInfo(partyMemberInfoParam); + // 若已提交,获取提交的党员信息 + if (null != partyMemberInfoResult) { + result.setSubmitStatus(PartyMemberConstant.SUBMITTED); + result.setPartyMemberInfo(partyMemberInfoResult); + return new Result().ok(result); + } else { + // 若没有提交,获取注册居民信息,判断是否已注册居民 + result.setSubmitStatus(PartyMemberConstant.NOT_SUBMITTED); + + UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); + userResiInfoFormDTO.setCustomerId(fromDto.getCustomerId()); + userResiInfoFormDTO.setUserId(fromDto.getUserId()); + Result userResiInfoResult = userResiInfoFeignClient.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); + + result.setVisitId(partymemberVisitEntity.getId()); + + return new Result().ok(result); + } + + @Override + public Result getVerificationCode(VerificationCodeFromDTO fromDTO) { + Result result = new Result(); + //手机是否可用 + PartymemberInfoEntity partyMemberInfoParam= new PartymemberInfoEntity(); + partyMemberInfoParam.setMobile(fromDTO.getMobile()); + PartymemberInfoDTO partyMemberInfoResult = partymemberInfoService.getPartyMemberInfoByMobile(partyMemberInfoParam); + if (null != partyMemberInfoResult) { + //TODO + result.setCode(0); + result.setMsg(""); + return result; + } + + //TODO 生成短信验证码 + String code = "0000"; + + //将验证码存入Redis + 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); + + return result; + } +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java index 111b521c6e..5ee4e4f1de 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberInfoServiceImpl.java @@ -38,7 +38,7 @@ import java.util.List; import java.util.Map; /** - * 党员认证信息表 + * 党员认证信息表 * * @author generator generator@elink-cn.com * @since v1.0.0 2020-03-30 @@ -46,59 +46,74 @@ import java.util.Map; @Service public class PartymemberInfoServiceImpl extends BaseServiceImpl implements PartymemberInfoService { - @Autowired - private PartymemberInfoRedis partymemberInfoRedis; - - @Override - public PageData page(Map params) { - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - getWrapper(params) - ); - return getPageData(page, PartymemberInfoDTO.class); - } - - @Override - public List list(Map params) { - List entityList = baseDao.selectList(getWrapper(params)); - - return ConvertUtils.sourceToTarget(entityList, PartymemberInfoDTO.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 PartymemberInfoDTO get(String id) { - PartymemberInfoEntity entity = baseDao.selectById(id); - return ConvertUtils.sourceToTarget(entity, PartymemberInfoDTO.class); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void save(PartymemberInfoDTO dto) { - PartymemberInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberInfoEntity.class); - insert(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void update(PartymemberInfoDTO dto) { - PartymemberInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberInfoEntity.class); - updateById(entity); - } - - @Override - @Transactional(rollbackFor = Exception.class) - public void delete(String[] ids) { - // 逻辑删除(@TableLogic 注解) - baseDao.deleteBatchIds(Arrays.asList(ids)); - } + @Autowired + private PartymemberInfoRedis partymemberInfoRedis; + @Autowired + private PartymemberInfoDao partyMemberInfoDao; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, PartymemberInfoDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, PartymemberInfoDTO.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 PartymemberInfoDTO get(String id) { + PartymemberInfoEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, PartymemberInfoDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(PartymemberInfoDTO dto) { + PartymemberInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberInfoEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(PartymemberInfoDTO dto) { + PartymemberInfoEntity entity = ConvertUtils.sourceToTarget(dto, PartymemberInfoEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + public PartymemberInfoDTO getPartyMemberInfo(PartymemberInfoDTO partymemberInfoDTO) { + PartymemberInfoEntity entity = partyMemberInfoDao.selectPartyMemberInfo(partymemberInfoDTO); + return ConvertUtils.sourceToTarget(entity, PartymemberInfoDTO.class); + } + + @Override + public PartymemberInfoDTO getPartyMemberInfoByMobile(PartymemberInfoEntity entity) { + PartymemberInfoEntity result = partyMemberInfoDao.selectPartyMemberInfoByMobile(entity); + return ConvertUtils.sourceToTarget(result, PartymemberInfoDTO.class); + } + } \ 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 0d284ec1d9..b17f134905 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 @@ -27,6 +27,29 @@ + + \ No newline at end of file