gongfuzhu 1 năm trước cách đây
mục cha
commit
f6898d9a41

+ 1 - 1
SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/Ticket/request/CreateOrderNewRequest.java

@@ -14,7 +14,7 @@ import java.util.List;
 @Data
 @AllArgsConstructor
 @NoArgsConstructor
-public class CreateOrderNewRequest extends DfyBaseData {
+public class CreateOrderNewRequest {
 
     @ApiModelProperty(required = true)
     @NotNull

+ 122 - 0
SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/Ticket/request/CreateOrderNewRequest2.java

@@ -0,0 +1,122 @@
+package com.zswl.cloud.springBatch.client.model.dfy.Ticket.request;
+
+
+import com.zhongshu.payment.client.type.Channel;
+import com.zswl.cloud.springBatch.client.model.dfy.DfyBaseData;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CreateOrderNewRequest2 extends DfyBaseData {
+
+    // 分销商订单号,非空时,可防止重复下单。若重复下单,则返回之前已生成的orderId,且isNewFlag=0。
+    @ApiModelProperty(hidden = true)
+    private String sourceOrderId;
+
+    // 笛风账号
+    @ApiModelProperty(hidden = true)
+    private String acctId;
+
+    // 门票产品ID
+    @ApiModelProperty(required = true)
+    @NotNull
+    private int productId;
+
+    // 出游日期. “YYYY-MM-DD”。请在前台限制,只有价格日历中存在的团期,才能作为出游日期。
+    private String startTime;
+
+    // 预订数量
+    private Integer bookNumber;
+
+    // 取票人信息
+    private CreateOrderNewRequest.ContactInfo contact;
+
+    // 游客资料列表。“门票详情接口->custInfoLimit“=2、3、6、7时,此字段必填。
+    private List<CreateOrderNewRequest.VisitorInfo> touristList;
+
+    private CreateOrderNewRequest.DeliveryInfo delivery;
+
+    //使用笛风券金额
+    //
+    //使用笛风券会自动扣减订单金额,比如预订产品总额100元,使用旅游券10元,则下单后订单金额为90元;
+    //
+    //假如使用笛风券金额=预订产品总额,则订单金额为0元,并且下单后不需要调用【出票(代扣)接口】,会自动出票,因为这种情况系统认为钱已经付清了;
+    //
+    //如遇退票、预订失败等情况,已使用的笛风券会自动退回;
+    private Integer couponValue;
+
+
+//    @Data
+//    @AllArgsConstructor
+//    @NoArgsConstructor
+//    public class ContactInfo {
+//        // 取票人姓名
+//        private String contactName;
+//
+//        // 取票人邮箱。当“门票详情接口->admissionVoucherCode”=205或302时必传,否则不要传。
+//        private String contactEmail;
+//
+//        // 取票人手机号码(入园凭证会发送到此手机号码上,请务必保证手机号码真实有效)
+//        private String contactTel;
+//
+//        // 证件类型。当“门票详情接口->custInfoLimit”=4、6、7时必传;否则不要传。选项参照“门票详情接口->certificateType”字段。
+//        private Integer psptType;
+//
+//        // 证件号码。当“门票详情接口->custInfoLimit”=4、6、7时必传;否则不要传。
+//        private String psptId;
+//
+//    }
+//
+//    @Data
+//    @AllArgsConstructor
+//    @NoArgsConstructor
+//    public class VisitorInfo {
+//        // 游客姓名
+//        private String name;
+//
+//        // 证件类型
+//        private Integer psptType;
+//
+//        // 证件号码
+//        private String psptId;
+//
+//        // 电话号码
+//        private String tel;
+//
+//        // 邮箱
+//        private String email;
+//
+//
+//    }
+//
+//    @Data
+//    @AllArgsConstructor
+//    @NoArgsConstructor
+//    public class DeliveryInfo {
+//        // 配送类型
+//        private Integer deliveryType;
+//
+//        // 收件人
+//        private String receiverName;
+//
+//        // 收件电话
+//        private String telNum;
+//
+//        // 收件地址
+//        private String deliveryEndAddress;
+//
+//        // 邮编
+//        private String zipCode;
+//
+//
+//    }
+
+
+}

+ 5 - 5
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/api/dfy/TicketApi.java

@@ -75,7 +75,7 @@ public class TicketApi {
 
 
     // 创建订单接口
-    public CreateOrderNewResponse createOrderNew(CreateOrderNewRequest createOrderNewRequest) {
+    public CreateOrderNewResponse createOrderNew(CreateOrderNewRequest2 createOrderNewRequest) {
 
         createOrderNewRequest.setAcctId(acctId);
         String post = post(createOrderNewRequest, "/Ticket/createOrderNew");
@@ -129,10 +129,10 @@ public class TicketApi {
         String signature = Signature.getSignature(JSONUtil.parseObj(dfyRequestBase), secretKey);
         dfyRequestBase.setSign(signature);
 
-        HttpRequest httpRequest = HttpRequest.post(host + url);
-        String post = httpRequest.setHttpProxy(proxyHost, 3128)
-                .timeout(-1).body(JSONUtil.toJsonStr(dfyRequestBase)).execute().body();
-//        String post = HttpUtil.post(host + url, JSONUtil.toJsonStr(dfyRequestBase));
+//        HttpRequest httpRequest = HttpRequest.post(host + url);
+//        String post = httpRequest.setHttpProxy(proxyHost, 3128)
+//                .timeout(-1).body(JSONUtil.toJsonStr(dfyRequestBase)).execute().body();
+        String post = HttpUtil.post(host + url, JSONUtil.toJsonStr(dfyRequestBase));
         ApiLog apiLog = new ApiLog();
         apiLog.setSystem("difengyun");
         apiLog.setService(url);

+ 4 - 8
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/service/impl/DfyTicketServiceImpl.java

@@ -2,7 +2,6 @@ package com.zswl.cloud.springBtach.server.core.service.impl;
 
 import cn.hutool.core.lang.Snowflake;
 import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.github.microservice.auth.client.content.ResultContent;
 import com.github.microservice.auth.client.content.ResultState;
@@ -21,8 +20,7 @@ import com.zswl.cloud.springBatch.client.model.dfy.Ticket.response.*;
 import com.zswl.cloud.springBatch.client.service.DfyTicketService;
 import com.zswl.cloud.springBtach.server.core.api.dfy.TicketApi;
 import lombok.extern.log4j.Log4j2;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -72,10 +70,6 @@ public class DfyTicketServiceImpl implements DfyTicketService {
 
         String orderNo = snowflake.nextIdStr();
         createOrderNewRequest.setSourceOrderId(orderNo);
-        CreateOrderNewResponse orderNew = ticketApi.createOrderNew(createOrderNewRequest);
-        if (!orderNew.getSuccess()) {
-            return ResultContent.build(ResultState.Fail, orderNew.getMsg());
-        }
 
         DetailResponse detailResponse = ticketApi.detail(new DetailRequest(createOrderNewRequest.getProductId()));
         BigDecimal salePrice = detailResponse.getData().getSalePrice();
@@ -86,9 +80,11 @@ public class DfyTicketServiceImpl implements DfyTicketService {
         if (ObjectUtil.isEmpty(authAccount)) {
             return ResultContent.build(ResultState.Fail, "分账账户未设置");
         }
+        CreateOrderNewRequest2 createOrderNewRequest2 = new CreateOrderNewRequest2();
+        BeanUtils.copyProperties(createOrderNewRequest, createOrderNewRequest2);
 
         // 渠道订单
-        CreateOrderNewResponse createOrderNewResponse = ticketApi.createOrderNew(createOrderNewRequest);
+        CreateOrderNewResponse createOrderNewResponse = ticketApi.createOrderNew(createOrderNewRequest2);
         if (!createOrderNewResponse.getSuccess()) {
             return ResultContent.build(ResultState.Fail, createOrderNewResponse.getMsg());
         }