提交 8e9d61af authored 作者: hzh's avatar hzh

火车票退票功能实现

上级 fbc58340
......@@ -15,6 +15,11 @@ public interface RemoteOrderService {
*/
void updateTrainOrder();
/**
* 更新火车票退款订单
*/
void updateTrainRefundOrder();
/**
* 更新用车订单
*/
......
package org.dromara.common.ys.constant.train;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author wenhe
*/
@Getter
@AllArgsConstructor
public enum RefundOrderStatus {
//状态1待送审 2 审批中 3办理中 4已办理未退款 5取消中 6已取消 7已退款
WAIT_AUDIT("1", "待送审"),
AUDITING("2", "审批中"),
HANDLING("3", "办理中"),
ALREADY_HANDLE("4", "已办理未退款"),
CANCELING("5", "取消中"),
CANCELED("6", "已取消"),
REFUNDED("7", "已退款");
private final String code;
private final String desc;
}
package org.dromara.job.snailjob;
import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.springframework.stereotype.Component;
/**
* @author hzh
* @date 2024-11-18
*/
@AllArgsConstructor
@Component
@JobExecutor(name = "orderTrainRefundJobExecutor")
public class OrderTrainRefundJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateTrainRefundOrder();
return ExecuteResult.success("更新成功");
}
}
package org.dromara.server.domain;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
......@@ -149,6 +151,11 @@ public class OrderTrainRefund extends TenantEntity {
*/
private String toTime;
/**
* 退票状态
*/
private String orderStatus;
/**
* 删除标志(0代表存在 2代表删除)
*/
......
package org.dromara.server.domain.bo;
import org.dromara.server.domain.OrderTrainRefund;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderTrainRefund;
/**
* 火车票退票单业务对象 biz_order_train_refund
......@@ -170,5 +171,9 @@ public class OrderTrainRefundBo extends BaseEntity {
@NotBlank(message = "到达时刻不能为空", groups = { AddGroup.class, EditGroup.class })
private String toTime;
/**
* 退票状态
*/
private String orderStatus;
}
package org.dromara.server.domain.vo;
import org.dromara.server.domain.OrderTrainRefund;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderTrainRefund;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
......@@ -178,5 +175,9 @@ public class OrderTrainRefundVo implements Serializable {
@ExcelProperty(value = "到达时刻")
private String toTime;
/**
* 退票状态
*/
@ExcelProperty(value = "退票状态")
private String orderStatus;
}
......@@ -4,19 +4,11 @@ package org.dromara.server.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.ys.constant.airport.OrderStatus;
import org.dromara.common.ys.constant.train.RefundOrderStatus;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.bo.OrderHotelBo;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.bo.OrderVehiclesBo;
import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.domain.vo.OrderHotelVo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.domain.vo.OrderVehiclesVo;
import org.dromara.server.service.IOrderAirportService;
import org.dromara.server.service.IOrderHotelService;
import org.dromara.server.service.IOrderTrainService;
import org.dromara.server.service.IOrderVehiclesService;
import org.dromara.server.domain.bo.*;
import org.dromara.server.domain.vo.*;
import org.dromara.server.service.*;
import org.springframework.stereotype.Service;
import java.util.Arrays;
......@@ -35,6 +27,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
private final IOrderAirportService orderAirportService;
private final IOrderTrainService orderTrainService;
private final IOrderTrainRefundService orderTrainRefundService;
private final IOrderVehiclesService orderVehiclesService;
private final IOrderHotelService orderHotelService;
......@@ -76,6 +69,22 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
);
}
/**
* 不需要更新的火车退票订单状态
*/
public static final List<String> TRAIN_REFUND_ORDER_STATUS_LIST = Arrays.asList(
RefundOrderStatus.CANCELED.getCode(),
RefundOrderStatus.REFUNDED.getCode()
);
@Override
public void updateTrainRefundOrder() {
List<OrderTrainRefundVo> orderList = orderTrainRefundService.queryList(new OrderTrainRefundBo());
orderTrainRefundService.updateOrderInfo(
orderList.stream().filter(item -> !TRAIN_REFUND_ORDER_STATUS_LIST.contains(item.getOrderStatus())).map(OrderTrainRefundVo::getRefundNo).collect(Collectors.toList())
);
}
/**
* 不需要更新的用车订单状态
*/
......
......@@ -147,7 +147,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
scheduledExecutorService.execute(() -> {
QueryTkOrderModel orderModel = airportService.detail(order.getPersonCode(), new org.dromara.common.ys.model.req.airport.QueryTkOrderModel().setOrderNo(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "tenantId");
baseMapper.updateById(order);
//跟新人员信息
List<OrdePsgInfoBean> psgList = orderModel.getOrdePsgList();
......
......@@ -124,7 +124,7 @@ public class OrderHotelServiceImpl extends AbstractBaseService<OrderHotelVo, Ord
scheduledExecutorService.execute(() -> {
HotelOrderQueryDetailModel orderModel = hotelService.hotelOrderDetail(order.getPersonCode(), new org.dromara.common.ys.model.req.hotel.HotelOrderQueryDetailModel().setOrderNo(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "tenantId");
baseMapper.updateById(order);
//跟新入住人信息集合
List<HotelOrderPsgInfoBean> psgList = orderModel.getHtOrderPsgList();
......
......@@ -8,8 +8,10 @@ import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.train.OrderRefundDetailModel;
import org.dromara.common.ys.model.res.train.OrderRefundListModel;
import org.dromara.common.ys.model.res.train.bean.BusinessInfo;
import org.dromara.common.ys.model.res.train.bean.BxOrderInfoBean;
import org.dromara.common.ys.model.res.train.bean.TrRefundticketInfoBean;
......@@ -120,8 +122,12 @@ public class OrderTrainRefundServiceImpl extends AbstractBaseService<OrderTrainR
scheduledExecutorService.execute(() -> {
OrderRefundDetailModel orderModel = trainService.orderRefundDetail(order.getPersonCode(), new org.dromara.common.ys.model.req.train.OrderRefundDetailModel().setRefundNo(order.getRefundNo()));
//获取订单状态
String orderStatus = getOrderStatus(order);
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "tenantId");
order.setOrderStatus(orderStatus);
baseMapper.updateById(order);
//跟新保险信息
......@@ -216,4 +222,24 @@ public class OrderTrainRefundServiceImpl extends AbstractBaseService<OrderTrainR
});
});
}
/**
* 获取订单状态
*
* @param order order
* @return 订单状态
*/
private String getOrderStatus(OrderTrainRefund order) {
try {
PageInfo<OrderRefundListModel> page = trainService.orderRefundList(order.getPersonCode(),
new org.dromara.common.ys.model.req.train.OrderRefundListModel()
.setCount(10)
.setPageNum(1)
.setRefundNo(order.getRefundNo())
);
return page.getList().get(0).getOrderStatus();
} catch (Exception e) {
return null;
}
}
}
......@@ -143,7 +143,7 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
scheduledExecutorService.execute(() -> {
OrderInfoModel orderModel = trainService.detail(order.getPersonCode(), new OrderQueryModel().setOrderNO(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "tenantId");
order.setOrderStatusName(orderModel.getOrderStatuName());
order.setIsByIdCard(orderModel.getIsByidcard());
order.setIsNoSeat(orderModel.getIsNoseat());
......
......@@ -15,9 +15,13 @@ import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.vehicles.OrderDetailModel;
import org.dromara.common.ys.service.IVehiclesService;
import org.dromara.server.base.AbstractBaseService;
import org.dromara.server.domain.*;
import org.dromara.server.domain.BizUser;
import org.dromara.server.domain.OrderVehicles;
import org.dromara.server.domain.OrderVehiclesBusiness;
import org.dromara.server.domain.OrderVehiclesPayInfo;
import org.dromara.server.domain.bo.OrderVehiclesBo;
import org.dromara.server.domain.vo.*;
import org.dromara.server.domain.vo.OrderVehiclesBusinessVo;
import org.dromara.server.domain.vo.OrderVehiclesVo;
import org.dromara.server.mapper.BizUserMapper;
import org.dromara.server.mapper.OrderVehiclesBusinessMapper;
import org.dromara.server.mapper.OrderVehiclesMapper;
......@@ -175,7 +179,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
scheduledExecutorService.execute(() -> {
OrderDetailModel orderModel = vehiclesService.detail(order.getPersonCode(), new org.dromara.common.ys.model.req.vehicles.OrderDetailModel().setOrderNo(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId", "orderId", "orderNo");
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "tenantId", "orderNo");
order.setIsCancel(orderModel.getIscancel());
order.setDdCityId(orderModel.getDdcityId());
order.setDdCityName(orderModel.getDdcityName());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论