AfterSaleOrderFeeServiceImpl.java 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package com.ylx.massage.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  6. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  7. import com.ylx.common.exception.ServiceException;
  8. import com.ylx.common.utils.DateUtils;
  9. import com.ylx.common.utils.SecurityUtils;
  10. import com.ylx.massage.domain.AfterSaleOrder;
  11. import com.ylx.massage.domain.AfterSaleOrderFee;
  12. import com.ylx.massage.domain.dto.AfterSaleOrderFeeBatchDTO;
  13. import com.ylx.massage.domain.dto.AfterSaleOrderFeeDTO;
  14. import com.ylx.massage.mapper.AfterSaleOrderFeeMapper;
  15. import com.ylx.massage.service.IAfterSaleOrderFeeService;
  16. import com.ylx.massage.service.IAfterSaleOrderService;
  17. import org.springframework.stereotype.Service;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import javax.annotation.Resource;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. import java.util.stream.Collectors;
  23. @Service
  24. public class AfterSaleOrderFeeServiceImpl extends ServiceImpl<AfterSaleOrderFeeMapper, AfterSaleOrderFee> implements IAfterSaleOrderFeeService {
  25. @Resource
  26. private AfterSaleOrderFeeMapper afterSaleOrderFeeMapper;
  27. @Resource
  28. private IAfterSaleOrderService afterSaleOrderService;
  29. @Override
  30. @Transactional(rollbackFor = Exception.class)
  31. public void batchSaveFees(AfterSaleOrderFeeBatchDTO batchDTO) {
  32. Long afterSaleOrderId = batchDTO.getAfterSaleOrderId();
  33. AfterSaleOrder afterSaleOrder = this.afterSaleOrderService.getById(afterSaleOrderId);
  34. if (ObjectUtil.isNull(afterSaleOrder)) {
  35. throw new ServiceException("售后订单不存在");
  36. }
  37. List<AfterSaleOrderFeeDTO> feeList = batchDTO.getFeeList();
  38. if (CollUtil.isEmpty(feeList)) {
  39. return;
  40. }
  41. // 拆分:新增列表、更新列表
  42. List<AfterSaleOrderFeeDTO> insertList = new ArrayList<>();
  43. List<AfterSaleOrderFeeDTO> updateList = new ArrayList<>();
  44. for (AfterSaleOrderFeeDTO dto : feeList) {
  45. if (dto.getId() == null) {
  46. insertList.add(dto);
  47. } else {
  48. updateList.add(dto);
  49. }
  50. }
  51. // 1. 批量新增:无 ID 的
  52. if (CollUtil.isNotEmpty(insertList)) {
  53. List<AfterSaleOrderFee> insertEntities = insertList.stream()
  54. .map(dto -> {
  55. AfterSaleOrderFee entity = BeanUtil.copyProperties(dto, AfterSaleOrderFee.class);
  56. entity.setAfterSaleOrderId(afterSaleOrderId);
  57. entity.setOrderNo(afterSaleOrder.getOrderNo());
  58. entity.setCreateBy(SecurityUtils.getUsername());
  59. entity.setCreateTime(DateUtils.getNowDate());
  60. return entity;
  61. })
  62. .collect(Collectors.toList());
  63. super.saveBatch(insertEntities);
  64. }
  65. // 2. 批量更新:有 ID 的
  66. if (CollUtil.isNotEmpty(updateList)) {
  67. List<AfterSaleOrderFee> updateEntities = updateList.stream()
  68. .map(dto -> {
  69. AfterSaleOrderFee entity = BeanUtil.copyProperties(dto, AfterSaleOrderFee.class);
  70. entity.setAfterSaleOrderId(afterSaleOrderId);
  71. entity.setUpdateBy(SecurityUtils.getUsername());
  72. entity.setUpdateTime(DateUtils.getNowDate());
  73. return entity;
  74. })
  75. .collect(Collectors.toList());
  76. super.updateBatchById(updateEntities);
  77. }
  78. }
  79. }