diff --git a/beacon-api/pom.xml b/beacon-api/pom.xml
index 9b7ce1d..e19203c 100644
--- a/beacon-api/pom.xml
+++ b/beacon-api/pom.xml
@@ -48,11 +48,16 @@
spring-boot-starter-test
+
- javax.validation
- validation-api
- 2.0.1.Final
- compile
+ org.springframework.boot
+ spring-boot-starter-validation
+
+
+
+ com.mashibing
+ beacon-common
+ 1.0-SNAPSHOT
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 4924beb..46a8e9b 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
@@ -2,10 +2,16 @@ package com.mashibing.api.controller;
import com.mashibing.api.pojo.SingleSendRequest;
import com.mashibing.api.service.sendCheck.SendCheckContext;
+import com.mashibing.common.pojo.JsonResult;
+import com.mashibing.common.utils.JsonResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import javax.validation.Valid;
+
/**
* @author heqijun
* @ClassName: SMSController
@@ -22,8 +28,8 @@ public class SMSController {
SendCheckContext sendCheckContext;
@PostMapping("singleSend")
- public String singleSend(@RequestBody SingleSendRequest request) {
+ public JsonResult singleSend(@RequestBody @Validated SingleSendRequest request) {
sendCheckContext.check(request);
- return "接口测试!!!";
+ return JsonResultUtil.ok();
}
}
diff --git a/beacon-common/pom.xml b/beacon-common/pom.xml
new file mode 100644
index 0000000..8676e7a
--- /dev/null
+++ b/beacon-common/pom.xml
@@ -0,0 +1,24 @@
+
+
+ 4.0.0
+
+ com.mashibing
+ beacon-cloud
+ 1.0-SNAPSHOT
+
+
+ beacon-common
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
\ No newline at end of file
diff --git a/beacon-common/src/main/java/com/mashibing/common/annotation/Description.java b/beacon-common/src/main/java/com/mashibing/common/annotation/Description.java
new file mode 100644
index 0000000..87c7975
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/annotation/Description.java
@@ -0,0 +1,20 @@
+package com.mashibing.common.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @author heqijun
+ * @ClassName: Description
+ * @Description: TODO(这里用一句话描述这个类的作用)
+ * @date 2025/6/4 20:42
+ */
+
+
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Description {
+ String value();
+}
\ No newline at end of file
diff --git a/beacon-common/src/main/java/com/mashibing/common/annotation/validParam/NotNull.java b/beacon-common/src/main/java/com/mashibing/common/annotation/validParam/NotNull.java
new file mode 100644
index 0000000..6c88acd
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/annotation/validParam/NotNull.java
@@ -0,0 +1,12 @@
+package com.mashibing.common.annotation.validParam;
+
+/**
+ * @author heqijun
+ * @ClassName: NotNull
+ * @Description: TODO(这里用一句话描述这个类的作用)
+ * @date 2025/6/5 11:46
+ */
+
+
+public @interface NotNull {
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/enums/JsonResultCode.java b/beacon-common/src/main/java/com/mashibing/common/enums/JsonResultCode.java
new file mode 100644
index 0000000..7a8ea98
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/enums/JsonResultCode.java
@@ -0,0 +1,25 @@
+package com.mashibing.common.enums;
+
+import lombok.*;
+
+/**
+ * @author heqijun
+ * @ClassName: JsonResultCodeEnum
+ * @Description: TODO(这里用一句话描述这个类的作用)
+ * @date 2025/6/5 11:57
+ */
+
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+public enum JsonResultCode {
+ //正常
+ OK(200),
+ //参数校验异常
+ PARAM_VALID_EXCEPTION(601),
+ //逻辑异常
+ LOGIC_EXCEPTION(602),
+ ;
+
+ private int code;
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/pojo/JsonResult.java b/beacon-common/src/main/java/com/mashibing/common/pojo/JsonResult.java
new file mode 100644
index 0000000..18edbef
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/pojo/JsonResult.java
@@ -0,0 +1,29 @@
+package com.mashibing.common.pojo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Map;
+
+/**
+ * @author heqijun
+ * @ClassName: JsonResult
+ * @Description: JsonResult通用接口返回值
+ * @date 2025/6/5 11:55
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class JsonResult {
+
+ private int code = 200;
+
+ private String msg;
+
+ private Object body;
+
+ private Map properties;
+
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java b/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java
new file mode 100644
index 0000000..63b2548
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/pojo/StandardSubmit.java
@@ -0,0 +1,67 @@
+package com.mashibing.common.pojo;
+
+import com.mashibing.common.annotation.Description;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author heqijun
+ * @ClassName: StandardSubmit
+ * @Description: 在接口模块-策略模块-短信网关模块需要做校验和封装的POJO类对象
+ * @date 2025/6/4 20:33
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class StandardSubmit {
+
+ @Description("当前短信的唯一标识")
+ private Long sequenceId;
+
+ @Description("客户端ID")
+ private Long clientId;
+
+ @Description("客户端的ip白名单")
+ private String ip;
+
+ @Description("客户业务内的uid")
+ private String uid;
+
+ @Description("目标手机号")
+ private String mobile;
+
+ @Description("短信内容的签名")
+ private String sign;
+
+ @Description("短信内容")
+ private String text;
+
+ @Description("短信的发送时间")
+ private LocalDateTime sendTime;
+
+ @Description("当前短信的费用")
+ private Long fee;
+
+ @Description("目标手机号的运营商")
+ private Integer operatorId;
+
+ @Description("目标手机号的归属地区号 0451 0455")
+ private Integer areaCode;
+
+ @Description("目标手机号的归属地 哈尔滨, 绥化~")
+ private String area;
+
+ @Description("通道下发的源号码 106934985673485645")
+ private String srcNumber;
+
+ @Description("通道的id信息")
+ private Long channelId;
+
+ @Description("短信的发送状态, 0-等待ing,1-成功,2-失败")
+ private int reportState;
+
+}
diff --git a/beacon-common/src/main/java/com/mashibing/common/utils/JsonResultUtil.java b/beacon-common/src/main/java/com/mashibing/common/utils/JsonResultUtil.java
new file mode 100644
index 0000000..833b638
--- /dev/null
+++ b/beacon-common/src/main/java/com/mashibing/common/utils/JsonResultUtil.java
@@ -0,0 +1,47 @@
+package com.mashibing.common.utils;
+
+import com.mashibing.common.enums.JsonResultCode;
+import com.mashibing.common.pojo.JsonResult;
+
+/**
+ * @author heqijun
+ * @ClassName: JsonResultUtil
+ * @Description: JsonResult工具类
+ * @date 2025/6/5 12:19
+ */
+
+public class JsonResultUtil {
+
+ public static JsonResult ok() {
+ JsonResult result = new JsonResult();
+ result.setCode(JsonResultCode.OK.getCode());
+ result.setMsg("OK");
+ return result;
+ }
+
+ public static JsonResult ok(String msg) {
+ JsonResult result = new JsonResult();
+ result.setCode(JsonResultCode.OK.getCode());
+ result.setMsg(msg);
+ return result;
+ }
+
+ public static JsonResult ok(Object body) {
+ JsonResult result = ok();
+ result.setBody(body);
+ return result;
+ }
+
+ public static JsonResult ok(String msg, Object body) {
+ JsonResult result = ok(msg);
+ result.setBody(body);
+ return result;
+ }
+
+ public static JsonResult error(int code, String msg) {
+ JsonResult result = new JsonResult();
+ result.setCode(code);
+ result.setMsg(msg);
+ return result;
+ }
+}
diff --git a/pom.xml b/pom.xml
index 200fe5f..ba078f7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,6 +10,7 @@
pom
beacon-api
+ beacon-common