From fcd4954fc859440df4b04b4a8153c54a824c78b7 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期四, 04 七月 2024 18:12:26 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 158 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 115 insertions(+), 43 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index f52612c..e5123ad 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -130,17 +130,21 @@ if (OrderDTO.getOrderFrom().getCode()==1){ order.setOrderFrom(OrderFromEnum.COMMODITY_ORDER); order.setOrderNo(OrderUtil.getOrderNoForPrefix("SP")); + order.setIsOrder(1); } if (OrderDTO.getOrderFrom().getCode()==2){ order.setOrderFrom(OrderFromEnum.SNAP_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("MS")); + order.setIsOrder(1); } if (OrderDTO.getOrderFrom().getCode()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG")); + order.setIsOrder(2); }if (OrderDTO.getOrderFrom().getCode()==4){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("PM")); + order.setIsOrder(1); } order.setOrderTime(OrderDTO.getOrderTime()); order.setOrderFrom(OrderDTO.getOrderFrom()); @@ -258,6 +262,7 @@ if (memberOrderDTO.getOrderFrom()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG")); + order.setIsOrder(2); } if (memberOrderDTO.getPaymentMethod()==1){ order.setPaymentMethod(PaymentMethodEnum.WECHAT); @@ -346,6 +351,10 @@ if (memberOrderDTO.getOrderFrom()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); + Integer m=data.getCurrentNumber()+1; + if (m>data.getGroupSize()){ + throw new ServiceException("对不起,大成团人数"); + } GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); memberOrderVO.setPrice(data.getGroupPurchasePrice()); @@ -354,6 +363,8 @@ memberOrderVO.setSkuName(goodsSku.getSkuName()); memberOrderVO.setYouhiPrice(data.getGroupPurchasePrice()); pice=data.getGroupPurchasePrice(); + + goodsSkuClient.GroupPurchaseNum(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER); order.setSkuName(goodsSku.getSkuName()); order.setPrice(data.getGroupPurchasePrice()); @@ -474,23 +485,25 @@ GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); - if (data.getLimitNumber()<num1){ - throw new ServiceException("对不起,大于商品购买数"); - }else{ - GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); - goodsStockUpdDTO.setGoodsSkuId(data.getId()); - goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); - goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER); - if (data.getSeckillStock()+order.getGoodsQuantity()<memberOrderDTO.getGoodsQuantity()){ - throw new ServiceException("对不起,购买数大于库存"); - } + if (order.getGoodsQuantity()!=order.getGoodsQuantity()){ + if (data.getLimitNumber()<num1){ + throw new ServiceException("对不起,大于商品购买数"); + }else{ + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(data.getId()); + goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); + goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER); - Integer m=data.getSeckillStock()+order.getGoodsQuantity(); - GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); - goodsStockUpdDTO1.setGoodsSkuId(data.getId()); - goodsStockUpdDTO1.setAuctionStock(m-memberOrderDTO.getGoodsQuantity()); - goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); + if (data.getSeckillStock()+order.getGoodsQuantity()<memberOrderDTO.getGoodsQuantity()){ + throw new ServiceException("对不起,购买数大于库存"); + } + + Integer m=data.getSeckillStock()+order.getGoodsQuantity(); + GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); + goodsStockUpdDTO1.setGoodsSkuId(data.getId()); + goodsStockUpdDTO1.setAuctionStock(m-memberOrderDTO.getGoodsQuantity()); + goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); order.setTotalAmount(data.getSeckillPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()))); order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); @@ -500,12 +513,15 @@ order.setSjPrice(goodsSku.getPrice()); - } - memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); - memberOrderVO.setPrice(goodsSku.getPrice()); - memberOrderVO.setCoverPic(goodsSku.getCoverPic()); - memberOrderVO.setSkuName(goodsSku.getSkuName()); - memberOrderVO.setYouhiPrice(data.getSeckillPrice()); + } + memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); + memberOrderVO.setPrice(goodsSku.getPrice()); + memberOrderVO.setCoverPic(goodsSku.getCoverPic()); + memberOrderVO.setSkuName(goodsSku.getSkuName()); + memberOrderVO.setYouhiPrice(data.getSeckillPrice()); + + } + } if (order.getOrderFrom().getCode()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); @@ -515,28 +531,27 @@ memberOrderDTO1.setGoodsSkuId(order.getGoodsSkuId()); Integer num=baseMapper.getGoodsGroupPurchase(memberOrderDTO1); Integer num1=num+order.getGoodsQuantity(); - if (data.getLimitNumber()<=num1){ - throw new ServiceException("对不起,大于商品购买数"); - }else{ - if (data.getLimitNumber()<memberOrderDTO.getGoodsQuantity()){ - throw new ServiceException("对不起,购买数大于库存"); + if (order.getGoodsQuantity()!=order.getGoodsQuantity()){ + if (data.getLimitNumber()<=num1){ + throw new ServiceException("对不起,大于商品购买数"); }else{ - memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); - memberOrderVO.setPrice(data.getGroupPurchasePrice()); - memberOrderVO.setSjPrice(goodsSku.getPrice()); - memberOrderVO.setCoverPic(goodsSku.getCoverPic()); - memberOrderVO.setSkuName(goodsSku.getSkuName()); - memberOrderVO.setYouhiPrice(data.getGroupPurchasePrice()); - order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); - order.setSkuName(goodsSku.getSkuName()); - order.setPrice(data.getGroupPurchasePrice()); - order.setCoverPic(goodsSku.getCoverPic()); - order.setSjPrice(goodsSku.getPrice()); + if (data.getLimitNumber()<memberOrderDTO.getGoodsQuantity()){ + throw new ServiceException("对不起,购买数大于库存"); + }else{ + memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); + memberOrderVO.setPrice(data.getGroupPurchasePrice()); + memberOrderVO.setSjPrice(goodsSku.getPrice()); + memberOrderVO.setCoverPic(goodsSku.getCoverPic()); + memberOrderVO.setSkuName(goodsSku.getSkuName()); + memberOrderVO.setYouhiPrice(data.getGroupPurchasePrice()); + order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); + order.setSkuName(goodsSku.getSkuName()); + order.setPrice(data.getGroupPurchasePrice()); + order.setCoverPic(goodsSku.getCoverPic()); + order.setSjPrice(goodsSku.getPrice()); + } } } - - - } } if (memberOrderDTO.getGoodsQuantity()!=null){ @@ -661,6 +676,7 @@ if(memberOrderListDTO.getOrderStatus()!=null){ wrapper.eq(Order::getOrderStatus,memberOrderListDTO.getOrderStatus().getCode()-1); } + wrapper.eq(Order::getIsOrder,1); wrapper.eq(Order::getDelFlag,0); wrapper.orderByDesc(Order::getCancelTime); Page<Order> page1 = this.page(page, wrapper); @@ -816,7 +832,7 @@ memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER); - if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//支付宝 + if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 2) {//支付宝 //获取支付信息 LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); @@ -828,7 +844,7 @@ } } - } else if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 2) {//微信 + } else if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//微信 //获取支付信息 LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); @@ -838,7 +854,7 @@ Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3)); String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); - refundFee = 1; + refundFee = Integer.parseInt(money.substring(0, money.length() - 3)); String regEx = "[^0-9]"; Pattern p = Pattern.compile(regEx); @@ -853,6 +869,62 @@ } } } + + @Override + public void delOrderOne(MemberOrderListDTO memberOrderListDTO) { + baseMapper.deleteById(memberOrderListDTO.getId()); + Order order = baseMapper.selectById(memberOrderListDTO.getId()); + Order byId = this.getById(memberOrderListDTO.getId()); + goodsSkuClient.GroupPurchaseNum1(byId.getGoodsSkuId(), SecurityConstants.INNER); + this.removeById(memberOrderListDTO.getId()); + if (order.getOrderStatus().getCode() == 2) { + + updMembeOneDTO MembeOneDTO = new updMembeOneDTO(); + MembeOneDTO.setType(2); + MembeOneDTO.setMemberId(order.getMemberId()); + MembeOneDTO.setMoney(order.getTotalAmount()); + MembeOneDTO.setTotalPoints(order.getPoints()); + memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER); + + + if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 2) {//支付宝 + //获取支付信息 + LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); + paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); + Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); + if (paylog != null) { + boolean bo = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); + if (!bo) { + System.out.println("支付宝退款失败"); + } + } + + } else if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//微信 + //获取支付信息 + LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); + paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); + Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); + if (paylog != null) { + String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); + Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3)); + String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); + Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); + refundFee = Integer.parseInt(money.substring(0, money.length() - 3)); + + String regEx = "[^0-9]"; + Pattern p = Pattern.compile(regEx); + Matcher m = p.matcher(order.getOrderNo()); + String ma = m.replaceAll("").trim(); + boolean bo = paylogService.refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), "R" + ma, totalFee, refundFee, "2"); + if (!bo) { + System.out.println("微信退款失败"); + } + + } + } + } + } + @Override public void AffirmOrderOne(MemberOrderListDTO memberOrderListDTO) { Order order = baseMapper.selectById(memberOrderListDTO.getId()); -- Gitblit v1.7.1