From 8439beb0f779dbc5c3f88f088d6969209f1a31d3 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 23 Jun 2020 16:58:47 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=94=AF=E9=83=A8=E7=AE=A1=E7=90=86bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=9A=E5=85=9A=E5=91=98=E5=BA=93=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=8F=AA=E5=85=81=E8=AE=B8=E4=B8=80=E4=B8=AA=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=AE=A4=E8=AF=81=E6=BF=80=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validator/IdCardNoValidatorUtils.java | 2 +- .../dao/PartymemberAuthRecordDao.java | 4 +- .../impl/PartymemberBaseInfoServiceImpl.java | 10 ++--- .../partymember/PartymemberAuthRecordDao.xml | 1 + .../partymember/PartymemberBaseInfoDao.xml | 43 ++++++++++++++----- 5 files changed, 42 insertions(+), 18 deletions(-) diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java index 2aa3e2c964..08a96295ac 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java @@ -46,7 +46,7 @@ public class IdCardNoValidatorUtils { return false; } } else { - logger.info(String.format("身份证号%s最后一位为数字")); + logger.info(String.format("身份证号%s最后一位为数字",idCardNo)); } } if (idCardNo.length() == 18) { diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java index b49ca7552f..5957ee1fb0 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java @@ -21,6 +21,8 @@ import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.modules.partymember.entity.PartymemberAuthRecordEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 党员认证记录表 * @@ -37,5 +39,5 @@ public interface PartymemberAuthRecordDao extends BaseDao selectByPartyMemberBaseInfoId(String partymemberBaseInfoId); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java index ae51f2cc19..35e890d7b7 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java @@ -441,10 +441,10 @@ public class PartymemberBaseInfoServiceImpl extends BaseServiceImpl entityList = partymemberAuthRecordDao.selectByPartyMemberBaseInfoId(partyMemberId); + if (null != entityList&&entityList.size()>0) { partyMemberBaseInfoDetailResultDTO.setStatus(Boolean.TRUE); - partyMemberBaseInfoDetailResultDTO.setActiveDesc(entity.getAuthDesc()); + partyMemberBaseInfoDetailResultDTO.setActiveDesc(entityList.get(0).getAuthDesc()); } else { partyMemberBaseInfoDetailResultDTO.setStatus(Boolean.FALSE); partyMemberBaseInfoDetailResultDTO.setActiveDesc(""); @@ -456,8 +456,8 @@ public class PartymemberBaseInfoServiceImpl extends BaseServiceImpl entityList = partymemberAuthRecordDao.selectByPartyMemberBaseInfoId(formDTO.getPartyMemberId()); + if (null != entityList&&entityList.size()>0) { throw new RenException(EpmetErrorCode.CANNOT_DELETE_PARTY_MEMBER.getCode()); } this.deleteById(formDTO.getPartyMemberId()); diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml index f61badbc80..7bb2065080 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml @@ -25,5 +25,6 @@ select * from partymember_auth_record where DEL_FLAG='0' and PARTYMEMBER_BASE_INFO_ID=#{partymemberBaseInfoId} + order by CREATED_TIME desc \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml index b7aa868f90..1b2ea4f5ee 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml @@ -25,33 +25,54 @@ SELECT * FROM - partymember_base_info + partymember_base_info pbi WHERE - CUSTOMER_ID = #{customerId} - AND ID_CARD = #{idCard} - AND DEL_FLAG = 0 + pbi.CUSTOMER_ID = #{customerId} + AND pbi.ID_CARD = #{idCard} + AND pbi.DEL_FLAG = 0 + AND NOT EXISTS (SELECT + * + FROM + partymember_auth_record m + WHERE + pbi.id=m.PARTYMEMBER_BASE_INFO_ID + and m.del_flag='0') From b61e58fdb8127afb342dd417667aba34e075af01 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 23 Jun 2020 21:45:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=AB=AF=EF=BC=9A?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E7=A0=81=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/GovLoginServiceImpl.java | 16 ++++--- .../epmet/constant/SmsTemplateConstant.java | 30 +++++++++++++ .../main/java/com/epmet/dto/SysSmsDTO.java | 5 ++- .../dto/form/SendVerificationCodeFormDTO.java | 36 ++++++++++++++++ .../result/SendVerificationCodeResultDTO.java | 19 ++++++++ .../feign/EpmetMessageOpenFeignClient.java | 23 +++++++--- .../EpmetMessageOpenFeignClientFallback.java | 11 ++++- .../com/epmet/controller/SmsController.java | 24 ++++++++--- .../java/com/epmet/service/SysSmsService.java | 16 +++++-- .../epmet/service/impl/SysSmsServiceImpl.java | 43 +++++++++++++++++-- .../com/epmet/sms/AbstractSmsService.java | 13 ++++++ .../java/com/epmet/sms/AliyunSmsService.java | 10 +++++ 12 files changed, 218 insertions(+), 28 deletions(-) create mode 100644 epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java create mode 100644 epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendVerificationCodeFormDTO.java create mode 100644 epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/SendVerificationCodeResultDTO.java diff --git a/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java b/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java index b1ad1b2908..45e34e282e 100644 --- a/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java +++ b/epmet-auth/src/main/java/com/epmet/service/impl/GovLoginServiceImpl.java @@ -13,11 +13,13 @@ import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.DateUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.PhoneValidatorUtils; +import com.epmet.constant.SmsTemplateConstant; import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerStaffDTO; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.*; import com.epmet.dto.result.*; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.feign.EpmetUserFeignClient; import com.epmet.feign.GovOrgFeignClient; import com.epmet.jwt.JwtTokenProperties; @@ -57,6 +59,8 @@ public class GovLoginServiceImpl implements GovLoginService { private CpUserDetailRedis cpUserDetailRedis; @Autowired private GovOrgFeignClient govOrgFeignClient; + @Autowired + private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; /** * @param formDTO @@ -70,8 +74,7 @@ public class GovLoginServiceImpl implements GovLoginService { //1、校验手机号是否符合规范 if (!PhoneValidatorUtils.isMobile(formDTO.getMobile())) { logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getMobile(), EpmetErrorCode.ERROR_PHONE.getCode(), EpmetErrorCode.ERROR_PHONE.getMsg())); - //TODO 2020-05-21 手机号验证先去掉方便测试 - //throw new RenException(EpmetErrorCode.ERROR_PHONE.getCode()); + throw new RenException(EpmetErrorCode.ERROR_PHONE.getCode()); } //2、根据手机号校验用户是否存在 Result> customerStaffResult = epmetUserFeignClient.checkCustomerStaff(formDTO.getMobile()); @@ -79,14 +82,17 @@ public class GovLoginServiceImpl implements GovLoginService { logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getMobile(), customerStaffResult.getCode(), customerStaffResult.getMsg())); throw new RenException(customerStaffResult.getCode()); } - //3、发送短信验证码 TODO 2020-05-21 发送验证先去掉方便测试 - /*Result> smsCodeResult = messageFeignClient.sendSmsCaptcha(formDTO.getMobile()); + //3、发送短信验证码 + SendVerificationCodeFormDTO sendVerificationCodeFormDTO=new SendVerificationCodeFormDTO(); + sendVerificationCodeFormDTO.setMobile(formDTO.getMobile()); + sendVerificationCodeFormDTO.setAliyunTemplateCode(SmsTemplateConstant.LGOIN_CONFIRM); + Result smsCodeResult=epmetMessageOpenFeignClient.sendVerificationCode(sendVerificationCodeFormDTO); if (!smsCodeResult.success()) { logger.error(String.format(SEND_SMS_CODE_ERROR, formDTO.getMobile(), smsCodeResult.getCode(), smsCodeResult.getMsg())); throw new RenException(smsCodeResult.getCode()); } //4、保存短信验证码(删除现有短信验证码、将新的短信验证码存入Redis) - captchaRedis.saveSmsCode(formDTO, smsCodeResult.getData().get("code"));*/ + captchaRedis.saveSmsCode(formDTO, smsCodeResult.getData().getCode()); logger.info(String.format("发送短信验证码成功,手机号[%s]", formDTO.getMobile())); } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java new file mode 100644 index 0000000000..3bfac0e8f7 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/constant/SmsTemplateConstant.java @@ -0,0 +1,30 @@ +package com.epmet.constant; + +/** + * 短信模板编码常亮 + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/23 21:30 + */ +public interface SmsTemplateConstant { + + /** + * 登录确认验证码 + */ + String LGOIN_CONFIRM="SMS_150731396"; + + /** + * 用户注册验证码 + */ + String USER_REGISTER="SMS_150731394"; + + /** + * 信息变更验证码 + */ + String CHANGE_INFO="SMS_150731392"; + + /** + * 修改密码验证码 + */ + String CHANGE_PASSWORD = "SMS_150731393"; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/SysSmsDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/SysSmsDTO.java index 91eff10e8b..d698373e9f 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/SysSmsDTO.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/SysSmsDTO.java @@ -54,5 +54,8 @@ public class SysSmsDTO implements Serializable { @ApiModelProperty(value = "参数列表") private String params; - + /** + * 短信模板编码 来源于SmsTemplateConstant + */ + private String aliyunTemplateCode; } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendVerificationCodeFormDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendVerificationCodeFormDTO.java new file mode 100644 index 0000000000..97aaa8549b --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/form/SendVerificationCodeFormDTO.java @@ -0,0 +1,36 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 根据手机号、短信模板编码,发送短信 验证码 + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/23 20:58 + */ +@Data +public class SendVerificationCodeFormDTO implements Serializable { + private static final long serialVersionUID = 8894395590639206399L; + + public interface AddUserInternalGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class}) + private String mobile; + + /** + * 场景: + */ + @NotBlank(message = "短信模板编码不能为空", groups = {AddUserInternalGroup.class}) + private String aliyunTemplateCode; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/SendVerificationCodeResultDTO.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/SendVerificationCodeResultDTO.java new file mode 100644 index 0000000000..2442da7cb1 --- /dev/null +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/dto/result/SendVerificationCodeResultDTO.java @@ -0,0 +1,19 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 短信验证码 + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/23 21:37 + */ +@Data +public class SendVerificationCodeResultDTO implements Serializable { + /** + * 短信验证码 + */ + private String code; +} diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java index ba775e2546..9d0a60fbf1 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/EpmetMessageOpenFeignClient.java @@ -1,5 +1,12 @@ package com.epmet.feign; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.SysSmsDTO; +import com.epmet.dto.form.SendVerificationCodeFormDTO; +import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.dto.result.SendVerificationCodeResultDTO; +import com.epmet.feign.fallback.EpmetMessageOpenFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -7,12 +14,6 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; -import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.utils.Result; -import com.epmet.dto.SysSmsDTO; -import com.epmet.dto.form.UserMessageFormDTO; -import com.epmet.feign.fallback.EpmetMessageOpenFeignClientFallback; - /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 * @@ -44,4 +45,14 @@ public interface EpmetMessageOpenFeignClient { **/ @PostMapping(value = "message/usermessage/saveusermessage", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) Result saveUserMessage(@RequestBody UserMessageFormDTO formDto); + + /** + * @param + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 发送短信验证码(区分场景) + * @Date 2020/6/23 20:56 + **/ + @PostMapping(value = "message/sms/sendVerificationCode", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result sendVerificationCode(@RequestBody SendVerificationCodeFormDTO formDTO); } diff --git a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java index a3f4dbbbc1..6bd8c16bb8 100644 --- a/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java +++ b/epmet-module/epmet-message/epmet-message-client/src/main/java/com/epmet/feign/fallback/EpmetMessageOpenFeignClientFallback.java @@ -1,13 +1,14 @@ package com.epmet.feign.fallback; -import org.springframework.stereotype.Component; - 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.SysSmsDTO; +import com.epmet.dto.form.SendVerificationCodeFormDTO; import com.epmet.dto.form.UserMessageFormDTO; +import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.feign.EpmetMessageOpenFeignClient; +import org.springframework.stereotype.Component; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -32,4 +33,10 @@ public class EpmetMessageOpenFeignClientFallback implements EpmetMessageOpenFeig public Result saveUserMessage(UserMessageFormDTO formDto) { return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "saveUserMessage", formDto); } + + @Override + public Result sendVerificationCode(SendVerificationCodeFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_MESSAGE_SERVER, "sendVerificationCode", formDTO); + } + } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java index 008429520d..0a0f534a0a 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/controller/SmsController.java @@ -9,7 +9,6 @@ package com.epmet.controller; import com.alibaba.fastjson.JSON; -import com.epmet.commons.tools.annotation.LogOperation; import com.epmet.commons.tools.constant.Constant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; @@ -17,6 +16,8 @@ import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.commons.tools.validator.group.AliyunGroup; import com.epmet.commons.tools.validator.group.QcloudGroup; import com.epmet.dto.SysSmsDTO; +import com.epmet.dto.form.SendVerificationCodeFormDTO; +import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.enums.PlatformEnum; import com.epmet.remote.ParamsRemoteService; import com.epmet.service.SysSmsService; @@ -31,7 +32,6 @@ import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.Arrays; -import java.util.HashMap; import java.util.Map; /** @@ -76,7 +76,6 @@ public class SmsController { @PostMapping("saveConfig") @ApiOperation("保存配置短信") -// @LogOperation("保存配置短信") public Result saveConfig(@RequestBody SmsConfig config){ //校验类型 ValidatorUtils.validateEntity(config); @@ -96,19 +95,17 @@ public class SmsController { @PostMapping("send") @ApiOperation("发送短信") -// @LogOperation("发送短信") @ApiImplicitParams({ @ApiImplicitParam(name = "mobile", value = "手机好号", paramType = "query", required = true, dataType="String"), @ApiImplicitParam(name = "params", value = "参数", paramType = "query", required = true, dataType="String") }) public Result send(@RequestBody SysSmsDTO sysSmsDTO){ - sysSmsService.send(sysSmsDTO.getMobile(), sysSmsDTO.getParams()); + sysSmsService.send(sysSmsDTO); return new Result(); } @DeleteMapping @ApiOperation("删除") -// @LogOperation("删除") public Result delete(@RequestBody Long[] ids){ sysSmsService.deleteBatchIds(Arrays.asList(ids)); @@ -121,7 +118,6 @@ public class SmsController { */ @GetMapping("captcha/{mobile}") @ApiOperation("发送短信验证码") - //@LogOperation("发送短信验证码") @ApiImplicitParams({ @ApiImplicitParam(name = "mobile", value = "手机号", paramType = "query", required = true, dataType="String") }) @@ -129,4 +125,18 @@ public class SmsController { Result result = sysSmsService.sendSmsCaptcha(mobile); return result; } + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @author yinzuomei + * @description 发送短信验证码(区分场景) + * @Date 2020/6/23 21:05 + **/ + @PostMapping("sendVerificationCode") + public Result sendVerificationCode(@RequestBody SendVerificationCodeFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO,SendVerificationCodeFormDTO.AddUserShowGroup.class,SendVerificationCodeFormDTO.AddUserInternalGroup.class); + SendVerificationCodeResultDTO resultDTO=sysSmsService.sendVerificationCode(formDTO); + return new Result().ok(resultDTO); + } } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java index 79c7cddd1c..1e67125423 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/SysSmsService.java @@ -12,6 +12,8 @@ import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.SysSmsDTO; +import com.epmet.dto.form.SendVerificationCodeFormDTO; +import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.entity.SysSmsEntity; import java.util.LinkedHashMap; @@ -28,10 +30,9 @@ public interface SysSmsService extends BaseService { /** * 发送短信 - * @param mobile 手机号 - * @param params 短信参数 + * @param sysSmsDTO :mobile 手机号 params短信参数 aliyunTemplateCode:短信模板 */ - void send(String mobile, String params); + void send(SysSmsDTO sysSmsDTO); /** * 保存短信发送记录 @@ -48,5 +49,14 @@ public interface SysSmsService extends BaseService { * @return */ Result sendSmsCaptcha(String mobile); + + /** + * @return java.util.HashMap + * @param formDTO + * @author yinzuomei + * @description 发送短信验证码(区分场景) + * @Date 2020/6/23 21:07 + **/ + SendVerificationCodeResultDTO sendVerificationCode(SendVerificationCodeFormDTO formDTO); } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java index 9dc94b7a2d..2f8600641e 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java @@ -20,6 +20,8 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.SysSmsDao; import com.epmet.dto.SysSmsDTO; +import com.epmet.dto.form.SendVerificationCodeFormDTO; +import com.epmet.dto.result.SendVerificationCodeResultDTO; import com.epmet.entity.SysSmsEntity; import com.epmet.exception.ModuleErrorCode; import com.epmet.feign.EpmetMessageOpenFeignClient; @@ -67,10 +69,10 @@ public class SysSmsServiceImpl extends BaseServiceImpl } @Override - public void send(String mobile, String params) { + public void send(SysSmsDTO sysSmsDTO) { LinkedHashMap map; try { - map = JSON.parseObject(params, LinkedHashMap.class); + map = JSON.parseObject(sysSmsDTO.getParams(), LinkedHashMap.class); }catch (Exception e){ throw new RenException(ErrorCode.JSON_FORMAT_ERROR); } @@ -80,9 +82,12 @@ public class SysSmsServiceImpl extends BaseServiceImpl if(service == null){ throw new RenException(ModuleErrorCode.SMS_CONFIG); } - //发送短信 - service.sendSms(mobile, map); + if(StringUtils.isNotBlank(sysSmsDTO.getAliyunTemplateCode())){ + service.sendSmsByAliyunTemplateCode(sysSmsDTO.getMobile(), map,sysSmsDTO.getAliyunTemplateCode()); + }else{ + service.sendSms(sysSmsDTO.getMobile(), map); + } } @Override @@ -141,4 +146,34 @@ public class SysSmsServiceImpl extends BaseServiceImpl } return new Result().error(EpmetErrorCode.MESSAGE_SMS_SEND_ERROR.getCode()); } + + @Override + public SendVerificationCodeResultDTO sendVerificationCode(SendVerificationCodeFormDTO formDTO) { + SendVerificationCodeResultDTO data = new SendVerificationCodeResultDTO(); + Integer code = (int) ((Math.random() * 9 + 1) * 100000); + String codeStr = String.valueOf(code); + HashMap map = new HashMap<>(); + map.put("code", codeStr); + + try { + String paramJson = new ObjectMapper().writeValueAsString(map); + + SysSmsDTO sysSmsDTO = new SysSmsDTO(); + sysSmsDTO.setMobile(formDTO.getMobile()); + sysSmsDTO.setParams(paramJson); + sysSmsDTO.setAliyunTemplateCode(formDTO.getAliyunTemplateCode()); + Result result = epmetMessageOpenFeignClient.send(sysSmsDTO); + if (result != null && result.success()) { + data.setCode(codeStr); + } else { + logger.error(String.format("短信验证码发送失败,手机号:%s。code:%d,msg:%s", formDTO.getMobile(), result.getCode(), result.getMsg())); + throw new RenException(EpmetErrorCode.MESSAGE_SMS_SEND_ERROR.getCode()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.error(String.format("短信验证码发送失败,手机号:%s。errorMessage:%s", formDTO.getMobile(), e.getMessage())); + throw new RenException(EpmetErrorCode.MESSAGE_SMS_SEND_ERROR.getCode()); + } + return data; + } } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AbstractSmsService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AbstractSmsService.java index a29130457b..e1a07530fb 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AbstractSmsService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AbstractSmsService.java @@ -37,4 +37,17 @@ public abstract class AbstractSmsService { * @param template 短信模板 */ public abstract void sendSms(String mobile, LinkedHashMap params, String signName, String template); + + /** + * @return void + * @param mobile 手机号 + * @param params 参数 + * @param aliyunTemplateCode 短息模板编码 + * @author yinzuomei + * @description + * @Date 2020/6/23 21:27 + **/ + public abstract void sendSmsByAliyunTemplateCode(String mobile, + LinkedHashMap params, + String aliyunTemplateCode); } diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AliyunSmsService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AliyunSmsService.java index 7c97eb11ad..9ec5c16cd5 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AliyunSmsService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/AliyunSmsService.java @@ -24,6 +24,7 @@ import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.enums.PlatformEnum; import com.epmet.exception.ModuleErrorCode; import com.epmet.service.SysSmsService; +import org.apache.commons.lang3.StringUtils; import java.util.LinkedHashMap; @@ -108,4 +109,13 @@ public class AliyunSmsService extends AbstractSmsService { throw new RenException(ModuleErrorCode.SEND_SMS_ERROR, response.getMessage()); } } + + @Override + public void sendSmsByAliyunTemplateCode(String mobile, LinkedHashMap params,String aliyunTemplateCode) { + if(StringUtils.isNotBlank(aliyunTemplateCode)){ + this.sendSms(mobile, params, config.getAliyunSignName(), aliyunTemplateCode); + return; + } + this.sendSms(mobile, params, config.getAliyunSignName(), config.getAliyunTemplateCode()); + } } From 0bf3fe3a04fd60144a1cbf13441e023efe952789 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 23 Jun 2020 21:50:56 +0800 Subject: [PATCH 3/4] =?UTF-8?q?auth=E3=80=81message:=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E7=AB=AF=E7=99=BB=E5=BD=95=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=AE=E6=94=B9;resi-partymember=E6=94=AF?= =?UTF-8?q?=E9=83=A8=E5=85=9A=E5=91=98=E8=AE=A4=E8=AF=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epmet-auth/deploy/docker-compose-dev.yml | 2 +- epmet-auth/pom.xml | 2 +- .../epmet-message-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/epmet-message/epmet-message-server/pom.xml | 2 +- .../resi-partymember-server/deploy/docker-compose-dev.yml | 2 +- epmet-module/resi-partymember/resi-partymember-server/pom.xml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/epmet-auth/deploy/docker-compose-dev.yml b/epmet-auth/deploy/docker-compose-dev.yml index a63457b568..bbc475fc6f 100644 --- a/epmet-auth/deploy/docker-compose-dev.yml +++ b/epmet-auth/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-auth-server: container_name: epmet-auth-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.21 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-auth:0.3.22 ports: - "8081:8081" network_mode: host # 使用现有网络 diff --git a/epmet-auth/pom.xml b/epmet-auth/pom.xml index 51b2074663..fd3c252986 100644 --- a/epmet-auth/pom.xml +++ b/epmet-auth/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.21 + 0.3.22 com.epmet epmet-cloud diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml index 5b43fe23c5..247bcb1da8 100644 --- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-message-server: container_name: epmet-message-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-message-server:0.3.19 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-message-server:0.3.20 ports: - "8085:8085" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml index 481ab4f529..af934e124c 100644 --- a/epmet-module/epmet-message/epmet-message-server/pom.xml +++ b/epmet-module/epmet-message/epmet-message-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.19 + 0.3.20 com.epmet epmet-message diff --git a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml index 1574e7f53e..9aa9529d34 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml +++ b/epmet-module/resi-partymember/resi-partymember-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: resi-partymember-server: container_name: resi-partymember-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/resi-partymember-server:0.3.51 + image: 192.168.1.130:10080/epmet-cloud-dev/resi-partymember-server:0.3.52 ports: - "8096:8096" network_mode: host # 使用现有网络 diff --git a/epmet-module/resi-partymember/resi-partymember-server/pom.xml b/epmet-module/resi-partymember/resi-partymember-server/pom.xml index c50af5590b..58cfd05402 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/pom.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.51 + 0.3.52 com.epmet resi-partymember From 25a45ac94f880a7fa57115378e4b08870e6e6088 Mon Sep 17 00:00:00 2001 From: yinzuomei <576302893@qq.com> Date: Tue, 23 Jun 2020 22:01:10 +0800 Subject: [PATCH 4/4] =?UTF-8?q?message=E5=8D=87=E7=BA=A7=EF=BC=9Aadd?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=89=8B=E6=9C=BA=E5=8F=B7=E3=80=81=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=BC=96=E7=A0=81=E5=8F=91=E9=80=81=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=A0=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epmet-message-server/deploy/docker-compose-dev.yml | 2 +- .../epmet-message/epmet-message-server/pom.xml | 2 +- .../src/main/java/com/epmet/sms/QcloudSmsService.java | 10 ++++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml index 247bcb1da8..adc35709b2 100644 --- a/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml +++ b/epmet-module/epmet-message/epmet-message-server/deploy/docker-compose-dev.yml @@ -2,7 +2,7 @@ version: "3.7" services: epmet-message-server: container_name: epmet-message-server-dev - image: 192.168.1.130:10080/epmet-cloud-dev/epmet-message-server:0.3.20 + image: 192.168.1.130:10080/epmet-cloud-dev/epmet-message-server:0.3.21 ports: - "8085:8085" network_mode: host # 使用现有网络 diff --git a/epmet-module/epmet-message/epmet-message-server/pom.xml b/epmet-module/epmet-message/epmet-message-server/pom.xml index af934e124c..01a6bc6f5f 100644 --- a/epmet-module/epmet-message/epmet-message-server/pom.xml +++ b/epmet-module/epmet-message/epmet-message-server/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - 0.3.20 + 0.3.21 com.epmet epmet-message diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/QcloudSmsService.java b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/QcloudSmsService.java index 7c16e641dd..a3e33d6557 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/QcloudSmsService.java +++ b/epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/sms/QcloudSmsService.java @@ -17,6 +17,7 @@ import com.epmet.commons.tools.utils.SpringContextUtils; import com.epmet.enums.PlatformEnum; import com.epmet.exception.ModuleErrorCode; import com.epmet.service.SysSmsService; +import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -67,4 +68,13 @@ public class QcloudSmsService extends AbstractSmsService { throw new RenException(ModuleErrorCode.SEND_SMS_ERROR, result.errMsg); } } + + @Override + public void sendSmsByAliyunTemplateCode(String mobile, LinkedHashMap params,String aliyunTemplateCode) { + if(StringUtils.isNotBlank(aliyunTemplateCode)){ + this.sendSms(mobile, params, config.getAliyunSignName(), aliyunTemplateCode); + return; + } + this.sendSms(mobile, params, config.getAliyunSignName(), config.getAliyunTemplateCode()); + } }