From ae44782c75f0ad129351f8bc714fcb2a31d6f6bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=89=8D=E7=A6=8F?= Date: Mon, 19 Jun 2023 18:00:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=AB=99=E5=86=85=E4=BF=A1?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inside-notices/pom.xml | 10 + .../notices/listener/SendMessageListener.java | 5 +- .../service/impl/MNSNoticesApiImpl.java | 14 ++ .../impl/MessageModuleServiceImpl.java | 3 +- .../impl/MessageRecordServiceImpl.java | 21 +- .../notices/utils/DingTalkUtilWangli.java | 14 +- .../cn/axzo/msg/center/api/MNSNoticesApi.java | 19 ++ .../api/fallback/MNSNoticesApiFallBack.java | 19 +- .../center/api/request/MnsCodeStatusReq.java | 43 ++++ .../msg/center/api/request/MnsMockReq.java | 14 ++ .../center/api/request/MnsSendCodeV2Req.java | 46 ++++ .../center/api/response/MnsCodeStatusRes.java | 20 ++ .../center/api/response/MnsSendCodeRes.java | 18 ++ msg-center-common/pom.xml | 4 + .../common/consts/RedisNameConstants.java | 33 +++ .../center/common/enums/MnsTemplateEnum.java | 28 +++ .../common}/redis/AxzoJedisManager.java | 2 +- .../common}/redis/IAxzoJedisManager.java | 2 +- .../common}/redis/INullValueHandler.java | 2 +- msg-center-dal/pom.xml | 9 +- .../axzo/msg/center/dal/MessageModuleDao.java | 4 +- .../axzo/msg/center/dal/MessageRecordDao.java | 21 +- .../dal/mapper/MessageRecordMapper.java | 2 - msg-center-domain/pom.xml | 26 +-- .../entity/MNSChannelMessageTemplate.java | 2 +- .../domain/entity/MNSMessageTemplate.java | 2 +- .../center/domain/entity/MessageModule.java | 6 +- .../center/domain/entity/MessageRecord.java | 17 +- .../msg/center/domain}/enums/EnumBase.java | 2 +- .../domain/enums/InsideBizTypeEnum.java | 22 ++ .../InsideMsgRecordTerminalTypeEnum.java | 36 +++ .../domain/enums/InsideMsgStateEnum.java | 41 ++++ .../domain/enums/InsideMsgTypeEnum.java | 31 +++ .../domain/enums/InsideSmsCodeEnum.java | 32 +++ .../center/domain/enums/MnsTemplateEnum.java | 28 +++ .../msg/center/domain}/enums/YesNoEnum.java | 2 +- .../domain/request/InsideCmsReadMsgReq.java | 28 +++ msg-center-webapi/pom.xml | 12 + .../common/enums/BatchSendTypeEnum.java | 1 + .../common/enums/ChannelHandlerEnum.java | 1 + .../notices/common/enums/IsDeletedEnum.java | 1 + .../common/enums/MessageChannelEnum.java | 1 + .../common/enums/MessageSendTypeEnum.java | 1 + .../common/enums/MessageStatusEnum.java | 1 + .../common/enums/MessageTemplateTypeEnum.java | 1 + .../notices/common/enums/ReturnCodeEnum.java | 1 + .../common/enums/SendDetailsStatusEnum.java | 1 + .../common/properties/SmsProperties.java | 45 ++++ msg-notices/msg-notices-service/pom.xml | 14 ++ .../center/notices/service/SmsService.java | 26 +++ .../notices/service/gateway/SmsGateway.java | 13 ++ .../service/impl/MNSNoticesApiImpl.java | 60 +++++ .../MessageCallbackServiceImpl.java | 2 +- .../{ => impl}/MessageServiceImpl.java | 5 +- .../service/{ => impl}/PlatServiceImpl.java | 2 +- .../notices/service/impl/SmsServiceImpl.java | 94 ++++++++ .../service/{ => impl}/TaskServiceImpl.java | 2 +- .../notices/service/manager/BaseManager.java | 9 + .../notices/service/manager/SmsManager.java | 214 ++++++++++++++++++ .../notices/service/request/CaptchaParam.java | 21 ++ .../service/request/CodeStatusReq.java | 43 ++++ .../notices/service/request/MockReq.java | 14 ++ .../service/request/SendCodeV2Req.java | 46 ++++ .../service/response/CodeStatusRes.java | 20 ++ .../notices/service/response/SendCodeRes.java | 18 ++ .../service/response/SmsCodeInfoRes.java | 14 ++ pom.xml | 1 + 67 files changed, 1235 insertions(+), 77 deletions(-) create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsCodeStatusReq.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsMockReq.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsSendCodeV2Req.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsCodeStatusRes.java create mode 100644 msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsSendCodeRes.java create mode 100644 msg-center-common/src/main/java/cn/axzo/msg/center/common/consts/RedisNameConstants.java create mode 100644 msg-center-common/src/main/java/cn/axzo/msg/center/common/enums/MnsTemplateEnum.java rename {inside-notices/src/main/java/cn/axzo/msg/center/inside/notices => msg-center-common/src/main/java/cn/axzo/msg/center/common}/redis/AxzoJedisManager.java (99%) rename {inside-notices/src/main/java/cn/axzo/msg/center/inside/notices => msg-center-common/src/main/java/cn/axzo/msg/center/common}/redis/IAxzoJedisManager.java (97%) rename {inside-notices/src/main/java/cn/axzo/msg/center/inside/notices => msg-center-common/src/main/java/cn/axzo/msg/center/common}/redis/INullValueHandler.java (72%) rename {msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common => msg-center-domain/src/main/java/cn/axzo/msg/center/domain}/enums/EnumBase.java (85%) create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideBizTypeEnum.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgRecordTerminalTypeEnum.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgStateEnum.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgTypeEnum.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideSmsCodeEnum.java create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/MnsTemplateEnum.java rename {msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common => msg-center-domain/src/main/java/cn/axzo/msg/center/domain}/enums/YesNoEnum.java (88%) create mode 100644 msg-center-domain/src/main/java/cn/axzo/msg/center/domain/request/InsideCmsReadMsgReq.java create mode 100644 msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/properties/SmsProperties.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/SmsService.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/gateway/SmsGateway.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MNSNoticesApiImpl.java rename msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/{ => impl}/MessageCallbackServiceImpl.java (99%) rename msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/{ => impl}/MessageServiceImpl.java (99%) rename msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/{ => impl}/PlatServiceImpl.java (99%) create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/SmsServiceImpl.java rename msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/{ => impl}/TaskServiceImpl.java (99%) create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/BaseManager.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/SmsManager.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CaptchaParam.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CodeStatusReq.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/MockReq.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/SendCodeV2Req.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/CodeStatusRes.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SendCodeRes.java create mode 100644 msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SmsCodeInfoRes.java diff --git a/inside-notices/pom.xml b/inside-notices/pom.xml index 1c572195..c968fab5 100644 --- a/inside-notices/pom.xml +++ b/inside-notices/pom.xml @@ -47,6 +47,7 @@ cn.axzo.msgcenter msg-center-api + 1.0.0-SNAPSHOT org.aspectj @@ -89,10 +90,12 @@ cn.axzo.msg.center.domain msg-center-domain + 1.0.0-SNAPSHOT cn.axzo.msg.center msg-center-dal + 1.0.0-SNAPSHOT org.springframework.retry @@ -107,6 +110,13 @@ cn.axzo.msg.notices.service.api msg-notices-service-api + 1.0.0-SNAPSHOT + + + cn.axzo.msg.notices.service.api + msg-notices-service-api + 1.0.0-SNAPSHOT + compile diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/listener/SendMessageListener.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/listener/SendMessageListener.java index 14cdddf4..3108617d 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/listener/SendMessageListener.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/listener/SendMessageListener.java @@ -5,6 +5,7 @@ import cn.axzo.msg.center.api.enums.MsgStateEnum; import cn.axzo.msg.center.dal.MessageRecordDao; import cn.axzo.msg.center.domain.dto.MsgBody4GuestDTO; import cn.axzo.msg.center.domain.entity.MessageRecord; +import cn.axzo.msg.center.domain.enums.InsideMsgStateEnum; import cn.axzo.msg.center.inside.notices.event.SendMessageEvent; import cn.axzo.msg.center.inside.notices.service.NewImService; import cn.azxo.framework.common.utils.LogUtil; @@ -48,10 +49,10 @@ public class SendMessageListener { messageRecord.setRetryCount(event.getRetryCounting().get()); messageRecord.setFailCause(event.getErrMsg()); if (event.getIsSend().get()) { - messageRecord.setState(MsgStateEnum.HAS_BEEN_SENT); + messageRecord.setState(InsideMsgStateEnum.getByCode(MsgStateEnum.HAS_BEEN_SENT.getCode())); messageRecord.setEventSource(""); } else { - messageRecord.setState(MsgStateEnum.UNSENT); + messageRecord.setState(InsideMsgStateEnum.getByCode(MsgStateEnum.UNSENT.getCode())); messageRecord.setEventSource(JSON.toJSONString(event.getMessage())); } messageRecordDao.updateById(messageRecord); diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MNSNoticesApiImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MNSNoticesApiImpl.java index 300abb46..2f17860c 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MNSNoticesApiImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MNSNoticesApiImpl.java @@ -3,7 +3,11 @@ package cn.axzo.msg.center.inside.notices.service.impl; import cn.axzo.core.web.Result; import cn.axzo.core.web.Results; import cn.axzo.msg.center.api.MNSNoticesApi; +import cn.axzo.msg.center.api.request.MnsCodeStatusReq; +import cn.axzo.msg.center.api.request.MnsSendCodeV2Req; import cn.axzo.msg.center.api.request.SendMessageRequestDto; +import cn.axzo.msg.center.api.response.MnsCodeStatusRes; +import cn.axzo.msg.center.api.response.MnsSendCodeRes; import cn.axzo.msg.center.notices.manager.api.dto.request.MnsRequestDto; import cn.axzo.msg.center.notices.service.api.MessageService; import cn.hutool.json.JSONUtil; @@ -30,4 +34,14 @@ public class MNSNoticesApiImpl implements MNSNoticesApi { messageService.sendMessage(mnsRequestDto); return Results.ok(); } + + @Override + public Result sendCodeV2(MnsSendCodeV2Req req) { + return null; + } + + @Override + public Result getPhoneCodeStatus(MnsCodeStatusReq req) { + return null; + } } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageModuleServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageModuleServiceImpl.java index 508fd95e..6f1ab1b9 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageModuleServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageModuleServiceImpl.java @@ -7,6 +7,7 @@ import cn.axzo.msg.center.domain.dto.MsgModuleDTO; import cn.axzo.msg.center.domain.dto.SearchModuleDTO; import cn.axzo.msg.center.domain.dto.UpdateModuleDTO; import cn.axzo.msg.center.domain.entity.MessageModule; +import cn.axzo.msg.center.domain.enums.InsideReceiveTypeEnum; import cn.axzo.msg.center.domain.enums.ModuleBizTypeEnum; import cn.axzo.msg.center.domain.enums.UserTypeEnum; import cn.axzo.msg.center.domain.persistence.BaseEntity; @@ -48,7 +49,7 @@ public class MessageModuleServiceImpl implements MessageModuleService { @Override public List listMoudleByUserType(UserTypeEnum userTypeEnum) { ReceiveTypeEnum receiveTypeEnum = ReceiveTypeEnum.getByMessage(userTypeEnum.getName()); - List messageModules = messageModuleDao.listMoudleByUserType(receiveTypeEnum); + List messageModules = messageModuleDao.listMoudleByUserType(InsideReceiveTypeEnum.valueOf(receiveTypeEnum.getCode())); return messageModules; } diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java index 0f736bb3..57d28906 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/service/impl/MessageRecordServiceImpl.java @@ -18,10 +18,8 @@ import cn.axzo.msg.center.domain.dto.CmsMsgQueryReqDTO; import cn.axzo.msg.center.domain.dto.MessageNewResDTO; import cn.axzo.msg.center.domain.dto.MsgStatisticsDTO; import cn.axzo.msg.center.domain.entity.*; -import cn.axzo.msg.center.domain.enums.ModuleBizTypeEnum; -import cn.axzo.msg.center.domain.enums.MsgRouteTypeEnum; -import cn.axzo.msg.center.domain.enums.NativeTypeEnum; -import cn.axzo.msg.center.domain.enums.UserTypeEnum; +import cn.axzo.msg.center.domain.enums.*; +import cn.axzo.msg.center.domain.request.InsideCmsReadMsgReq; import cn.axzo.msg.center.inside.notices.event.SendMessageEvent; import cn.axzo.msg.center.inside.notices.service.MessageRecordService; import cn.azxo.framework.common.utils.LogUtil; @@ -110,11 +108,11 @@ public class MessageRecordServiceImpl implements MessageRecordService { basic.setModuleId(messageModule.getId()); basic.setTitle(title); basic.setContent(content); - basic.setReceiveType(message.getReceiveType()); - basic.setState(MsgStateEnum.UNSENT); + basic.setReceiveType(InsideReceiveTypeEnum.valueOf(message.getReceiveType().getCode())); + basic.setState(InsideMsgStateEnum.valueOf(MsgStateEnum.UNSENT.name())); if (message.getTerminalType() == null) { - basic.setTerminalType(MsgRecordTerminalTypeEnum.UNKNOWN); + basic.setTerminalType(InsideMsgRecordTerminalTypeEnum.valueOf(MsgRecordTerminalTypeEnum.UNKNOWN.name())); } List pushMessages = new ArrayList<>(); @@ -229,7 +227,7 @@ public class MessageRecordServiceImpl implements MessageRecordService { }); } - private String buildToId(Long itemToId, Long personId, ReceiveTypeEnum receiveType, Long bizId) { + private String buildToId(Long itemToId, Long personId, InsideReceiveTypeEnum receiveType, Long bizId) { String toId = ""; switch (receiveType) { case CM_LEADER: @@ -317,7 +315,7 @@ public class MessageRecordServiceImpl implements MessageRecordService { public Boolean changeMessageState(List msgId, MsgStateEnum state) { List messageRecords = messageRecordDao.listByIds(msgId); messageRecords = messageRecords.stream().map(item -> { - item.setState(state); + item.setState(InsideMsgStateEnum.valueOf(state.name())); return item; }).collect(Collectors.toList()); return messageRecordDao.updateBatchById(messageRecords); @@ -341,7 +339,7 @@ public class MessageRecordServiceImpl implements MessageRecordService { log.info("消息主键为: {} 的状态被更新为: {}({})", record.getId(), record.getState().getMessage(), record.getState().getCode()); - record.setState(state); + record.setState(InsideMsgStateEnum.valueOf(state.name())); return messageRecordDao.updateById(record); } @@ -359,7 +357,8 @@ public class MessageRecordServiceImpl implements MessageRecordService { } Long personId = ContextInfoHolder.get().getUserInfo().getPersonId(); Long identityId = ContextInfoHolder.get().getUserInfo().getIdentityId(); - messageRecordDao.readMsg(req, personId, identityId); + InsideCmsReadMsgReq request= BeanConvertUtils.copyBean(req,InsideCmsReadMsgReq.class); + messageRecordDao.readMsg(request, personId, identityId); } /** diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/utils/DingTalkUtilWangli.java b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/utils/DingTalkUtilWangli.java index 2fa990b7..df8e03ec 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/utils/DingTalkUtilWangli.java +++ b/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/utils/DingTalkUtilWangli.java @@ -1,21 +1,21 @@ package cn.axzo.msg.center.inside.notices.utils; -import cn.axzo.msg.center.inside.notices.redis.AxzoJedisManager; +import cn.axzo.msg.center.common.redis.AxzoJedisManager; import com.dingtalk.api.DefaultDingTalkClient; import com.dingtalk.api.DingTalkClient; -import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request; -import com.taobao.api.ApiException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.stereotype.Component; import com.dingtalk.api.request.OapiGettokenRequest; +import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request; import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request.Msg; import com.dingtalk.api.request.OapiMessageCorpconversationAsyncsendV2Request.Text; import com.dingtalk.api.request.OapiV2UserGetbymobileRequest; import com.dingtalk.api.response.OapiGettokenResponse; import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response; import com.dingtalk.api.response.OapiV2UserGetbymobileResponse; +import com.taobao.api.ApiException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Component; /** * 钉钉消息推送工具类 diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/MNSNoticesApi.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/MNSNoticesApi.java index 0ea3e116..fde81cbf 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/MNSNoticesApi.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/MNSNoticesApi.java @@ -2,10 +2,16 @@ package cn.axzo.msg.center.api; import cn.axzo.core.web.Result; import cn.axzo.msg.center.api.fallback.MNSNoticesApiFallBack; +import cn.axzo.msg.center.api.request.MnsCodeStatusReq; +import cn.axzo.msg.center.api.request.MnsSendCodeV2Req; import cn.axzo.msg.center.api.request.SendMessageRequestDto; +import cn.axzo.msg.center.api.response.MnsCodeStatusRes; +import cn.axzo.msg.center.api.response.MnsSendCodeRes; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.stereotype.Component; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * 短信消息相关接口 @@ -22,4 +28,17 @@ public interface MNSNoticesApi { @PostMapping("mns/send/sms") Result sendMessage(SendMessageRequestDto request); + /** + * 发送验证码2.0(返回的是数字) + * @param req + * @return + */ + Result sendCodeV2(@Validated @RequestBody MnsSendCodeV2Req req); + + /** + * 获取验证码状态 + * @param req + * @return + */ + Result getPhoneCodeStatus(MnsCodeStatusReq req); } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/MNSNoticesApiFallBack.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/MNSNoticesApiFallBack.java index a2c6b85e..2aaf6b93 100644 --- a/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/MNSNoticesApiFallBack.java +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/fallback/MNSNoticesApiFallBack.java @@ -3,7 +3,12 @@ package cn.axzo.msg.center.api.fallback; import cn.axzo.core.web.Result; import cn.axzo.core.web.Results; import cn.axzo.msg.center.api.MNSNoticesApi; +import cn.axzo.msg.center.api.request.MnsCodeStatusReq; +import cn.axzo.msg.center.api.request.MnsSendCodeV2Req; import cn.axzo.msg.center.api.request.SendMessageRequestDto; +import cn.axzo.msg.center.api.response.MnsCodeStatusRes; +import cn.axzo.msg.center.api.response.MnsSendCodeRes; +import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -12,7 +17,19 @@ import org.springframework.stereotype.Service; public class MNSNoticesApiFallBack implements MNSNoticesApi { @Override public Result sendMessage(SendMessageRequestDto request) { - log.info("推送短信消息超时, message: {}", request); + log.warn("推送短信消息超时, message: {}", request); return Results.fail("调用推送短信消息超时"); } + + @Override + public Result sendCodeV2(MnsSendCodeV2Req req) { + log.warn("发送验证码失败,message:{}", JSON.toJSONString(req)); + return Results.fail("发送验证码失败"); + } + + @Override + public Result getPhoneCodeStatus(MnsCodeStatusReq req) { + log.warn("获取验证码状态失败,message:{}", JSON.toJSONString(req)); + return Results.fail("获取验证码状态失败"); + } } diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsCodeStatusReq.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsCodeStatusReq.java new file mode 100644 index 00000000..3b35003a --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsCodeStatusReq.java @@ -0,0 +1,43 @@ +package cn.axzo.msg.center.api.request; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 16:53 + */ +@Data +public class MnsCodeStatusReq { + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空") + private String phoneNumber; + + /** + * 验证码类型 + * 1: 平台登录 + * 2:企业登录 + * 3:项目登录 + * 4:从业人员登录 + * 5:产业工人登录 + * 6:手机号验证 + * 7:修改手机号验证 + * 8:银行卡验证 + * 9:boss看板发送验证码 + * 10:监管机构 + * 11: 访客 + * 12:监管大屏 + */ + @NotNull(message = "验证码类型不能为空") + private Integer type; + + /** + * 验证码 + */ + private String code; +} diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsMockReq.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsMockReq.java new file mode 100644 index 00000000..9fce66ef --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsMockReq.java @@ -0,0 +1,14 @@ +package cn.axzo.msg.center.api.request; + +import lombok.Data; + +/** + * 类描述: mock + * + * @author zhangtianyu + * @date 2022/2/17 5:12 PM + **/ +@Data +public class MnsMockReq { + private boolean notMock = true; +} diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsSendCodeV2Req.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsSendCodeV2Req.java new file mode 100644 index 00000000..7abcef89 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/request/MnsSendCodeV2Req.java @@ -0,0 +1,46 @@ +package cn.axzo.msg.center.api.request; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author zhangPeng + * @description + * @date 2021/8/18 15:55 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MnsSendCodeV2Req extends MnsMockReq { + + /** 手机号 */ + @NotBlank(message = "手机号不能为空") + private String phone; + + /** + * 验证码类型 + * 1: 平台登录 + * 2:企业登录 + * 3:项目登录 + * 4:从业人员登录 + * 5:产业工人登录 + * 6:手机号验证 + * 7:修改手机号验证 + * 8:银行卡验证 + * 9:boss看板发送验证码 + * 10:监管机构 + * 11: 访客 + * 12:监管大屏 + * 13:OMS-修改密码 + * 14: 招工找活H5登录注册 + * 14: H5登录注册 + * 15: cms登录 + * 16: 劳务招标平台 + * 17: CRM系统 + */ + @NotNull(message = "验证码类型不能为空") + private Integer type; + +} diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsCodeStatusRes.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsCodeStatusRes.java new file mode 100644 index 00000000..76b6e5c7 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsCodeStatusRes.java @@ -0,0 +1,20 @@ +package cn.axzo.msg.center.api.response; + +import lombok.Data; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 16:55 + */ +@Data +public class MnsCodeStatusRes { + + /** + * 状态码: + * 1:可用 + * 2:不可用 + */ + private Integer status; + +} diff --git a/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsSendCodeRes.java b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsSendCodeRes.java new file mode 100644 index 00000000..fd49c2d1 --- /dev/null +++ b/msg-center-api/src/main/java/cn/axzo/msg/center/api/response/MnsSendCodeRes.java @@ -0,0 +1,18 @@ +package cn.axzo.msg.center.api.response; + +import lombok.Data; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 11:36 + */ +@Data +public class MnsSendCodeRes { + + /** + * 发送的验证码 - 测试环境中使用 - 开发中不会返回 + */ + private Integer code; + +} diff --git a/msg-center-common/pom.xml b/msg-center-common/pom.xml index fa4b8307..11a58082 100644 --- a/msg-center-common/pom.xml +++ b/msg-center-common/pom.xml @@ -49,6 +49,10 @@ com.baomidou mybatis-plus-boot-starter + + org.springframework.boot + spring-boot-starter-data-redis + \ No newline at end of file diff --git a/msg-center-common/src/main/java/cn/axzo/msg/center/common/consts/RedisNameConstants.java b/msg-center-common/src/main/java/cn/axzo/msg/center/common/consts/RedisNameConstants.java new file mode 100644 index 00000000..48c7ab50 --- /dev/null +++ b/msg-center-common/src/main/java/cn/axzo/msg/center/common/consts/RedisNameConstants.java @@ -0,0 +1,33 @@ +package cn.axzo.msg.center.common.consts; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 15:17 + */ +public interface RedisNameConstants { + + String UNDERLINE = "_"; + String STAR = "*"; + String PERCENT = "%"; + String COLON = ":"; + int EXPIRE_ONE_DAY = 86400; + int EXPIRE_ONE_HOUR = 3600; + String BASIC = "basic"; + String AUTH = "auth"; + String CM_IDENTITY = "cm_identity:"; + String SMS_CODE = "smsCode:"; + String ENT_USER_PERMISSION = "entUserPermission:"; + String PROJ_USER_PERMISSION = "projUserPermission:"; + String PROFESSION_CODE = "profession:AllCode"; + String PROFESSION_HOT_CODE = "profession:HotCode"; + String REPEAT_SUBMISSION = "repeat:submission:"; + String PUSH = "push"; + // im 相关 + final String CM_LEADER = "im:cm_leader"; + final String CM_WORKER = "im:cm_worker"; + final String CMP = "im:cmp"; + // cms、cmp视角相关 + String CMS_PERSPECTIVE = "perspective:"; + +} diff --git a/msg-center-common/src/main/java/cn/axzo/msg/center/common/enums/MnsTemplateEnum.java b/msg-center-common/src/main/java/cn/axzo/msg/center/common/enums/MnsTemplateEnum.java new file mode 100644 index 00000000..f0359bf2 --- /dev/null +++ b/msg-center-common/src/main/java/cn/axzo/msg/center/common/enums/MnsTemplateEnum.java @@ -0,0 +1,28 @@ +package cn.axzo.msg.center.common.enums; + +/** + * @author: zhangran + * @date: 20210803 15:16 + * @description: + **/ +public enum MnsTemplateEnum { + + LOGIN("pudge", "pudge_100000031", "登录短信"), + + JOIN_THE_DEPARTMENT("pudge", "pudge_100000030", "监理、甲方添加成功"), + + ; + + + public final String appCode; + + public final String templateNo; + + public final String desc; + + MnsTemplateEnum(String appCode, String templateNo, String desc) { + this.appCode = appCode; + this.templateNo = templateNo; + this.desc = desc; + } +} diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/AxzoJedisManager.java b/msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/AxzoJedisManager.java similarity index 99% rename from inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/AxzoJedisManager.java rename to msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/AxzoJedisManager.java index 37253634..6c30f995 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/AxzoJedisManager.java +++ b/msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/AxzoJedisManager.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.inside.notices.redis; +package cn.axzo.msg.center.common.redis; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/IAxzoJedisManager.java b/msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/IAxzoJedisManager.java similarity index 97% rename from inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/IAxzoJedisManager.java rename to msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/IAxzoJedisManager.java index ee165bd0..13f5e459 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/IAxzoJedisManager.java +++ b/msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/IAxzoJedisManager.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.inside.notices.redis; +package cn.axzo.msg.center.common.redis; import java.util.List; import java.util.Map; diff --git a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/INullValueHandler.java b/msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/INullValueHandler.java similarity index 72% rename from inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/INullValueHandler.java rename to msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/INullValueHandler.java index 3fabd1de..1784995e 100644 --- a/inside-notices/src/main/java/cn/axzo/msg/center/inside/notices/redis/INullValueHandler.java +++ b/msg-center-common/src/main/java/cn/axzo/msg/center/common/redis/INullValueHandler.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.inside.notices.redis; +package cn.axzo.msg.center.common.redis; /** * @author Smile diff --git a/msg-center-dal/pom.xml b/msg-center-dal/pom.xml index eac60ae3..4766cae1 100644 --- a/msg-center-dal/pom.xml +++ b/msg-center-dal/pom.xml @@ -2,12 +2,12 @@ - + 4.0.0 cn.axzo.msg.center @@ -58,6 +58,11 @@ msg-center-domain 1.0.0-SNAPSHOT + + cn.axzo.msg.notices.common + msg-notices-common + 1.0.0-SNAPSHOT + \ No newline at end of file diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageModuleDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageModuleDao.java index 69f13e53..182efb18 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageModuleDao.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageModuleDao.java @@ -1,10 +1,10 @@ package cn.axzo.msg.center.dal; -import cn.axzo.msg.center.api.enums.ReceiveTypeEnum; import cn.axzo.msg.center.dal.mapper.MessageModuleMapper; import cn.axzo.msg.center.domain.dto.MsgModuleDTO; import cn.axzo.msg.center.domain.dto.SyncModuleDataDTO; import cn.axzo.msg.center.domain.entity.MessageModule; +import cn.axzo.msg.center.domain.enums.InsideReceiveTypeEnum; import cn.axzo.msg.center.domain.persistence.BaseEntity; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -24,7 +24,7 @@ import java.util.Set; public class MessageModuleDao extends ServiceImpl{ - public List listMoudleByUserType(ReceiveTypeEnum receiveTypeEnum) { + public List listMoudleByUserType(InsideReceiveTypeEnum receiveTypeEnum) { return this.lambdaQuery().eq(MessageModule::getOwnedType,receiveTypeEnum) .eq(BaseEntity::getIsDelete,0).list(); } diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java index 887fabdd..be68e0db 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/MessageRecordDao.java @@ -1,19 +1,18 @@ package cn.axzo.msg.center.dal; - import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; -import cn.axzo.msg.center.api.enums.MsgStateEnum; -import cn.axzo.msg.center.api.enums.MsgTypeEnum; -import cn.axzo.msg.center.api.enums.ReceiveTypeEnum; -import cn.axzo.msg.center.api.request.CmsReadMsgReq; import cn.axzo.msg.center.dal.mapper.MessageRecordMapper; import cn.axzo.msg.center.domain.dto.CmsMsgQueryReqDTO; import cn.axzo.msg.center.domain.dto.MessageNewResDTO; import cn.axzo.msg.center.domain.dto.MsgStatisticsDTO; import cn.axzo.msg.center.domain.entity.MessageRecord; +import cn.axzo.msg.center.domain.enums.InsideMsgStateEnum; +import cn.axzo.msg.center.domain.enums.InsideMsgTypeEnum; +import cn.axzo.msg.center.domain.enums.InsideReceiveTypeEnum; import cn.axzo.msg.center.domain.enums.ModuleBizTypeEnum; import cn.axzo.msg.center.domain.persistence.BaseEntity; +import cn.axzo.msg.center.domain.request.InsideCmsReadMsgReq; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; @@ -52,16 +51,16 @@ public class MessageRecordDao extends * @param personId message_record 表中的 person_id * @param identityId */ - public void readMsg(CmsReadMsgReq req, + public void readMsg(InsideCmsReadMsgReq req, Long personId, Long identityId) { - lambdaUpdate().set(MessageRecord::getState, MsgStateEnum.HAVE_READ) + lambdaUpdate().set(MessageRecord::getState, InsideMsgStateEnum.HAVE_READ) .and(i -> i.and( a -> a.eq(MessageRecord::getPersonId, personId).eq(MessageRecord::getReceiveType, - ReceiveTypeEnum.NOT_IDENTITY)).or() + InsideReceiveTypeEnum.NOT_IDENTITY)).or() .eq(MessageRecord::getToId, identityId)) .eq(MessageRecord::getIsDelete, 0L) .eq(req.getMsgId() != -1L, MessageRecord::getId, req.getMsgId()) - .eq(MessageRecord::getType, MsgTypeEnum.GENERAL_MESSAGE) + .eq(MessageRecord::getType, InsideMsgTypeEnum.GENERAL_MESSAGE) .update(); } @@ -83,13 +82,13 @@ public class MessageRecordDao extends public List statisticsMsg4Trade(Long personId) { return baseMapper.statisticsMsg(ModuleBizTypeEnum.TRADE.getCode(), personId, null, - ReceiveTypeEnum.NOT_IDENTITY.getCode()); + InsideReceiveTypeEnum.NOT_IDENTITY.getCode()); } public IPage pageMsgInfo4WechatAndTrade(CmsMsgQueryReqDTO req, List moduleIds, Long personId, ArrayList states) { return baseMapper.pageMsgInfo4WechatAndTrade(req, req.toPage(), moduleIds, personId, - ReceiveTypeEnum.NOT_IDENTITY.getCode(), states); + InsideReceiveTypeEnum.NOT_IDENTITY.getCode(), states); } } diff --git a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java index 89947496..3f715bc3 100644 --- a/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java +++ b/msg-center-dal/src/main/java/cn/axzo/msg/center/dal/mapper/MessageRecordMapper.java @@ -1,8 +1,6 @@ package cn.axzo.msg.center.dal.mapper; -import cn.axzo.msg.center.api.request.CmsMsgQueryReq; -import cn.axzo.msg.center.api.request.MessageNewRes; import cn.axzo.msg.center.domain.dto.CmsMsgQueryReqDTO; import cn.axzo.msg.center.domain.dto.MessageNewResDTO; import cn.axzo.msg.center.domain.dto.MsgStatisticsDTO; diff --git a/msg-center-domain/pom.xml b/msg-center-domain/pom.xml index d0cd1885..f27c7a58 100644 --- a/msg-center-domain/pom.xml +++ b/msg-center-domain/pom.xml @@ -18,24 +18,20 @@ com.baomidou mybatis-plus-extension - - cn.axzo.msgcenter - msg-center-api - 1.0.0-SNAPSHOT - - - cn.axzo.msg.notices.common - msg-notices-common - 1.0.0-SNAPSHOT - - + 2.14.2 + + + cn.axzo.trade + trade-data-security-sd-extension + 2.0.0-SNAPSHOT + + + cn.axzo.basics + basics-common + diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSChannelMessageTemplate.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSChannelMessageTemplate.java index a58ca386..35b123cc 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSChannelMessageTemplate.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSChannelMessageTemplate.java @@ -1,7 +1,7 @@ package cn.axzo.msg.center.domain.entity; +import cn.axzo.msg.center.domain.enums.YesNoEnum; import cn.axzo.msg.center.domain.persistence.BaseOwnEntity; -import cn.axzo.msg.center.notices.common.enums.YesNoEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSMessageTemplate.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSMessageTemplate.java index 100d6319..e42ef9bd 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSMessageTemplate.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MNSMessageTemplate.java @@ -1,7 +1,7 @@ package cn.axzo.msg.center.domain.entity; +import cn.axzo.msg.center.domain.enums.YesNoEnum; import cn.axzo.msg.center.domain.persistence.BaseOwnEntity; -import cn.axzo.msg.center.notices.common.enums.YesNoEnum; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageModule.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageModule.java index 4808dacc..d2596e37 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageModule.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageModule.java @@ -1,7 +1,7 @@ package cn.axzo.msg.center.domain.entity; -import cn.axzo.msg.center.api.enums.ReceiveTypeEnum; +import cn.axzo.msg.center.domain.enums.InsideReceiveTypeEnum; import cn.axzo.msg.center.domain.enums.ModuleBizTypeEnum; import cn.axzo.msg.center.domain.persistence.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; @@ -34,7 +34,7 @@ public class MessageModule extends BaseEntity { /** * 所属角色:cm_leader、cm_worker、cmp */ - private ReceiveTypeEnum ownedType; + private InsideReceiveTypeEnum ownedType; /** * 业务分类 1 施工, 2 交易 @@ -42,7 +42,7 @@ public class MessageModule extends BaseEntity { private ModuleBizTypeEnum bizType; public void setOwnedType(Integer ownedType) { - this.ownedType = ReceiveTypeEnum.valueOf(ownedType); + this.ownedType = InsideReceiveTypeEnum.valueOf(ownedType); } public void setBizType(Integer bizType) { diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageRecord.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageRecord.java index d47d2363..9b975604 100644 --- a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageRecord.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/entity/MessageRecord.java @@ -1,9 +1,10 @@ package cn.axzo.msg.center.domain.entity; -import cn.axzo.msg.center.api.enums.MsgRecordTerminalTypeEnum; -import cn.axzo.msg.center.api.enums.MsgStateEnum; -import cn.axzo.msg.center.api.enums.MsgTypeEnum; -import cn.axzo.msg.center.api.enums.ReceiveTypeEnum; + +import cn.axzo.msg.center.domain.enums.InsideMsgRecordTerminalTypeEnum; +import cn.axzo.msg.center.domain.enums.InsideMsgStateEnum; +import cn.axzo.msg.center.domain.enums.InsideMsgTypeEnum; +import cn.axzo.msg.center.domain.enums.InsideReceiveTypeEnum; import cn.axzo.msg.center.domain.persistence.BaseEntity; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -33,7 +34,7 @@ public class MessageRecord extends BaseEntity { /** * 消息类型:1普通,2待办 */ - private MsgTypeEnum type; + private InsideMsgTypeEnum type; /** * 模板与模块关系id */ @@ -53,11 +54,11 @@ public class MessageRecord extends BaseEntity { /** * 接收者类型:1cm_leader,2cm_worker,3cmp_user,4not_identity */ - private ReceiveTypeEnum receiveType; + private InsideReceiveTypeEnum receiveType; /** * 消息所属标识类型 1:项目 2:企业 */ - private MsgRecordTerminalTypeEnum terminalType; + private InsideMsgRecordTerminalTypeEnum terminalType; /** * 消息所属标识Id 用于跳转 */ @@ -69,7 +70,7 @@ public class MessageRecord extends BaseEntity { /** * 消息状态:1未发送,2已发送,3已接收,4已读,5已完成 */ - private MsgStateEnum state; + private InsideMsgStateEnum state; /** * 关联业务主键 */ diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/EnumBase.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/EnumBase.java similarity index 85% rename from msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/EnumBase.java rename to msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/EnumBase.java index 19e5ab75..c6f1fc3d 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/EnumBase.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/EnumBase.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.notices.common.enums; +package cn.axzo.msg.center.domain.enums; /** * 枚举抽象类 diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideBizTypeEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideBizTypeEnum.java new file mode 100644 index 00000000..41b4e974 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideBizTypeEnum.java @@ -0,0 +1,22 @@ +package cn.axzo.msg.center.domain.enums; + +import lombok.Getter; + +/** + * TODO + * + * @author wangli + * @date 2023/5/6 19:11 + */ +@Getter +public enum InsideBizTypeEnum { + CONSTRUCTION(1, "施工业务"), + TRADE(2, "交易业务"); + public final int value; + public final String desc; + + InsideBizTypeEnum(int value, String desc) { + this.value = value; + this.desc = desc; + } +} diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgRecordTerminalTypeEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgRecordTerminalTypeEnum.java new file mode 100644 index 00000000..e7e47a80 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgRecordTerminalTypeEnum.java @@ -0,0 +1,36 @@ +package cn.axzo.msg.center.domain.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.Getter; + +import java.util.Arrays; + +@Getter +public enum InsideMsgRecordTerminalTypeEnum { + ENT(2, "企业"), + PROJECT(1, "项目"), + UNKNOWN(0, "未知"), + ; + + @EnumValue + private final Integer code; + private final String message; + + InsideMsgRecordTerminalTypeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public String getMessage() { + return this.message; + } + + public static InsideMsgRecordTerminalTypeEnum getValue(Integer code) { + return Arrays.stream(values()).filter(it -> it.code.equals(code)).findFirst() + .orElse(null); + } +} diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgStateEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgStateEnum.java new file mode 100644 index 00000000..799f0403 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgStateEnum.java @@ -0,0 +1,41 @@ +package cn.axzo.msg.center.domain.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.Getter; + +import java.util.Arrays; + +/** + * @author: wangli + * @date: 2022/3/21 15:40 + */ +@Getter +public enum InsideMsgStateEnum { + + UNSENT(1, "未发送"), + HAS_BEEN_SENT(2, "已发送"), + RECEIVED(3, "已接收"), + HAVE_READ(4, "已读"), + COMPLETE(5, "已完成"); + + @EnumValue + private final Integer code; + private final String message; + + InsideMsgStateEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public String getMessage() { + return this.message; + } + + public static InsideMsgStateEnum getByCode(Integer code) { + return Arrays.stream(values()).filter(it -> it.code.equals(code)).findFirst().orElse(null); + } +} diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgTypeEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgTypeEnum.java new file mode 100644 index 00000000..e14e631c --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideMsgTypeEnum.java @@ -0,0 +1,31 @@ +package cn.axzo.msg.center.domain.enums; + +import com.baomidou.mybatisplus.annotation.EnumValue; +import lombok.Getter; + +/** + * @author: wangli + * @date: 2022/3/21 15:47 + */ +@Getter +public enum InsideMsgTypeEnum { + GENERAL_MESSAGE(1, "普通消息"), + PENDING_MESSAGE(2, "待办消息"); + + @EnumValue + private final Integer code; + private final String message; + + InsideMsgTypeEnum(Integer code, String message) { + this.code = code; + this.message = message; + } + + public Integer getCode() { + return this.code; + } + + public String getMessage() { + return this.message; + } +} diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideSmsCodeEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideSmsCodeEnum.java new file mode 100644 index 00000000..2512a48a --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/InsideSmsCodeEnum.java @@ -0,0 +1,32 @@ +package cn.axzo.msg.center.domain.enums; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 17:07 + */ +public enum InsideSmsCodeEnum { + PLATFORM_TYPE(1, " 平台登录"), + ENTERPRISE_TYPE(2, " 企业登录"), + PROJECT_TYPE(3, " 项目登录"), + PRACTITIONER_TYPE(4, " 从业人员登录"), + PERSONNEL_TYPE(5, " 产业工人登录"), + PHONEME_VERIFICATION_TYPE(6, " 手机号验证"), + MODIFY_PHONEMES_TYPE(7, " 修改手机号验证"), + BACK_CARD_VERIFICATION_TYPE(8, " 银行卡验证"), + ENT_PAY_TYPE(9, " boss看板发送验证码"), + REGULATORY_AUTHORITY(10, " 监管机构"), + VISITOR(11, " 访客"), + REGULATORY_AUTHORITY_SCREEN(12, " 监管机构大屏"), + OMS_UPDATE_PWD_TYPE(13, " OMS-修改密码"), + RECRUIT_H5_TYPE(14, " 招工找活h5平台"), + ; + + public final int value; + public final String desc; + + InsideSmsCodeEnum(int value, String desc) { + this.value = value; + this.desc = desc; + } +} diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/MnsTemplateEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/MnsTemplateEnum.java new file mode 100644 index 00000000..92f7ab81 --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/MnsTemplateEnum.java @@ -0,0 +1,28 @@ +package cn.axzo.msg.center.domain.enums; + +/** + * @author: zhangran + * @date: 20210803 15:16 + * @description: + **/ +public enum MnsTemplateEnum { + + LOGIN("pudge", "pudge_100000031", "登录短信"), + + JOIN_THE_DEPARTMENT("pudge", "pudge_100000030", "监理、甲方添加成功"), + + ; + + + public final String appCode; + + public final String templateNo; + + public final String desc; + + MnsTemplateEnum(String appCode, String templateNo, String desc) { + this.appCode = appCode; + this.templateNo = templateNo; + this.desc = desc; + } +} diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/YesNoEnum.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/YesNoEnum.java similarity index 88% rename from msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/YesNoEnum.java rename to msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/YesNoEnum.java index 13653b26..aabf4bbf 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/YesNoEnum.java +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/enums/YesNoEnum.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.notices.common.enums; +package cn.axzo.msg.center.domain.enums; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/request/InsideCmsReadMsgReq.java b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/request/InsideCmsReadMsgReq.java new file mode 100644 index 00000000..2278f39a --- /dev/null +++ b/msg-center-domain/src/main/java/cn/axzo/msg/center/domain/request/InsideCmsReadMsgReq.java @@ -0,0 +1,28 @@ +package cn.axzo.msg.center.domain.request; + +import cn.axzo.msg.center.domain.enums.InsideBizTypeEnum; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * @author : liuchuntao + * @date : 2022/3/21 16:01 + * @description : 读取消息请求 + */ +@Data +public class InsideCmsReadMsgReq { + + + /** + * 传-1 表示读取所有 其他表示单条读取 + */ + @NotNull(message = "消息Id不能为空") + private Long msgId; + + /** + * 业务类型,程序逻辑使用,前端不用传递 + */ + private transient InsideBizTypeEnum bizTypeEnum = InsideBizTypeEnum.CONSTRUCTION; + +} diff --git a/msg-center-webapi/pom.xml b/msg-center-webapi/pom.xml index 17f2f9db..f700f749 100644 --- a/msg-center-webapi/pom.xml +++ b/msg-center-webapi/pom.xml @@ -35,10 +35,22 @@ cn.axzo.msgcenter inside-notices + 1.0.0-SNAPSHOT cn.axzo.msg.notices.service.api msg-notices-service-api + 1.0.0-SNAPSHOT + + + cn.axzo.msgcenter + msg-center-api + 1.0.0-SNAPSHOT + + + cn.axzo.msg.center.domain + msg-center-domain + 1.0.0-SNAPSHOT \ No newline at end of file diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/BatchSendTypeEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/BatchSendTypeEnum.java index 9d81e055..3e051c21 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/BatchSendTypeEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/BatchSendTypeEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ChannelHandlerEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ChannelHandlerEnum.java index 9eb5fb15..b4084933 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ChannelHandlerEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ChannelHandlerEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/IsDeletedEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/IsDeletedEnum.java index 1577a32f..9c8e20cb 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/IsDeletedEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/IsDeletedEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageChannelEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageChannelEnum.java index 2046a67a..e18c6360 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageChannelEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageChannelEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageSendTypeEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageSendTypeEnum.java index c3caa217..4165e44a 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageSendTypeEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageSendTypeEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageStatusEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageStatusEnum.java index 2b2f17d2..a0b3640a 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageStatusEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageStatusEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageTemplateTypeEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageTemplateTypeEnum.java index 44c3cd2c..003205b0 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageTemplateTypeEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/MessageTemplateTypeEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ReturnCodeEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ReturnCodeEnum.java index 1f98ba33..1c6c65cf 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ReturnCodeEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/ReturnCodeEnum.java @@ -1,5 +1,6 @@ package cn.axzo.msg.center.notices.common.enums; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/SendDetailsStatusEnum.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/SendDetailsStatusEnum.java index a71d5c86..51a75fd0 100644 --- a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/SendDetailsStatusEnum.java +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/enums/SendDetailsStatusEnum.java @@ -1,6 +1,7 @@ package cn.axzo.msg.center.notices.common.enums; import cn.axzo.msg.center.notices.common.exception.BizException; +import cn.azxo.framework.common.model.EnumBase; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/properties/SmsProperties.java b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/properties/SmsProperties.java new file mode 100644 index 00000000..31071f13 --- /dev/null +++ b/msg-notices/msg-notices-common/src/main/java/cn/axzo/msg/center/notices/common/properties/SmsProperties.java @@ -0,0 +1,45 @@ +package cn.axzo.msg.center.notices.common.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 15:32 + */ +@Data +@ConfigurationProperties(prefix = "spring.cloud.alicloud.sms") +@Configuration +public class SmsProperties { + /** + * 区域id + */ + private String regionId; + + /** + * 主账号AccessKey的ID + */ + private String accessKeyId; + + /** + * 主账号AccessSecret + */ + private String accessSecret; + + /** + * 短信签名名称 + */ + private String signName; + + /** + * 短信验证码模板code + */ + private String captchaTemplate; + + /** + * 发薪成功模板code + */ + private String payrollSuccessTemplate; +} diff --git a/msg-notices/msg-notices-service/pom.xml b/msg-notices/msg-notices-service/pom.xml index a6e76294..64236c4f 100644 --- a/msg-notices/msg-notices-service/pom.xml +++ b/msg-notices/msg-notices-service/pom.xml @@ -49,6 +49,20 @@ msg-center-dal 1.0.0-SNAPSHOT + + cn.axzo.msgcenter + msg-center-common + + + cn.axzo.msg.notices.http.api + msg-notices-http-api + 1.0.0-SNAPSHOT + + + cn.axzo.msgcenter + msg-center-api + 1.0.0-SNAPSHOT + \ No newline at end of file diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/SmsService.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/SmsService.java new file mode 100644 index 00000000..12335365 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/SmsService.java @@ -0,0 +1,26 @@ +package cn.axzo.msg.center.notices.service; + +import cn.axzo.msg.center.notices.service.request.CodeStatusReq; +import cn.axzo.msg.center.notices.service.request.SendCodeV2Req; +import cn.axzo.msg.center.notices.service.response.CodeStatusRes; +import cn.axzo.msg.center.notices.service.response.SendCodeRes; + +public interface SmsService { + + /** + * 发送验证码 + * @param req + * @return + */ + SendCodeRes sendPhoneCodeV2(SendCodeV2Req req); + + /** + * 获取验证码状态 + * @param req + * @return + */ + CodeStatusRes getPhoneCodeStatus(CodeStatusReq req); + + + +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/gateway/SmsGateway.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/gateway/SmsGateway.java new file mode 100644 index 00000000..2a5aab14 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/gateway/SmsGateway.java @@ -0,0 +1,13 @@ +package cn.axzo.msg.center.notices.service.gateway; + +/** + * @author cn + * @version 1.0 + * @description + * @date 2022/6/10 18:28 + */ +public interface SmsGateway { + + Integer getSmsCode(String phone, String smsCodeByTerminal); + +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MNSNoticesApiImpl.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MNSNoticesApiImpl.java new file mode 100644 index 00000000..2a732f2d --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MNSNoticesApiImpl.java @@ -0,0 +1,60 @@ +package cn.axzo.msg.center.notices.service.impl; + +import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.core.web.Result; +import cn.axzo.core.web.Results; +import cn.axzo.msg.center.api.MNSNoticesApi; +import cn.axzo.msg.center.api.request.MnsCodeStatusReq; +import cn.axzo.msg.center.api.request.MnsSendCodeV2Req; +import cn.axzo.msg.center.api.request.SendMessageRequestDto; +import cn.axzo.msg.center.api.response.MnsCodeStatusRes; +import cn.axzo.msg.center.api.response.MnsSendCodeRes; +import cn.axzo.msg.center.notices.service.SmsService; +import cn.axzo.msg.center.notices.service.request.CodeStatusReq; +import cn.axzo.msg.center.notices.service.request.SendCodeV2Req; +import cn.axzo.msg.center.notices.service.response.SendCodeRes; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.regex.Pattern; + +@Service +@Slf4j +public class MNSNoticesApiImpl implements MNSNoticesApi { + + @Resource + private SmsService smsService; + + /** + * 手机正则 + */ + private Pattern phonePattern = Pattern.compile("^[1]\\d{10}$"); + + @Override + public Result sendMessage(SendMessageRequestDto request) { + return null; + } + + @Override + public Result sendCodeV2(MnsSendCodeV2Req req) { + if (!phonePattern.matcher(req.getPhone()).matches()) { + throw new ServiceException("手机号格式不正确"); + } + SendCodeV2Req request=new SendCodeV2Req(); + BeanUtils.copyProperties(req,request); + SendCodeRes temp = smsService.sendPhoneCodeV2(request); + MnsSendCodeRes result=new MnsSendCodeRes(); + BeanUtils.copyProperties(temp,result); + return Results.ok(result); + } + + @Override + public Result getPhoneCodeStatus(MnsCodeStatusReq req) { + CodeStatusReq request=new CodeStatusReq(); + BeanUtils.copyProperties(req,request); + smsService.getPhoneCodeStatus(request); + return Results.ok(); + } +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/MessageCallbackServiceImpl.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MessageCallbackServiceImpl.java similarity index 99% rename from msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/MessageCallbackServiceImpl.java rename to msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MessageCallbackServiceImpl.java index 64f7acc2..df60f3cc 100644 --- a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/MessageCallbackServiceImpl.java +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MessageCallbackServiceImpl.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.notices.service; +package cn.axzo.msg.center.notices.service.impl; import cn.axzo.msg.center.dal.MNSBatchMessageDao; import cn.axzo.msg.center.dal.MNSMessageChannelLogDao; diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/MessageServiceImpl.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MessageServiceImpl.java similarity index 99% rename from msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/MessageServiceImpl.java rename to msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MessageServiceImpl.java index b96198fe..de77e9f7 100644 --- a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/MessageServiceImpl.java +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/MessageServiceImpl.java @@ -1,7 +1,8 @@ -package cn.axzo.msg.center.notices.service; +package cn.axzo.msg.center.notices.service.impl; import cn.axzo.msg.center.dal.MNSMessageAppDao; import cn.axzo.msg.center.domain.entity.*; +import cn.axzo.msg.center.domain.enums.YesNoEnum; import cn.axzo.msg.center.notices.common.annotation.ApiRequestLog; import cn.axzo.msg.center.notices.common.constans.CommonConstants; import cn.axzo.msg.center.notices.common.domain.BatchMessageSendContext; @@ -12,8 +13,8 @@ import cn.axzo.msg.center.notices.common.utils.DateUtils; import cn.axzo.msg.center.notices.integration.client.DingDingClient; import cn.axzo.msg.center.notices.manager.api.*; import cn.axzo.msg.center.notices.manager.api.dto.request.MessageSendRequestDto; -import cn.axzo.msg.center.notices.manager.api.dto.request.SendBatchMessageRequestDto; import cn.axzo.msg.center.notices.manager.api.dto.request.MnsRequestDto; +import cn.axzo.msg.center.notices.manager.api.dto.request.SendBatchMessageRequestDto; import cn.axzo.msg.center.notices.manager.api.dto.request.SmsContentDto; import cn.axzo.msg.center.notices.manager.api.dto.response.SendSmsCommonResponseDto; import cn.axzo.msg.center.notices.manager.api.dto.response.TemplateParamDto; diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/PlatServiceImpl.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/PlatServiceImpl.java similarity index 99% rename from msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/PlatServiceImpl.java rename to msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/PlatServiceImpl.java index 0ae2b8e9..a0d92bad 100644 --- a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/PlatServiceImpl.java +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/PlatServiceImpl.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.notices.service; +package cn.axzo.msg.center.notices.service.impl; import cn.axzo.msg.center.dal.mapper.MNSChannelMessageTemplateMapper; import cn.axzo.msg.center.dal.mapper.MNSMessageAppMapper; diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/SmsServiceImpl.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/SmsServiceImpl.java new file mode 100644 index 00000000..be7e6134 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/SmsServiceImpl.java @@ -0,0 +1,94 @@ +package cn.axzo.msg.center.notices.service.impl; + +import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.basics.common.util.AssertUtil; +import cn.axzo.framework.auth.domain.TerminalInfo; +import cn.axzo.msg.center.domain.enums.InsideSmsCodeEnum; +import cn.axzo.msg.center.notices.service.SmsService; +import cn.axzo.msg.center.notices.service.manager.SmsManager; +import cn.axzo.msg.center.notices.service.request.CodeStatusReq; +import cn.axzo.msg.center.notices.service.request.SendCodeV2Req; +import cn.axzo.msg.center.notices.service.response.CodeStatusRes; +import cn.axzo.msg.center.notices.service.response.SendCodeRes; +import cn.hutool.core.util.RandomUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Objects; + +@Slf4j +@Service +public class SmsServiceImpl implements SmsService { + + @Value("${phone.whites}") + private List phoneWrites; + @Value("${phone.returnCode}") + private Boolean returnCode; + @Resource + private SmsManager smsManager; + @Override + public SendCodeRes sendPhoneCodeV2(SendCodeV2Req req) { + if (req.getType() == null) { + AssertUtil.fail("未找到发短信的类型"); + } + log.info("发送验证码: req = {}", req); + String terminalType = ""; + if (InsideSmsCodeEnum.MODIFY_PHONEMES_TYPE.value == req.getType()) { + terminalType = String.valueOf(InsideSmsCodeEnum.MODIFY_PHONEMES_TYPE.value); + } else if (Objects.equals(InsideSmsCodeEnum.BACK_CARD_VERIFICATION_TYPE.value, req.getType())) { + terminalType = req.getType().toString(); + } else { + TerminalInfo terminalInfo = new TerminalInfo(req.getType().toString()); + terminalType = terminalInfo.NT(); + } + Long codeSecond = smsManager.getSmsCodeSsl(req.getPhone(), terminalType); + if (codeSecond != 0L && req.isNotMock()) { + throw new ServiceException("发送频繁, 请" + codeSecond + "秒后再试"); + } + log.info("发送验证码header terminal = {}", terminalType); + SendCodeRes result = new SendCodeRes(); + // 生成验证码 + Integer code = RandomUtil.randomInt(100000, 999999); + // 手机号再白名单中存在 则不发送验证码 + if (phoneWrites.contains(req.getPhone())) { + //白名单返回个666 + result.setCode(666666); + return result; + } +// // 验证boss看板用户是否存在 +// if (req.getType() == 9) { +// verifyBossUser(req.getPhone()); +// } + // 发送验证码 + code = smsManager.sendSmsCode(req.getPhone(), terminalType + "", code); + if (returnCode) { + result.setCode(code); + } + return result; + } + + + @Override + public CodeStatusRes getPhoneCodeStatus(CodeStatusReq req) { + CodeStatusRes res = new CodeStatusRes(); + // 手机号再白名单中存在 则不验证 + if (phoneWrites.contains(req.getPhoneNumber())) { + return res; + } + Integer code = smsManager.getSmsCode(req.getPhoneNumber(), String.valueOf(req.getType())); + Long second = smsManager.getSmsCodeSsl(req.getPhoneNumber(), String.valueOf(req.getType())); + // 判断验证码 + if (!StringUtils.isEmpty(req.getCode())) { + if (!(code + "").equals(req.getCode())) { + throw new ServiceException("验证码不正确"); + } + } else if (code != null && second != 0L) { + throw new ServiceException("发送频繁, 请" + second + "秒后再试"); + } + return res; + } +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/TaskServiceImpl.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/TaskServiceImpl.java similarity index 99% rename from msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/TaskServiceImpl.java rename to msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/TaskServiceImpl.java index 4a5e78f0..75e47658 100644 --- a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/TaskServiceImpl.java +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/impl/TaskServiceImpl.java @@ -1,4 +1,4 @@ -package cn.axzo.msg.center.notices.service; +package cn.axzo.msg.center.notices.service.impl; import cn.axzo.msg.center.dal.MNSChannelMessageTemplateDao; import cn.axzo.msg.center.domain.entity.*; diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/BaseManager.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/BaseManager.java new file mode 100644 index 00000000..01450148 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/BaseManager.java @@ -0,0 +1,9 @@ +package cn.axzo.msg.center.notices.service.manager; + +/** + * 通用业务逻辑层, 低于 service 高于 dao + * @author Smile + * @date 2019/4/30 15:38 + */ +public abstract class BaseManager { +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/SmsManager.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/SmsManager.java new file mode 100644 index 00000000..8d12050f --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/manager/SmsManager.java @@ -0,0 +1,214 @@ +package cn.axzo.msg.center.notices.service.manager; + + +import cn.axzo.basics.common.constant.ConstStringPool; +import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.core.constant.RedisNameConstants; +import cn.axzo.msg.center.common.redis.IAxzoJedisManager; +import cn.axzo.msg.center.domain.enums.MnsTemplateEnum; +import cn.axzo.msg.center.domain.enums.InsideSmsCodeEnum; +import cn.axzo.msg.center.notices.common.properties.SmsProperties; +import cn.axzo.msg.center.notices.http.api.api.MessageNotifyApi; +import cn.axzo.msg.center.notices.http.api.request.SendMobileMessageRequest; +import cn.axzo.msg.center.notices.service.gateway.SmsGateway; +import cn.axzo.msg.center.notices.service.request.CaptchaParam; +import cn.axzo.msg.center.notices.service.response.SmsCodeInfoRes; +import cn.azxo.framework.common.utils.LogUtil; +import cn.azxo.framework.common.utils.LogUtil.ErrorLevel; +import cn.azxo.framework.common.utils.LogUtil.ErrorType; +import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.aliyuncs.CommonRequest; +import com.aliyuncs.CommonResponse; +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.http.MethodType; +import com.aliyuncs.profile.DefaultProfile; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cloud.context.config.annotation.RefreshScope; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.Duration; +import java.util.*; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 15:15 + */ +@Log4j2 +@Service +@RefreshScope +public class SmsManager extends BaseManager implements SmsGateway { + + @Resource + private IAxzoJedisManager iAxzoJedisManager; + + @Resource + private SmsProperties smsProperties; + @Resource + private MessageNotifyApi messageNotifyApi; + + @Value("${phone.isSendMnsCode}") + private boolean isSendMnsCode; + + private static final HashMap messageErrMsg = new HashMap<>(); + static { + messageErrMsg.put("isv.MOBILE_NUMBER_ILLEGAL", "非法手机号"); + messageErrMsg.put("isv.DOMESTIC_NUMBER_NOT_SUPPORTED", "国际/港澳台不支持发送境内号码"); + } + + public static final Integer SUCCESS = 200; + + /** + * 发送验证码` + * + * @param phoneNumber + * @param code + */ + public int sendSmsCode(String phoneNumber, String type, int code) { + Duration duration = Duration.ofSeconds(60 * 15L); + String key = RedisNameConstants.SMS_CODE.concat(type + ":").concat(phoneNumber); + // 在验证码有效期内(15分钟)重复发送验证码,返回同一验证码 + Integer realCode = iAxzoJedisManager.get(key); + if (realCode == null || realCode == 0) { + realCode = code; + } + if (String.valueOf(realCode).length() != String.valueOf(code).length()) { + realCode = code; + } + iAxzoJedisManager.set(key, realCode, duration.getSeconds()); + + HashMap param = new HashMap<>(); + param.put("code", realCode); + + sendMnsCode(phoneNumber, param, MnsTemplateEnum.LOGIN); + log.info("发送验证码 手机号{} -- 验证码类型 {} -- 验证码 {}", phoneNumber, type, realCode); + return realCode; + } + + /** + * 获取验证码 + * + * @return + */ + public Integer getSmsCode(String phoneNumber, String type) { + Integer code = iAxzoJedisManager.get(RedisNameConstants.SMS_CODE + type + ":" + phoneNumber); + return code; + } + + + /** + * 获取验证码过期时间 + * + * @return + */ + public Long getSmsCodeSsl(String phoneNumber, String type) { + Long ssl = iAxzoJedisManager.ssl(RedisNameConstants.SMS_CODE + type + ":" + phoneNumber); + if (null == ssl || ConstStringPool.PROFILES_EVN.contains(SpringUtil.getActiveProfile())) { + return 0L; + } + return (ssl - (14 * 60L) +30) < 0L ? 0L : ssl - (14 * 60L)+30; + } + + /** + * 获取各类验证码 + * + * @return + */ + public List getAllSmsCode(String phoneNumber) { + List rets = new ArrayList<>(); + InsideSmsCodeEnum[] smsCodeEnums = InsideSmsCodeEnum.values(); + for (InsideSmsCodeEnum smsCodeEnum : smsCodeEnums) { + Integer code = iAxzoJedisManager + .get(RedisNameConstants.SMS_CODE + smsCodeEnum.value + ":" + phoneNumber); + if (Objects.nonNull(code)) { + SmsCodeInfoRes smsCodeInfoRes = new SmsCodeInfoRes(); + smsCodeInfoRes.setCode(code); + smsCodeInfoRes.setType(smsCodeEnum.desc); + rets.add(smsCodeInfoRes); + } + } + return rets; + } + + @Deprecated + public void sendCaptcha(CaptchaParam param) { + log.info("调用发送验证码:{}", param); + JSONObject templateParam = new JSONObject(); + templateParam.put("code", param.getCode()); + sendSms(param.getPhones(), smsProperties.getCaptchaTemplate(), templateParam.toJSONString()); + } + + @Deprecated + public void offlineAutoConfirm(String phoneNumber) { + JSONObject templateParam = new JSONObject(); + sendSms(phoneNumber, "SMS_216279895", templateParam.toJSONString()); + } + + //发送短信 + @Deprecated + private void sendSms(String phones, String templateCode, String templateJson) { + if(phones != ""){ + throw new ServiceException("参数异常"); + } + DefaultProfile profile = DefaultProfile + .getProfile(smsProperties.getRegionId(), smsProperties.getAccessKeyId(), + smsProperties.getAccessSecret()); + IAcsClient client = new DefaultAcsClient(profile); + + CommonRequest request = new CommonRequest(); + request.setSysMethod(MethodType.POST); + request.setSysDomain("dysmsapi.aliyuncs.com"); + request.setSysVersion("2017-05-25"); + request.setSysAction("SendSms"); + request.putQueryParameter("RegionId", smsProperties.getRegionId()); + request.putQueryParameter("PhoneNumbers", phones); + request.putQueryParameter("SignName", smsProperties.getSignName()); + request.putQueryParameter("TemplateCode", templateCode); + request.putQueryParameter("TemplateParam", templateJson); + + String resultJson; + try { + CommonResponse response = client.getCommonResponse(request); + log.info("短信发送结果,httpStatus:{},data:{}", response.getHttpStatus(), response.getData()); + resultJson = response.getData(); + } catch (Exception e) { + LogUtil.error(ErrorLevel.P0, ErrorType.ERROR_THIRD_SERVICE,"短信服务异常, phones={}", phones, e); + throw new ServiceException("短信发送失败"); + } + // "Code":"OK","Message":"OK","RequestId":"2184201F-BFB3-446B-B1F2-C746B7BF0657","BizId":"197703245997295588^0" + JSONObject result = JSON.parseObject(resultJson); + if(!result.getString("Code").equalsIgnoreCase("OK")) { + log.warn("短信发送失败, phones={}, resultJson={}",phones, resultJson); + String message = messageErrMsg.get(result.getString("Code")); + if(message != null && !message.equals("")){ + throw new ServiceException(message); + }else { + throw new ServiceException("短信发送失败"); + } + } + } + + public void sendMnsCode(String phoneNumber, Map param, MnsTemplateEnum mns) { + if (!isSendMnsCode) { + return; + } + SendMobileMessageRequest request = new SendMobileMessageRequest(); + request.setAppCode(mns.appCode); + request.setPhoneNo(phoneNumber); + request.setTemplateNo(mns.templateNo); + request.setParams(param); + request.setRequestNo(UUID.randomUUID().toString()); + cn.azxo.framework.common.model.CommonResponse commonResponse = messageNotifyApi + .sendMobileMessage(request); + if (!commonResponse.getCode().equals(SUCCESS)) { + log.warn("发送验证码失败 request:{},commonResponse:{}", + JSON.toJSONString(request), JSON.toJSONString(commonResponse)); +// throw new ServiceException(commonResponse.getMsg()); + } + } +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CaptchaParam.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CaptchaParam.java new file mode 100644 index 00000000..af73eb2c --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CaptchaParam.java @@ -0,0 +1,21 @@ +package cn.axzo.msg.center.notices.service.request; + +import lombok.Data; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 15:21 + */ +@Data +public class CaptchaParam { + /** + * 手机号:支持对多个手机号码发送短信,手机号码之间以英文逗号(,)分隔。上限为1000个手机号码 + */ + private String phones; + + /** + * 验证码 + */ + private String code; +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CodeStatusReq.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CodeStatusReq.java new file mode 100644 index 00000000..d166bf6e --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/CodeStatusReq.java @@ -0,0 +1,43 @@ +package cn.axzo.msg.center.notices.service.request; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 16:53 + */ +@Data +public class CodeStatusReq { + /** + * 手机号 + */ + @NotBlank(message = "手机号不能为空") + private String phoneNumber; + + /** + * 验证码类型 + * 1: 平台登录 + * 2:企业登录 + * 3:项目登录 + * 4:从业人员登录 + * 5:产业工人登录 + * 6:手机号验证 + * 7:修改手机号验证 + * 8:银行卡验证 + * 9:boss看板发送验证码 + * 10:监管机构 + * 11: 访客 + * 12:监管大屏 + */ + @NotNull(message = "验证码类型不能为空") + private Integer type; + + /** + * 验证码 + */ + private String code; +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/MockReq.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/MockReq.java new file mode 100644 index 00000000..5ed63fe9 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/MockReq.java @@ -0,0 +1,14 @@ +package cn.axzo.msg.center.notices.service.request; + +import lombok.Data; + +/** + * 类描述: mock + * + * @author zhangtianyu + * @date 2022/2/17 5:12 PM + **/ +@Data +public class MockReq { + private boolean notMock = true; +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/SendCodeV2Req.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/SendCodeV2Req.java new file mode 100644 index 00000000..59c9f595 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/request/SendCodeV2Req.java @@ -0,0 +1,46 @@ +package cn.axzo.msg.center.notices.service.request; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author zhangPeng + * @description + * @date 2021/8/18 15:55 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class SendCodeV2Req extends MockReq { + + /** 手机号 */ + @NotBlank(message = "手机号不能为空") + private String phone; + + /** + * 验证码类型 + * 1: 平台登录 + * 2:企业登录 + * 3:项目登录 + * 4:从业人员登录 + * 5:产业工人登录 + * 6:手机号验证 + * 7:修改手机号验证 + * 8:银行卡验证 + * 9:boss看板发送验证码 + * 10:监管机构 + * 11: 访客 + * 12:监管大屏 + * 13:OMS-修改密码 + * 14: 招工找活H5登录注册 + * 14: H5登录注册 + * 15: cms登录 + * 16: 劳务招标平台 + * 17: CRM系统 + */ + @NotNull(message = "验证码类型不能为空") + private Integer type; + +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/CodeStatusRes.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/CodeStatusRes.java new file mode 100644 index 00000000..5a5d7713 --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/CodeStatusRes.java @@ -0,0 +1,20 @@ +package cn.axzo.msg.center.notices.service.response; + +import lombok.Data; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 16:55 + */ +@Data +public class CodeStatusRes { + + /** + * 状态码: + * 1:可用 + * 2:不可用 + */ + private Integer status; + +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SendCodeRes.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SendCodeRes.java new file mode 100644 index 00000000..8652886e --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SendCodeRes.java @@ -0,0 +1,18 @@ +package cn.axzo.msg.center.notices.service.response; + +import lombok.Data; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 11:36 + */ +@Data +public class SendCodeRes { + + /** + * 发送的验证码 - 测试环境中使用 - 开发中不会返回 + */ + private Integer code; + +} diff --git a/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SmsCodeInfoRes.java b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SmsCodeInfoRes.java new file mode 100644 index 00000000..4747270d --- /dev/null +++ b/msg-notices/msg-notices-service/src/main/java/cn/axzo/msg/center/notices/service/response/SmsCodeInfoRes.java @@ -0,0 +1,14 @@ +package cn.axzo.msg.center.notices.service.response; + +import lombok.Data; + +/** + * @author zhangPeng + * @description + * @date 2021/1/26 17:05 + */ +@Data +public class SmsCodeInfoRes { + public int code; + public String type; +} diff --git a/pom.xml b/pom.xml index d7ec1313..246e78c8 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,7 @@ start msg-center-dal msg-center-domain + msg-center-external-model