Sfoglia il codice sorgente

feat:添加短信渠道查询接口

release_toaliyun_real
xmzhao71 2 anni fa
parent
commit
5dcff78f30
6 ha cambiato i file con 62 aggiunte e 9 eliminazioni
  1. +7
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java
  2. +10
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/GetMessageChannelVO.java
  3. +6
    -2
      mallinkService/src/main/java/com/iformall/service/WxMsgModelService.java
  4. +18
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java
  5. +15
    -3
      mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java
  6. +6
    -3
      mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java

+ 7
- 0
mallinkAdmin/src/main/java/com/iformall/controller/msg/WxMsgModelController.java Vedi File

@@ -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());
}

}

+ 10
- 0
mallinkService/src/main/java/com/iformall/domain/vo/GetMessageChannelVO.java Vedi File

@@ -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;
}

+ 6
- 2
mallinkService/src/main/java/com/iformall/service/WxMsgModelService.java Vedi File

@@ -45,6 +45,10 @@ public interface WxMsgModelService {
ResultData getModelList(TenantEntity tenantEntity);




/**
* 获取短信渠道信息
* @param tenantInfo
* @return {@link ResultData}
*/
ResultData getMessageChannel(TenantEntity tenantInfo);
}

+ 18
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxMsgModelServiceImpl.java Vedi File

@@ -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<WxMsgConfig> 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);
}
}

+ 15
- 3
mallinkService/src/main/java/com/iformall/sms/EnumSMSChannel.java Vedi File

@@ -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;
}
}

+ 6
- 3
mallinkService/src/main/java/com/iformall/sms/aliyun/AliyunSMS.java Vedi File

@@ -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());
}
}


Caricamento…
Annulla
Salva