From bdf09d892e3c1cda87e6ad55123a977d246d03ff Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期四, 17 八月 2023 21:11:28 +0800
Subject: [PATCH] 上海市接口-提交指令解析1
---
src/main/java/com/fzzy/order/OrderManager.java | 69 ++++++++
src/main/java/com/fzzy/order/data/OrderResp.java | 31 +++
src/main/java/com/fzzy/order/data/OrderConstant.java | 18 ++
src/main/java/com/fzzy/order/data/OrderData.java | 33 ++++
src/main/java/com/fzzy/order/package-info.java | 4
src/main/java/com/fzzy/push/sh2023/SH2023PushService13.java | 39 ++++
src/main/java/com/fzzy/order/OrderApiService.java | 27 +++
src/main/java/com/fzzy/order/OrderServer.java | 57 +++++++
src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java | 41 ++++
src/main/java/com/fzzy/push/sh2023/SH2023PushService14.java | 39 ++++
src/main/java/com/fzzy/otherview/package-info.java | 4
src/main/java/com/fzzy/order/data/OrderReq.java | 29 +++
src/main/java/com/fzzy/push/sh2023/SH2023PushService12.java | 39 ++++
src/main/java/com/fzzy/order/data/OrderResult.java | 35 ++++
14 files changed, 463 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/fzzy/order/OrderApiService.java b/src/main/java/com/fzzy/order/OrderApiService.java
new file mode 100644
index 0000000..1f66d84
--- /dev/null
+++ b/src/main/java/com/fzzy/order/OrderApiService.java
@@ -0,0 +1,27 @@
+package com.fzzy.order;
+
+import com.fzzy.order.data.OrderData;
+
+/**
+ * 鏍规嵁鍗忚瑙f瀽鎸囦护
+ *
+ * @author czt
+ */
+public interface OrderApiService {
+
+ /**
+ * 鑾峰彇鍗忚缂栫爜
+ *
+ * @return
+ */
+ public String getProtocol();
+
+ /**
+ * 瑙f瀽鎸囦护
+ * @param req
+ * @return
+ * @throws Exception
+ */
+
+ public void execute(OrderData req, String orderType);
+}
diff --git a/src/main/java/com/fzzy/order/OrderManager.java b/src/main/java/com/fzzy/order/OrderManager.java
new file mode 100644
index 0000000..34bb930
--- /dev/null
+++ b/src/main/java/com/fzzy/order/OrderManager.java
@@ -0,0 +1,69 @@
+package com.fzzy.order;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.view.pr.ApiConfsPR;
+import com.fzzy.order.data.OrderData;
+import com.fzzy.order.data.OrderReq;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 涓嬪彂鎸囦护鎺ユ敹鍏ュ彛
+ *
+ * @author czt
+ * @date 2023/8/17
+ */
+@Component(OrderManager.BEAN_ID)
+public class OrderManager implements ApplicationContextAware {
+ public static final String BEAN_ID = "order.orderManager";
+
+ private static Map<String, OrderApiService> serviceMap;
+
+ @Autowired
+ private ApiConfsPR apiConfsPR;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ Map<String, OrderApiService> map = applicationContext.getBeansOfType(OrderApiService.class);
+ serviceMap = new HashMap<>();
+ for (String key : map.keySet()) {
+ serviceMap.put(map.get(key).getProtocol(), map.get(key));
+ }
+ }
+
+
+ /**
+ * 鎸囦护瑙f瀽鍏ュ彛
+ * @param req
+ */
+ @Async
+ public void execute(OrderReq<JSONObject> req){
+
+ //鑾峰彇閰嶇疆淇℃伅
+ List<ApiConfs> apiConfList = apiConfsPR.listAll();
+ if(null == apiConfList || apiConfList.isEmpty()){
+ return;
+ }
+ OrderData data = JSONObject.parseObject(req.getData().toString(), OrderData.class);
+
+ //鏍规嵁閰嶇疆淇℃伅鎵ц
+ OrderApiService service;
+ for (ApiConfs apiConfs : apiConfList) {
+
+ service = serviceMap.get(apiConfs.getPushProtocol());
+ if(null == service){
+ continue;
+ }
+
+ service.execute(data, req.getType());
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/order/OrderServer.java b/src/main/java/com/fzzy/order/OrderServer.java
new file mode 100644
index 0000000..5b53c3f
--- /dev/null
+++ b/src/main/java/com/fzzy/order/OrderServer.java
@@ -0,0 +1,57 @@
+package com.fzzy.order;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fzzy.order.data.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * 涓嬪彂鎸囦护鎺ユ敹鍏ュ彛
+ *
+ * @author czt
+ * @date 2023/8/17
+ */
+@Controller
+@RequestMapping("service/api")
+public class OrderServer {
+
+ @Autowired
+ private OrderManager orderManager;
+ /**
+ * 鐧诲綍鍏ュ彛
+ * @param req
+ * @return
+ */
+ @SuppressWarnings("unchecked")
+ @ResponseBody
+ @RequestMapping("/order")
+ public OrderResp order(@RequestBody OrderReq<JSONObject> req){
+
+ //鍒ゆ柇鍙傛暟
+ if(null == req){
+ return new OrderResp(OrderResult.ORDER_CODE_500.getCode(), OrderResult.ORDER_CODE_500.getResult());
+ }
+
+ //蹇冭烦鎸囦护锛岀洿鎺ヨ繑鍥�
+ if(OrderConstant.ORDER_TYPE_0.equals(req.getType())){
+ return new OrderResp(OrderResult.ORDER_CODE_500.getCode(), OrderResult.ORDER_CODE_500.getResult());
+ }
+
+ try {
+
+ //寮傛鎵ц
+ orderManager.execute(req);
+
+ return new OrderResp(OrderResult.ORDER_CODE_200.getCode(), OrderResult.ORDER_CODE_200.getResult());
+
+ } catch (Exception e) {
+
+ return new OrderResp(OrderResult.ORDER_CODE_500.getCode(), OrderResult.ORDER_CODE_500.getResult());
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/order/data/OrderConstant.java b/src/main/java/com/fzzy/order/data/OrderConstant.java
new file mode 100644
index 0000000..041b2c3
--- /dev/null
+++ b/src/main/java/com/fzzy/order/data/OrderConstant.java
@@ -0,0 +1,18 @@
+package com.fzzy.order.data;
+
+/**
+ * 鎸囦护-甯搁噺绫�
+ * @author czt
+ * @date 2023/8/17
+ */
+public class OrderConstant {
+
+ /**
+ * 鎸囦护绫诲瀷
+ */
+ public static String ORDER_TYPE_0 = "0"; //蹇冭烦鎸囦护
+ public static String ORDER_TYPE_1 = "1"; //鏁版嵁涓婃姤鎸囦护
+ public static String ORDER_TYPE_2 = "2"; //鏁版嵁鎷夊彇鎸囦护
+
+
+}
diff --git a/src/main/java/com/fzzy/order/data/OrderData.java b/src/main/java/com/fzzy/order/data/OrderData.java
new file mode 100644
index 0000000..aca6fdb
--- /dev/null
+++ b/src/main/java/com/fzzy/order/data/OrderData.java
@@ -0,0 +1,33 @@
+package com.fzzy.order.data;
+
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * 鎸囦护鍐呭
+ * @author czt
+ * @date 2023/08/17
+ */
+@Data
+public class OrderData implements Serializable {
+
+ /**
+ * 鎺ュ彛鍐呭锛屽涓腑闂寸敤鑻辨枃閫楀彿闅斿紑
+ */
+ private String content ;
+
+ /**
+ * 寮�濮嬫椂闂达紝鏍煎紡锛歽yyy-MM-dd HH:mm:ss
+ */
+ private String starttime;
+
+ /**
+ * 缁撴潫鏃堕棿锛屾牸寮忥細yyyy-MM-dd HH:mm:ss
+ */
+ private String endtime;
+
+ /**
+ * 澶囨敞淇℃伅
+ */
+ private String remark;
+}
diff --git a/src/main/java/com/fzzy/order/data/OrderReq.java b/src/main/java/com/fzzy/order/data/OrderReq.java
new file mode 100644
index 0000000..db6781b
--- /dev/null
+++ b/src/main/java/com/fzzy/order/data/OrderReq.java
@@ -0,0 +1,29 @@
+package com.fzzy.order.data;
+
+import lombok.Data;
+import java.io.Serializable;
+
+/**
+ * 鎸囦护鍙傛暟
+ * @author czt
+ * @date 2023/08/17
+ */
+@Data
+public class OrderReq<T> implements Serializable {
+
+ /**
+ * 鎸囦护id
+ */
+ private String orderid;
+
+ /**
+ * 鎸囦护绫诲瀷
+ */
+ private String type;
+
+ /**
+ * 鎸囦护鍐呭
+ */
+ private T data;
+
+}
diff --git a/src/main/java/com/fzzy/order/data/OrderResp.java b/src/main/java/com/fzzy/order/data/OrderResp.java
new file mode 100644
index 0000000..e9e9890
--- /dev/null
+++ b/src/main/java/com/fzzy/order/data/OrderResp.java
@@ -0,0 +1,31 @@
+package com.fzzy.order.data;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 鎸囦护鍙嶉
+ * @author czt
+ * @date 2023/08/17
+ */
+@Data
+public class OrderResp<T> implements Serializable {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -6714158228489303453L;
+
+ private String code ;
+
+ private String result;
+
+
+ public OrderResp() {
+ }
+
+ public OrderResp(String code, String result) {
+ this.code = code;
+ this.result = result;
+ }
+}
diff --git a/src/main/java/com/fzzy/order/data/OrderResult.java b/src/main/java/com/fzzy/order/data/OrderResult.java
new file mode 100644
index 0000000..9b4b90a
--- /dev/null
+++ b/src/main/java/com/fzzy/order/data/OrderResult.java
@@ -0,0 +1,35 @@
+package com.fzzy.order.data;
+
+/**
+ * 鎸囦护鍙嶉鐮�
+ */
+public enum OrderResult {
+
+ ORDER_CODE_200("200", "鎸囦护瑙f瀽鎴愬姛"),
+ ORDER_CODE_500("500", "鎸囦护瑙f瀽澶辫触");
+
+ private String code;
+ private String result;
+
+ OrderResult(String code, String msg) {
+ this.code = code;
+ this.result = msg;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getResult() {
+ return result;
+ }
+
+ public static String getMsg(String code) {
+ if(null == code) return null;
+
+ if(OrderResult.ORDER_CODE_200.getCode().equals(code)) return OrderResult.ORDER_CODE_200.getResult();
+ if(OrderResult.ORDER_CODE_500.getCode().equals(code)) return OrderResult.ORDER_CODE_500.getResult();
+ return code;
+ }
+
+}
diff --git a/src/main/java/com/fzzy/order/package-info.java b/src/main/java/com/fzzy/order/package-info.java
new file mode 100644
index 0000000..0bc52f6
--- /dev/null
+++ b/src/main/java/com/fzzy/order/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 鎸囦护鍖咃紝鏍规嵁涓嬪彂鎸囦护鑾峰彇瀵瑰簲鏁版嵁涓婃姤
+ */
+package com.fzzy.order;
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/otherview/package-info.java b/src/main/java/com/fzzy/otherview/package-info.java
new file mode 100644
index 0000000..98a26f4
--- /dev/null
+++ b/src/main/java/com/fzzy/otherview/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 鍚勫钩鍙扮嫭鏈夋帴鍙�
+ */
+package com.fzzy.otherview;
\ No newline at end of file
diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java b/src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java
index be16965..83d57da 100644
--- a/src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java
@@ -1,12 +1,17 @@
package com.fzzy.push.sh2023;
+import com.fzzy.api.Constant;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.dto.ResponseDto;
+import com.fzzy.api.entity.Api1101;
+import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.service.PushService11;
-import com.fzzy.push.impl.ComPushService11;
+import com.fzzy.api.view.repository.Api1101Rep;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import java.util.List;
/**
* 涓婃捣甯傚钩鍙�2023鐗�-鍩虹鏁版嵁涓婁紶
@@ -20,7 +25,9 @@
@Autowired
- private ComPushService11 pushService;
+ private SH2023ApiRemoteService apiRemoteService;
+ @Autowired
+ private Api1101Rep api1101Rep;
@Override
public String getProtocol() {
@@ -32,8 +39,38 @@
log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤寮�濮�");
//鎺ㄩ�佸崟浣嶄俊鎭�
+ this.pushData1101(apiRemoteService, param);
+ //TODO 鍏朵粬鍩虹淇℃伅
log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤缁撴潫");
}
+
+ /**
+ * 1101 鍗曚綅淇℃伅
+ */
+ private void pushData1101(ApiRemoteService apiRemoteService, ApiParam param) {
+
+ //TODO 鑾峰彇鍗曚綅淇℃伅
+ List<Api1101> list = null;
+
+ if (null == list || list.isEmpty()) {
+ return;
+ }
+
+ //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮�
+ ResponseDto responseDto = apiRemoteService.pushData(param, list);
+ if (responseDto.getSuccess() == 0) {
+ //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵��
+ for (Api1101 data : list) {
+ if (Constant.CZBZ_I.equals(data.getCzbz())) {
+
+ data.setCzbz(Constant.CZBZ_U);
+ //鏇存柊鐘舵��
+ api1101Rep.save(data);
+
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023PushService12.java b/src/main/java/com/fzzy/push/sh2023/SH2023PushService12.java
new file mode 100644
index 0000000..2f2520a
--- /dev/null
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023PushService12.java
@@ -0,0 +1,39 @@
+package com.fzzy.push.sh2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService11;
+import com.fzzy.push.impl.ComPushService11;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣甯傚钩鍙�2023鐗�-鍩虹鏁版嵁涓婁紶
+ *
+ * @author czt
+ * @date 2023/08/17
+ */
+@Slf4j
+@Component
+public class SH2023PushService12 implements PushService11 {
+
+
+ @Autowired
+ private ComPushService11 pushService;
+
+ @Override
+ public String getProtocol() {
+ return PushProtocol.SB_SH_2023.getCode();
+ }
+
+ @Override
+ public void pushData(ApiParam param) {
+ log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+ //鎺ㄩ�佸崟浣嶄俊鎭�
+
+
+ log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤缁撴潫");
+ }
+}
diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023PushService13.java b/src/main/java/com/fzzy/push/sh2023/SH2023PushService13.java
new file mode 100644
index 0000000..f04948f
--- /dev/null
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023PushService13.java
@@ -0,0 +1,39 @@
+package com.fzzy.push.sh2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService11;
+import com.fzzy.push.impl.ComPushService11;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣甯傚钩鍙�2023鐗�-鍩虹鏁版嵁涓婁紶
+ *
+ * @author czt
+ * @date 2023/08/17
+ */
+@Slf4j
+@Component
+public class SH2023PushService13 implements PushService11 {
+
+
+ @Autowired
+ private ComPushService11 pushService;
+
+ @Override
+ public String getProtocol() {
+ return PushProtocol.SB_SH_2023.getCode();
+ }
+
+ @Override
+ public void pushData(ApiParam param) {
+ log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+ //鎺ㄩ�佸崟浣嶄俊鎭�
+
+
+ log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤缁撴潫");
+ }
+}
diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023PushService14.java b/src/main/java/com/fzzy/push/sh2023/SH2023PushService14.java
new file mode 100644
index 0000000..1fd1b44
--- /dev/null
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023PushService14.java
@@ -0,0 +1,39 @@
+package com.fzzy.push.sh2023;
+
+import com.fzzy.api.data.ApiParam;
+import com.fzzy.api.data.PushProtocol;
+import com.fzzy.api.service.PushService11;
+import com.fzzy.push.impl.ComPushService11;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 涓婃捣甯傚钩鍙�2023鐗�-鍩虹鏁版嵁涓婁紶
+ *
+ * @author czt
+ * @date 2023/08/17
+ */
+@Slf4j
+@Component
+public class SH2023PushService14 implements PushService11 {
+
+
+ @Autowired
+ private ComPushService11 pushService;
+
+ @Override
+ public String getProtocol() {
+ return PushProtocol.SB_SH_2023.getCode();
+ }
+
+ @Override
+ public void pushData(ApiParam param) {
+ log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤寮�濮�");
+
+ //鎺ㄩ�佸崟浣嶄俊鎭�
+
+
+ log.info("------->>>>鍩虹淇℃伅 鎺ュ彛妯″潡涓婃姤缁撴潫");
+ }
+}
--
Gitblit v1.9.3