From 078b8b00eca347c92abceb6e0ad44a39d7f7d55f Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期三, 31 七月 2024 18:17:53 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 85 +++++++++++++++++++++++++++++------------- 1 files changed, 59 insertions(+), 26 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 ee785b5..9fb4c15 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 @@ -7,11 +7,11 @@ import com.google.common.collect.Lists; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.enums.*; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuditStatusEnum; import com.ruoyi.common.core.enums.BondStatusEnum; import com.ruoyi.common.core.enums.CouponUseEnum; +import com.ruoyi.common.core.enums.GroupStatusEnum; import com.ruoyi.common.core.enums.OrderFromEnum; import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.enums.OrderTypeEnum; @@ -65,7 +65,11 @@ import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.updMembeOneDTO; -import com.ruoyi.system.api.domain.vo.*; +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; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import com.ruoyi.system.api.feignClient.MemberClient; @@ -80,6 +84,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -168,6 +173,9 @@ order.setOrderFrom(OrderFromEnum.AUCTION_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("PM")); order.setIsOrder(1); + if (OrderDTO.getAuctionType().equals(AuctionOrderTypeEnum.AUCTION_ITEMS)) { + order.setAuctionSalesroomId(OrderDTO.getAuctionSalesroomId()); + } } order.setOrderTime(OrderDTO.getOrderTime()); order.setOrderFrom(OrderDTO.getOrderFrom()); @@ -189,6 +197,8 @@ order.setOrderTimeSx(OrderDTO.getOrderTimeSx()); this.save(order); + + if (OrderDTO.getOrderFrom().getCode()==4){ if (OrderDTO.getAuctionType().getCode()==1){ LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); @@ -203,7 +213,6 @@ if (OrderDTO.getAuctionType().getCode()==2){ LambdaQueryWrapper<OrderAuctionBond> wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,OrderDTO.getMemberId()); - wrapper.eq(OrderAuctionBond::getAuctionGoodsId,OrderDTO.getGoodsSkuId()); wrapper.eq(OrderAuctionBond::getBoundStatus,2); wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,OrderDTO.getAuctionSalesroomId()); wrapper.eq(OrderAuctionBond::getBondType,2); @@ -908,6 +917,7 @@ LambdaQueryWrapper<OrderAuctionBond> wrapper3= Wrappers.lambdaQuery(); wrapper3.eq(OrderAuctionBond::getOrderId,order.getId()); + wrapper3.or().eq(OrderAuctionBond::getOrderNo, order.getOrderNo()); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper3); if (orderAuctionBond!=null){ if (orderAuctionBond.getBoundStatus().getCode()==1||orderAuctionBond.getBoundStatus().getCode()==2){ @@ -982,6 +992,7 @@ goodsGroupPurchaseInfo.setMubre(order.getGroupNo()); GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(order.getGroupNo(), SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ + goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(order.getGoodsQuantity()); GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } @@ -1024,6 +1035,7 @@ goodsGroupPurchaseInfo.setMubre(order.getGroupNo()); GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(order.getGroupNo(), SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ + goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(order.getGoodsQuantity()); GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } @@ -1089,11 +1101,9 @@ Order byId = this.getById(memberOrderListDTO.getId()); if(byId.getOrderNo().contains("TG")){ - GoodsGroupPurchaseInfo goodsGroupPurchaseInfo =new GoodsGroupPurchaseInfo(); - goodsGroupPurchaseInfo.setGroupPurchaseId(byId.getGoodsSkuId()); - goodsGroupPurchaseInfo.setMubre(byId.getGroupNo()); - GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo1(goodsGroupPurchaseInfo, SecurityConstants.INNER).getData(); + GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(byId.getGroupNo(), SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ + goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(byId.getGoodsQuantity()); GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } @@ -1311,6 +1321,7 @@ wrapper1.eq(Order::getOrderFrom,3); wrapper1.eq(Order::getDelFlag,0); wrapper1.eq(Order::getOrderStatus,2); + wrapper1.orderByDesc(Order::getCreateTime); Page<Order> page = new Page<>(homeGoodsSkuDTO1.getPageCurr(), homeGoodsSkuDTO1.getPageSize()); Page< Order> page1 = this.page(page, wrapper1); PageDTO<WdOrderVO> HomeGoodsSeckillVOPageDTO = PageDTO.of(page1, WdOrderVO.class); @@ -1367,7 +1378,9 @@ */ @Override public List<Order> getOrderByCouponIds(Collection<Long> couponIds) { - return this.lambdaQuery().in(Order::getCouponId, couponIds).list(); + return this.lambdaQuery().in(Order::getCouponId, couponIds) + .ne(Order::getOrderStatus, OrderStatusEnum.CANCELED).eq(Order::getIsRequest, 1) + .list(); } /** @@ -1416,6 +1429,8 @@ query.getSkuName()) .eq(StringUtils.isNotNull(query.getOrderStatus()), Order::getOrderStatus, query.getOrderStatus()) + .eq(StringUtils.isNotNull(query.getOrderStatus()) && query.getOrderStatus() + .equals(OrderStatusEnum.FINISHED), Order::getIsRequest, 1) .orderByDesc(Order::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isEmpty(page.getRecords())) { @@ -1423,6 +1438,22 @@ } pageVO = PageDTO.of(page, MgtOrderVO.class); List<MgtOrderVO> voList = pageVO.getList(); + List<Long> orderIdList = voList.stream().filter(order -> order.getIsRequest().equals(2)) + .map(MgtOrderVO::getId).collect( + Collectors.toList()); + if (CollUtils.isNotEmpty(orderIdList)) { + List<OrderReturnRequest> orderReturnRequestList = orderReturnRequestService.lambdaQuery() + .in(OrderReturnRequest::getOrderId, orderIdList) + .eq(OrderReturnRequest::getAuditStatus, AuditStatusEnum.PASSED).list(); + List<Long> orderReturnRequestPassedIds = orderReturnRequestList.stream() + .map(OrderReturnRequest::getOrderId) + .collect(Collectors.toList()); + for (MgtOrderVO order : voList) { + if (orderReturnRequestPassedIds.contains(order.getId())) { + order.setIsRequest(3); + } + } + } if (query.getQueryType() == OrderTypeEnum.AUCTION_ORDER) { List<MgtOrderVO> list = voList; // 封装参数查询拍卖会 @@ -1439,9 +1470,6 @@ salesroomMap = auctionSalesroomList.stream() .collect(Collectors.toMap(AuctionSalesroom::getId, AuctionSalesroom::getSalesroomName)); - auctionSalesroomList.stream() - .map(AuctionSalesroom::getId) - .collect(Collectors.toSet()); } // 封装参数查询拍卖订单保证金 Set<Long> auctionGoodsIdSet = list.stream() @@ -1626,36 +1654,38 @@ throw new ServiceException("该订单已是售后状态"); } String orderNo = order.getOrderNo(); - Paylog paylog = iPaylogService.lambdaQuery().eq(Paylog::getOutTradeNo, orderNo) - .last("limit 1").one(); + Optional<Paylog> paylogOpt = iPaylogService.lambdaQuery().eq(Paylog::getOutTradeNo, orderNo) + .last("limit 1").oneOpt(); PaymentMethodEnum paymentMethod = order.getPaymentMethod(); - if (StringUtils.isNotNull(paylog)) { + if (paylogOpt.isPresent()) { + Paylog paylog = paylogOpt.get(); boolean result = handleRefund(paymentMethod, paylog, orderNo); if (result) { paylog.setState(3);// 已退款 iPaylogService.updateById(paylog); } - OrderReturnRequest orderReturnRequest = new OrderReturnRequest(); - orderReturnRequest.setOrderId(id); - orderReturnRequest.setRequestTime(LocalDateTime.now()); - orderReturnRequest.setRequestType(RequestTypeEnum.REFUND); - orderReturnRequest.setRequestReason("管理后台退款"); - orderReturnRequest.setStatus(ReturnRequestStatusEnum.COMPLETED); - orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED); - orderReturnRequest.setAuditTime(LocalDateTime.now()); - orderReturnRequestService.save(orderReturnRequest); } order.setIsRequest(2); this.updateById(order); + // 生成售后记录 + OrderReturnRequest orderReturnRequest = new OrderReturnRequest(); + orderReturnRequest.setOrderId(id); + orderReturnRequest.setRequestTime(LocalDateTime.now()); + orderReturnRequest.setRequestType(RequestTypeEnum.REFUND); + orderReturnRequest.setRequestReason("管理后台退款"); + orderReturnRequest.setStatus(ReturnRequestStatusEnum.COMPLETED); + orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED); + orderReturnRequest.setAuditTime(LocalDateTime.now()); + orderReturnRequestService.save(orderReturnRequest); // 扣除订单积分 Member member = memberClient.getMembeOne(order.getMemberId(), SecurityConstants.INNER) .getData(); if (StringUtils.isNotNull(member)) { MemberPointsDTO memberPointsDTO = new MemberPointsDTO(); memberPointsDTO.setMemberId(order.getMemberId()); - memberPointsDTO.setPointsType(1); - memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE); + memberPointsDTO.setPointsType(2); + memberPointsDTO.setPointsStatus(PointStatusEnum.REDUCE); memberPointsDTO.setPoints(order.getPoints()); memberClient.addMemberPoints(memberPointsDTO); @@ -1814,6 +1844,9 @@ @Override public List<Order> updateOrderStatusByMubres2(String formedGroupMubres) { - return this.lambdaQuery().eq(Order::getGroupNo, formedGroupMubres).list(); + LambdaQueryWrapper<Order> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(Order::getGroupNo, formedGroupMubres); + List<Order> page1 = this.list(wrapper); + return page1; } } -- Gitblit v1.7.1