From c85cb58101a4997d3b6c822f23e817c16f950f50 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 12 五月 2024 00:45:21 +0800
Subject: [PATCH] 优化代码

---
 service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java        |   12 +-
 service-job/src/main/java/com/java110/job/cmd/mall/ListProductGroupCmd.java              |   37 ++++++
 service-job/src/main/java/com/java110/job/cmd/mall/QueryHousekeepingTypeCmd.java         |   39 ++++++
 service-job/src/main/java/com/java110/job/cmd/mall/QueryShopTypeCmd.java                 |   44 +++++++
 service-job/src/main/java/com/java110/job/mall/SendMallImpl.java                         |   31 ++++
 service-job/src/main/java/com/java110/job/cmd/mall/QueryPhoneMainCategoryProductCmd.java |   38 ++++++
 java110-utils/src/main/java/com/java110/utils/util/UrlParamToJsonUtil.java               |   21 +++
 service-job/src/main/java/com/java110/job/cmd/mall/QueryMainCategoryCmd.java             |   38 ++++++
 springboot/src/main/java/com/java110/boot/configuration/ServiceConfiguration.java        |   10 
 service-job/src/main/java/com/java110/job/cmd/mall/ListProductSeckillCmd.java            |   36 ++++++
 10 files changed, 291 insertions(+), 15 deletions(-)

diff --git a/java110-utils/src/main/java/com/java110/utils/util/UrlParamToJsonUtil.java b/java110-utils/src/main/java/com/java110/utils/util/UrlParamToJsonUtil.java
index 206cb38..6aa8a99 100644
--- a/java110-utils/src/main/java/com/java110/utils/util/UrlParamToJsonUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/UrlParamToJsonUtil.java
@@ -3,6 +3,8 @@
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
 
+import java.net.URLEncoder;
+
 public class UrlParamToJsonUtil {
 
     public static JSONObject getJson(String paramStr) {
@@ -30,4 +32,23 @@
         }
         return obj;
     }
+
+    public static String jsonToUrlParam(JSONObject json)  {
+        StringBuilder params = new StringBuilder();
+        json.keySet().forEach(key -> {
+            String value = json.getString(key);
+            try {
+                String encodedKey = URLEncoder.encode(key, "UTF-8");
+                String encodedValue = URLEncoder.encode(value, "UTF-8");
+                params.append(encodedKey).append("=").append(encodedValue).append("&");
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        });
+        // 鍒犻櫎鏈�鍚庝竴涓�'&'
+        if (params.length() > 0) {
+            params.deleteCharAt(params.length() - 1);
+        }
+        return params.toString();
+    }
 }
diff --git a/service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java b/service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java
index c66544e..e5404f4 100644
--- a/service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java
+++ b/service-api/src/main/java/com/java110/api/configuration/ServiceConfiguration.java
@@ -70,13 +70,13 @@
 //        exclusions.append("/app/room.queryRooms,");
         exclusions.append("/app/room.queryRoomsByApp,");
         exclusions.append("/app/productCategory/queryMainCategoryAllGoods,");
-        exclusions.append("/app/productCategory/queryMainCategory,");
+        exclusions.append("/app/mall.queryMainCategory,");
 
-        exclusions.append("/app/product.queryPhoneMainCategoryProduct,");
+        exclusions.append("/app/mall.queryPhoneMainCategoryProduct,");
 
         exclusions.append("/app/shop/queryShopCommunity,");
-        exclusions.append("/app/shopType/queryShopType,");
-        exclusions.append("/app/housekeepingType/queryHousekeepingType,");
+        exclusions.append("/app/mall.queryShopType,");
+        exclusions.append("/app/mall.queryHousekeepingType,");
         exclusions.append("/app/couponUser.listCouponUser,");
         exclusions.append("/app/machine.customCarInOutCmd,");
         exclusions.append("/callComponent/propertyRightRegistration.savePropertyRightRegistration,");
@@ -96,11 +96,11 @@
         exclusions.append("/app/reserve.listReserveCatalog,");
         exclusions.append("/app/reserve.listReserveGoods,");
         exclusions.append("/app/reserve.listReserveParams,");
-        exclusions.append("/app/productGroup.listProductGroup,");//鎷煎洟鍟嗗搧
+        exclusions.append("/app/mall.listProductGroup,");//鎷煎洟鍟嗗搧
         exclusions.append("/app/product/queryGroupProduct,");//鎷煎洟鍟嗗搧
         exclusions.append("/app/product/querySeckillProduct,");//绉掓潃鍟嗗搧
 
