提交 ada59713 authored 作者: hzh's avatar hzh

代码优化

上级 fc7d82eb
...@@ -10,6 +10,11 @@ public interface RemoteOrderService { ...@@ -10,6 +10,11 @@ public interface RemoteOrderService {
*/ */
void updateAirportOrder(); void updateAirportOrder();
/**
* 更新机票退款订单
*/
void updateAirportRefundOrder();
/** /**
* 跟新火车票订单 * 跟新火车票订单
*/ */
......
...@@ -94,7 +94,7 @@ public interface IAirportService { ...@@ -94,7 +94,7 @@ public interface IAirportService {
OrderRefundAddModel orderRefundAdd(String userId, org.dromara.common.ys.model.req.airport.OrderRefundAddModel model); OrderRefundAddModel orderRefundAdd(String userId, org.dromara.common.ys.model.req.airport.OrderRefundAddModel model);
/** /**
* 申请退票 * 退票详情
* *
* @param userId 用户id * @param userId 用户id
* @param model 申请退票参数 * @param model 申请退票参数
......
...@@ -15,7 +15,7 @@ import org.springframework.stereotype.Component; ...@@ -15,7 +15,7 @@ import org.springframework.stereotype.Component;
@AllArgsConstructor @AllArgsConstructor
@Component @Component
@JobExecutor(name = "orderJobExecutor") @JobExecutor(name = "orderJobExecutor")
public class OrderJobExecutor { public class OrderAirportJobExecutor {
@DubboReference @DubboReference
private RemoteOrderService remoteOrderService; private RemoteOrderService remoteOrderService;
......
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 = "orderJobExecutor")
public class OrderAirportRefundJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateAirportRefundOrder();
return ExecuteResult.success("更新成功");
}
}
...@@ -26,7 +26,10 @@ import org.dromara.common.ys.service.ICommonResourceService; ...@@ -26,7 +26,10 @@ import org.dromara.common.ys.service.ICommonResourceService;
import org.dromara.common.ys.service.IInsuranceService; import org.dromara.common.ys.service.IInsuranceService;
import org.dromara.server.base.BaseController; import org.dromara.server.base.BaseController;
import org.dromara.server.domain.bo.OrderAirportBo; import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.bo.OrderAirportRefundBo;
import org.dromara.server.domain.vo.OrderAirportRefundVo;
import org.dromara.server.domain.vo.OrderAirportVo; import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.service.IOrderAirportRefundService;
import org.dromara.server.service.IOrderAirportService; import org.dromara.server.service.IOrderAirportService;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -53,6 +56,7 @@ public class AirportController extends BaseController { ...@@ -53,6 +56,7 @@ public class AirportController extends BaseController {
private final ICommonResourceService commonResourceService; private final ICommonResourceService commonResourceService;
private final IInsuranceService insuranceService; private final IInsuranceService insuranceService;
private final IOrderAirportService orderAirportService; private final IOrderAirportService orderAirportService;
private final IOrderAirportRefundService orderAirportRefundService;
/** /**
* 查询航班信息 * 查询航班信息
...@@ -196,6 +200,7 @@ public class AirportController extends BaseController { ...@@ -196,6 +200,7 @@ public class AirportController extends BaseController {
@PostMapping("/orderRefund/apply") @PostMapping("/orderRefund/apply")
public R<OrderRefundAddModel> orderRefundApply(@RequestBody org.dromara.common.ys.model.req.airport.OrderRefundAddModel model) { public R<OrderRefundAddModel> orderRefundApply(@RequestBody org.dromara.common.ys.model.req.airport.OrderRefundAddModel model) {
OrderRefundAddModel res = airPortService.orderRefundAdd(getUserId(), model); OrderRefundAddModel res = airPortService.orderRefundAdd(getUserId(), model);
orderAirportRefundService.batchSaveOrder(getUserId(), model.getOrderNo(), res.getRefundNoList());
return R.ok(res); return R.ok(res);
} }
...@@ -214,6 +219,7 @@ public class AirportController extends BaseController { ...@@ -214,6 +219,7 @@ public class AirportController extends BaseController {
@PostMapping("/orderRefund/cancel") @PostMapping("/orderRefund/cancel")
public R<Boolean> orderRefundCancel(@RequestBody org.dromara.common.ys.model.req.airport.OrderRefundCancelModel model) { public R<Boolean> orderRefundCancel(@RequestBody org.dromara.common.ys.model.req.airport.OrderRefundCancelModel model) {
Boolean result = airPortService.orderRefundCancel(getUserId(), model); Boolean result = airPortService.orderRefundCancel(getUserId(), model);
orderAirportRefundService.updateOrderInfo(List.of(model.getRefundNo()));
return R.ok(result); return R.ok(result);
} }
...@@ -226,4 +232,13 @@ public class AirportController extends BaseController { ...@@ -226,4 +232,13 @@ public class AirportController extends BaseController {
return R.ok(airPortService.orderRefundList(getUserId(), model)); return R.ok(airPortService.orderRefundList(getUserId(), model));
} }
/**
* 退票订单列表(本地)
*/
@GetMapping("/refund/local/orderList")
public R<TableDataInfo<OrderAirportRefundVo>> list(OrderAirportRefundBo bo, PageQuery pageQuery) {
bo.setPersonCode(getUserId());
return R.ok(orderAirportRefundService.queryPageList(bo, pageQuery));
}
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; 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 org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
...@@ -17,6 +18,7 @@ import java.io.Serial; ...@@ -17,6 +18,7 @@ import java.io.Serial;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_refund_business_info") @TableName("biz_order_airport_refund_business_info")
public class OrderAirportRefundBusinessInfo extends TenantEntity { public class OrderAirportRefundBusinessInfo extends TenantEntity {
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; 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 org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
...@@ -18,6 +19,7 @@ import java.math.BigDecimal; ...@@ -18,6 +19,7 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_refund_insurance_info") @TableName("biz_order_airport_refund_insurance_info")
public class OrderAirportRefundInsuranceInfo extends TenantEntity { public class OrderAirportRefundInsuranceInfo extends TenantEntity {
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; 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 org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
...@@ -18,6 +19,7 @@ import java.math.BigDecimal; ...@@ -18,6 +19,7 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_refund_pay_info") @TableName("biz_order_airport_refund_pay_info")
public class OrderAirportRefundPayInfo extends TenantEntity { public class OrderAirportRefundPayInfo extends TenantEntity {
......
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName; 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 org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial; import java.io.Serial;
...@@ -18,6 +19,7 @@ import java.math.BigDecimal; ...@@ -18,6 +19,7 @@ import java.math.BigDecimal;
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_airport_refund_range_info") @TableName("biz_order_airport_refund_range_info")
public class OrderAirportRefundRangeInfo extends TenantEntity { public class OrderAirportRefundRangeInfo extends TenantEntity {
......
...@@ -30,6 +30,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -30,6 +30,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
private final IOrderTrainRefundService orderTrainRefundService; private final IOrderTrainRefundService orderTrainRefundService;
private final IOrderVehiclesService orderVehiclesService; private final IOrderVehiclesService orderVehiclesService;
private final IOrderHotelService orderHotelService; private final IOrderHotelService orderHotelService;
private final IOrderAirportRefundService orderAirportRefundService;
/** /**
...@@ -118,4 +119,12 @@ public class RemoteOrderServiceImpl implements RemoteOrderService { ...@@ -118,4 +119,12 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
orderList.stream().filter(item -> !HOTEL_ORDER_STATUS_LIST.contains(item.getOrderStatus())).map(OrderHotelVo::getOrderNo).collect(Collectors.toList()) orderList.stream().filter(item -> !HOTEL_ORDER_STATUS_LIST.contains(item.getOrderStatus())).map(OrderHotelVo::getOrderNo).collect(Collectors.toList())
); );
} }
@Override
public void updateAirportRefundOrder() {
List<OrderAirportRefundVo> orderList = orderAirportRefundService.queryList(new OrderAirportRefundBo());
orderVehiclesService.updateOrderInfo(
orderList.stream().map(OrderAirportRefundVo::getRefundNo).collect(Collectors.toList())
);
}
} }
...@@ -5,6 +5,8 @@ import org.dromara.server.domain.OrderAirportRefund; ...@@ -5,6 +5,8 @@ import org.dromara.server.domain.OrderAirportRefund;
import org.dromara.server.domain.bo.OrderAirportRefundBo; import org.dromara.server.domain.bo.OrderAirportRefundBo;
import org.dromara.server.domain.vo.OrderAirportRefundVo; import org.dromara.server.domain.vo.OrderAirportRefundVo;
import java.util.List;
/** /**
* 机票退票Service接口 * 机票退票Service接口
* *
...@@ -13,5 +15,20 @@ import org.dromara.server.domain.vo.OrderAirportRefundVo; ...@@ -13,5 +15,20 @@ import org.dromara.server.domain.vo.OrderAirportRefundVo;
*/ */
public interface IOrderAirportRefundService extends IBaseService<OrderAirportRefundVo, OrderAirportRefundBo, OrderAirportRefund> { public interface IOrderAirportRefundService extends IBaseService<OrderAirportRefundVo, OrderAirportRefundBo, OrderAirportRefund> {
/**
* 批量保存订单
*
* @param userId 用户id
* @param orderNo 订单编号
* @param refundNoList 订单号列表
*/
void batchSaveOrder(String userId, String orderNo, List<String> refundNoList);
/**
* 更新火车票退票信息
*
* @param refundNoList 订单号列表
*/
void updateOrderInfo(List<String> refundNoList);
} }
package org.dromara.server.service.impl; package org.dromara.server.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
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.model.res.airport.OrderRefundDetailModel;
import org.dromara.common.ys.model.res.airport.other.InsuranceInfoBean;
import org.dromara.common.ys.model.res.airport.other.OrderBusinessInfoBean;
import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.airport.other.OrderRangeInfoBean;
import org.dromara.common.ys.service.IAirportService;
import org.dromara.server.base.AbstractBaseService; import org.dromara.server.base.AbstractBaseService;
import org.dromara.server.domain.OrderAirportRefund; import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderAirportRefundBo; import org.dromara.server.domain.bo.OrderAirportRefundBo;
import org.dromara.server.domain.vo.OrderAirportRefundVo; import org.dromara.server.domain.vo.OrderAirportRefundVo;
import org.dromara.server.mapper.OrderAirportRefundMapper; import org.dromara.server.mapper.*;
import org.dromara.server.service.IOrderAirportRefundService; import org.dromara.server.service.IOrderAirportRefundService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ScheduledExecutorService;
/** /**
* 机票退票Service业务层处理 * 机票退票Service业务层处理
...@@ -26,6 +38,13 @@ import java.util.Map; ...@@ -26,6 +38,13 @@ import java.util.Map;
public class OrderAirportRefundServiceImpl extends AbstractBaseService<OrderAirportRefundVo, OrderAirportRefundBo, OrderAirportRefund> implements IOrderAirportRefundService { public class OrderAirportRefundServiceImpl extends AbstractBaseService<OrderAirportRefundVo, OrderAirportRefundBo, OrderAirportRefund> implements IOrderAirportRefundService {
private final OrderAirportRefundMapper baseMapper; private final OrderAirportRefundMapper baseMapper;
private final OrderAirportRefundBusinessInfoMapper businessInfoMapper;
private final OrderAirportRefundRangeInfoMapper rangeInfoMapper;
private final OrderAirportRefundPayInfoMapper payInfoMapper;
private final OrderAirportRefundInsuranceInfoMapper insuranceInfoMapper;
private final IAirportService airportService;
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
@Override @Override
public BaseMapperPlus<OrderAirportRefund, OrderAirportRefundVo> mapper() { public BaseMapperPlus<OrderAirportRefund, OrderAirportRefundVo> mapper() {
...@@ -77,4 +96,135 @@ public class OrderAirportRefundServiceImpl extends AbstractBaseService<OrderAirp ...@@ -77,4 +96,135 @@ public class OrderAirportRefundServiceImpl extends AbstractBaseService<OrderAirp
return lqw; return lqw;
} }
@Override
public void batchSaveOrder(String userId, String orderNo, List<String> refundNoList) {
BizUser user = userMapper.selectOne(new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserNo, userId));
if (Objects.isNull(user)) {
throw new RuntimeException("用户不存在");
}
List<OrderAirportRefund> orderList = refundNoList.stream().map(refundNo -> {
OrderAirportRefund order = new OrderAirportRefund();
order.setPersonCode(userId);
order.setOrderNo(orderNo);
order.setRefundNo(refundNo);
order.setTenantId(user.getTenantId());
return order;
}).toList();
for (OrderAirportRefund bo : orderList) {
baseMapper.insert(bo);
}
updateOrderInfo(refundNoList);
}
@Override
public void updateOrderInfo(List<String> refundNoList) {
if (CollectionUtils.isEmpty(refundNoList)) {
return;
}
List<OrderAirportRefund> orderList = baseMapper.selectList(new LambdaQueryWrapper<OrderAirportRefund>().in(OrderAirportRefund::getRefundNo, refundNoList));
List<Long> orderIds = StreamUtils.toList(orderList, OrderAirportRefund::getId);
if (CollectionUtils.isEmpty(orderIds)) {
return;
}
List<OrderAirportRefundBusinessInfo> orderBusinessList = businessInfoMapper.selectList(new LambdaQueryWrapper<OrderAirportRefundBusinessInfo>().in(OrderAirportRefundBusinessInfo::getOrderId, orderIds));
List<OrderAirportRefundPayInfo> orderPayInfoList = payInfoMapper.selectList(new LambdaQueryWrapper<OrderAirportRefundPayInfo>().in(OrderAirportRefundPayInfo::getOrderId, orderIds));
List<OrderAirportRefundInsuranceInfo> orderInsuranceList = insuranceInfoMapper.selectList(new LambdaQueryWrapper<OrderAirportRefundInsuranceInfo>().in(OrderAirportRefundInsuranceInfo::getOrderId, orderIds));
List<OrderAirportRefundRangeInfo> orderRangeList = rangeInfoMapper.selectList(new LambdaQueryWrapper<OrderAirportRefundRangeInfo>().in(OrderAirportRefundRangeInfo::getOrderId, orderIds));
//更新数据
orderList.forEach(order -> {
scheduledExecutorService.execute(() -> {
OrderRefundDetailModel orderModel = airportService.orderRefundDetail(order.getPersonCode(), new org.dromara.common.ys.model.req.airport.OrderRefundDetailModel().setRefundNo(order.getRefundNo())).get(0);
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "tenantId", "orderNo", "refundNo");
baseMapper.updateById(order);
//跟新保险信息
List<InsuranceInfoBean> insuranceList = orderModel.getInsuranceList();
if (CollectionUtils.isNotEmpty(insuranceList)) {
for (InsuranceInfoBean bx : insuranceList) {
OrderAirportRefundInsuranceInfo orderBx = orderInsuranceList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getBxOrderNo(), bx.getBxOrderNo())).findFirst().orElseGet(
() -> {
OrderAirportRefundInsuranceInfo entity = new OrderAirportRefundInsuranceInfo()
.setOrderId(order.getId())
.setRefundNo(order.getRefundNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(bx, orderBx, "id", "orderId", "refundNo");
if (Objects.isNull(orderBx.getId())) {
insuranceInfoMapper.insert(orderBx);
} else {
insuranceInfoMapper.updateById(orderBx);
}
}
}
//跟新差旅信息
OrderBusinessInfoBean business = orderModel.getBusinessInfo();
if (Objects.nonNull(business)) {
OrderAirportRefundBusinessInfo orderBusiness = orderBusinessList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId())).findFirst().orElseGet(
() -> {
OrderAirportRefundBusinessInfo entity = new OrderAirportRefundBusinessInfo()
.setOrderId(order.getId())
.setRefundNo(order.getRefundNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(business, orderBusiness, "id", "orderId", "refundNo");
orderBusiness.setViolateItemCode(business.getViolateitemCode());
orderBusiness.setViolateItem(business.getViolateitem());
if (Objects.isNull(orderBusiness.getId())) {
businessInfoMapper.insert(orderBusiness);
} else {
businessInfoMapper.updateById(orderBusiness);
}
}
//跟新支付信息集合
List<OrderPayInfoBean> payInfoList = orderModel.getPayInfoList();
if (CollectionUtils.isNotEmpty(payInfoList)) {
for (OrderPayInfoBean payInfo : payInfoList) {
OrderAirportRefundPayInfo orderPayInfo = orderPayInfoList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getPayBillNo(), payInfo.getPayBillno())).findFirst().orElseGet(
() -> {
OrderAirportRefundPayInfo entity = new OrderAirportRefundPayInfo()
.setOrderId(order.getId())
.setRefundNo(order.getRefundNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(payInfo, orderPayInfo, "id", "orderId", "refundNo");
orderPayInfo.setPayBillNo(payInfo.getPayBillno());
orderPayInfo.setPayMethodName(payInfo.getPayMothedName());
if (Objects.isNull(orderPayInfo.getId())) {
payInfoMapper.insert(orderPayInfo);
} else {
payInfoMapper.updateById(orderPayInfo);
}
}
}
//更新航段信息
List<OrderRangeInfoBean> rangeInfoList = orderModel.getOrderRangeList();
if (CollectionUtils.isNotEmpty(rangeInfoList)) {
for (OrderRangeInfoBean rangeInfo : rangeInfoList) {
OrderAirportRefundRangeInfo orderRangeInfo = orderRangeList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId())).findFirst().orElseGet(
() -> {
OrderAirportRefundRangeInfo entity = new OrderAirportRefundRangeInfo()
.setOrderId(order.getId())
.setRefundNo(order.getRefundNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(rangeInfo, orderRangeInfo, "id", "orderId", "refundNo");
if (Objects.isNull(orderRangeInfo.getId())) {
rangeInfoMapper.insert(orderRangeInfo);
} else {
rangeInfoMapper.updateById(orderRangeInfo);
}
}
}
});
});
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论