From fc8b51f40e71aa09bb49f407c1e9f68ac94ceb58 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 29 七月 2024 18:51:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 244 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 224 insertions(+), 20 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 05e2d23..59e3413 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,9 +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.OrderFromEnum; import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.enums.OrderTypeEnum; @@ -37,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; @@ -61,11 +65,7 @@ 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.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.domain.vo.*; import com.ruoyi.system.api.feignClient.AuctionClient; import com.ruoyi.system.api.feignClient.GoodsSkuClient; import com.ruoyi.system.api.feignClient.MemberClient; @@ -79,6 +79,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -238,7 +239,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); @@ -266,8 +267,18 @@ } @Override + public Order getOrderByGroupPurchaseMemberId2(HomeGoodsSkuDTO homeGoodsSkuDTO) { + return baseMapper.getOrderByGroupPurchaseMemberId2(homeGoodsSkuDTO); + } + + @Override public List<OrderVO> getOrderByGroupPurchaseMemberList(HomeGoodsSkuDTO homeGoodsSkuDTO) { return baseMapper.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO); + } + + @Override + public List<OrderVO> getOrderByGroupPurchaseMemberList1(HomeGoodsSkuDTO homeGoodsSkuDTO) { + return null; } @Override @@ -344,6 +355,7 @@ MemberOrderDTO memberOrderDTO1=new MemberOrderDTO(); memberOrderDTO1.setMemberId(order.getMemberId()); + memberOrderDTO1.setId(order.getId()); memberOrderDTO1.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); Integer num=baseMapper.getSeckillMembers1(memberOrderDTO1); Integer num1=0; @@ -395,10 +407,29 @@ if (data.getStartStatus().getCode()==0){ throw new ServiceException("该商品未开始"); } - Integer m=data.getCurrentNumber()+1; + GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); + if (goodsSeckiGoodsGroupPurchaseInfo==null){ + 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.getStock()<num){ + throw new ServiceException("该商品库存不足无法团购"); + } + + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId()); + goodsStockUpdDTO.setAuctionStock(goodsSku.getStock()-num); + goodsSkuClient.updGoodsStock1(goodsStockUpdDTO, + SecurityConstants.INNER); + + } + /*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()); @@ -521,25 +552,21 @@ if (order.getOrderFrom().getCode()==2){ MemberOrderDTO memberOrderDTO1=new MemberOrderDTO(); memberOrderDTO1.setMemberId(order.getMemberId()); + memberOrderDTO1.setId(order.getId()); memberOrderDTO1.setGoodsSkuId(order.getGoodsSkuId()); Integer num=baseMapper.getSeckillMembers1(memberOrderDTO1); Integer num1=0; - if(num!=order.getGoodsQuantity()){ if (num!=null){ - num1 =num+order.getGoodsQuantity(); + num1 =num+memberOrderDTO.getGoodsQuantity(); }else{ num1=order.getGoodsQuantity(); } - }else{ - num1=num; - } - GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); - if (num1!=order.getGoodsQuantity()){ - if (data.getLimitNumber()!=0||data.getLimitNumber()<num1){ + + if (data.getLimitNumber()<num1){ throw new ServiceException("对不起,大于商品购买数"); }else{ @@ -574,7 +601,7 @@ memberOrderVO.setSkuName(goodsSku.getSkuName()); memberOrderVO.setYouhiPrice(data.getSeckillPrice()); - } + } if (order.getOrderFrom().getCode()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); @@ -732,6 +759,16 @@ } @Override + public void updMemberOrderbz(MemberOrderDTO memberOrderDTO) { + Order order = baseMapper.selectById(memberOrderDTO.getId()); + if(memberOrderDTO.getOrderRemark()!=null){ + order.setOrderRemark(memberOrderDTO.getOrderRemark()); + } + baseMapper.updateById(order); + + } + + @Override public PageDTO<MemberOrderListVO> MemberrderList(MemberOrderListDTO memberOrderListDTO) { Page<Order> page = new Page<>(memberOrderListDTO.getPageCurr(), memberOrderListDTO.getPageSize()); @@ -752,7 +789,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); @@ -772,9 +809,34 @@ couponMemberDTO1.setId(order.getCouponId()); couponMemberDTO1.setCouponStatus(0); promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); - order.setCouponId(0L); } + if(order.getOrderNo().contains("SP")){ + GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); + GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); + goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); + goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); + if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ + goodsStockUpdDTO1.setSoldQuantity(0); + }else { + goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); + } + + goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); + } + + if(order.getOrderNo().contains("MS")){ + GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); + GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); + goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); + goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); + if (data.getSoldQuantity()-order.getGoodsQuantity()<0){ + goodsStockUpdDTO1.setSoldQuantity(0); + }else { + goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); + } + goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); + } this.updateById(order); @@ -823,6 +885,7 @@ OrderVO orderVO=new OrderVO(); try { orderVO = BeanUtils.copyBean(order, OrderVO.class); + orderVO.setAuctionType(order.getAuctionOrderType()); if (orderVO.getOrderFrom().getCode()==3){ GoodsGroupPurchase data = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); orderVO.setGroupTime(data.getGroupTime()); @@ -912,7 +975,16 @@ } + if(order.getOrderNo().contains("TG")){ + GoodsGroupPurchaseInfo goodsGroupPurchaseInfo =new GoodsGroupPurchaseInfo(); + goodsGroupPurchaseInfo.setGroupPurchaseId(order.getGoodsSkuId()); + goodsGroupPurchaseInfo.setMubre(order.getGroupNo()); + GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(order.getGroupNo(), SecurityConstants.INNER).getData(); + if (goodsSeckiGoodsGroupPurchaseInfo!=null){ + GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); + } + } } if (order.getOrderStatus().getCode() == 2) { @@ -944,6 +1016,16 @@ goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); + } + + if(order.getOrderNo().contains("TG")){ + GoodsGroupPurchaseInfo goodsGroupPurchaseInfo =new GoodsGroupPurchaseInfo(); + goodsGroupPurchaseInfo.setMubre(order.getGroupNo()); + GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(order.getGroupNo(), SecurityConstants.INNER).getData(); + if (goodsSeckiGoodsGroupPurchaseInfo!=null){ + GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); + + } } if (order.getCouponId()!=0){ @@ -1011,7 +1093,7 @@ goodsGroupPurchaseInfo.setMubre(byId.getGroupNo()); GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo1(goodsGroupPurchaseInfo, SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ - GoodsSkuClient.updgoodsGroupPurchaseInfo(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); + GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } } @@ -1137,6 +1219,42 @@ Order order = this.getById(MemberOrderList.getId()); order.setOrderStatus(OrderStatusEnum.CANCELED); this.updateById(order); + + + if (order.getCouponId()!=0){ + CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); + couponMemberDTO1.setId(order.getCouponId()); + couponMemberDTO1.setCouponStatus(0); + promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); + } + + if(order.getOrderNo().contains("SP")){ + GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); + GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); + goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); + goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); + if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ + goodsStockUpdDTO1.setSoldQuantity(0); + }else { + goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); + } + + goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); + } + + if(order.getOrderNo().contains("MS")){ + GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); + GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); + goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); + goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); + if (data.getSoldQuantity()-order.getGoodsQuantity()<0){ + goodsStockUpdDTO1.setSoldQuantity(0); + }else { + goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); + } + goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); + } + } } @@ -1150,6 +1268,7 @@ paylogEntityWrapper.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper.eq(Order::getOrderStatus,1); paylogEntityWrapper.eq(Order::getDelFlag,0); + paylogEntityWrapper.eq(Order::getIsOrder,1); List<Order> list = this.list(paylogEntityWrapper); vo.setDzforderNo(list.size()); @@ -1157,6 +1276,7 @@ paylogEntityWrapper1.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper1.eq(Order::getOrderStatus,2); paylogEntityWrapper1.eq(Order::getDelFlag,0); + paylogEntityWrapper1.eq(Order::getIsOrder,1); List<Order> list1 = this.list(paylogEntityWrapper1); vo.setDfhorderNo(list1.size()); @@ -1164,6 +1284,7 @@ paylogEntityWrapper2.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper2.eq(Order::getOrderStatus,3); paylogEntityWrapper2.eq(Order::getDelFlag,0); + paylogEntityWrapper2.eq(Order::getIsOrder,1); List<Order> list2 = this.list(paylogEntityWrapper2); vo.setDshorderNo(list2.size()); @@ -1173,9 +1294,68 @@ paylogEntityWrapper3.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper3.eq(Order::getIsRequest,2); paylogEntityWrapper3.eq(Order::getDelFlag,0); + paylogEntityWrapper3.eq(Order::getIsOrder,1); List<Order> list3 = this.list(paylogEntityWrapper3); vo.setShorderNo(list3.size()); 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); + 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; } /** @@ -1484,6 +1664,12 @@ 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); + } } private boolean handleRefund(PaymentMethodEnum paymentMethod, Paylog paylog, String orderNo) { @@ -1611,4 +1797,22 @@ this.lambdaUpdate().set(Order::getIsOrder, 1).in(Order::getGroupNo, formedGroupMubres) .update(); } + + + @Override + public void updateOrderStatusByMubres1(String formedGroupMubres) { + LambdaQueryWrapper<Order> wrapper = Wrappers.lambdaQuery(); + wrapper.eq(Order::getGroupNo, formedGroupMubres); + List<Order> page1 = this.list(wrapper); + for (Order p:page1){ + p.setIsOrder(1); + this.updateById(p); + } + + } + + @Override + public List<Order> updateOrderStatusByMubres2(String formedGroupMubres) { + return this.lambdaQuery().eq(Order::getGroupNo, formedGroupMubres).list(); + } } -- Gitblit v1.7.1