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