gongfuzhu há 1 ano atrás
pai
commit
e5150e7ec8

+ 46 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/DiFengYunApi.java

@@ -0,0 +1,46 @@
+package com.zswl.cloud.springBtach.server.core.api.dfy;
+
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
+import com.zswl.cloud.springBtach.server.core.api.dfy.request.DfyRequestBase;
+import com.zswl.cloud.springBtach.server.core.api.dfy.request.ScenicRequest;
+import com.zswl.cloud.springBtach.server.core.api.dfy.request.ScenicResponse;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+@Component
+public class DiFengYunApi {
+
+    @Value("${dfy.host}")
+    private String host;
+
+    @Value("${dfy.mp.secretkey}")
+    private String secretKey;
+
+
+    @Value("${dfy.mp.apikey}")
+    private String apiKey;
+
+
+    public ScenicResponse scenicList(ScenicRequest scenicRequest) {
+
+        String post = post(scenicRequest, "/Ticket/scenicList");
+
+        return JSONUtil.toBean(post, ScenicResponse.class);
+
+    }
+
+
+    private String post(DfyRequestBase dfyRequestBase, String url) {
+
+        String signature = Signature.getSignature(JSONUtil.parseObj(dfyRequestBase), secretKey);
+        dfyRequestBase.setSign(signature);
+        dfyRequestBase.setApiKey(apiKey);
+
+        String post = HttpUtil.post(host + url, JSONUtil.toJsonStr(dfyRequestBase));
+        return post;
+
+    }
+
+
+}

+ 2 - 5
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/RequestBase.java → SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/DfyRequestBase.java

@@ -1,24 +1,21 @@
 package com.zswl.cloud.springBtach.server.core.api.dfy.request;
 
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.io.unit.DataSizeUtil;
 import lombok.AllArgsConstructor;
 import lombok.Data;
-import lombok.NoArgsConstructor;
 
 import java.util.Date;
 
 @Data
 @AllArgsConstructor