-        exclusions.append("/app/productSeckill.listProductSeckill,");//绉掓潃鍟嗗搧
+        exclusions.append("/app/mall.listProductSeckill,");//绉掓潃鍟嗗搧
         exclusions.append("/app/system.listRegisterProtocol,");//鏌ヨ娉ㄥ唽淇℃伅
         exclusions.append("/app/chargeMachine.listChargeMachine,");//鏌ヨ娉ㄥ唽淇℃伅
         exclusions.append("/app/chargeMachine.listChargeMachinePort,");//鏌ヨ鍏呯數妗�
diff --git a/service-job/src/main/java/com/java110/job/cmd/mall/ListProductGroupCmd.java b/service-job/src/main/java/com/java110/job/cmd/mall/ListProductGroupCmd.java
new file mode 100644
index 0000000..747ad29
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/cmd/mall/ListProductGroupCmd.java
@@ -0,0 +1,37 @@
+package com.java110.job.cmd.mall;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.job.mall.ISendMall;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.UrlParamToJsonUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "mall.listProductGroup")
+public class ListProductGroupCmd extends Cmd {
+
+    @Autowired
+    private ISendMall sendMallImpl;
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String mallSwitch = MappingCache.getValue("MALL", "MALL_SWITCH");
+        if (!"ON".equals(mallSwitch)) {
+            throw new CmdException("鍟嗗煄绯荤粺鏈儴缃�");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String param = UrlParamToJsonUtil.jsonToUrlParam(reqJson);
+        ResultVo resultVo = sendMallImpl.get("/mall/api/productGroup.listProductGroup?" + param);
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+    }
+}
diff --git a/service-job/src/main/java/com/java110/job/cmd/mall/ListProductSeckillCmd.java b/service-job/src/main/java/com/java110/job/cmd/mall/ListProductSeckillCmd.java
new file mode 100644
index 0000000..67f7729
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/cmd/mall/ListProductSeckillCmd.java
@@ -0,0 +1,36 @@
+package com.java110.job.cmd.mall;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.job.mall.ISendMall;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.UrlParamToJsonUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "mall.listProductSeckill")
+public class ListProductSeckillCmd extends Cmd {
+    @Autowired
+    private ISendMall sendMallImpl;
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String mallSwitch = MappingCache.getValue("MALL", "MALL_SWITCH");
+        if (!"ON".equals(mallSwitch)) {
+            throw new CmdException("鍟嗗煄绯荤粺鏈儴缃�");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String param = UrlParamToJsonUtil.jsonToUrlParam(reqJson);
+        ResultVo resultVo = sendMallImpl.get("/mall/api/productSeckill.listProductSeckill?" + param);
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+    }
+}
diff --git a/service-job/src/main/java/com/java110/job/cmd/mall/QueryHousekeepingTypeCmd.java b/service-job/src/main/java/com/java110/job/cmd/mall/QueryHousekeepingTypeCmd.java
new file mode 100644
index 0000000..a5c3e41
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/cmd/mall/QueryHousekeepingTypeCmd.java
@@ -0,0 +1,39 @@
+package com.java110.job.cmd.mall;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.job.mall.ISendMall;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.UrlParamToJsonUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+
+@Java110Cmd(serviceCode = "mall.queryHousekeepingType")
+public class QueryHousekeepingTypeCmd extends Cmd {
+
+    @Autowired
+    private ISendMall sendMallImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String mallSwitch = MappingCache.getValue("MALL", "MALL_SWITCH");
+        if (!"ON".equals(mallSwitch)) {
+            throw new CmdException("鍟嗗煄绯荤粺鏈儴缃�");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String param = UrlParamToJsonUtil.jsonToUrlParam(reqJson);
+        ResultVo resultVo = sendMallImpl.get("/mall/api/housekeepingType.queryHousekeepingType?" + param);
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+    }
+}
diff --git a/service-job/src/main/java/com/java110/job/cmd/mall/QueryMainCategoryCmd.java b/service-job/src/main/java/com/java110/job/cmd/mall/QueryMainCategoryCmd.java
new file mode 100644
index 0000000..9fbf164
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/cmd/mall/QueryMainCategoryCmd.java
@@ -0,0 +1,38 @@
+package com.java110.job.cmd.mall;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.job.mall.ISendMall;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.UrlParamToJsonUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "mall.queryMainCategory")
+public class QueryMainCategoryCmd extends Cmd {
+
+    @Autowired
+    private ISendMall sendMallImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String mallSwitch = MappingCache.getValue("MALL", "MALL_SWITCH");
+        if (!"ON".equals(mallSwitch)) {
+            throw new CmdException("鍟嗗煄绯荤粺鏈儴缃�");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String param = UrlParamToJsonUtil.jsonToUrlParam(reqJson);
+        ResultVo resultVo = sendMallImpl.get("/mall/api/productCategory.queryMainCategory?" + param);
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+    }
+}
diff --git a/service-job/src/main/java/com/java110/job/cmd/mall/QueryPhoneMainCategoryProductCmd.java b/service-job/src/main/java/com/java110/job/cmd/mall/QueryPhoneMainCategoryProductCmd.java
new file mode 100644
index 0000000..a408c5e
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/cmd/mall/QueryPhoneMainCategoryProductCmd.java
@@ -0,0 +1,38 @@
+package com.java110.job.cmd.mall;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.job.mall.ISendMall;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.UrlParamToJsonUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "mall.queryPhoneMainCategoryProduct")
+public class QueryPhoneMainCategoryProductCmd extends Cmd {
+
+    @Autowired
+    private ISendMall sendMallImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String mallSwitch = MappingCache.getValue("MALL", "MALL_SWITCH");
+        if (!"ON".equals(mallSwitch)) {
+            throw new CmdException("鍟嗗煄绯荤粺鏈儴缃�");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String param = UrlParamToJsonUtil.jsonToUrlParam(reqJson);
+        ResultVo resultVo = sendMallImpl.get("/mall/api/product.queryPhoneMainCategoryProduct?" + param);
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+    }
+}
diff --git a/service-job/src/main/java/com/java110/job/cmd/mall/QueryShopTypeCmd.java b/service-job/src/main/java/com/java110/job/cmd/mall/QueryShopTypeCmd.java
new file mode 100644
index 0000000..c15d8a6
--- /dev/null
+++ b/service-job/src/main/java/com/java110/job/cmd/mall/QueryShopTypeCmd.java
@@ -0,0 +1,44 @@
+package com.java110.job.cmd.mall;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.job.mall.ISendMall;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.UrlParamToJsonUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+/**
+ * 鏌ヨ鍟嗛摵绫诲瀷
+ */
+@Java110Cmd(serviceCode = "mall.queryShopType")
+public class QueryShopTypeCmd extends Cmd {
+
+    @Autowired
+    private ISendMall sendMallImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        String mallSwitch = MappingCache.getValue("MALL", "MALL_SWITCH");
+        if (!"ON".equals(mallSwitch)) {
+            throw new CmdException("鍟嗗煄绯荤粺鏈儴缃�");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        String param = UrlParamToJsonUtil.jsonToUrlParam(reqJson);
+        ResultVo resultVo = sendMallImpl.get("/mall/api/shopType.queryShopType?" + param);
+
+        context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+    }
+}
diff --git a/service-job/src/main/java/com/java110/job/mall/SendMallImpl.java b/service-job/src/main/java/com/java110/job/mall/SendMallImpl.java
index c4dc7e3..0337b3e 100644
--- a/service-job/src/main/java/com/java110/job/mall/SendMallImpl.java
+++ b/service-job/src/main/java/com/java110/job/mall/SendMallImpl.java
@@ -4,6 +4,8 @@
 import com.java110.core.client.RestTemplate;
 import com.java110.core.factory.AuthenticationFactory;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
