From 0b9f2eeb5e2ff7995f39d217e90a6c64e37366d4 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 17 六月 2024 15:32:44 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 176 +++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 124 insertions(+), 52 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 76b0823..0e7ea2a 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 @@ -56,6 +56,7 @@ import com.ruoyi.system.api.domain.dto.updMembeOneDTO; import com.ruoyi.system.api.domain.vo.Express100VO; import com.ruoyi.system.api.domain.vo.MemberOrderListVO; +import com.ruoyi.system.api.domain.vo.MemberOrderNumVO; import com.ruoyi.system.api.domain.vo.MemberTiOrderVO; import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.feignClient.AuctionClient; @@ -150,7 +151,7 @@ } order.setOrderTime(OrderDTO.getOrderTime()); order.setOrderFrom(OrderDTO.getOrderFrom()); - order.setAuctionType(OrderDTO.getAuctionType()); + order.setAuctionOrderType(OrderDTO.getAuctionType()); order.setGoodsSkuId(OrderDTO.getGoodsSkuId()); order.setMemberId(OrderDTO.getMemberId()); order.setTotalAmount(OrderDTO.getTotalAmount()); @@ -326,6 +327,7 @@ order.setSkuName(goodsSku.getSkuName()); order.setPrice(data.getSeckillPrice()); order.setCoverPic(goodsSku.getCoverPic()); + order.setSjPrice(goodsSku.getPrice()); /*redisService.setCacheObject(CacheConstants.SECKILL_GOODS + data.getId(), surpNum - memberOrderDTO.getGoodsQuantity());*/ } if (memberOrderDTO.getOrderFrom()==3){ @@ -343,6 +345,7 @@ order.setSkuName(goodsSku.getSkuName()); order.setPrice(data.getGroupPurchasePrice()); order.setCoverPic(goodsSku.getCoverPic()); + order.setSjPrice(goodsSku.getPrice()); } order.setMemberId(memberOrderDTO.getMemberId()); order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); @@ -401,6 +404,7 @@ @Override public MemberTiOrderVO updMemberOrder(MemberOrderDTO memberOrderDTO) { Order order = baseMapper.selectById(memberOrderDTO.getId()); + MemberTiOrderVO memberOrderVO=new MemberTiOrderVO(); if (memberOrderDTO.getReceiverDetailAddress()!=null){ order.setReceiverName(memberOrderDTO.getReceiverName()); @@ -429,6 +433,7 @@ SecurityConstants.INNER); order.setTotalAmount(goodsSku.getPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()))); + order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); memberOrderVO.setPrice(goodsSku.getPrice()); memberOrderVO.setCoverPic(goodsSku.getCoverPic()); @@ -438,17 +443,19 @@ } if (order.getOrderFrom().getCode()==2){ MemberOrderDTO memberOrderDTO1=new MemberOrderDTO(); - memberOrderDTO1.setMemberId(memberOrderDTO.getMemberId()); - memberOrderDTO1.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); + memberOrderDTO1.setMemberId(order.getMemberId()); + memberOrderDTO1.setGoodsSkuId(order.getGoodsSkuId()); Integer num=baseMapper.getSeckillMembers1(memberOrderDTO1); - GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); - GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); - if (data.getLimitNumber()<=num){ + Integer num1=num+order.getGoodsQuantity(); + 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{ if (data.getSeckillStock()<memberOrderDTO.getGoodsQuantity()){ throw new ServiceException("对不起,购买数大于库存"); }else{ + order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setGoodsSkuId(data.getId()); goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); @@ -459,7 +466,12 @@ goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()-memberOrderDTO.getGoodsQuantity()); goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER); - order.setTotalAmount(data.getSeckillPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()))); + order.setTotalAmount(data.getSeckillPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()))); + order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); + order.setSkuName(goodsSku.getSkuName()); + order.setPrice(data.getSeckillPrice()); + order.setCoverPic(goodsSku.getCoverPic()); + order.setSjPrice(goodsSku.getPrice()); } } @@ -468,9 +480,40 @@ 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(); + GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); + MemberOrderDTO memberOrderDTO1=new MemberOrderDTO(); + memberOrderDTO1.setMemberId(order.getMemberId()); + 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("对不起,购买数大于库存"); + }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()); + } + } + + + } + } + BigDecimal pice=order.getPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())); if (memberOrderDTO.getCouponId()!=null){ CouponMemberDTO couponMemberDTO=new CouponMemberDTO(); couponMemberDTO.setId(memberOrderDTO.getCouponId()); @@ -484,9 +527,8 @@ promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); } - BigDecimal pice=new BigDecimal(0); + if (data.getCouponType().getCode()==1){ - pice= order.getTotalAmount(); if (pice.doubleValue()>=data.getFullReductionAmount().doubleValue()){ pice.subtract(data.getReductionAmount()); order.setDiscountMoney(data.getReductionAmount()); @@ -518,18 +560,17 @@ couponMemberDTO2.setCouponStatus(2); promotionClient.updCouponMember(couponMemberDTO2, SecurityConstants.INNER); - order.setTotalAmount(pice); - CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData(); - CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData(); - - BigDecimal pic=pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())); - Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue()); - BigDecimal pi=pic.multiply(new BigDecimal(aDouble)); - order.setPoints(pi.intValue()); } + order.setTotalAmount(pice); + CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData(); + CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData(); + + Double aDouble= Double.valueOf(memberPointsMoney.getConfigValue()) * Double.valueOf(memberPointsPoints.getConfigValue()); + BigDecimal pi=pice.multiply(new BigDecimal(aDouble)); + order.setPoints(pi.intValue()); baseMapper.updateById(order); memberOrderVO.setId(order.getId()); @@ -564,7 +605,7 @@ wrapper.like(Order::getOrderNo,memberOrderListDTO.getOrderNo()); } if(memberOrderListDTO.getOrderStatus()!=null){ - wrapper.eq(Order::getOrderStatus,memberOrderListDTO.getOrderStatus().getCode()); + wrapper.eq(Order::getOrderStatus,memberOrderListDTO.getOrderStatus().getCode()-1); } wrapper.eq(Order::getDelFlag,0); wrapper.orderByDesc(Order::getCancelTime); @@ -639,17 +680,17 @@ @Override public void CancelOrderOne(MemberOrderListDTO memberOrderListDTO) { Order order = baseMapper.selectById(memberOrderListDTO.getId()); - if (order.getOrderStatus().getCode()==1){ + if (order.getOrderStatus().getCode() == 1) { order.setOrderStatus(OrderStatusEnum.CANCELED); order.setCancelTime(LocalDateTime.now()); baseMapper.updateById(order); } - if (order.getOrderStatus().getCode()==2) { + if (order.getOrderStatus().getCode() == 2) { order.setOrderStatus(OrderStatusEnum.CANCELED); order.setCancelTime(LocalDateTime.now()); baseMapper.updateById(order); - updMembeOneDTO MembeOneDTO=new updMembeOneDTO(); + updMembeOneDTO MembeOneDTO = new updMembeOneDTO(); MembeOneDTO.setType(2); MembeOneDTO.setMemberId(order.getMemberId()); MembeOneDTO.setMoney(order.getTotalAmount()); @@ -662,33 +703,38 @@ LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); - boolean bo = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); - if (!bo) { - System.out.println("支付宝退款失败"); + 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() == 2) {//微信 //获取支付信息 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 = 1; - 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 = 1; + 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("微信退款失败"); + } - 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()); @@ -722,20 +768,46 @@ Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); refundFee = 1; - 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("微信退款失败"); + 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("微信退款失败"); + } } - } + }else{ order.setOrderStatus(OrderStatusEnum.FINISHED); order.setReceiveTime(LocalDateTime.now()); baseMapper.updateById(order); } + } + + @Override + public MemberOrderNumVO MemberOrderNum(MemberOrderListDTO memberOrderListDTO) { + MemberOrderNumVO vo=new MemberOrderNumVO(); + + LambdaQueryWrapper<Order> paylogEntityWrapper = Wrappers.lambdaQuery(); + paylogEntityWrapper.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); + paylogEntityWrapper.eq(Order::getOrderStatus,1); + List<Order> list = this.list(paylogEntityWrapper); + vo.setDzforderNo(list.size()); + + LambdaQueryWrapper<Order> paylogEntityWrapper1 = Wrappers.lambdaQuery(); + paylogEntityWrapper1.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); + paylogEntityWrapper1.eq(Order::getOrderStatus,2); + List<Order> list1 = this.list(paylogEntityWrapper1); + vo.setDfhorderNo(list1.size()); + + LambdaQueryWrapper<Order> paylogEntityWrapper2 = Wrappers.lambdaQuery(); + paylogEntityWrapper2.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); + paylogEntityWrapper2.eq(Order::getOrderStatus,3); + List<Order> list2 = this.list(paylogEntityWrapper2); + vo.setDshorderNo(list2.size()); + + return vo; } /** @@ -788,13 +860,13 @@ .like(StringUtils.isNotBlank(query.getOrderNo()), Order::getOrderNo, query.getOrderNo()) .eq(StringUtils.isNotNull(query.getOrderFrom()) && query.getQueryType() - .equals(OrderTypeEnum.MALL_ODER), - Order::getOrderFrom, + .equals(OrderTypeEnum.MALL_ODER), Order::getOrderFrom, query.getOrderFrom()) .like(StringUtils.isNotBlank(query.getSkuName()), Order::getSkuName, query.getSkuName()) .eq(StringUtils.isNotNull(query.getOrderStatus()), Order::getOrderStatus, query.getOrderStatus()) + .orderByDesc(Order::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isEmpty(page.getRecords())) { pageVO = PageDTO.empty(page); @@ -887,7 +959,7 @@ mgtOrderVO.setPhone(member.getPhone()); } // 拍卖订单查询拍卖会信息 - if (order.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS && (order.getAuctionType() + if (order.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS && (order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS)) { List<AuctionSalesroom> auctionSalesroom = auctionClient.getAuctionSalesroomByIds( Lists.newArrayList(order.getGoodsSkuId()) @@ -1058,7 +1130,7 @@ public void refundBond(Long id) { Order order = getOrder(id); OrderAuctionBond orderAuctionBond; - if (order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS) { + if (order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS) { orderAuctionBond = orderAuctionBondMapper.selectOne( Wrappers.lambdaQuery(OrderAuctionBond.class) .eq(OrderAuctionBond::getAuctionSalesroomId, -- Gitblit v1.7.1