diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java b/mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java index 3e32546ec..ba29aa16d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java @@ -90,5 +90,12 @@ public class WxMsgModelController extends BaseController { return wxMsgModelService.getModelList(getTenantInfo()); } + @ApiOperation("获取当前租户的短信渠道信息") + @GetMapping("getMessageChannel") + @SystemControllerLog(description = "获取当前租户的短信渠道信息") + public ResultData getMessageChannel() { + logger.debug("[" + getIpAddr() + "] WxMsgModelController::getMessageChannel"); + return wxMsgModelService.getMessageChannel(getTenantInfo()); + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/GetMessageChannelVO.java b/mallinkService/src/main/java/com/iformall/domain/vo/GetMessageChannelVO.java new file mode 100644 index 000000000..a7765a6ad --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/vo/GetMessageChannelVO.java @@ -0,0 +1,10 @@ +package com.iformall.domain.vo; + +import lombok.Data; + +@Data +public class GetMessageChannelVO { + private Integer smsChannel; + private Integer maxSize; + private String suffix; +} diff --git a/mallinkService/src/main/java/com/iformall/service/WxMsgModelService.java b/mallinkService/src/main/java/com/iformall/service/WxMsgModelService.java index 8ea718987..a6b871667 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxMsgModelService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxMsgModelService.java @@ -45,6 +45,10 @@ public interface WxMsgModelService { ResultData getModelList(TenantEntity tenantEntity); - - + /** + * 获取短信渠道信息 + * @param tenantInfo + * @return {@link ResultData} + */ + ResultData getMessageChannel(TenantEntity tenantInfo); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java index 661c8cc4b..e4de73c22 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java @@ -10,6 +10,7 @@ import com.iformall.common.ResultData; import com.iformall.domain.po.WxMsgConfig; import com.iformall.domain.po.WxMsgModel; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.vo.GetMessageChannelVO; import com.iformall.enums.EnumMsgModelStatus; import com.iformall.enums.EnumVerifyCode; import com.iformall.exception.BizMessageException; @@ -17,6 +18,7 @@ import com.iformall.exception.MallinkException; import com.iformall.mapper.WxMsgConfigMapper; import com.iformall.mapper.WxMsgModelMapper; import com.iformall.service.WxMsgModelService; +import com.iformall.sms.EnumSMSChannel; import com.iformall.sms.SMSFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -144,5 +146,20 @@ public class WxMsgModelServiceImpl implements WxMsgModelService { return new ResultData(list); } - + @Override + public ResultData getMessageChannel(TenantEntity tenantInfo) { + WxMsgConfig wxMsgConfig = new WxMsgConfig(); + wxMsgConfig.updateTenantInfo(tenantInfo); + List wxMsgConfigs = wxMsgConfigMapper.findList(wxMsgConfig); + if (wxMsgConfigs.size() == 0) { + return new ResultData(ErrorCode.MSG_SERVER_NOT_FIND.getCode(), "您还未接入短信运营商,请联系平台管理员"); + } + wxMsgConfig = wxMsgConfigs.get(0); + EnumSMSChannel channelEnum = EnumSMSChannel.getEnum(wxMsgConfig.getSmsChannel()); + GetMessageChannelVO vo = new GetMessageChannelVO(); + vo.setSmsChannel(wxMsgConfig.getSmsChannel()); + vo.setSuffix(channelEnum != null ? channelEnum.getSuffix() : ""); + vo.setMaxSize(channelEnum != null ? channelEnum.getPerSize() : 0); + return new ResultData(vo); + } } diff --git a/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java b/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java index b3ff50e13..e12509b0c 100644 --- a/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java +++ b/mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java @@ -6,9 +6,9 @@ package com.iformall.sms; */ public enum EnumSMSChannel { - ALIYUN(11, "ALIYUN",70), - ALIYUN_ZDY(12, "ALIYUN_ZDY(客户的阿里云短信)",0), - WIWIDE(0,"WIWIDE",0); + ALIYUN(11, "ALIYUN",70, "回T退订"), + ALIYUN_ZDY(12, "ALIYUN_ZDY(客户的阿里云短信)",0, ""), + WIWIDE(0,"WIWIDE",0, ""); public static EnumSMSChannel getEnum(Integer code) { for (EnumSMSChannel value : values()) { @@ -22,6 +22,7 @@ public enum EnumSMSChannel { private Integer code; private String message; private Integer perSize;//每条短信最大字数,0:无限制,都按1条算 + private String suffix; EnumSMSChannel(Integer code, String message,Integer perSize) { this.code = code; @@ -29,6 +30,13 @@ public enum EnumSMSChannel { this.perSize = perSize; } + EnumSMSChannel(Integer code, String message,Integer perSize, String suffix) { + this.code = code; + this.message = message; + this.perSize = perSize; + this.suffix = suffix; + } + public Integer getCode() { return code; } @@ -40,4 +48,8 @@ public enum EnumSMSChannel { public Integer getPerSize() { return perSize; } + + public String getSuffix() { + return suffix; + } } diff --git a/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java b/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java index 5983224f7..9e9aec629 100644 --- a/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java +++ b/mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java @@ -127,9 +127,12 @@ public class AliyunSMS implements SMSExcutor { @Override public void checkMsgWordCount(String signature, String content) { - int limitWord = 70; - String msg = "【" + signature + "】" + content + "回T退订"; - if (msg.length() > limitWord) { + StringBuilder sendContent = new StringBuilder("【") + .append(signature) + .append("】") + .append(content) + .append(EnumSMSChannel.ALIYUN.getSuffix()); + if (sendContent.length() > EnumSMSChannel.ALIYUN.getPerSize()) { throw new MallinkException(ErrorCode.MSG_WORD_COUNT_OVERLONG_ERROR.getCode(), ErrorCode.MSG_WORD_COUNT_OVERLONG_ERROR.getMessage()); } }