+import com.java110.db.dao.impl.QueryServiceDAOImpl;
 import com.java110.dto.machine.MachineTranslateErrorDto;
 import com.java110.intf.common.IMachineTranslateErrorInnerServiceSMO;
 import com.java110.job.adapt.hcIot.IotConstant;
@@ -14,18 +16,21 @@
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
+import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.HttpStatusCodeException;
 
 import java.util.Date;
 import java.util.UUID;
 
 @Service
 public class SendMallImpl implements ISendMall {
+    private final static Logger logger = LoggerFactory.getLogger(SendMallImpl.class);
 
     public static final String GET_TOKEN_URL = "/mall/api/login.pcUserLogin";
     private static final String DEFAULT_MALL_URL = "https://mall.homecommunity.cn";
@@ -44,9 +49,19 @@
 
     @Override
     public ResultVo get(String url) {
-        HttpHeaders header = getHeaders(url, "", HttpMethod.POST);
+        url = getUrl(url);
+        HttpHeaders header = getHeaders(url, "", HttpMethod.GET);
         HttpEntity<String> httpEntity = new HttpEntity<String>("", header);
-        ResponseEntity<String> tokenRes = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+        ResponseEntity<String> tokenRes = null;
+        try {
+            tokenRes = outRestTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
+        } catch (HttpStatusCodeException e) {
+            logger.error("璋冪敤寮傚父", e);
+            return new ResultVo(ResultVo.CODE_ERROR, e.getResponseBodyAsString());
+        } catch (Exception e) {
+            logger.error("璋冪敤寮傚父", e);
+            return new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
+        }
 
         String body = tokenRes.getBody();
         JSONObject paramOut = JSONObject.parseObject(body);
@@ -59,8 +74,16 @@
         url = getUrl(url);
         HttpHeaders header = getHeaders(url, paramIn.toJSONString(), HttpMethod.POST);
         HttpEntity<String> httpEntity = new HttpEntity<String>(paramIn.toJSONString(), header);
-        ResponseEntity<String> tokenRes = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
-
+        ResponseEntity<String> tokenRes = null;
+        try {
+            tokenRes = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+        } catch (HttpStatusCodeException e) {
+            logger.error("璋冪敤寮傚父", e);
+            return new ResultVo(ResultVo.CODE_ERROR, e.getResponseBodyAsString());
+        } catch (Exception e) {
+            logger.error("璋冪敤寮傚父", e);
+            return new ResultVo(ResultVo.CODE_ERROR, e.getMessage());
+        }
         String body = tokenRes.getBody();
         JSONObject paramOut = JSONObject.parseObject(body);
 
diff --git a/springboot/src/main/java/com/java110/boot/configuration/ServiceConfiguration.java b/springboot/src/main/java/com/java110/boot/configuration/ServiceConfiguration.java
index 184eeb8..e120b27 100644
--- a/springboot/src/main/java/com/java110/boot/configuration/ServiceConfiguration.java
+++ b/springboot/src/main/java/com/java110/boot/configuration/ServiceConfiguration.java
@@ -70,11 +70,11 @@
 //        exclusions.append("/app/room.queryRooms,");
         exclusions.append("/app/room.queryRoomsByApp,");
         exclusions.append("/app/productCategory/queryMainCategoryAllGoods,");
-        exclusions.append("/app/productCategory/queryMainCategory,");
-        exclusions.append("/app/product.queryPhoneMainCategoryProduct,");
+        exclusions.append("/app/mall.queryMainCategory,");
+        exclusions.append("/app/mall.queryPhoneMainCategoryProduct,");
         exclusions.append("/app/shop/queryShopCommunity,");
-        exclusions.append("/app/shopType/queryShopType,");
-        exclusions.append("/app/housekeepingType/queryHousekeepingType,");
+        exclusions.append("/app/mall.queryShopType,");
+        exclusions.append("/app/mall.queryHousekeepingType,");
         exclusions.append("/app/couponUser.listCouponUser,");
         exclusions.append("/app/machine.customCarInOutCmd,");
         exclusions.append("/callComponent/propertyRightRegistration.savePropertyRightRegistration,");
@@ -98,7 +98,7 @@
         exclusions.append("/app/product/queryGroupProduct,");//鎷煎洟鍟嗗搧
         exclusions.append("/app/product/querySeckillProduct,");//绉掓潃鍟嗗搧
 
-        exclusions.append("/app/productSeckill.listProductSeckill,");//绉掓潃鍟嗗搧
+        exclusions.append("/app/mall.listProductSeckill,");//绉掓潃鍟嗗搧
         exclusions.append("/app/system.listRegisterProtocol,");//鏌ヨ娉ㄥ唽淇℃伅
         exclusions.append("/app/chargeMachine.listChargeMachine,");//鏌ヨ鍏呯數妗�
         exclusions.append("/app/chargeMachine.listChargeMachinePort,");//鏌ヨ鍏呯數妗�

--
Gitblit v1.8.0