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