-public class RequestBase {
+public class DfyRequestBase {
 
     private String apiKey;
     private String sign;
     private String timestamp;
 
-    public RequestBase() {
+    public DfyRequestBase() {
 
-        this.apiKey = "tickettest";
         this.timestamp = DateUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss");
 
     }

+ 16 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/DfyResponseBase.java

@@ -0,0 +1,16 @@
+package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class DfyResponseBase {
+
+    private Integer errorCode;
+    private String msg;
+    private String success;
+
+}

+ 25 - 25
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/ScenicRequest.java

@@ -1,25 +1,25 @@
-//package com.zswl.cloud.springBtach.server.core.api.dfy.request;
-//
-//import lombok.AllArgsConstructor;
-//import lombok.Data;
-//import lombok.NoArgsConstructor;
-//
-//@Data
-//@NoArgsConstructor
-//@AllArgsConstructor
-//public class ScenicRequest extends RequestBase {
-//
-//    private Scenic data;
-//
-//    @Data
-//    @NoArgsConstructor
-//    @AllArgsConstructor
-//    public static class Scenic {
-//
-//        private String key;
-//        private String page;
-//        private String pageSize;
-//
-//
-//    }
-//}
+package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ScenicRequest extends DfyRequestBase {
+
+    private Scenic data;
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class Scenic {
+
+        private String key;
+        private String page;
+        private String pageSize;
+
+
+    }
+}

+ 58 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/ScenicResponse.java

@@ -0,0 +1,58 @@
+package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ScenicResponse extends DfyResponseBase {
+
+
+    private List<Datas> data;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public class Datas {
+
+        private Integer totalCount;
+        private List<rows> rows;
+
+    }
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public class rows {
+
+        private String scenicId;
+        private String scenicName;
+        private String newPicUrl;
+        private String address;
+        private String bizTime;
+        private String glocation;
+        private String blocation;
+        private List<Ticket> ticketList;
+
+
+    }
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public class Ticket {
+
+        private String productId;
+        private String productName;
+        private String webPrice;
+        private String salePrice;
+
+
+    }
+}

+ 41 - 6
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/service/XiaoJuService.java

@@ -2,6 +2,7 @@ package com.zswl.cloud.springBtach.server.core.service;
 
 
 import cn.hutool.core.lang.Snowflake;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
 import com.github.microservice.auth.client.content.ResultContent;
 import com.github.microservice.auth.client.content.ResultState;
@@ -12,9 +13,7 @@ import com.xiaoju.open.oil.commons.config.OilConfig;
 import com.xiaoju.open.oil.core.QueryClient;
 import com.xiaoju.open.oil.core.QueryClientFactory;
 import com.xiaoju.open.oil.core.executor.ResponseDTO;
-import com.xiaoju.open.oil.interfaces.domain.AllowanceInfo;
-import com.xiaoju.open.oil.interfaces.domain.AllowancePromotionInfo;
-import com.xiaoju.open.oil.interfaces.domain.GenPromotionInfo;
+import com.xiaoju.open.oil.interfaces.domain.*;
 import com.xiaoju.open.oil.interfaces.request.*;
 import com.xiaoju.open.oil.interfaces.request.miniprogram.MiniCancelOrderStatusRequest;
 import com.xiaoju.open.oil.interfaces.response.*;
@@ -137,14 +136,11 @@ public class XiaoJuService {
 
     public ResultContent<QueryStoreDetailResponse> queryStoreDetail2(String storeId) {
         AuthDetails currentUser = authHelper.getCurrentUser();
-        XiaoJuStore byStoreId = xiaoJuStoreDao.findByStoreId(storeId);
         QueryStoreDetailRequest queryStoreDetailRequest = new QueryStoreDetailRequest();
 
         queryStoreDetailRequest.setOutUserId(currentUser.getUserId());
         queryStoreDetailRequest.setMobile(currentUser.getPhone());
         queryStoreDetailRequest.setStoreId(storeId);
-        queryStoreDetailRequest.setLat(byStoreId.getLat());
-        queryStoreDetailRequest.setLon(byStoreId.getLon());
         queryStoreDetailRequest.setOpenChannel(1);
 
         QueryClient queryClient = QueryClientFactory.create(oilConfig);
@@ -155,6 +151,45 @@ public class XiaoJuService {
         try {
             QueryStoreDetailResponse queryStoreDetailResponse = queryClient.api().queryStoreDetail(queryStoreDetailRequest);
 
+            XiaoJuStore byStoreId = xiaoJuStoreDao.findByStoreId(storeId);
+            List<StoreDetailItemInfo> itemInfoList = queryStoreDetailResponse.getItemInfoList();
+            if (ObjectUtil.isEmpty(byStoreId)){
+                XiaoJuStore xiaoJuStore = new XiaoJuStore();
+                BeanUtils.copyProperties(queryStoreDetailResponse, xiaoJuStore);
+                xiaoJuStore.setLogo(queryStoreDetailResponse.getStoreLogo());
+                xiaoJuStore.setLocation(new double[]{queryStoreDetailResponse.getLon(), queryStoreDetailResponse.getLat()});
+                xiaoJuStore.setPicList(queryStoreDetailResponse.getStorePicList());
+
+
+
+
+                List<ItemPriceInfoForCallback> itemInfoList1 = new ArrayList<>();
+                for (StoreDetailItemInfo storeDetailItemInfo : itemInfoList) {
+                    ItemPriceInfoForCallback itemPriceInfoForCallback = new ItemPriceInfoForCallback();
+                    BeanUtils.copyProperties(storeDetailItemInfo, itemPriceInfoForCallback);
+                    itemPriceInfoForCallback.setGunNoList(storeDetailItemInfo.getGunNos());
+                    itemInfoList1.add(itemPriceInfoForCallback);
+                }
+                xiaoJuStore.setItemInfoList(itemInfoList1);
+                xiaoJuStoreDao.save(xiaoJuStore);
+            }else {
+
+                BeanUtils.copyProperties(queryStoreDetailResponse, byStoreId, "id", "updateTime");
+                byStoreId.setLocation(new double[]{queryStoreDetailResponse.getLon(), queryStoreDetailResponse.getLat()});
+                byStoreId.setLogo(queryStoreDetailResponse.getStoreLogo());
+                byStoreId.setPicList(queryStoreDetailResponse.getStorePicList());
+                List<ItemPriceInfoForCallback> itemInfoList1 = new ArrayList<>();
+                for (StoreDetailItemInfo storeDetailItemInfo : itemInfoList) {
+                    ItemPriceInfoForCallback itemPriceInfoForCallback = new ItemPriceInfoForCallback();
+                    BeanUtils.copyProperties(storeDetailItemInfo, itemPriceInfoForCallback);
+                    itemPriceInfoForCallback.setGunNoList(storeDetailItemInfo.getGunNos());
+                    itemInfoList1.add(itemPriceInfoForCallback);
+                }
+                byStoreId.setItemInfoList(itemInfoList1);
+                xiaoJuStoreDao.save(byStoreId);
+
+
+            }
 
             apiLog.setResponse(JSONUtil.toJsonStr(queryStoreDetailResponse));
             apiLogDao.save(apiLog);