diff --git a/beacon-api/src/main/java/com/mashibing/api/controller/SmsController.java b/beacon-api/src/main/java/com/mashibing/api/controller/SmsController.java
index 27ad4b5..3d4b28f 100644
--- a/beacon-api/src/main/java/com/mashibing/api/controller/SmsController.java
+++ b/beacon-api/src/main/java/com/mashibing/api/controller/SmsController.java
@@ -23,6 +23,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
/**
* @author zjw
@@ -91,8 +92,9 @@ public class SmsController {
//=========================调用策略模式的校验链=========================================
checkFilterContext.check(submit);
- //========================基于雪花算法生成唯一id,并添加到StandardSubmit对象中=========================================
+ //========================基于雪花算法生成唯一id,并添加到StandardSubmit对象中,并设置发送时间=========================================
submit.setSequenceId(snowFlakeUtil.nextId());
+ submit.setSendTime(LocalDateTime.now());
//=========================发送到MQ,交给策略模块处理=========================================
rabbitTemplate.convertAndSend(RabbitMQConstants.SMS_PRE_SEND,submit,new CorrelationData(submit.getSequenceId().toString()));
diff --git a/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java b/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java
index e81cc70..634bc5f 100644
--- a/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java
+++ b/beacon-common/src/main/java/com/mashibing/common/constant/CacheConstant.java
@@ -33,5 +33,20 @@ public interface CacheConstant {
*/
String DIRTY_WORD = "dirty_word";
+ /**
+ * 黑名单的前缀
+ */
+ String BLACK = "black:";
+
+ /**
+ * 间隔符
+ */
+ String SEPARATE = ":";
+
+ /**
+ * 携号转网
+ */
+ String TRANSFER = "transfer:";
+
}
diff --git a/beacon-common/src/main/java/com/mashibing/common/constant/RabbitMQConstants.java b/beacon-common/src/main/java/com/mashibing/common/constant/RabbitMQConstants.java
index a7494e1..2b77fbc 100644
--- a/beacon-common/src/main/java/com/mashibing/common/constant/RabbitMQConstants.java
+++ b/beacon-common/src/main/java/com/mashibing/common/constant/RabbitMQConstants.java
@@ -17,4 +17,16 @@ public interface RabbitMQConstants {
* 策略模块发送手机号归属地&运营商到后台管理模块的队列名称
*/
String MOBILE_AREA_OPERATOR = "mobile_area_operator_topic";
+
+ /**
+ * 写日志到Elasticsearch的队列
+ */
+ String SMS_WRITE_LOG = "sms_write_log_topic";
+
+ /**
+ * 状态报告推送的队列
+ */
+ String SMS_PUSH_REPORT = "sms_push_report_topic";
+
+
}
diff --git a/beacon-common/src/main/java/com/mashibing/common/constant/SmsConstant.java b/beacon-common/src/main/java/com/mashibing/common/constant/SmsConstant.java
new file mode 100644
index 0000000..28cd5e6
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/constant/SmsConstant.java
@@ -0,0 +1,20 @@
+package com.mashibing.common.constant;
+
+/**
+ * 通用的一些常量
+ * @author zjw
+ * @description
+ */
+public interface SmsConstant {
+
+ /**
+ * 短信发送成功
+ */
+ int REPORT_SUCCESS = 1;
+
+ /**
+ * 短信发送失败
+ */
+ int REPORT_FAIL = 2;
+
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java b/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java
index 31ee049..7110763 100644
--- a/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java
+++ b/beacon-common/src/main/java/com/mashibing/common/enums/ExceptionEnums.java
@@ -18,9 +18,12 @@ public enum ExceptionEnums {
PARAMETER_ERROR(-10,"参数不合法!"),
SNOWFLAKE_OUT_OF_RANGE(-11,"雪花算法的机器id或服务id超出最大范围!"),
SNOWFLAKE_TIME_BACK(-12,"雪花算法的服务器出现时间回拨问题!"),
+ HAVE_DIRTY_WORD(-13,"当前短信内容中包含敏感词信息!"),
+ BLACK_GLOBAL(-14,"当前手机号为平台黑名单!"),
+ BLACK_CLIENT(-15,"当前手机号为客户黑名单!"),
;
- private Integer code;
+ private Integer code;
private String msg;
ExceptionEnums(Integer code, String msg) {
diff --git a/beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java b/beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java
new file mode 100644
index 0000000..87635b7
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/exception/StrategyException.java
@@ -0,0 +1,27 @@
+package com.mashibing.common.exception;
+
+import com.mashibing.common.enums.ExceptionEnums;
+import lombok.Getter;
+
+/**
+ * 策略模块的异常对象
+ * @author zjw
+ * @description
+ */
+@Getter
+public class StrategyException extends RuntimeException {
+
+ private Integer code;
+
+ public StrategyException(String message, Integer code) {
+ super(message);
+ this.code = code;
+ }
+
+
+ public StrategyException(ExceptionEnums enums) {
+ super(enums.getMsg());
+ this.code = enums.getCode();
+ }
+
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/model/StandardReport.java b/beacon-common/src/main/java/com/mashibing/common/model/StandardReport.java
new file mode 100644
index 0000000..cefa39c
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/model/StandardReport.java
@@ -0,0 +1,62 @@
+package com.mashibing.common.model;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 状态报告推送等操作时的类
+ * @author zjw
+ * @description
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class StandardReport implements Serializable {
+
+ /**
+ * 针对当前短信的唯一标识,雪花算法(保留)
+ */
+ private Long sequenceId;
+
+ /**
+ * 客户端ID,基于apikey查询缓存模块得到客户的ID
+ */
+ private Long clientId;
+
+
+ /**
+ * 客户业务内的uid,客户请求传递的
+ */
+ private String uid;
+
+ /**
+ * 目标手机号,客户请求传递的
+ */
+ private String mobile;
+
+ /**
+ * 短信的发送时间,当前系统时间
+ */
+ private LocalDateTime sendTime;
+
+ /**
+ * 短信的发送状态, 0-等待/发送ing,1-成功,2-失败 ,默认情况就是0
+ */
+ private int reportState;
+
+ /**
+ * 短信发送失败的原因是什么,记录在当前属性
+ */
+ private String errorMsg;
+
+ /**
+ * 回调的信息
+ */
+ private Integer isCallback;
+ private String callbackUrl;
+
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/model/StandardSubmit.java b/beacon-common/src/main/java/com/mashibing/common/model/StandardSubmit.java
index bde64c5..1ebb38a 100644
--- a/beacon-common/src/main/java/com/mashibing/common/model/StandardSubmit.java
+++ b/beacon-common/src/main/java/com/mashibing/common/model/StandardSubmit.java
@@ -70,7 +70,7 @@ public class StandardSubmit implements Serializable {
/**
- * 目标手机号的归属地区号 0451 0455 (策略模块)
+ * 目标手机号的归属地区号 0451 0455 (策略模块,三方查询不到,先不管)
*/
private Integer areaCode;
@@ -94,6 +94,11 @@ public class StandardSubmit implements Serializable {
*/
private int reportState;
+ /**
+ * 短信发送失败的原因是什么,记录在当前属性
+ */
+ private String errorMsg;
+
// =============================================================================
/**
* 获取到的客户端真实IP地址
@@ -115,6 +120,10 @@ public class StandardSubmit implements Serializable {
*/
private Long signId;
+ /**
+ * 是否携号转网, isTransfer = true,代表做了携号转网的判断并且做了操作
+ */
+ private Boolean isTransfer = false;
// 后续再做封装~~~~
diff --git a/beacon-strategy/pom.xml b/beacon-strategy/pom.xml
index f6da17d..7fb4b6a 100644
--- a/beacon-strategy/pom.xml
+++ b/beacon-strategy/pom.xml
@@ -50,6 +50,12 @@
ikanalyzer
2012_u6
+
+
+ cn.hutool
+ hutool-dfa
+ 5.8.12
+
diff --git a/beacon-strategy/src/main/java/com/mashibing/strategy/client/BeaconCacheClient.java b/beacon-strategy/src/main/java/com/mashibing/strategy/client/BeaconCacheClient.java
index 7c107c9..9663367 100644
--- a/beacon-strategy/src/main/java/com/mashibing/strategy/client/BeaconCacheClient.java
+++ b/beacon-strategy/src/main/java/com/mashibing/strategy/client/BeaconCacheClient.java
@@ -18,9 +18,15 @@ public interface BeaconCacheClient {
@GetMapping("/cache/hget/{key}/{field}")
String hget(@PathVariable(value = "key")String key, @PathVariable(value = "field")String field);
+ @GetMapping("/cache/hget/{key}/{field}")
+ Integer hgetInteger(@PathVariable(value = "key")String key, @PathVariable(value = "field")String field);
+
@GetMapping(value = "/cache/get/{key}")
String getString(@PathVariable(value = "key") String key);
@PostMapping(value = "/cache/sinterstr/{key}/{sinterKey}")
Set