gongfuzhu hai 1 ano
pai
achega
35cee4d8cc

+ 2 - 2
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/DfyRequestBase.java → SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/request/DfyRequestBase.java

@@ -1,4 +1,4 @@
-package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+package com.zswl.cloud.springBatch.client.model.dfy.request;
 
 import cn.hutool.core.date.DateUtil;
 import lombok.AllArgsConstructor;
@@ -12,7 +12,7 @@ public class DfyRequestBase {
 
     private String apiKey;
     private String sign;
-    private String timestamp;
+    private final String timestamp;
 
     public DfyRequestBase() {
 

+ 23 - 0
SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/request/ScenicDetailRequest.java

@@ -0,0 +1,23 @@
+package com.zswl.cloud.springBatch.client.model.dfy.request;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ScenicDetailRequest extends DfyRequestBase {
+
+    private scenicId data;
+
+
+    @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
+    public static class scenicId {
+        private String scenicId;
+
+
+    }
+}

+ 2 - 2
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/ScenicRequest.java → SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/request/ScenicListRequest.java

@@ -1,4 +1,4 @@
-package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+package com.zswl.cloud.springBatch.client.model.dfy.request;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class ScenicRequest extends DfyRequestBase {
+public class ScenicListRequest extends DfyRequestBase {
 
     private Scenic data;
 

+ 1 - 1
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/DfyResponseBase.java → SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/response/DfyResponseBase.java

@@ -1,4 +1,4 @@
-package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+package com.zswl.cloud.springBatch.client.model.dfy.response;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 83 - 0
SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/response/ScenicDetailResponse.java

@@ -0,0 +1,83 @@
+package com.zswl.cloud.springBatch.client.model.dfy.response;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ScenicDetailResponse extends DfyResponseBase {
+
+    private Datas data;
+
+    @Data
+    public static class Datas {
+
+
+        // 景点ID
+        private int scenicId;
+
+        // 景点名称
+        private String scenicName;
+
+        // 预订须知,该字段为Unicode编码
+        private String bookNotice;
+
+        // 景点所在城市
+        private String cityName;
+
+        // 景点所在省份(国外景点可能是国家)
+        private String provinceName;
+
+        // 谷歌经纬度
+        private String glocation;
+
+        // 百度经纬度
+        private String blocation;
+
+        // 景点营业时间
+        private String openTime;
+
+        // 景点地址
+        private String scenicAddress;
+
+        // 景点图片
+        private String defaultPic; // URL需要处理,详见《图片尺寸设置说明》
+
+        // 景点描述
+        private String scenicDescription;
+
+        // 推荐
+        private String recommend;
+
+        // 交通信息
+        private String trafficBus;
+
+        // 备注信息
+        private String remark;
+
+        private List<Ticket> ticketList;
+        private List<Ticket> disTickets;
+
+    }
+
+    @Data
+    public static class Ticket {
+
+        // 门票产品ID
+        private String productName;
+        // 产品名称
+        private int productId;
+
+        // 单位元,景点价 非下单价格
+        private double webPrice;
+
+        // 单位元,销售价,当价格为0时,需要单独查询门票详情,其中有价格日历内容,获取正确的价格,在下单时也是要使用详情中的价格。非下单价格
+        private double salePrice;
+
+
+    }
+}

+ 4 - 3
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/request/ScenicResponse.java → SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/response/ScenicListResponse.java

@@ -1,4 +1,4 @@
-package com.zswl.cloud.springBtach.server.core.api.dfy.request;
+package com.zswl.cloud.springBatch.client.model.dfy.response;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;
@@ -9,10 +9,10 @@ import java.util.List;
 @Data
 @NoArgsConstructor
 @AllArgsConstructor
-public class ScenicResponse extends DfyResponseBase {
+public class ScenicListResponse extends DfyResponseBase {
 
 
-    private List<Datas> data;
+    private Datas data;
 
 
     @Data
@@ -39,6 +39,7 @@ public class ScenicResponse extends DfyResponseBase {
         private String glocation;
         private String blocation;
         private List<Ticket> ticketList;
+        private List<Ticket> disTickets;
 
 
     }

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

@@ -2,15 +2,23 @@ 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 com.zswl.cloud.springBatch.client.model.dfy.request.DfyRequestBase;
+import com.zswl.cloud.springBatch.client.model.dfy.request.ScenicDetailRequest;
+import com.zswl.cloud.springBatch.client.model.dfy.request.ScenicListRequest;
+import com.zswl.cloud.springBatch.client.model.dfy.response.ScenicDetailResponse;
+import com.zswl.cloud.springBatch.client.model.dfy.response.ScenicListResponse;
+import com.zswl.cloud.springBtach.server.core.dao.ApiLogDao;
+import com.zswl.cloud.springBtach.server.core.domain.ApiLog;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 @Component
 public class DiFengYunApi {
 
+    @Autowired
+    ApiLogDao apiLogDao;
+
     @Value("${dfy.host}")
     private String host;
 
@@ -21,23 +29,44 @@ public class DiFengYunApi {
     @Value("${dfy.mp.apikey}")
     private String apiKey;
 
+    public DiFengYunApi(ApiLogDao apiLogDao) {
+        this.apiLogDao = apiLogDao;
+    }
+
+    // 景点列表查询
 
-    public ScenicResponse scenicList(ScenicRequest scenicRequest) {
+    public ScenicListResponse scenicList(ScenicListRequest scenicRequest) {
 
         String post = post(scenicRequest, "/Ticket/scenicList");
 
-        return JSONUtil.toBean(post, ScenicResponse.class);
+        return JSONUtil.toBean(post, ScenicListResponse.class);
 
     }
 
 
+    // 景点详情接口
+
+    public ScenicDetailResponse scenicDetail(ScenicDetailRequest scenicDetailRequest) {
+
+        String post = post(scenicDetailRequest, "/Ticket/scenicDetail");
+        return JSONUtil.toBean(post, ScenicDetailResponse.class);
+    }
+
+
     private String post(DfyRequestBase dfyRequestBase, String url) {
 
+
+        dfyRequestBase.setApiKey(apiKey);
         String signature = Signature.getSignature(JSONUtil.parseObj(dfyRequestBase), secretKey);
         dfyRequestBase.setSign(signature);
-        dfyRequestBase.setApiKey(apiKey);
 
         String post = HttpUtil.post(host + url, JSONUtil.toJsonStr(dfyRequestBase));
+        ApiLog apiLog = new ApiLog();
+        apiLog.setSystem("difengyun");
+        apiLog.setService(url);
+        apiLog.setRequest(post);
+        apiLog.setResponse(JSONUtil.toJsonStr(post));
+        apiLogDao.save(apiLog);
         return post;
 
     }

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

@@ -1,12 +1,8 @@
 package com.zswl.cloud.springBtach.server.core.api.dfy;
 
 import cn.hutool.crypto.SecureUtil;
-import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
-import com.zswl.cloud.springBtach.server.core.api.dfy.request.ScenicRequest;
-import com.zswl.cloud.springBtach.server.core.api.dfy.request.ScenicResponse;
 import org.apache.commons.lang3.StringUtils;
 
 import java.util.ArrayList;
@@ -18,42 +14,6 @@ import java.util.List;
  */
 public class Signature {
 
-    private static final String API_SIGNATURE_KEY = "sign";
-
-    public static void main(String[] args) {
-
-
-        ScenicRequest scenicRequest = new ScenicRequest();
-        ScenicRequest.Scenic scenic = new ScenicRequest.Scenic();
-        scenic.setKey("南京");
-        scenic.setPage("1");
-        scenic.setPageSize("10");
-
-
-        scenicRequest.setData(scenic);
-//71C6F9A4927718E2E0B94D9D834875F2
-//71C6F9A4927718E2E0B94D9D834875F2
-
-        String SecretKey="aaaaaaaa";
-
-//        System.out.println(JSONUtil.toJsonStr(scenicRequest));
-        scenicRequest.setApiKey("tickettest");
-        String signature = getSignature(JSONUtil.parseObj(scenicRequest), SecretKey);
-//        System.out.println(signature);
-        scenicRequest.setSign(signature);
-//        scenicRequest.setApiKey("tickettest");
-
-//        String data = Base64Encoder.encode(JSONUtil.parseObj(scenicRequest).get("data").toString());
-//        System.out.println(data);
-        System.out.println(JSONUtil.toJsonStr(scenicRequest));
-
-        String post = HttpUtil.post("https://doptest-api.dfyoo.com/Ticket/scenicList", JSONUtil.toJsonStr(scenicRequest));
-
-        ScenicResponse bean = JSONUtil.toBean(post, ScenicResponse.class);
-        System.out.println(JSONUtil.toJsonStr(bean));
-
-
-    }
 
     /**
      * 根据入参和密钥获取签名