From 226045746b82227e2594e089539a48397dc7a24b Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期三, 31 七月 2024 19:36:20 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 165 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 137 insertions(+), 28 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 f1b6e65..286f168 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 @@ -10,6 +10,8 @@ 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; @@ -27,7 +29,6 @@ import com.ruoyi.order.controller.management.dto.MgtOrderQuery; import com.ruoyi.order.controller.management.vo.MgtOrderReturnRequestVO; import com.ruoyi.order.controller.management.vo.MgtOrderVO; -import com.ruoyi.order.domain.MemberInvoiceOrder; import com.ruoyi.order.domain.OrderReturnRequest; import com.ruoyi.order.domain.Paylog; import com.ruoyi.order.mapper.OrderAuctionBondMapper; @@ -38,6 +39,8 @@ import com.ruoyi.order.service.IPaylogService; import com.ruoyi.order.util.OrderUtil; import com.ruoyi.order.util.SinataUtil; +import com.ruoyi.order.vo.HomeGoodsSkuDTO1; +import com.ruoyi.order.vo.WdOrderVO; import com.ruoyi.system.api.constants.DelayTaskEnum; import com.ruoyi.system.api.domain.AuctionSalesroom; import com.ruoyi.system.api.domain.CouponMember; @@ -80,6 +83,8 @@ import java.util.HashSet; 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); @@ -239,7 +248,7 @@ */ @Override public Integer getGroupPurchasesGoodsNum(Long id) { - List<Order> list = this.lambdaQuery().eq(Order::getId, id) + List<Order> list = this.lambdaQuery().eq(Order::getGoodsSkuId, id) .in(Order::getOrderStatus, OrderStatusEnum.TO_BE_SHIPPED, OrderStatusEnum.GOODS_TO_BE_RECEIVED, OrderStatusEnum.FINISHED).list(); return list.stream().map(Order::getGoodsQuantity).reduce(0, Integer::sum); @@ -274,6 +283,11 @@ @Override public List<OrderVO> getOrderByGroupPurchaseMemberList(HomeGoodsSkuDTO homeGoodsSkuDTO) { return baseMapper.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO); + } + + @Override + public List<OrderVO> getOrderByGroupPurchaseMemberList1(HomeGoodsSkuDTO homeGoodsSkuDTO) { + return null; } @Override @@ -407,7 +421,7 @@ GoodsGroupPurchase data1 = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); Integer num= data.getGroupSize()*data.getLimitNumber(); GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data1.getGoodsSkuId(), SecurityConstants.INNER).getData(); - if (goodsSku.getSortNum()<num){ + if (goodsSku.getStock()<num){ throw new ServiceException("该商品库存不足无法团购"); } @@ -784,7 +798,7 @@ } wrapper.eq(Order::getIsOrder,1); wrapper.eq(Order::getDelFlag,0); - wrapper.orderByDesc(Order::getCancelTime); + wrapper.orderByDesc(Order::getCreateTime); Page<Order> page1 = this.page(page, wrapper); PageDTO<MemberOrderListVO> memberOrderListVOPageDTO = PageDTO.of(page1, MemberOrderListVO.class); @@ -880,6 +894,10 @@ OrderVO orderVO=new OrderVO(); try { orderVO = BeanUtils.copyBean(order, OrderVO.class); + orderVO.setAuctionType(order.getAuctionOrderType()); + orderVO.setCouponId(order.getCouponId()); + orderVO.setBound(order.getBound()); + orderVO.setIsRequest(order.getIsRequest()); if (orderVO.getOrderFrom().getCode()==3){ GoodsGroupPurchase data = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); orderVO.setGroupTime(data.getGroupTime()); @@ -910,7 +928,6 @@ } }else { orderVO.setIsAuctionBond(1); - orderVO.setBound(new BigDecimal(0)); } } catch (Exception e) { @@ -975,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); } @@ -1017,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); } @@ -1082,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); } @@ -1294,6 +1311,65 @@ return vo; } + @Override + public PageDTO<WdOrderVO> CtjlGoodsGroupPurchase(HomeGoodsSkuDTO1 homeGoodsSkuDTO1) { + LambdaQueryWrapper< Order> wrapper1= Wrappers.lambdaQuery(); + if (homeGoodsSkuDTO1.getSkuName()!=null&&homeGoodsSkuDTO1.getSkuName()!=""){ + wrapper1.like(Order::getSkuName,homeGoodsSkuDTO1.getSkuName()); + } + wrapper1.eq(Order::getMemberId,homeGoodsSkuDTO1.getMemberId()); + 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); + List<WdOrderVO> list2 = HomeGoodsSeckillVOPageDTO.getList(); + + for (WdOrderVO goodsGroupPurchaseeVO1:list2) { + + Order byId1 = this.getById(goodsGroupPurchaseeVO1.getId()); + + GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(byId1.getGoodsSkuId(), SecurityConstants.INNER).getData(); + BeanUtils.copyProperties(data,goodsGroupPurchaseeVO1); + GoodsSku byId = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); + goodsGroupPurchaseeVO1.setGoodsSkuName(byId.getSkuName()); + goodsGroupPurchaseeVO1.setCoverPic(byId.getCoverPic()); + goodsGroupPurchaseeVO1.setPrice(byId.getPrice()); + goodsGroupPurchaseeVO1.setYears(String.valueOf(byId.getYears().getYear())); + goodsGroupPurchaseeVO1.setIsGoodsGroupPurchase(2); + if (byId1.getGroupNo()!=null){ + GoodsGroupPurchaseInfo one1 = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(byId1.getGroupNo(), SecurityConstants.INNER).getData(); + if (one1!=null) { + goodsGroupPurchaseeVO1.setCurrentNumber(one1.getCurrentNumber()); + if (one1.getGroupStatus() == 0) { + if (one1.getGroupSize() - one1.getCurrentNumber() < 5) { + goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.MS_FAILURE); + } else { + goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP); + } + } + if (one1.getGroupStatus() == 1) { + goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP); + } + if (one1.getGroupStatus() == 2) { + goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE); + } + }else{ + goodsGroupPurchaseeVO1.setGroupStatus(data.getGroupStatus()); + } + } + + + + + } + + + return HomeGoodsSeckillVOPageDTO; + } + /** * 根据优惠券id集合查询订单列表 * @@ -1302,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(); } /** @@ -1351,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())) { @@ -1358,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; // 封装参数查询拍卖会 @@ -1374,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() @@ -1561,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); @@ -1599,6 +1694,12 @@ updMembeOneDTO.setType(2); updMembeOneDTO.setTotalPoints(Math.max(member.getTotalPoints() - order.getPoints(), 0)); memberClient.updMembeOne(updMembeOneDTO, SecurityConstants.INNER); + } + if (Objects.nonNull(order.getCouponId())) { + CouponMemberDTO dto = new CouponMemberDTO(); + dto.setId(order.getCouponId()); + dto.setCouponStatus(CouponUseEnum.UNUSED.getCode()); + promotionClient.updCouponMember(dto, SecurityConstants.INNER); } } @@ -1740,4 +1841,12 @@ } } + + @Override + public List<Order> updateOrderStatusByMubres2(String formedGroupMubres) { + LambdaQueryWrapper<Order> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(Order::getGroupNo, formedGroupMubres); + List<Order> page1 = this.list(wrapper); + return page1; + } } -- Gitblit v1.7.1