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

火车票退票功能实现

上级 fbc58340
...@@ -15,6 +15,11 @@ public interface RemoteOrderService { ...@@ -15,6 +15,11 @@ public interface RemoteOrderService {
*/ */
void updateTrainOrder(); 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; package org.dromara.server.domain;
import lombok.experimental.Accessors; import com.baomidou.mybatisplus.annotation.TableId;
import org.dromara.common.tenant.core.TenantEntity; import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
...@@ -149,6 +151,11 @@ public class OrderTrainRefund extends TenantEntity { ...@@ -149,6 +151,11 @@ public class OrderTrainRefund extends TenantEntity {
*/ */
private String toTime; private String toTime;
/**
* 退票状态
*/
private String orderStatus;
/** /**
* 删除标志(0代表存在 2代表删除) * 删除标志(0代表存在 2代表删除)
*/ */
......
package org.dromara.server.domain.bo; 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 io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; 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 * 火车票退票单业务对象 biz_order_train_refund
...@@ -170,5 +171,9 @@ public class OrderTrainRefundBo extends BaseEntity { ...@@ -170,5 +171,9 @@ public class OrderTrainRefundBo extends BaseEntity {
@NotBlank(message = "到达时刻不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "到达时刻不能为空", groups = { AddGroup.class, EditGroup.class })
private String toTime; private String toTime;
/**
* 退票状态
*/
private String orderStatus;
} }
package org.dromara.server.domain.vo; package org.dromara.server.domain.vo;
import org.dromara.server.domain.OrderTrainRefund;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty; 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 io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.server.domain.OrderTrainRefund;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
...@@ -178,5 +175,9 @@ public class OrderTrainRefundVo implements Serializable { ...@@ -178,5 +175,9 @@ public class OrderTrainRefundVo implements Serializable {
@ExcelProperty(value = "到达时刻") @ExcelProperty(value = "到达时刻")
private String toTime; private String toTime;
/**
* 退票状态
*/
@ExcelProperty(value = "退票状态")
private String orderStatus;
} }
...@@ -4,19 +4,11 @@ package org.dromara.server.dubbo; ...@@ -4,19 +4,11 @@ package org.dromara.server.dubbo;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService; import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.ys.constant.airport.OrderStatus; 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.api.RemoteOrderService;
import org.dromara.server.domain.bo.OrderAirportBo; import org.dromara.server.domain.bo.*;
import org.dromara.server.domain.bo.OrderHotelBo; import org.dromara.server.domain.vo.*;
import org.dromara.server.domain.bo.OrderTrainBo; import org.dromara.server.service.*;
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.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
...@@ -35,6 +27,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -35,6 +27,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
private final IOrderAirportService orderAirportService; private final IOrderAirportService orderAirportService;
private final IOrderTrainService orderTrainService; private final IOrderTrainService orderTrainService;
private final IOrderTrainRefundService orderTrainRefundService;
private final IOrderVehiclesService orderVehiclesService; private final IOrderVehiclesService orderVehiclesService;
private final IOrderHotelService orderHotelService; private final IOrderHotelService orderHotelService;
...@@ -76,6 +69,22 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -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, ...@@ -147,7 +147,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
scheduledExecutorService.execute(() -> { scheduledExecutorService.execute(() -> {
QueryTkOrderModel orderModel = airportService.detail(order.getPersonCode(), new org.dromara.common.ys.model.req.airport.QueryTkOrderModel().setOrderNo(order.getOrderNo())); 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); baseMapper.updateById(order);
//跟新人员信息 //跟新人员信息
List<OrdePsgInfoBean> psgList = orderModel.getOrdePsgList(); List<OrdePsgInfoBean> psgList = orderModel.getOrdePsgList();
......
...@@ -124,7 +124,7 @@ public class OrderHotelServiceImpl extends AbstractBaseService<OrderHotelVo, Ord ...@@ -124,7 +124,7 @@ public class OrderHotelServiceImpl extends AbstractBaseService<OrderHotelVo, Ord
scheduledExecutorService.execute(() -> { scheduledExecutorService.execute(() -> {
HotelOrderQueryDetailModel orderModel = hotelService.hotelOrderDetail(order.getPersonCode(), new org.dromara.common.ys.model.req.hotel.HotelOrderQueryDetailModel().setOrderNo(order.getOrderNo())); 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); baseMapper.updateById(order);
//跟新入住人信息集合 //跟新入住人信息集合
List<HotelOrderPsgInfoBean> psgList = orderModel.getHtOrderPsgList(); List<HotelOrderPsgInfoBean> psgList = orderModel.getHtOrderPsgList();
......
...@@ -8,8 +8,10 @@ import lombok.RequiredArgsConstructor; ...@@ -8,8 +8,10 @@ import lombok.RequiredArgsConstructor;
import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils; import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; 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.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.train.OrderRefundDetailModel; 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.BusinessInfo;
import org.dromara.common.ys.model.res.train.bean.BxOrderInfoBean; import org.dromara.common.ys.model.res.train.bean.BxOrderInfoBean;
import org.dromara.common.ys.model.res.train.bean.TrRefundticketInfoBean; import org.dromara.common.ys.model.res.train.bean.TrRefundticketInfoBean;
...@@ -120,8 +122,12 @@ public class OrderTrainRefundServiceImpl extends AbstractBaseService<OrderTrainR ...@@ -120,8 +122,12 @@ public class OrderTrainRefundServiceImpl extends AbstractBaseService<OrderTrainR
scheduledExecutorService.execute(() -> { scheduledExecutorService.execute(() -> {
OrderRefundDetailModel orderModel = trainService.orderRefundDetail(order.getPersonCode(), new org.dromara.common.ys.model.req.train.OrderRefundDetailModel().setRefundNo(order.getRefundNo())); 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); baseMapper.updateById(order);
//跟新保险信息 //跟新保险信息
...@@ -216,4 +222,24 @@ public class OrderTrainRefundServiceImpl extends AbstractBaseService<OrderTrainR ...@@ -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 ...@@ -143,7 +143,7 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
scheduledExecutorService.execute(() -> { scheduledExecutorService.execute(() -> {
OrderInfoModel orderModel = trainService.detail(order.getPersonCode(), new OrderQueryModel().setOrderNO(order.getOrderNo())); 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.setOrderStatusName(orderModel.getOrderStatuName());
order.setIsByIdCard(orderModel.getIsByidcard()); order.setIsByIdCard(orderModel.getIsByidcard());
order.setIsNoSeat(orderModel.getIsNoseat()); order.setIsNoSeat(orderModel.getIsNoseat());
......
...@@ -15,9 +15,13 @@ import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean; ...@@ -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.model.res.vehicles.OrderDetailModel;
import org.dromara.common.ys.service.IVehiclesService; import org.dromara.common.ys.service.IVehiclesService;
import org.dromara.server.base.AbstractBaseService; 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.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.BizUserMapper;
import org.dromara.server.mapper.OrderVehiclesBusinessMapper; import org.dromara.server.mapper.OrderVehiclesBusinessMapper;
import org.dromara.server.mapper.OrderVehiclesMapper; import org.dromara.server.mapper.OrderVehiclesMapper;
...@@ -175,7 +179,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV ...@@ -175,7 +179,7 @@ public class OrderVehiclesServiceImpl extends AbstractBaseService<OrderVehiclesV
scheduledExecutorService.execute(() -> { scheduledExecutorService.execute(() -> {
OrderDetailModel orderModel = vehiclesService.detail(order.getPersonCode(), new org.dromara.common.ys.model.req.vehicles.OrderDetailModel().setOrderNo(order.getOrderNo())); 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.setIsCancel(orderModel.getIscancel());
order.setDdCityId(orderModel.getDdcityId()); order.setDdCityId(orderModel.getDdcityId());
order.setDdCityName(orderModel.getDdcityName()); order.setDdCityName(orderModel.getDdcityName());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论