From 392b42c4891cf2e6beda57ab32c51598f290f4b7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 14 三月 2025 20:56:27 +0800 Subject: [PATCH] bug修改 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java | 39 +++++++++++++++++++++++++++++---------- 1 files changed, 29 insertions(+), 10 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java index d96fd6e..9b56a97 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java @@ -25,7 +25,6 @@ import com.ruoyi.system.api.feignClient.GoodsSkuClient; import com.ruoyi.system.api.feignClient.MemberClient; import io.seata.common.util.StringUtils; - import java.math.BigDecimal; import java.util.List; import java.util.Map; @@ -35,6 +34,7 @@ import javax.annotation.Resource; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -66,6 +66,11 @@ private MemberClient memberClient; @Override public void saveMemberInvoice(MemberInvoiceDTO memberInvoiceDTO) { + List<Long> memberInvoiceOrderList=memberInvoiceDTO.getOrderId(); + if (memberInvoiceOrderList.size()==0){ + throw new ServiceException("无开票订单"); + } + MemberInvoice memberInvoice =new MemberInvoice(); memberInvoice.setMemberId(memberInvoiceDTO.getMemberId()); memberInvoice.setInvoiceMoney(memberInvoiceDTO.getInvoiceMoney()); @@ -79,14 +84,12 @@ memberInvoice.setCorporationPhone(memberInvoiceDTO.getCorporationPhone()); memberInvoice.setCorporationOpen(memberInvoiceDTO.getCorporationOpen()); memberInvoice.setRiseType(memberInvoiceDTO.getRiseType()); - - BigDecimal pice=new BigDecimal(0.0); this.save(memberInvoice); - List<Long> memberInvoiceOrderList=memberInvoiceDTO.getOrderId(); - for (Long memberInvoiceOrder:memberInvoiceOrderList){ + Double pice=0.00; + for (int i=0;i<memberInvoiceOrderList.size();i++){ MemberInvoiceOrder memberInvoiceOrder1=new MemberInvoiceOrder(); - Order order= iOrderService.getById(memberInvoiceOrder); - order.setInvoiceStatus(1); + Order order= iOrderService.getById(memberInvoiceOrderList.get(i)); + order.setInvoiceStatus(2); iOrderService.updateById(order); memberInvoiceOrder1.setInvoiceId(memberInvoice.getId()); memberInvoiceOrder1.setOrderMoney(order.getTotalAmount()); @@ -95,9 +98,10 @@ OrderName=order.getSkuName(); memberInvoiceOrder1.setOrderName(OrderName); iMemberInvoiceOrderService.save(memberInvoiceOrder1); - pice.add(order.getTotalAmount()); + pice=pice+order.getTotalAmount().doubleValue(); } - memberInvoice.setInvoiceMoney(pice); + + memberInvoice.setInvoiceMoney(new BigDecimal(pice)); this.updateById(memberInvoice); } @@ -140,7 +144,8 @@ .in(com.ruoyi.common.core.utils.StringUtils.isNotEmpty(memberIdSet), MemberInvoice::getMemberId, memberIdSet) .eq(query.getInvoiceStatus() != null, MemberInvoice::getInvoiceStatus, - query.getInvoiceStatus()).page(page); + query.getInvoiceStatus()).orderByDesc(MemberInvoice::getCreateTime) + .page(page); if (page.getRecords().isEmpty()) { return PageDTO.empty(page); } @@ -204,6 +209,7 @@ * @param dto 管理后台-开票申请审核数据传输对象 */ @Override + @Transactional(rollbackFor = Exception.class) public void audit(MgtMemberInvoicingAuditDTO dto) { MemberInvoice memberInvoice = getMemberInvoice(dto.getId()); if (!Objects.equals(memberInvoice.getInvoiceStatus(), 1)) { @@ -214,5 +220,18 @@ memberInvoice.setRemark(dto.getRemark()); } this.updateById(memberInvoice); + // 更新关联订单状态 + List<MemberInvoiceOrder> memberInvoiceOrderList = iMemberInvoiceOrderService.lambdaQuery() + .eq(MemberInvoiceOrder::getInvoiceId, memberInvoice.getId()) + .list(); + Set<String> orderNoSet = memberInvoiceOrderList.stream() + .map(MemberInvoiceOrder::getOrderNo) + .collect(Collectors.toSet()); + if (!orderNoSet.isEmpty()) { + iOrderService.lambdaUpdate() + .set(Order::getInvoiceStatus, dto.getInvoiceStatus() == 2 ? 3 : 4) + .in(Order::getOrderNo, orderNoSet).update(); + } + } } -- Gitblit v1.7.1