Browse Source

酒店调整

gongfuzhu 1 year ago
parent
commit
8949df5fa6

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

@@ -15,7 +15,7 @@ public class SubmitOrderRequest extends DfyBaseData {
     private String acctId;
 
     @ApiModelProperty(value = "订单ID")
-    private String orderId;
+    private Integer orderId;
 
     @ApiModelProperty(value = "支付方式", allowableValues = "1, 3")
     private int payType;

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

@@ -16,7 +16,7 @@ public class SubmitOrderRequest extends DfyBaseData {
         private String acctId;
 
         // 订单ID
-        private String orderId;
+        private Integer orderId;
 
         // 支付方式.1:途牛钱包代扣 3.企业支付宝代扣
         private int payType;

+ 2 - 2
SpringBatchServiceClient/src/main/java/com/zswl/cloud/springBatch/client/model/dfy/Ticket/response/CreateOrderNewResponse.java

@@ -19,10 +19,10 @@ public class CreateOrderNewResponse extends DfyResponseBase {
     public class Datas {
 
         // 笛风订单号
-        private int orderId;
+        private Integer orderId;
 
         // 笛风订单号是否新生成,1:是,0:否。
-        private int isNewFlag;
+        private Integer isNewFlag;
 
 
     }

+ 4 - 4
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/job/dfy/HotelDeliveryJob.java

@@ -11,6 +11,7 @@ import com.zhongshu.payment.client.service.v2.OrderService2;
 import com.zhongshu.payment.client.service.v2.PaymentService2;
 import com.zhongshu.payment.client.type.OrderType;
 import com.zswl.cloud.springBatch.client.model.dfy.Hotel.request.SubmitOrderRequest;
+import com.zswl.cloud.springBatch.client.model.dfy.Hotel.response.AddOrderResponse;
 import com.zswl.cloud.springBatch.client.model.dfy.Hotel.response.SubmitOrderResponse;
 import com.zswl.cloud.springBtach.server.core.api.dfy.DomesticHotelApi;
 import com.zswl.cloud.springBtach.server.core.job.standard.StandarDeliveryJob;
@@ -58,19 +59,18 @@ public class HotelDeliveryJob {
                     ResultContent<GoodsResultModel> goodsResultModelResultContent = orderService2.orderInfo(goodsResultModel.getOrderNo());
                     BigDecimal payAmount = goodsResultModelResultContent.getContent().getPayAmount();
 
+                    String extend = goodsResultModel.getExtend();
+                    AddOrderResponse.Datas bean = JSONUtil.toBean(extend, AddOrderResponse.Datas.class);
 
-                    JSONObject entries = JSONUtil.parseObj(goodsResultModel.getExtend());
-                    String orderId = (String) entries.get("hotlOrderId");
 
                     SubmitOrderRequest submitOrderRequest = new SubmitOrderRequest();
-                    submitOrderRequest.setOrderId(orderId);
+                    submitOrderRequest.setOrderId(bean.getOrderId());
                     submitOrderRequest.setPayType(payType);
                     submitOrderRequest.setPlatform(payAmount.toString());
 
                     SubmitOrderResponse submitOrderResponse = domesticHotelApi.submitOrder(submitOrderRequest);
 
 
-                    String extend = goodsResultModel.getExtend();
                     JSONObject entries1 = JSONUtil.parseObj(extend);
                     entries1.set("response", submitOrderResponse);
                     if (!submitOrderResponse.getSuccess()) {

+ 100 - 0
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/job/dfy/HotelPayJob.java

@@ -0,0 +1,100 @@
+package com.zswl.cloud.springBtach.server.core.job.dfy;
+
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.json.JSONUtil;
+import com.github.microservice.auth.client.content.ResultContent;
+import com.github.microservice.auth.client.content.ResultState;
+import com.zhongshu.payment.client.model.order.v2.GoodsResultModel;
+import com.zhongshu.payment.client.model.payment.zswl.CreatePayment2Model;
+import com.zhongshu.payment.client.service.v2.OrderService2;
+import com.zhongshu.payment.client.service.v2.PaymentService2;
+import com.zswl.cloud.springBatch.client.model.dfy.Hotel.request.OrderDetailRequest;
+import com.zswl.cloud.springBatch.client.model.dfy.Hotel.response.AddOrderResponse;
+import com.zswl.cloud.springBatch.client.model.dfy.Hotel.response.OrderDetailResponse;
+import com.zswl.cloud.springBtach.server.core.api.dfy.DomesticHotelApi;
+import com.zswl.cloud.springBtach.server.core.job.standard.StandarPayJob;
+import lombok.Data;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.batch.core.Job;
+import org.springframework.batch.core.Step;
+import org.springframework.batch.core.configuration.annotation.JobBuilderFactory;
+import org.springframework.batch.core.configuration.annotation.StepBuilderFactory;
+import org.springframework.batch.core.launch.support.RunIdIncrementer;
+import org.springframework.batch.repeat.RepeatStatus;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Data
+@Configuration
+@Log4j2
+public class HotelPayJob {
+
+    @Autowired
+    private StandarPayJob standarPayJob;
+
+    @Resource
+    private JobBuilderFactory jobBuilderFactory;
+    @Resource
+    private StepBuilderFactory stepBuilderFactory;
+
+    @Autowired
+    PaymentService2 paymentService2;
+
+    @Autowired
+    OrderService2 orderService2;
+
+    @Autowired
+    private DomesticHotelApi domesticHotelApi;
+
+
+    public Step hotelPayStep() {
+        return stepBuilderFactory.get("hotelPayStep")
+                .tasklet((contribution, chunkContext) -> {
+                    CreatePayment2Model createPayment2Model = standarPayJob.getParameter().get();
+                    ResultContent<List<GoodsResultModel>> listResultContent = orderService2.goodsDetail(createPayment2Model.getOrderNo());
+                    GoodsResultModel goodsResultModel = listResultContent.getContent().get(0);
+                    String extend = goodsResultModel.getExtend();
+                    AddOrderResponse.Datas bean = JSONUtil.toBean(extend, AddOrderResponse.Datas.class);
+
+                    OrderDetailRequest orderDetailRequest = new OrderDetailRequest();
+                    orderDetailRequest.setOrderId(bean.getOrderId());
+
+                    OrderDetailResponse orderDetailResponse = domesticHotelApi.orderDetail(orderDetailRequest);
+                    OrderDetailResponse.OrderInfo orderInfo = orderDetailResponse.getData().getOrderInfo();
+                    // 请求不成功
+                    if (!orderDetailResponse.getSuccess()) {
+                        standarPayJob.getResultContent().set(ResultContent.build(ResultState.Fail, orderDetailResponse.getMsg()));
+                        return RepeatStatus.FINISHED;
+                    }
+
+                    if (!orderInfo.getOrderStatus().equals("待付款")) {
+                        standarPayJob.getResultContent().set(ResultContent.build(ResultState.Fail, "渠道订单不可用:" + orderInfo.getOrderStatus()));
+                        return RepeatStatus.FINISHED;
+                    }
+
+                    if (!NumberUtil.equals(orderInfo.getTotalPrice(),goodsResultModel.getPayAmount())){
+                        standarPayJob.getResultContent().set(ResultContent.build(ResultState.Fail, "支付价格和渠道价格不相等"));
+                        return RepeatStatus.FINISHED;
+                    }
+
+                    standarPayJob.getResultContent().set(paymentService2.creatPayOrder(createPayment2Model));
+                    return RepeatStatus.FINISHED;
+                })
+                .build();
+    }
+
+    @Bean
+    public Job hotelPay() {
+        return getJobBuilderFactory()
+                .get("hotelPayJob")
+                .start(hotelPayStep())
+                .incrementer(new RunIdIncrementer())
+                .build();
+    }
+
+
+}

+ 16 - 4
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/job/dfy/TicetPayJob.java

@@ -1,10 +1,9 @@
 package com.zswl.cloud.springBtach.server.core.job.dfy;
 
-import cn.hutool.json.JSONObject;
+import cn.hutool.core.util.NumberUtil;
 import cn.hutool.json.JSONUtil;
 import com.github.microservice.auth.client.content.ResultContent;
 import com.github.microservice.auth.client.content.ResultState;
-import com.github.microservice.core.util.JsonUtil;
 import com.zhongshu.payment.client.model.order.v2.GoodsResultModel;
 import com.zhongshu.payment.client.model.payment.zswl.CreatePayment2Model;
 import com.zhongshu.payment.client.service.v2.OrderService2;
@@ -57,17 +56,30 @@ public class TicetPayJob {
                 .tasklet((contribution, chunkContext) -> {
                     CreatePayment2Model createPayment2Model = standarPayJob.getParameter().get();
                     ResultContent<List<GoodsResultModel>> listResultContent = orderService2.goodsDetail(createPayment2Model.getOrderNo());
-                    String extend = listResultContent.getContent().get(0).getExtend();
+                    GoodsResultModel goodsResultModel = listResultContent.getContent().get(0);
+                    String extend = goodsResultModel.getExtend();
                     CreateOrderNewResponse.Datas bean = JSONUtil.toBean(extend, CreateOrderNewResponse.Datas.class);
 
                     OrderDetailRequest orderDetailRequest = new OrderDetailRequest();
                     orderDetailRequest.setOrderId(bean.getOrderId());
                     OrderDetailResponse orderDetailResponse = ticketApi.orderDetail(orderDetailRequest);
-                    if (!orderDetailResponse.getData().getOrderInfo().getCanPay().equals("1")) {
+                    OrderDetailResponse.Datas data = orderDetailResponse.getData();
+
+                    // 请求不成功
+                    if (!orderDetailResponse.getSuccess()) {
+                        standarPayJob.getResultContent().set(ResultContent.build(ResultState.Fail, orderDetailResponse.getMsg()));
+                        return RepeatStatus.FINISHED;
+                    }
+                    if (!data.getOrderInfo().getCanPay().equals("1")) {
                         standarPayJob.getResultContent().set(ResultContent.build(ResultState.Fail, "三方渠道订单不可用"));
                         return RepeatStatus.FINISHED;
                     }
 
+                    if (!NumberUtil.equals(data.getOrderInfo().getAmoutPrice(), goodsResultModel.getPayAmount())) {
+                        standarPayJob.getResultContent().set(ResultContent.build(ResultState.Fail, "支付价格和渠道价格不相等"));
+                        return RepeatStatus.FINISHED;
+                    }
+
                     standarPayJob.getResultContent().set(paymentService2.creatPayOrder(createPayment2Model));
                     return RepeatStatus.FINISHED;
                 })

+ 4 - 5
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/job/dfy/TicketDeliveryJob.java

@@ -12,6 +12,7 @@ import com.zhongshu.payment.client.service.v2.OrderService2;
 import com.zhongshu.payment.client.service.v2.PaymentService2;
 import com.zhongshu.payment.client.type.OrderType;
 import com.zswl.cloud.springBatch.client.model.dfy.Ticket.request.SubmitOrderRequest;
+import com.zswl.cloud.springBatch.client.model.dfy.Ticket.response.CreateOrderNewResponse;
 import com.zswl.cloud.springBatch.client.model.dfy.Ticket.response.SubmitOrderResponse;
 import com.zswl.cloud.springBtach.server.core.api.dfy.TicketApi;
 import com.zswl.cloud.springBtach.server.core.job.standard.StandarDeliveryJob;
@@ -59,19 +60,17 @@ public class TicketDeliveryJob {
                     ResultContent<GoodsResultModel> goodsResultModelResultContent = orderService2.orderInfo(goodsResultModel.getOrderNo());
                     BigDecimal payAmount = goodsResultModelResultContent.getContent().getPayAmount();
 
-
-                    JSONObject entries = JSONUtil.parseObj(goodsResultModel.getExtend());
-                    String orderId = (String) entries.get("orderId");
+                    String extend = goodsResultModel.getExtend();
+                    CreateOrderNewResponse.Datas bean = JSONUtil.toBean(extend, CreateOrderNewResponse.Datas.class);
 
                     SubmitOrderRequest submitOrderRequest = new SubmitOrderRequest();
                     submitOrderRequest.setPay(payAmount);
                     submitOrderRequest.setPayType(payType);
-                    submitOrderRequest.setOrderId(orderId);
+                    submitOrderRequest.setOrderId(bean.getOrderId());
 
                     SubmitOrderResponse submitOrderResponse = ticketApi.submitOrderResponse(submitOrderRequest);
 
 
-                    String extend = goodsResultModel.getExtend();
                     JSONObject entries1 = JSONUtil.parseObj(extend);
                     entries1.set("response", submitOrderResponse);
                     if (!submitOrderResponse.getSuccess()) {

+ 1 - 1
SpringBatchServiceServer/src/main/java/com/zswl/cloud/springBtach/server/core/service/impl/DfyHotelServiceImpl.java

@@ -122,7 +122,7 @@ public class DfyHotelServiceImpl implements DfyHotelService {
         createOrder2Model.setAccesserUserId(authAccount);
         createOrder2Model.setChannel(addOrderRequest.getChannel());
         JSONObject goodsInfo = JSONUtil.parseObj(addOrderRequest);
-        goodsInfo.set("HotlOrderId", addOrderResponse.getData().getOrderId());
+        goodsInfo.set("hotlOrderId", addOrderResponse.getData().getOrderId());
         goodsInfo.set("goodsName", hotelDetailResponse.getData().getChineseName());
         goodsInfo.set("goodsPath", addOrderRequest.getRoomPic());
 

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

@@ -114,7 +114,7 @@ public class DfyTicketServiceImpl implements DfyTicketService {
         createOrder2Model.setAccesserUserId(authAccount);
         createOrder2Model.setChannel(createOrderNewRequest.getChannel());
         JSONObject goodsInfo = JSONUtil.parseObj(createOrderNewRequest2);
-        goodsInfo.set("orderId", createOrderNewResponse.getData().getOrderId());
+        goodsInfo.set("tickeOrderId", createOrderNewResponse.getData().getOrderId());
         goodsInfo.set("goodsName", detailResponse.getData().getProductName());
         goodsInfo.set("goodsPath", scenicDetailResponse.getData().getDefaultPic());