From a206f640259bc9f206ed8bdd5318b76bed461427 Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期三, 31 七月 2024 21:58:35 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 152 +++++++++++++++++++++++++++++--------------------- 1 files changed, 89 insertions(+), 63 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 3033b5b..3ff1f70 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); @@ -724,8 +733,9 @@ CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData(); CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData(); - if (pice.intValue()>0){ - BigDecimal divide = pice.divide(new BigDecimal(memberPointsMoney.getConfigValue())); + if (pice.doubleValue()>0){ + BigDecimal pic=pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())); + BigDecimal divide = pic.divide(new BigDecimal(memberPointsMoney.getConfigValue())); BigDecimal roundedDown = divide.setScale(0, RoundingMode.DOWN); BigDecimal aDouble= roundedDown.multiply(new BigDecimal(memberPointsPoints.getConfigValue())); order.setPoints(aDouble.intValue()); @@ -789,7 +799,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); @@ -885,23 +895,14 @@ 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()); orderVO.setSkuId(data.getGoodsSkuId()); - } - - OrderReturnRequest orderReturnRequest = orderReturnRequestService.getOne( - Wrappers.lambdaQuery(OrderReturnRequest.class) - .eq(OrderReturnRequest::getOrderId, - orderVO.getId()).eq(OrderReturnRequest::getDelFlag, - 0).last("limit 1")); - if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) { - orderVO.setStatus(orderReturnRequest.getStatus()); - orderVO.setRequestId(orderReturnRequest.getId()); - orderVO.setIsRequest(2); - }else{ - orderVO.setIsRequest(1); } LambdaQueryWrapper<OrderAuctionBond> wrapper3= Wrappers.lambdaQuery(); @@ -915,7 +916,6 @@ } }else { orderVO.setIsAuctionBond(1); - orderVO.setBound(new BigDecimal(0)); } } catch (Exception e) { @@ -980,6 +980,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); } @@ -1022,6 +1023,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); } @@ -1087,11 +1089,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); } @@ -1158,7 +1158,7 @@ wrapper.eq(OrderAuctionBond::getOrderId,order.getId()); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper); if(orderAuctionBond!=null){ - 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, orderAuctionBond.getOrderNo()); @@ -1167,7 +1167,7 @@ if (!bo) { System.out.println("支付宝退款失败"); } - } 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, orderAuctionBond.getOrderNo()); @@ -1308,7 +1308,7 @@ 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); @@ -1326,31 +1326,35 @@ 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()==3){ + 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 (goodsGroupPurchaseeVO1.getStartStatus().getCode() == 1) { - if (one1.getGroupStatus() == 2) { - goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP); + if (one1.getGroupStatus() == 1) { + goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.FORMED_INTO_A_GROUP); } - } else { if (one1.getGroupStatus() == 2) { goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE); } + }else{ + goodsGroupPurchaseeVO1.setGroupStatus(data.getGroupStatus()); } - - + }else{ + goodsGroupPurchaseeVO1.setCurrentNumber(one1.getCurrentNumber()); + goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE); } + + } + @@ -1368,7 +1372,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(); } /** @@ -1417,6 +1423,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())) { @@ -1424,6 +1432,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; // 封装参数查询拍卖会 @@ -1440,9 +1464,6 @@ salesroomMap = auctionSalesroomList.stream() .collect(Collectors.toMap(AuctionSalesroom::getId, AuctionSalesroom::getSalesroomName)); - auctionSalesroomList.stream() - .map(AuctionSalesroom::getId) - .collect(Collectors.toSet()); } // 封装参数查询拍卖订单保证金 Set<Long> auctionGoodsIdSet = list.stream() @@ -1627,36 +1648,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); @@ -1815,6 +1838,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