提交 07e1732e authored 作者: hzh's avatar hzh

机票新增支付接口

上级 87a87744
......@@ -66,6 +66,10 @@ public enum AirportApiEnum implements ApiEnum {
* 确认出票
*/
CONFIRM_TICKET("/open/plane/order/confirmTicket", "机票订单确认出票;调用此接口,会自动扣款(或欠款记账)并出票。前提是企业必须开通预存或月结欠款支付,否则会提示账户问题导致出票不成功。"),
/**
* 机票支付
*/
PAY_ORDER("/open/plane/order/payOrder", "机票支付"),
/**
* 取消订单
*/
......
package org.dromara.common.ys.model.req.airport;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.ys.model.BaseModel;
/**
* @author hzh
* @date 2024-11-15
**/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class OrderPayModel extends BaseModel {
/**
* 订单编号
**/
private String orderNo;
}
......@@ -3,6 +3,7 @@ package org.dromara.common.ys.service;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.model.req.airport.OrderConfirmModel;
import org.dromara.common.ys.model.req.airport.OrderPayModel;
import org.dromara.common.ys.model.req.airport.OrderRefundCancelModel;
import org.dromara.common.ys.model.req.airport.QueryFlightStopModel;
import org.dromara.common.ys.model.res.airport.*;
......@@ -90,10 +91,17 @@ public interface IAirportService {
*
* @param userId 用户id
* @param model 确认出票参数
* @return 确认出票结果
*/
void confirmOrder(String userId, OrderConfirmModel model);
/**
* 机票支付
*
* @param userId 用户id
* @paraodel 机票支付参数
*/
void payOrder(String userId, OrderPayModel model);
/**
* 获取经停信息
*
......
......@@ -10,6 +10,7 @@ import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.enums.DomainEnum;
import org.dromara.common.ys.enums.airport.AirportApiEnum;
import org.dromara.common.ys.model.req.airport.OrderConfirmModel;
import org.dromara.common.ys.model.req.airport.OrderPayModel;
import org.dromara.common.ys.model.req.airport.QueryFlightStopModel;
import org.dromara.common.ys.model.res.airport.*;
import org.dromara.common.ys.service.IAirportService;
......@@ -200,6 +201,21 @@ public class AirPortServiceImpl implements IAirportService {
}
}
@Override
public void payOrder(String userId, OrderPayModel model) {
ApiHttpResponse res = Api.v1(
RequestMethodEnum.POST,
DomainEnum.TEST.getDomain(),
AirportApiEnum.PAY_ORDER.getUrl(),
userId,
null,
JSON.toJSONString(model)
);
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
}
@Override
public RefundOfVoyageModel orderRefundOfVoyage(String userId, org.dromara.common.ys.model.req.airport.RefundOfVoyageModel model) {
ApiHttpResponse res = Api.v1(
......
......@@ -20,6 +20,7 @@ import org.dromara.common.ys.constant.Cplx;
import org.dromara.common.ys.constant.TripType;
import org.dromara.common.ys.model.req.airport.OrderConfirmModel;
import org.dromara.common.ys.model.req.airport.OrderListModel;
import org.dromara.common.ys.model.req.airport.OrderPayModel;
import org.dromara.common.ys.model.req.airport.QueryFlightStopModel;
import org.dromara.common.ys.model.req.airport.bookOrder.BookOrderModel;
import org.dromara.common.ys.model.req.insurance.BxcpModel;
......@@ -189,6 +190,18 @@ public class AirportController extends BaseController {
return R.ok(true);
}
/**
* 机票支付
*/
@GlobalTransactional(timeoutMills = 600000, rollbackFor = Exception.class)
@PostMapping("/payOrder")
public R<Boolean> payOrder(@RequestBody OrderPayModel model) {
airPortService.payOrder(getUserId(), model);
//跟新到订单表
orderAirportService.updateOrderInfo(List.of(model.getOrderNo()));
return R.ok(true);
}
/**
* 取消订单
*/
......
......@@ -8,6 +8,7 @@ import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.ys.constant.airport.OrderStatus;
import org.dromara.common.ys.constant.train.RefundOrderStatus;
import org.dromara.common.ys.model.req.airport.OrderConfirmModel;
import org.dromara.common.ys.model.req.airport.OrderPayModel;
import org.dromara.common.ys.model.req.hotel.PayOrderModel;
import org.dromara.common.ys.model.req.train.ConfirmOrderModel;
import org.dromara.common.ys.service.IAirportService;
......@@ -165,6 +166,12 @@ public class RemoteYsOrderServiceImpl implements RemoteYsOrderService {
} catch (Exception e) {
log.error("飞机票确认出票失败,orderNo:{},失败原因:{}", orderNo, e.getMessage());
}
try {
//飞机票支付
airportService.payOrder(vo.getPersonCode(), new OrderPayModel().setOrderNo(orderNo));
} catch (Exception e) {
log.error("飞机票支付失败,orderNo:{},失败原因:{}", orderNo, e.getMessage());
}
orderAirportService.updateOrderInfo(List.of(orderNo));
});
} else if (StringUtils.equals(orderType, OrderType.TRAIN.getType())) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论