|
@@ -1,18 +1,44 @@
|
|
|
package com.zswl.cloud.springBtach.server.core.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.lang.Snowflake;
|
|
|
+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;
|
|
|
+import com.github.microservice.auth.security.helper.AuthHelper;
|
|
|
+import com.zhongshu.payment.client.model.order.v2.CreatOrderResultModel;
|
|
|
+import com.zhongshu.payment.client.model.order.v2.CreateOrder2Model;
|
|
|
+import com.zhongshu.payment.client.service.v2.OrderService2;
|
|
|
+import com.zhongshu.payment.client.type.JobFlowMap;
|
|
|
+import com.zhongshu.payment.client.type.TransferOwner;
|
|
|
+import com.zhongshu.payment.client.type.TransferType;
|
|
|
import com.zswl.cloud.springBatch.client.model.dfy.Hotel.request.*;
|
|
|
import com.zswl.cloud.springBatch.client.model.dfy.Hotel.response.*;
|
|
|
import com.zswl.cloud.springBatch.client.service.DfyHotelService;
|
|
|
import com.zswl.cloud.springBtach.server.core.api.dfy.DomesticHotelApi;
|
|
|
+import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
@Service
|
|
|
public class DfyHotelServiceImpl implements DfyHotelService {
|
|
|
|
|
|
@Autowired
|
|
|
- DomesticHotelApi domesticHotelApi;
|
|
|
+ private DomesticHotelApi domesticHotelApi;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private Snowflake snowflake;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OrderService2 orderService2;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AuthHelper authHelper;
|
|
|
+
|
|
|
|
|
|
public ResultContent<QueryNewResponse> queryNew(QueryNewRequest queryNewRequest) {
|
|
|
return ResultContent.buildContent(domesticHotelApi.queryNew(queryNewRequest));
|
|
@@ -34,8 +60,79 @@ public class DfyHotelServiceImpl implements DfyHotelService {
|
|
|
return ResultContent.buildContent(domesticHotelApi.ratePlan(ratePlanRequest));
|
|
|
}
|
|
|
|
|
|
- public ResultContent<AddOrderResponse> addOrder(AddOrderRequest addOrderRequest) {
|
|
|
- return ResultContent.buildContent(domesticHotelApi.addOrder(addOrderRequest));
|
|
|
+ public ResultContent<CreatOrderResultModel> addOrder(AddOrderRequest addOrderRequest) {
|
|
|
+ String orderNo = snowflake.nextIdStr();
|
|
|
+ addOrderRequest.setSourceOrderId(orderNo);
|
|
|
+ HotelDetailRequest hotelDetailRequest = new HotelDetailRequest();
|
|
|
+ hotelDetailRequest.setHotelId(addOrderRequest.getHotelId());
|
|
|
+ HotelDetailResponse hotelDetailResponse = domesticHotelApi.hotelDetail(hotelDetailRequest);
|
|
|
+
|
|
|
+ RatePlanRequest ratePlanRequest = new RatePlanRequest();
|
|
|
+ ratePlanRequest.setRoomId(addOrderRequest.getRatePlanId());
|
|
|
+ ratePlanRequest.setHotelId(addOrderRequest.getHotelId());
|
|
|
+ ratePlanRequest.setCheckin(addOrderRequest.getCheckin());
|
|
|
+ ratePlanRequest.setCheckout(addOrderRequest.getCheckout());
|
|
|
+ ratePlanRequest.setRoomNum(addOrderRequest.getNumberofRooms());
|
|
|
+ ratePlanRequest.setChildNum(addOrderRequest.getChildNum());
|
|
|
+ ratePlanRequest.setChildAges(addOrderRequest.getChildAges());
|
|
|
+
|
|
|
+ RatePlanResponse ratePlanResponse = domesticHotelApi.ratePlan(ratePlanRequest);
|
|
|
+ BigDecimal totalPrice = ratePlanResponse.getData().getTotalPrice();
|
|
|
+ addOrderRequest.setTotalPrice(totalPrice.intValue());
|
|
|
+
|
|
|
+
|
|
|
+ AddOrderResponse addOrderResponse = domesticHotelApi.addOrder(addOrderRequest);
|
|
|
+ if (!addOrderResponse.getSuccess()) {
|
|
|
+ return ResultContent.build(ResultState.Fail, addOrderResponse.getData());
|
|
|
+ }
|
|
|
+// 平台订单
|
|
|
+
|
|
|
+ String shopId="6645c05f32e63427d1a45b34";
|
|
|
+
|
|
|
+ // 平台订单
|
|
|
+ CreateOrder2Model createOrder2Model = new CreateOrder2Model();
|
|
|
+ createOrder2Model.setOrderNo(orderNo);
|
|
|
+ createOrder2Model.setUserId(authHelper.getCurrentUser().getUserId());
|
|
|
+ createOrder2Model.setShopId(shopId);
|
|
|
+ JSONObject shopInfo = JSONUtil.parseObj(hotelDetailResponse);
|
|
|
+ shopInfo.set("hotelIdPic",addOrderRequest.getHotelIdPic());
|
|
|
+ createOrder2Model.setShopInfo(shopInfo);
|
|
|
+ createOrder2Model.setTotalAmount(totalPrice);
|
|
|
+ createOrder2Model.setDiscountAmount(BigDecimal.ZERO);
|
|
|
+ createOrder2Model.setPayAmount(totalPrice);
|
|
|
+ createOrder2Model.setAccesserUserId("648b55efff875512b518c28c");
|
|
|
+ createOrder2Model.setChannel(addOrderRequest.getChannel());
|
|
|
+ JSONObject goodsInfo = JSONUtil.parseObj(addOrderRequest);
|
|
|
+ goodsInfo.set("HotlOrderId", addOrderResponse.getData().getOrderId());
|
|
|
+ goodsInfo.set("goodsName", hotelDetailResponse.getData().getChineseName());
|
|
|
+ goodsInfo.set("goodsPath", addOrderRequest.getRoomPic());
|
|
|
+
|
|
|
+ CreateOrder2Model.Goods goods = new CreateOrder2Model.Goods();
|
|
|
+ goods.setGoodsId(addOrderRequest.getRatePlanId());
|
|
|
+ goods.setJobFlowMap(JobFlowMap.Hotel);
|
|
|
+ goods.setGoodsInfo(goodsInfo);
|
|
|
+ goods.setPayAmount(totalPrice);
|
|
|
+ goods.setValidDay(90);
|
|
|
+ goods.setTransferType(TransferType.RATIO);
|
|
|
+
|
|
|
+ List<CreateOrder2Model.Owner> ownerList = new ArrayList<>();
|
|
|
+
|
|
|
+ CreateOrder2Model.Owner platfor = new CreateOrder2Model.Owner();
|
|
|
+ platfor.setOwner(TransferOwner.PLATFORM);
|
|
|
+ platfor.setValue(BigDecimal.ZERO);
|
|
|
+
|
|
|
+ CreateOrder2Model.Owner buy = new CreateOrder2Model.Owner();
|
|
|
+ buy.setOwner(TransferOwner.BUY_SHOP);
|
|
|
+ buy.setValue(BigDecimal.valueOf(100));
|
|
|
+ buy.setShopId(shopId);
|
|
|
+
|
|
|
+ ownerList.add(platfor);
|
|
|
+ ownerList.add(buy);
|
|
|
+ goods.setTransferRrule(ownerList);
|
|
|
+ goods.setExtend(JSONUtil.toJsonStr(addOrderResponse.getData()));
|
|
|
+ createOrder2Model.setGoodsList(List.of(goods));
|
|
|
+ return orderService2.creat(createOrder2Model);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public ResultContent<OrderDetailResponse> orderDetail(OrderDetailRequest orderDetailRequest) {
|