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

代码优化

上级 fbe6840e
package org.dromara.server.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.OrderTrainBusinessBo;
import org.dromara.server.domain.vo.OrderTrainBusinessVo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 火车票订单差旅信息
* 前端访问路由地址为:/server/orderTrainBusiness
*
* @author hzh
* @date 2024-11-19
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/orderTrainBusiness")
public class OrderTrainBusinessController extends BaseController {
private final IOrderTrainBusinessService orderTrainBusinessService;
/**
* 查询火车票订单差旅信息列表
*/
@SaCheckPermission("server:orderTrainBusiness:list")
@GetMapping("/list")
public TableDataInfo<OrderTrainBusinessVo> list(OrderTrainBusinessBo bo, PageQuery pageQuery) {
return orderTrainBusinessService.queryPageList(bo, pageQuery);
}
/**
* 导出火车票订单差旅信息列表
*/
@SaCheckPermission("server:orderTrainBusiness:export")
@Log(title = "火车票订单差旅信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OrderTrainBusinessBo bo, HttpServletResponse response) {
List<OrderTrainBusinessVo> list = orderTrainBusinessService.queryList(bo);
ExcelUtil.exportExcel(list, "火车票订单差旅信息", OrderTrainBusinessVo.class, response);
}
/**
* 获取火车票订单差旅信息详细信息
*
* @param id 主键
*/
@SaCheckPermission("server:orderTrainBusiness:query")
@GetMapping("/{id}")
public R<OrderTrainBusinessVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(orderTrainBusinessService.queryById(id));
}
/**
* 新增火车票订单差旅信息
*/
@SaCheckPermission("server:orderTrainBusiness:add")
@Log(title = "火车票订单差旅信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderTrainBusinessBo bo) {
return toAjax(orderTrainBusinessService.insertByBo(bo));
}
/**
* 修改火车票订单差旅信息
*/
@SaCheckPermission("server:orderTrainBusiness:edit")
@Log(title = "火车票订单差旅信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderTrainBusinessBo bo) {
return toAjax(orderTrainBusinessService.updateByBo(bo));
}
/**
* 删除火车票订单差旅信息
*
* @param ids 主键串
*/
@SaCheckPermission("server:orderTrainBusiness:remove")
@Log(title = "火车票订单差旅信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(orderTrainBusinessService.deleteWithValidByIds(List.of(ids), true));
}
}
package org.dromara.server.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.OrderTrainPayBo;
import org.dromara.server.domain.vo.OrderTrainPayVo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 火车票订单支付信息
* 前端访问路由地址为:/server/orderTrainPay
*
* @author hzh
* @date 2024-11-19
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/orderTrainPay")
public class OrderTrainPayController extends BaseController {
private final IOrderTrainPayService orderTrainPayService;
/**
* 查询火车票订单支付信息列表
*/
@SaCheckPermission("server:orderTrainPay:list")
@GetMapping("/list")
public TableDataInfo<OrderTrainPayVo> list(OrderTrainPayBo bo, PageQuery pageQuery) {
return orderTrainPayService.queryPageList(bo, pageQuery);
}
/**
* 导出火车票订单支付信息列表
*/
@SaCheckPermission("server:orderTrainPay:export")
@Log(title = "火车票订单支付信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OrderTrainPayBo bo, HttpServletResponse response) {
List<OrderTrainPayVo> list = orderTrainPayService.queryList(bo);
ExcelUtil.exportExcel(list, "火车票订单支付信息", OrderTrainPayVo.class, response);
}
/**
* 获取火车票订单支付信息详细信息
*
* @param id 主键
*/
@SaCheckPermission("server:orderTrainPay:query")
@GetMapping("/{id}")
public R<OrderTrainPayVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(orderTrainPayService.queryById(id));
}
/**
* 新增火车票订单支付信息
*/
@SaCheckPermission("server:orderTrainPay:add")
@Log(title = "火车票订单支付信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderTrainPayBo bo) {
return toAjax(orderTrainPayService.insertByBo(bo));
}
/**
* 修改火车票订单支付信息
*/
@SaCheckPermission("server:orderTrainPay:edit")
@Log(title = "火车票订单支付信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderTrainPayBo bo) {
return toAjax(orderTrainPayService.updateByBo(bo));
}
/**
* 删除火车票订单支付信息
*
* @param ids 主键串
*/
@SaCheckPermission("server:orderTrainPay:remove")
@Log(title = "火车票订单支付信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(orderTrainPayService.deleteWithValidByIds(List.of(ids), true));
}
}
package org.dromara.server.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.OrderTrainPayInfoBo;
import org.dromara.server.domain.vo.OrderTrainPayInfoVo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 火车票订单支付信息集合
* 前端访问路由地址为:/server/orderTrainPayInfo
*
* @author hzh
* @date 2024-11-19
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/orderTrainPayInfo")
public class OrderTrainPayInfoController extends BaseController {
private final IOrderTrainPayInfoService orderTrainPayInfoService;
/**
* 查询火车票订单支付信息集合列表
*/
@SaCheckPermission("server:orderTrainPayInfo:list")
@GetMapping("/list")
public TableDataInfo<OrderTrainPayInfoVo> list(OrderTrainPayInfoBo bo, PageQuery pageQuery) {
return orderTrainPayInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出火车票订单支付信息集合列表
*/
@SaCheckPermission("server:orderTrainPayInfo:export")
@Log(title = "火车票订单支付信息集合", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OrderTrainPayInfoBo bo, HttpServletResponse response) {
List<OrderTrainPayInfoVo> list = orderTrainPayInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "火车票订单支付信息集合", OrderTrainPayInfoVo.class, response);
}
/**
* 获取火车票订单支付信息集合详细信息
*
* @param id 主键
*/
@SaCheckPermission("server:orderTrainPayInfo:query")
@GetMapping("/{id}")
public R<OrderTrainPayInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(orderTrainPayInfoService.queryById(id));
}
/**
* 新增火车票订单支付信息集合
*/
@SaCheckPermission("server:orderTrainPayInfo:add")
@Log(title = "火车票订单支付信息集合", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderTrainPayInfoBo bo) {
return toAjax(orderTrainPayInfoService.insertByBo(bo));
}
/**
* 修改火车票订单支付信息集合
*/
@SaCheckPermission("server:orderTrainPayInfo:edit")
@Log(title = "火车票订单支付信息集合", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderTrainPayInfoBo bo) {
return toAjax(orderTrainPayInfoService.updateByBo(bo));
}
/**
* 删除火车票订单支付信息集合
*
* @param ids 主键串
*/
@SaCheckPermission("server:orderTrainPayInfo:remove")
@Log(title = "火车票订单支付信息集合", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(orderTrainPayInfoService.deleteWithValidByIds(List.of(ids), true));
}
}
package org.dromara.server.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.server.domain.bo.OrderTrainRangeBo;
import org.dromara.server.domain.vo.OrderTrainRangeVo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 火车票订单车票行程
* 前端访问路由地址为:/server/orderTrainRange
*
* @author hzh
* @date 2024-11-19
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/orderTrainRange")
public class OrderTrainRangeController extends BaseController {
private final IOrderTrainRangeService orderTrainRangeService;
/**
* 查询火车票订单车票行程列表
*/
@SaCheckPermission("server:orderTrainRange:list")
@GetMapping("/list")
public TableDataInfo<OrderTrainRangeVo> list(OrderTrainRangeBo bo, PageQuery pageQuery) {
return orderTrainRangeService.queryPageList(bo, pageQuery);
}
/**
* 导出火车票订单车票行程列表
*/
@SaCheckPermission("server:orderTrainRange:export")
@Log(title = "火车票订单车票行程", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(OrderTrainRangeBo bo, HttpServletResponse response) {
List<OrderTrainRangeVo> list = orderTrainRangeService.queryList(bo);
ExcelUtil.exportExcel(list, "火车票订单车票行程", OrderTrainRangeVo.class, response);
}
/**
* 获取火车票订单车票行程详细信息
*
* @param id 主键
*/
@SaCheckPermission("server:orderTrainRange:query")
@GetMapping("/{id}")
public R<OrderTrainRangeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(orderTrainRangeService.queryById(id));
}
/**
* 新增火车票订单车票行程
*/
@SaCheckPermission("server:orderTrainRange:add")
@Log(title = "火车票订单车票行程", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody OrderTrainRangeBo bo) {
return toAjax(orderTrainRangeService.insertByBo(bo));
}
/**
* 修改火车票订单车票行程
*/
@SaCheckPermission("server:orderTrainRange:edit")
@Log(title = "火车票订单车票行程", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody OrderTrainRangeBo bo) {
return toAjax(orderTrainRangeService.updateByBo(bo));
}
/**
* 删除火车票订单车票行程
*
* @param ids 主键串
*/
@SaCheckPermission("server:orderTrainRange:remove")
@Log(title = "火车票订单车票行程", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(orderTrainRangeService.deleteWithValidByIds(List.of(ids), true));
}
}
......@@ -8,6 +8,7 @@ import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 火车票订单对象 biz_order_train
......@@ -77,7 +78,7 @@ public class OrderTrain extends TenantEntity {
/**
* 服务费合计
*/
private Long serviceChargePrice;
private BigDecimal serviceChargePrice;
/**
* 乘车人
......
......@@ -5,6 +5,8 @@ import org.dromara.server.domain.OrderTrain;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.vo.OrderTrainVo;
import java.util.List;
/**
* 火车票订单Service接口
*
......@@ -13,5 +15,20 @@ import org.dromara.server.domain.vo.OrderTrainVo;
*/
public interface IOrderTrainService extends IBaseService<OrderTrainVo, OrderTrainBo, OrderTrain> {
/**
* 批量保存订单
*
* @param userId 用户id
* @param orderNoList 订单号列表
*/
void batchSaveOrder(String userId, List<String> orderNoList);
/**
* 更新火车票信息
*
* @param orderNoList 订单号列表
*/
void updateOrderInfo(List<String> orderNoList);
}
......@@ -128,10 +128,14 @@ public class OrderAirportServiceImpl extends AbstractBaseService<OrderAirportVo,
@Override
public void updateAirportInfo(List<String> orderNoList) {
orderNoList = CollectionUtils.isEmpty(orderNoList) ? List.of("-1") : orderNoList;
if (CollectionUtils.isEmpty(orderNoList)) {
return;
}
List<OrderAirport> orderList = baseMapper.selectList(new LambdaQueryWrapper<OrderAirport>().in(OrderAirport::getOrderNo, orderNoList));
List<Long> orderIds = StreamUtils.toList(orderList, OrderAirport::getId);
orderIds = CollectionUtils.isEmpty(orderIds) ? List.of(-1L) : orderIds;
if (CollectionUtils.isEmpty(orderIds)) {
return;
}
List<OrderAirportPsg> orderPsgList = psgMapper.selectList(new LambdaQueryWrapper<OrderAirportPsg>().in(OrderAirportPsg::getOrderId, orderIds));
List<OrderAirportRange> orderRangeList = rangeMapper.selectList(new LambdaQueryWrapper<OrderAirportRange>().in(OrderAirportRange::getOrderId, orderIds));
List<OrderAirportInsurance> orderInsuranceList = insuranceMapper.selectList(new LambdaQueryWrapper<OrderAirportInsurance>().in(OrderAirportInsurance::getOrderId, orderIds));
......
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.toolkit.Wrappers;
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.model.req.train.OrderQueryModel;
import org.dromara.common.ys.model.res.train.OrderInfoModel;
import org.dromara.common.ys.service.ITrainService;
import org.dromara.server.base.AbstractBaseService;
import org.dromara.server.domain.OrderTrain;
import org.dromara.server.domain.*;
import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.mapper.OrderTrainMapper;
import org.dromara.server.mapper.*;
import org.dromara.server.service.IOrderTrainService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ScheduledExecutorService;
/**
* 火车票订单Service业务层处理
......@@ -26,6 +35,15 @@ import java.util.Map;
public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, OrderTrainBo, OrderTrain> implements IOrderTrainService {
private final OrderTrainMapper baseMapper;
private final OrderTrainBusinessMapper businessMapper;
private final OrderTrainPayMapper payMapper;
private final OrderTrainPayInfoMapper payInfoMapper;
private final OrderTrainRangeMapper rangeMapper;
private final OrderTrainTicketMapper ticketMapper;
private final ITrainService trainService;
private final BizUserMapper userMapper;
private final ScheduledExecutorService scheduledExecutorService;
@Override
public BaseMapperPlus<OrderTrain, OrderTrainVo> mapper() {
......@@ -61,4 +79,53 @@ public class OrderTrainServiceImpl extends AbstractBaseService<OrderTrainVo, Ord
return lqw;
}
@Override
public void batchSaveOrder(String userId, List<String> orderNoList) {
BizUser user = userMapper.selectOne(new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserNo, userId));
if (Objects.isNull(user)) {
throw new RuntimeException("用户不存在");
}
List<OrderTrain> orderList = orderNoList.stream().map(orderNo -> {
OrderTrain order = new OrderTrain();
order.setPersonCode(userId);
order.setOrderNo(orderNo);
order.setTenantId(user.getTenantId());
return order;
}).toList();
for (OrderTrain bo : orderList) {
baseMapper.insert(bo);
}
updateOrderInfo(orderNoList);
}
@Override
public void updateOrderInfo(List<String> orderNoList) {
if (CollectionUtils.isEmpty(orderNoList)) {
return;
}
List<OrderTrain> orderList = baseMapper.selectList(new LambdaQueryWrapper<OrderTrain>().in(OrderTrain::getOrderNo, orderNoList));
List<Long> orderIds = StreamUtils.toList(orderList, OrderTrain::getId);
if (CollectionUtils.isEmpty(orderIds)) {
return;
}
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));
//更新数据
orderList.forEach(order -> {
scheduledExecutorService.execute(() -> {
OrderInfoModel orderModel = trainService.detail(order.getPersonCode(), new OrderQueryModel().setOrderNO(order.getOrderNo()));
//跟新订单数据
BeanUtil.copyProperties(orderModel, order, "id", "personCode", "activityId");
order.setOrderStatusName(orderModel.getOrderStatuName());
order.setIsByIdCard(orderModel.getIsByidcard());
order.setIsNoSeat(orderModel.getIsNoseat());
order.setIsByIdCardName(orderModel.getIsByidcardName());
order.setServiceChargePrice(orderModel.getServiceChargePrice());
baseMapper.updateById(order);
});
});
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论