From 9627c595820c37486d8e93949598f3a6948375ec Mon Sep 17 00:00:00 2001 From: 19991905653 Date: Wed, 3 Apr 2024 14:34:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A4=E7=8F=AD=E8=90=BD?= =?UTF-8?q?=E5=9C=B0=E6=95=B0=E6=8D=AE=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/service/PayService.java | 30 ++++++++++++++----- .../resources/mapper/TbOrderDetailMapper.xml | 3 +- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 146e439..2b6a522 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -510,37 +510,51 @@ public class PayService { // //判断是否全量退款 // if(list.size()==orderDetails.size()){ // //修改主单状态 -// orderInfo.setStatus("refund"); +// orderInfo.setStatus("rhandoverprintDataefund"); // orderInfo.setUpdatedAt(System.currentTimeMillis()); // tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); // } List returnDetail=new ArrayList<>(); - List details=new ArrayList<>(); +// List details=new ArrayList<>(); + Map map1 = new HashMap<>(); + for (TbOrderDetail orderDetail:list){ + map1.put(orderDetail.getId(),orderDetail); + } for (TbOrderDetail it : orderDetails) { it=tbOrderDetailMapper.selectByPrimaryKey(it.getId()); if (it.getStatus().equals("closed")) { if (it.getStatus().equals("refund")) { continue; } - + if (map1.get(it.getId()).getNum() > it.getNum()-it.getReturnNum()){ + throw new MsgException("可退数量:"+ (it.getNum()-it.getReturnNum())); + } OrderDetailPo detailPo = new OrderDetailPo(); - totalAmount = totalAmount.add(it.getPriceAmount()); +// totalAmount = totalAmount.add(it.getPriceAmount()); + totalAmount = totalAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()).getNum()))); saleAmount = saleAmount.add(it.getPrice()); - payAmount=payAmount.add(it.getPriceAmount()); + payAmount=payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()),2,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(map1.get(it.getId()).getNum()))); +// payAmount=payAmount.add(it.getPriceAmount()); detailPo.setId(it.getId()); - detailPo.setStatus("refund"); - detailPos.add(detailPo); + if (map1.get(it.getId()).getNum()+it.getReturnNum() >= it.getNum()){ + detailPo.setStatus("refund"); + }else { + detailPo.setStatus("closed"); + } + detailPos.add(detailPo); + it.setNum(map1.get(it.getId()).getNum()); + it.setReturnNum(0); it.setStatus("closed"); it.setCreateTime(new Date()); it.setUpdateTime(null); returnDetail.add(it); - details.add(new ReturnWTZInfo.ReturnDetail(it.getId()+"",it.getProductSkuId()+"",it.getNum()+"")); +// details.add(new ReturnWTZInfo.ReturnDetail(it.getId()+"",it.getProductSkuId()+"",it.getNum()+"")); } } diff --git a/src/main/resources/mapper/TbOrderDetailMapper.xml b/src/main/resources/mapper/TbOrderDetailMapper.xml index ddfb2d1..91b359b 100644 --- a/src/main/resources/mapper/TbOrderDetailMapper.xml +++ b/src/main/resources/mapper/TbOrderDetailMapper.xml @@ -212,7 +212,8 @@ update tb_order_detail - set status= #{item.status} + set status= #{item.status}, + return_num = return_num + #{item.returnNum} where id = #{item.id}