From 5fe67c8a04e9c04d45a5d411e8ffa6c9c1db073d Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期六, 15 六月 2024 18:18:33 +0800 Subject: [PATCH] 用户端商品 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 176 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 122 insertions(+), 54 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 da38aab..8fdd137 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 @@ -54,10 +54,7 @@ import com.ruoyi.system.api.domain.dto.MemberOrderListDTO; 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.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; @@ -150,7 +147,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 +323,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 +341,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 +400,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 +429,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 +439,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 +462,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 +476,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 +523,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 +556,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 +601,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 +676,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 +699,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 +764,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; } /** @@ -886,7 +954,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()) @@ -1057,7 +1125,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