From 005f6465fbda5011f7cb2a2d62e001a500008bc4 Mon Sep 17 00:00:00 2001 From: zhaoqifeng Date: Fri, 3 Apr 2020 14:51:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=9A=E5=91=98=E8=AE=A4=E8=AF=81=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/exception/EpmetErrorCode.java | 2 ++ .../feign/EpmetMessageFeignClient.java | 24 ++++++++++++++ .../EpmetMessageFeignClientFallback.java | 21 +++++++++++++ .../impl/PartyMemberConfirmServiceImpl.java | 31 +++++++++++++------ 4 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java create mode 100644 epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 4edacdd517..f9def8bbe3 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -16,6 +16,8 @@ public enum EpmetErrorCode { MOBILE_HAS_BEEN_USED(8101, "该手机已被使用,请更换手机或使用原绑定的微信用户登录"), MOBILE_CODE_ERROR(8102, "手机验证码错误"), AUTO_CONFIRM_FAILED(8103, "自动认证失败"), + MOBILE_GET_CODE_ERROR(8104, "获取手机验证码失败"), + /** * 手机号已存在 diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java new file mode 100644 index 0000000000..b39f6bbea2 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetMessageFeignClient.java @@ -0,0 +1,24 @@ +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.EpmetMessageFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +/** + * @author kamui + */ +@FeignClient(name = ServiceConstant.EPMET_MESSAGE_SERVER, fallback = EpmetMessageFeignClientFallback.class) +public interface EpmetMessageFeignClient { + + /** + * 发送短信验证码 + * @param mobile 手机号 + * @return Result + */ + @GetMapping(value = "message/sms/captcha/{mobile}") + Result sendSmsCaptcha(@PathVariable String mobile); + +} \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java new file mode 100644 index 0000000000..e87f27e4d3 --- /dev/null +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetMessageFeignClientFallback.java @@ -0,0 +1,21 @@ +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.EpmetMessageFeignClient; +import org.springframework.stereotype.Component; + +/** + * 消息服务降级 + * @author zhaoqifeng + */ +@Component +public class EpmetMessageFeignClientFallback implements EpmetMessageFeignClient { + + @Override + public Result sendSmsCaptcha(String mobile) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendSmsCaptcha", mobile); + } + +} diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index e5cb397981..5b061faca6 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -8,6 +8,7 @@ import com.epmet.constant.PartyMemberConstant; import com.epmet.dto.UserResiInfoDTO; import com.epmet.dto.UserRoleDTO; import com.epmet.dto.form.UserResiInfoFormDTO; +import com.epmet.modules.feign.EpmetMessageFeignClient; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.partymember.entity.*; import com.epmet.modules.partymember.redis.PartymemberInfoRedis; @@ -17,11 +18,13 @@ 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 lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; +import java.util.Map; /** * 党员认证 @@ -30,6 +33,7 @@ import java.util.Date; * @date 2020/3/30 14:01 */ @Service +@Slf4j public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService { @Autowired @@ -48,6 +52,8 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService private PartymemberConfirmManualService partymemberConfirmManualService; @Autowired private PartymemberRegisterRelationService partymemberRegisterRelationService; + @Autowired + private EpmetMessageFeignClient messageFeignClient; private final static String BENCHMARK = "110010"; @@ -74,8 +80,13 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO(); userResiInfoFormDTO.setCustomerId(fromDto.getCustomerId()); userResiInfoFormDTO.setUserId(fromDto.getUserId()); - Result userResiInfoResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO); - result.setPartyMemberInfo(ConvertUtils.sourceToTarget(userResiInfoResult.getData(), PartymemberInfoDTO.class)); + UserResiInfoDTO userResiInfoResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO).getData(); + PartymemberInfoDTO partyMemberInfo = ConvertUtils.sourceToTarget(userResiInfoResult, + PartymemberInfoDTO.class); + partyMemberInfo.setMobile(userResiInfoResult.getRegMobile()); + partyMemberInfo.setEstate(userResiInfoResult.getDistrict()); + partyMemberInfo.setBuilding(userResiInfoResult.getBuildingAddress()); + result.setPartyMemberInfo(partyMemberInfo); } // 将访问行为存入热心居民申请行为记录表 @@ -95,17 +106,21 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService partyMemberInfoParam.setMobile(fromDTO.getMobile()); PartymemberInfoDTO partyMemberInfoResult = partymemberInfoService.getPartyMemberInfoByMobile(partyMemberInfoParam); if (null != partyMemberInfoResult) { - //TODO code待定 result.setCode(EpmetErrorCode.MOBILE_HAS_BEEN_USED.getValue()); result.setMsg(EpmetErrorCode.MOBILE_HAS_BEEN_USED.getName()); return result; } - //TODO 生成短信验证码 - String code = "0000"; + //生成短信验证码 + Map message = (Map) messageFeignClient.sendSmsCaptcha(fromDTO.getMobile()).getData(); + if(null == message) { + result.setCode(EpmetErrorCode.MOBILE_GET_CODE_ERROR.getValue()); + result.setMsg(EpmetErrorCode.MOBILE_GET_CODE_ERROR.getName()); + return result; + } //将验证码存入Redis - partyMemberInfoRedis.setUserMobileCode(fromDTO.getUserId(), fromDTO.getMobile(), code); + partyMemberInfoRedis.setUserMobileCode(fromDTO.getUserId(), fromDTO.getMobile(), message.get("code")); //将访问记录更新到热心居民申请行为记录表 saveOrUpdateVisit(fromDTO.getVisitId(), null, PartyMemberConstant.OPERATE_OPERATE_SMS_CODE); @@ -125,7 +140,6 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService if (null == code) { saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null, PartyMemberConstant.OPERATE_AUTO_FAILED); - //TODO code待定 result.setCode(EpmetErrorCode.MOBILE_CODE_ERROR.getValue()); result.setMsg(EpmetErrorCode.MOBILE_CODE_ERROR.getName()); return result; @@ -147,7 +161,6 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService partyMemberInfoEntity.setConfirmResult("1"); partymemberInfoService.insert(partyMemberInfoEntity); - //TODO code待定 result.setCode(EpmetErrorCode.AUTO_CONFIRM_FAILED.getValue()); result.setMsg(EpmetErrorCode.AUTO_CONFIRM_FAILED.getName()); } else { @@ -248,7 +261,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService * @return String */ @Transactional(rollbackFor = Exception.class) - private String saveOrUpdateVisit(String visitId, PartyMemberInitFromDTO fromDTO, String operate) { + public String saveOrUpdateVisit(String visitId, PartyMemberInitFromDTO fromDTO, String operate) { PartymemberVisitEntity partymemberVisitEntity = new PartymemberVisitEntity(); if (null == visitId) { partymemberVisitEntity.setCustomerId(fromDTO.getCustomerId());