提交 88c6effb authored 作者: hzh's avatar hzh

代码优化

上级 c52b4824
......@@ -10,4 +10,9 @@ public interface RemoteOrderService {
*/
void updateAirportOrder();
/**
* 跟新火车票订单
*/
void updateTrainOrder();
}
......@@ -124,7 +124,7 @@ public class TrainServiceImpl implements ITrainService {
if (!CharSequenceUtil.equals(res.getErrCode(), Code.SUCCESS.getCode())) {
throw new RuntimeException(res.getTips());
}
return JSON.parseObject(JSON.parseObject(res.getData()).toJSONString(), OrderInfoModel.class);
return JSON.parseArray(JSON.parseObject(res.getData()).getString("orderGather"), OrderInfoModel.class).get(0);
}
@Override
......
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 = "orderTrainJobExecutor")
public class OrderTrainJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateTrainOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -134,7 +134,7 @@ public class AirportController extends BaseController {
public R<Boolean> cancel(@RequestBody CancelOrderModel model) {
airPortService.cancelOrder(getUserId(), model);
//跟新到订单表
orderAirportService.updateAirportInfo(List.of(model.getOrderNo()));
orderAirportService.updateOrderInfo(List.of(model.getOrderNo()));
return R.ok(true);
}
......
......@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.dromara.common.core.domain.R;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.redis.utils.RedisUtils;
import org.dromara.common.ys.common.PageInfo;
import org.dromara.common.ys.constant.TripType;
......@@ -17,6 +19,9 @@ import org.dromara.common.ys.model.res.train.*;
import org.dromara.common.ys.service.ICommonResourceService;
import org.dromara.common.ys.service.ITrainService;
import org.dromara.server.base.BaseController;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.service.IOrderTrainService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -45,6 +50,7 @@ public class TrainController extends BaseController {
private static final String CITY = "city:ys" ;
private final ITrainService trainService;
private final IOrderTrainService orderTrainService;
private final ICommonResourceService commonResourceService;
/**
......@@ -181,9 +187,12 @@ public class TrainController extends BaseController {
/**
* 创建订单
*/
@GlobalTransactional(timeoutMills = 600000, rollbackFor = Exception.class)
@PostMapping("bookOrder")
public R<OrderBookResModel> bookOrder(@RequestBody OrderBookReqModel model) {
return R.ok(trainService.bookOrder(getUserId(), model));
OrderBookResModel res = trainService.bookOrder(getUserId(), model);
orderTrainService.batchSaveOrder(getUserId(), List.of(res.getOrderId()));
return R.ok(res);
}
/**
......@@ -211,8 +220,18 @@ public class TrainController extends BaseController {
@PostMapping("/cancel")
public R<Boolean> cancel(@RequestBody CancelOrderModel model) {
trainService.cancelOrder(getUserId(), model);
orderTrainService.updateOrderInfo(List.of(model.getOrderNo()));
return R.ok(true);
}
/**
* 订单列表(本地)
*/
@GetMapping("/local/orderList")
public R<TableDataInfo<OrderTrainVo>> list(OrderTrainBo bo, PageQuery pageQuery) {
bo.setPersonCode(getUserId());
return R.ok(orderTrainService.queryPageList(bo, pageQuery));
}
}
......@@ -103,12 +103,12 @@ public class OrderTrain extends TenantEntity {
/**
* 票价合计
*/
private Long ticketPrice;
private BigDecimal ticketPrice;
/**
* 保险金额
*/
private Long insureAmount;
private BigDecimal insureAmount;
/**
* 检票口
......@@ -118,7 +118,7 @@ public class OrderTrain extends TenantEntity {
/**
* 订单合计
*/
private Long orderPrice;
private BigDecimal orderPrice;
/**
* 预订时间
......
......@@ -5,6 +5,7 @@ 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;
......@@ -17,6 +18,7 @@ import java.io.Serial;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_train_business")
public class OrderTrainBusiness extends TenantEntity {
......
......@@ -5,6 +5,7 @@ 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;
......@@ -17,6 +18,7 @@ import java.io.Serial;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_train_pay")
public class OrderTrainPay extends TenantEntity {
......
......@@ -5,9 +5,11 @@ 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;
import java.math.BigDecimal;
/**
* 火车票订单支付信息集合对象 biz_order_train_pay_info
......@@ -17,6 +19,7 @@ import java.io.Serial;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_train_pay_info")
public class OrderTrainPayInfo extends TenantEntity {
......@@ -67,7 +70,7 @@ public class OrderTrainPayInfo extends TenantEntity {
/**
* 支付金额
*/
private Long payAmount;
private BigDecimal payAmount;
/**
* 支付科目名称
......
......@@ -5,6 +5,7 @@ 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;
......@@ -17,6 +18,7 @@ import java.io.Serial;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_train_range")
public class OrderTrainRange extends TenantEntity {
......
package org.dromara.server.domain;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 火车票订单乘车人信息对象 biz_order_train_ticket
*
* @author hzh
* @date 2024-11-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("biz_order_train_ticket")
public class OrderTrainTicket extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id")
private Long id;
/**
* 订单id
*/
private Long orderId;
/**
* 订单编号
*/
private String orderNo;
/**
* 出差申请单号
*/
private String travelNo;
/**
* 国籍
*/
private String nation;
/**
* 票号
*/
private String ticketCode;
/**
* 座位号
*/
private String seatCode;
/**
* 服务费
*/
private BigDecimal sellServiceCharge;
/**
* 是否已出票
*/
private String isTicket;
/**
* 票价小计
*/
private BigDecimal ticketPriceCount;
/**
* 乘机人工号
*/
private String empNo;
/**
* 乘车人证件类型
*/
private String idType;
/**
* 乘机人所在部门名称
*/
private String empDeptName;
/**
* 票价
*/
private BigDecimal ticketPrice;
/**
* 证件有效截止日期 yyyy-MM-dd
*/
private String expiryDate;
/**
* 保险金额
*/
private BigDecimal insureAmount;
/**
* 出生日期
*/
private String born;
/**
* 性别M男;F女
*/
private String sex;
/**
* 保险份数
*/
private Long insureNum;
/**
* 车票明细ID
*/
private String ticketId;
/**
* 乘车人姓名
*/
private String passengerName;
/**
* 乘车人证件号码
*/
private String idCode;
/**
* 乘机人所在部门编号
*/
private String empDeptId;
/**
* 乘车人手机号
*/
private String phoneNumber;
/**
* 序号
*/
private String sequenceNo;
/**
* 删除标志(0代表存在 2代表删除)
*/
@TableLogic
private String delFlag;
}
......@@ -10,6 +10,8 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderTrain;
import java.math.BigDecimal;
/**
* 火车票订单业务对象 biz_order_train
*
......@@ -85,7 +87,7 @@ public class OrderTrainBo extends BaseEntity {
* 服务费合计
*/
@NotNull(message = "服务费合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long serviceChargePrice;
private BigDecimal serviceChargePrice;
/**
* 乘车人
......@@ -115,13 +117,13 @@ public class OrderTrainBo extends BaseEntity {
* 票价合计
*/
@NotNull(message = "票价合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long ticketPrice;
private BigDecimal ticketPrice;
/**
* 保险金额
*/
@NotNull(message = "保险金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long insureAmount;
private BigDecimal insureAmount;
/**
* 检票口
......@@ -133,7 +135,7 @@ public class OrderTrainBo extends BaseEntity {
* 订单合计
*/
@NotNull(message = "订单合计不能为空", groups = {AddGroup.class, EditGroup.class})
private Long orderPrice;
private BigDecimal orderPrice;
/**
* 预订时间
......
......@@ -10,6 +10,8 @@ import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.server.domain.OrderTrainPayInfo;
import java.math.BigDecimal;
/**
* 火车票订单支付信息集合业务对象 biz_order_train_pay_info
*
......@@ -73,7 +75,7 @@ public class OrderTrainPayInfoBo extends BaseEntity {
* 支付金额
*/
@NotNull(message = "支付金额不能为空", groups = {AddGroup.class, EditGroup.class})
private Long payAmount;
private BigDecimal payAmount;
/**
* 支付科目名称
......
package org.dromara.server.domain.bo;
import org.dromara.server.domain.OrderTrainTicket;
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 lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
/**
* 火车票订单乘车人信息业务对象 biz_order_train_ticket
*
* @author hzh
* @date 2024-11-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = OrderTrainTicket.class, reverseConvertGenerate = false)
public class OrderTrainTicketBo extends BaseEntity {
/**
* id
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 订单id
*/
@NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long orderId;
/**
* 订单编号
*/
@NotBlank(message = "订单编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String orderNo;
/**
* 出差申请单号
*/
@NotBlank(message = "出差申请单号不能为空", groups = { AddGroup.class, EditGroup.class })
private String travelNo;
/**
* 国籍
*/
@NotBlank(message = "国籍不能为空", groups = { AddGroup.class, EditGroup.class })
private String nation;
/**
* 票号
*/
@NotBlank(message = "票号不能为空", groups = { AddGroup.class, EditGroup.class })
private String ticketCode;
/**
* 座位号
*/
@NotBlank(message = "座位号不能为空", groups = { AddGroup.class, EditGroup.class })
private String seatCode;
/**
* 服务费
*/
@NotNull(message = "服务费不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal sellServiceCharge;
/**
* 是否已出票
*/
@NotBlank(message = "是否已出票不能为空", groups = { AddGroup.class, EditGroup.class })
private String isTicket;
/**
* 票价小计
*/
@NotNull(message = "票价小计不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal ticketPriceCount;
/**
* 乘机人工号
*/
@NotBlank(message = "乘机人工号不能为空", groups = { AddGroup.class, EditGroup.class })
private String empNo;
/**
* 乘车人证件类型
*/
@NotBlank(message = "乘车人证件类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String idType;
/**
* 乘机人所在部门名称
*/
@NotBlank(message = "乘机人所在部门名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String empDeptName;
/**
* 票价
*/
@NotNull(message = "票价不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal ticketPrice;
/**
* 证件有效截止日期 yyyy-MM-dd
*/
@NotBlank(message = "证件有效截止日期 yyyy-MM-dd不能为空", groups = { AddGroup.class, EditGroup.class })
private String expiryDate;
/**
* 保险金额
*/
@NotNull(message = "保险金额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal insureAmount;
/**
* 出生日期
*/
@NotBlank(message = "出生日期不能为空", groups = { AddGroup.class, EditGroup.class })
private String born;
/**
* 性别M男;F女
*/
@NotBlank(message = "性别M男;F女不能为空", groups = { AddGroup.class, EditGroup.class })
private String sex;
/**
* 保险份数
*/
@NotNull(message = "保险份数不能为空", groups = { AddGroup.class, EditGroup.class })
private Long insureNum;
/**
* 车票明细ID
*/
@NotBlank(message = "车票明细ID不能为空", groups = { AddGroup.class, EditGroup.class })
private String ticketId;
/**
* 乘车人姓名
*/
@NotBlank(message = "乘车人姓名不能为空", groups = { AddGroup.class, EditGroup.class })
private String passengerName;
/**
* 乘车人证件号码
*/
@NotBlank(message = "乘车人证件号码不能为空", groups = { AddGroup.class, EditGroup.class })
private String idCode;
/**
* 乘机人所在部门编号
*/
@NotBlank(message = "乘机人所在部门编号不能为空", groups = { AddGroup.class, EditGroup.class })
private String empDeptId;
/**
* 乘车人手机号
*/
@NotBlank(message = "乘车人手机号不能为空", groups = { AddGroup.class, EditGroup.class })
private String phoneNumber;
/**
* 序号
*/
@NotBlank(message = "序号不能为空", groups = { AddGroup.class, EditGroup.class })
private String sequenceNo;
}
......@@ -8,6 +8,7 @@ import org.dromara.server.domain.OrderTrainPayInfo;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
......@@ -76,7 +77,7 @@ public class OrderTrainPayInfoVo implements Serializable {
* 支付金额
*/
@ExcelProperty(value = "支付金额")
private Long payAmount;
private BigDecimal payAmount;
/**
* 支付科目名称
......
package org.dromara.server.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.server.domain.OrderTrainTicket;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 火车票订单乘车人信息视图对象 biz_order_train_ticket
*
* @author hzh
* @date 2024-11-19
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = OrderTrainTicket.class)
public class OrderTrainTicketVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@ExcelProperty(value = "id")
private Long id;
/**
* 订单id
*/
@ExcelProperty(value = "订单id")
private Long orderId;
/**
* 订单编号
*/
@ExcelProperty(value = "订单编号")
private String orderNo;
/**
* 出差申请单号
*/
@ExcelProperty(value = "出差申请单号")
private String travelNo;
/**
* 国籍
*/
@ExcelProperty(value = "国籍")
private String nation;
/**
* 票号
*/
@ExcelProperty(value = "票号")
private String ticketCode;
/**
* 座位号
*/
@ExcelProperty(value = "座位号")
private String seatCode;
/**
* 服务费
*/
@ExcelProperty(value = "服务费")
private BigDecimal sellServiceCharge;
/**
* 是否已出票
*/
@ExcelProperty(value = "是否已出票")
private String isTicket;
/**
* 票价小计
*/
@ExcelProperty(value = "票价小计")
private BigDecimal ticketPriceCount;
/**
* 乘机人工号
*/
@ExcelProperty(value = "乘机人工号")
private String empNo;
/**
* 乘车人证件类型
*/
@ExcelProperty(value = "乘车人证件类型")
private String idType;
/**
* 乘机人所在部门名称
*/
@ExcelProperty(value = "乘机人所在部门名称")
private String empDeptName;
/**
* 票价
*/
@ExcelProperty(value = "票价")
private BigDecimal ticketPrice;
/**
* 证件有效截止日期 yyyy-MM-dd
*/
@ExcelProperty(value = "证件有效截止日期 yyyy-MM-dd")
private String expiryDate;
/**
* 保险金额
*/
@ExcelProperty(value = "保险金额")
private BigDecimal insureAmount;
/**
* 出生日期
*/
@ExcelProperty(value = "出生日期")
private String born;
/**
* 性别M男;F女
*/
@ExcelProperty(value = "性别M男;F女")
private String sex;
/**
* 保险份数
*/
@ExcelProperty(value = "保险份数")
private Long insureNum;
/**
* 车票明细ID
*/
@ExcelProperty(value = "车票明细ID")
private String ticketId;
/**
* 乘车人姓名
*/
@ExcelProperty(value = "乘车人姓名")
private String passengerName;
/**
* 乘车人证件号码
*/
@ExcelProperty(value = "乘车人证件号码")
private String idCode;
/**
* 乘机人所在部门编号
*/
@ExcelProperty(value = "乘机人所在部门编号")
private String empDeptId;
/**
* 乘车人手机号
*/
@ExcelProperty(value = "乘车人手机号")
private String phoneNumber;
/**
* 序号
*/
@ExcelProperty(value = "序号")
private String sequenceNo;
}
......@@ -8,6 +8,8 @@ import org.dromara.server.domain.OrderTrain;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -88,7 +90,7 @@ public class OrderTrainVo implements Serializable {
* 服务费合计
*/
@ExcelProperty(value = "服务费合计")
private Long serviceChargePrice;
private BigDecimal serviceChargePrice;
/**
* 乘车人
......@@ -118,13 +120,13 @@ public class OrderTrainVo implements Serializable {
* 票价合计
*/
@ExcelProperty(value = "票价合计")
private Long ticketPrice;
private BigDecimal ticketPrice;
/**
* 保险金额
*/
@ExcelProperty(value = "保险金额")
private Long insureAmount;
private BigDecimal insureAmount;
/**
* 检票口
......@@ -136,7 +138,7 @@ public class OrderTrainVo implements Serializable {
* 订单合计
*/
@ExcelProperty(value = "订单合计")
private Long orderPrice;
private BigDecimal orderPrice;
/**
* 预订时间
......@@ -162,5 +164,14 @@ public class OrderTrainVo implements Serializable {
@ExcelProperty(value = "12306账号")
private String trainAccount;
/**
* 行程信息
*/
private OrderTrainRangeVo range;
/**
* 订票人信息
*/
private List<OrderTrainTicketVo> tickerList;
}
......@@ -6,8 +6,11 @@ import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.ys.constant.airport.OrderStatus;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.service.IOrderAirportService;
import org.dromara.server.service.IOrderTrainService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
......@@ -25,6 +28,7 @@ import java.util.stream.Collectors;
public class RemoteOrderServiceImpl implements RemoteOrderService {
private final IOrderAirportService orderAirportService;
private final IOrderTrainService orderTrainService;
/**
......@@ -38,8 +42,19 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
@Override
public void updateAirportOrder() {
List<OrderAirportVo> orderList = orderAirportService.queryList(new OrderAirportBo());
orderAirportService.updateAirportInfo(
orderAirportService.updateOrderInfo(
orderList.stream().filter(item -> !orderStatusList.contains(item.getOrderStatus())).map(OrderAirportVo::getOrderNo).collect(Collectors.toList())
);
}
/**
* 跟新火车订单信息
*/
@Override
public void updateTrainOrder() {
List<OrderTrainVo> orderList = orderTrainService.queryList(new OrderTrainBo());
orderTrainService.updateOrderInfo(
orderList.stream().map(OrderTrainVo::getOrderNo).collect(Collectors.toList())
);
}
}
package org.dromara.server.mapper;
import org.dromara.server.domain.OrderTrainTicket;
import org.dromara.server.domain.vo.OrderTrainTicketVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 火车票订单乘车人信息Mapper接口
*
* @author hzh
* @date 2024-11-19
*/
public interface OrderTrainTicketMapper extends BaseMapperPlus<OrderTrainTicket, OrderTrainTicketVo> {
}
......@@ -27,5 +27,5 @@ public interface IOrderAirportService extends IBaseService<OrderAirportVo, Order
*
* @param orderNoList 订单号列表
*/
void updateAirportInfo(List<String> orderNoList);
void updateOrderInfo(List<String> orderNoList);
}
......@@ -122,12 +122,12 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
for (OrderAirport bo : orderList) {
baseMapper.insert(bo);
}
updateAirportInfo(orderNoList);
updateOrderInfo(orderNoList);
}
@Override
public void updateAirportInfo(List<String> orderNoList) {
public void updateOrderInfo(List<String> orderNoList) {
if (CollectionUtils.isEmpty(orderNoList)) {
return;
}
......@@ -160,7 +160,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(psg, orderPsg, "id", "orderId", "order_no");
BeanUtil.copyProperties(psg, orderPsg, "id", "orderId", "orderNo");
if (Objects.isNull(orderPsg.getId())) {
psgMapper.insert(orderPsg);
} else {
......@@ -178,7 +178,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(range, orderRange, "id", "orderId", "order_no");
BeanUtil.copyProperties(range, orderRange, "id", "orderId", "orderNo");
if (Objects.isNull(orderRange.getId())) {
rangeMapper.insert(orderRange);
} else {
......@@ -197,7 +197,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(insurance, orderInsurance, "id", "orderId", "order_no");
BeanUtil.copyProperties(insurance, orderInsurance, "id", "orderId", "orderNo");
if (Objects.isNull(orderInsurance.getId())) {
insuranceMapper.insert(orderInsurance);
} else {
......@@ -215,7 +215,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(business, orderBusiness, "id", "orderId", "order_no");
BeanUtil.copyProperties(business, orderBusiness, "id", "orderId", "orderNo");
if (Objects.isNull(orderBusiness.getId())) {
businessMapper.insert(orderBusiness);
} else {
......@@ -234,7 +234,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(pay, orderPay, "id", "orderId", "order_no");
BeanUtil.copyProperties(pay, orderPay, "id", "orderId", "orderNo");
if (Objects.isNull(orderPay.getId())) {
payMapper.insert(orderPay);
} else {
......@@ -253,7 +253,7 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(ticket, orderTicket, "id", "orderId", "order_no");
BeanUtil.copyProperties(ticket, orderTicket, "id", "orderId", "orderNo");
if (Objects.isNull(orderTicket.getId())) {
ticketMapper.insert(orderTicket);
} else {
......
......@@ -8,17 +8,23 @@ 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.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.ys.model.req.train.OrderQueryModel;
import org.dromara.common.ys.model.res.train.OrderInfoModel;
import org.dromara.common.ys.model.res.airport.other.OrderPayInfoBean;
import org.dromara.common.ys.model.res.train.*;
import org.dromara.common.ys.service.ITrainService;
import org.dromara.server.base.AbstractBaseService;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.vo.OrderTrainRangeVo;
import org.dromara.server.domain.vo.OrderTrainTicketVo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IOrderTrainService;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
......@@ -50,6 +56,21 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
return baseMapper;
}
@Override
public TableDataInfo<OrderTrainVo> queryPageList(OrderTrainBo bo, PageQuery pageQuery) {
TableDataInfo<OrderTrainVo> page = super.queryPageList(bo, pageQuery);
List<OrderTrainVo> list = page.getRows();
List<Long> orderIds = StreamUtils.toList(list, OrderTrainVo::getId);
orderIds = CollectionUtils.isEmpty(orderIds) ? Arrays.asList(-1L) : orderIds;
List<OrderTrainRangeVo> rangeList = rangeMapper.selectVoList(new LambdaQueryWrapper<OrderTrainRange>().in(OrderTrainRange::getOrderId, orderIds));
List<OrderTrainTicketVo> ticketList = ticketMapper.selectVoList(new LambdaQueryWrapper<OrderTrainTicket>().in(OrderTrainTicket::getOrderId, orderIds));
list.forEach(item -> {
item.setRange(StreamUtils.findFirst(rangeList, r -> Objects.equals(r.getOrderId(), item.getId())));
item.setTickerList(StreamUtils.filter(ticketList, r -> Objects.equals(r.getOrderId(), item.getId())));
});
return page;
}
@Override
public LambdaQueryWrapper<OrderTrain> buildQueryWrapper(OrderTrainBo bo) {
Map<String, Object> params = bo.getParams();
......@@ -111,8 +132,8 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
List<OrderTrainBusiness> orderBusinessList = businessMapper.selectList(new LambdaQueryWrapper<OrderTrainBusiness>().in(OrderTrainBusiness::getOrderId, orderIds));
List<OrderTrainPay> orderPayList = payMapper.selectList(new LambdaQueryWrapper<OrderTrainPay>().in(OrderTrainPay::getOrderId, orderIds));
List<OrderTrainPayInfo> orderPayInfoList = payInfoMapper.selectList(new LambdaQueryWrapper<OrderTrainPayInfo>().in(OrderTrainPayInfo::getOrderId, orderIds));
List<OrderTrainRange> rangeList = rangeMapper.selectList(new LambdaQueryWrapper<OrderTrainRange>().in(OrderTrainRange::getOrderId, orderIds));
List<OrderTrainTicket> list = ticketMapper.selectList(new LambdaQueryWrapper<OrderTrainTicket>().in(OrderTrainTicket::getOrderId, orderIds));
List<OrderTrainRange> orderRangeList = rangeMapper.selectList(new LambdaQueryWrapper<OrderTrainRange>().in(OrderTrainRange::getOrderId, orderIds));
List<OrderTrainTicket> orderTicketList = ticketMapper.selectList(new LambdaQueryWrapper<OrderTrainTicket>().in(OrderTrainTicket::getOrderId, orderIds));
//更新数据
orderList.forEach(order -> {
scheduledExecutorService.execute(() -> {
......@@ -125,6 +146,113 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
order.setIsByIdCardName(orderModel.getIsByidcardName());
order.setServiceChargePrice(orderModel.getServiceChargePrice());
baseMapper.updateById(order);
//跟新航段信息
RangeInfo range = orderModel.getTrRange();
if (Objects.nonNull(range)) {
OrderTrainRange orderRange = orderRangeList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId())).findFirst().orElseGet(
() -> {
OrderTrainRange entity = new OrderTrainRange()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(range, orderRange, "id", "orderId", "orderNo");
if (Objects.isNull(orderRange.getId())) {
rangeMapper.insert(orderRange);
} else {
rangeMapper.updateById(orderRange);
}
}
//跟新乘车人信息
List<TicketInfo> ticketList = orderModel.getTrTicketList();
if (CollectionUtils.isNotEmpty(ticketList)) {
for (TicketInfo ticket : ticketList) {
OrderTrainTicket orderTicket = orderTicketList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getIdCode(), ticket.getIdCode())).findFirst().orElseGet(
() -> {
OrderTrainTicket entity = new OrderTrainTicket()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(ticket, orderTicket, "id", "orderId", "orderNo");
orderTicket.setTicketId(ticket.getTicketID());
orderTicket.setEmpDeptId(ticket.getEmpDeptID());
if (Objects.isNull(orderTicket.getId())) {
ticketMapper.insert(orderTicket);
} else {
ticketMapper.updateById(orderTicket);
}
}
}
//跟新支付信息
PayInfo pay = orderModel.getPay();
if (Objects.nonNull(pay)) {
OrderTrainPay orderPay = orderPayList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId())).findFirst().orElseGet(
() -> {
OrderTrainPay entity = new OrderTrainPay()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(range, orderPay, "id", "orderId", "orderNo");
orderPay.setPayMethod(pay.getPayMothed());
orderPay.setPayMethodName(pay.getPayMothedName());
orderPay.setPaySubjectName(pay.getPay_subjectName());
orderPay.setPayBillNo(pay.getPayBillno());
if (Objects.isNull(orderPay.getId())) {
payMapper.insert(orderPay);
} else {
payMapper.updateById(orderPay);
}
}
//跟新支付信息集合
List<OrderPayInfoBean> payInfoList = orderModel.getPayInfoList();
if (CollectionUtils.isNotEmpty(payInfoList)) {
for (OrderPayInfoBean payInfo : payInfoList) {
OrderTrainPayInfo orderPayInfo = orderPayInfoList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId()) && org.apache.commons.lang3.StringUtils.equals(item.getPayBillNo(), payInfo.getPayBillno())).findFirst().orElseGet(
() -> {
OrderTrainPayInfo entity = new OrderTrainPayInfo()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(payInfo, orderPayInfo, "id", "orderId", "orderNo");
orderPayInfo.setPayBillNo(payInfo.getPayBillno());
orderPayInfo.setPayMethodName(payInfo.getPayMothedName());
if (Objects.isNull(orderPayInfo.getId())) {
payInfoMapper.insert(orderPayInfo);
} else {
payInfoMapper.updateById(orderPayInfo);
}
}
}
//跟新差旅信息
BusinessInfo business = orderModel.getBusiness();
if (Objects.nonNull(business)) {
OrderTrainBusiness orderBusiness = orderBusinessList.stream().filter(item -> Objects.equals(item.getOrderId(), order.getId())).findFirst().orElseGet(
() -> {
OrderTrainBusiness entity = new OrderTrainBusiness()
.setOrderId(order.getId())
.setOrderNo(order.getOrderNo());
entity.setTenantId(order.getTenantId());
return entity;
});
BeanUtil.copyProperties(range, orderBusiness, "id", "orderId", "orderNo");
orderBusiness.setLinkMan(business.getLink_Man());
orderBusiness.setViolateItemCode(business.getViolateitemCode());
orderBusiness.setLinkMobile(business.getLink_mobile());
orderBusiness.setLinkEmail(business.getLink_email());
orderBusiness.setViolateItem(business.getViolateitem());
if (Objects.isNull(orderBusiness.getId())) {
businessMapper.insert(orderBusiness);
} else {
businessMapper.updateById(orderBusiness);
}
}
});
});
}
......
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.server.mapper.OrderTrainTicketMapper">
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论