rentaiming
2024-07-04 fcd4954fc859440df4b04b4a8153c54a824c78b7
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -130,17 +130,21 @@
        if (OrderDTO.getOrderFrom().getCode()==1){
            order.setOrderFrom(OrderFromEnum.COMMODITY_ORDER);
            order.setOrderNo(OrderUtil.getOrderNoForPrefix("SP"));
            order.setIsOrder(1);
        }
        if (OrderDTO.getOrderFrom().getCode()==2){
            order.setOrderFrom(OrderFromEnum.SNAP_ORDERS);
            order.setOrderNo(OrderUtil.getOrderNoForPrefix("MS"));
            order.setIsOrder(1);
        }
        if (OrderDTO.getOrderFrom().getCode()==3){
            order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS);
            order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG"));
            order.setIsOrder(2);
        }if (OrderDTO.getOrderFrom().getCode()==4){
            order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS);
            order.setOrderNo(OrderUtil.getOrderNoForPrefix("PM"));
            order.setIsOrder(1);
        }
        order.setOrderTime(OrderDTO.getOrderTime());
        order.setOrderFrom(OrderDTO.getOrderFrom());
@@ -258,6 +262,7 @@
        if (memberOrderDTO.getOrderFrom()==3){
            order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS);
            order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG"));
            order.setIsOrder(2);
        }
        if (memberOrderDTO.getPaymentMethod()==1){
            order.setPaymentMethod(PaymentMethodEnum.WECHAT);
@@ -346,6 +351,10 @@
        if (memberOrderDTO.getOrderFrom()==3){
            order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS);
            GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData();
            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());
@@ -354,6 +363,8 @@
            memberOrderVO.setSkuName(goodsSku.getSkuName());
            memberOrderVO.setYouhiPrice(data.getGroupPurchasePrice());
            pice=data.getGroupPurchasePrice();
            goodsSkuClient.GroupPurchaseNum(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER);
            order.setSkuName(goodsSku.getSkuName());
            order.setPrice(data.getGroupPurchasePrice());
@@ -474,23 +485,25 @@
                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{
                    GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                    goodsStockUpdDTO.setGoodsSkuId(data.getId());
                    goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity());
                    goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER);
                    if (data.getSeckillStock()+order.getGoodsQuantity()<memberOrderDTO.getGoodsQuantity()){
                        throw new ServiceException("对不起,购买数大于库存");
                    }
                if (order.getGoodsQuantity()!=order.getGoodsQuantity()){
                    if (data.getLimitNumber()<num1){
                        throw new ServiceException("对不起,大于商品购买数");
                    }else{
                        GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO();
                        goodsStockUpdDTO.setGoodsSkuId(data.getId());
                        goodsStockUpdDTO.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity());
                        goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO,SecurityConstants.INNER);
                    Integer m=data.getSeckillStock()+order.getGoodsQuantity();
                    GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
                    goodsStockUpdDTO1.setGoodsSkuId(data.getId());
                    goodsStockUpdDTO1.setAuctionStock(m-memberOrderDTO.getGoodsQuantity());
                    goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER);
                        if (data.getSeckillStock()+order.getGoodsQuantity()<memberOrderDTO.getGoodsQuantity()){
                            throw new ServiceException("对不起,购买数大于库存");
                        }
                        Integer m=data.getSeckillStock()+order.getGoodsQuantity();
                        GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO();
                        goodsStockUpdDTO1.setGoodsSkuId(data.getId());
                        goodsStockUpdDTO1.setAuctionStock(m-memberOrderDTO.getGoodsQuantity());
                        goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER);
                        order.setTotalAmount(data.getSeckillPrice().multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())));
                        order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity());
@@ -500,12 +513,15 @@
                        order.setSjPrice(goodsSku.getPrice());
            }
                memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
                memberOrderVO.setPrice(goodsSku.getPrice());
                memberOrderVO.setCoverPic(goodsSku.getCoverPic());
                memberOrderVO.setSkuName(goodsSku.getSkuName());
                memberOrderVO.setYouhiPrice(data.getSeckillPrice());
                    }
                    memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId());
                    memberOrderVO.setPrice(goodsSku.getPrice());
                    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();
@@ -515,28 +531,27 @@
                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("对不起,购买数大于库存");
                if (order.getGoodsQuantity()!=order.getGoodsQuantity()){
                    if (data.getLimitNumber()<=num1){
                        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());
                        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());
                        }
                    }
                }
            }
        }
        if (memberOrderDTO.getGoodsQuantity()!=null){
@@ -661,6 +676,7 @@
        if(memberOrderListDTO.getOrderStatus()!=null){
            wrapper.eq(Order::getOrderStatus,memberOrderListDTO.getOrderStatus().getCode()-1);
        }
        wrapper.eq(Order::getIsOrder,1);
        wrapper.eq(Order::getDelFlag,0);
        wrapper.orderByDesc(Order::getCancelTime);
        Page<Order> page1 = this.page(page, wrapper);
@@ -816,7 +832,7 @@
            memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER);
            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, order.getOrderNo());
@@ -828,7 +844,7 @@
                    }
                }
            } 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, order.getOrderNo());
@@ -838,7 +854,7 @@
                    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;
                    refundFee = Integer.parseInt(money.substring(0, money.length() - 3));
                    String regEx = "[^0-9]";
                    Pattern p = Pattern.compile(regEx);
@@ -853,6 +869,62 @@
            }
        }
    }
    @Override
    public void delOrderOne(MemberOrderListDTO memberOrderListDTO) {
        baseMapper.deleteById(memberOrderListDTO.getId());
        Order order = baseMapper.selectById(memberOrderListDTO.getId());
        Order byId = this.getById(memberOrderListDTO.getId());
        goodsSkuClient.GroupPurchaseNum1(byId.getGoodsSkuId(), SecurityConstants.INNER);
        this.removeById(memberOrderListDTO.getId());
        if (order.getOrderStatus().getCode() == 2) {
            updMembeOneDTO MembeOneDTO = new updMembeOneDTO();
            MembeOneDTO.setType(2);
            MembeOneDTO.setMemberId(order.getMemberId());
            MembeOneDTO.setMoney(order.getTotalAmount());
            MembeOneDTO.setTotalPoints(order.getPoints());
            memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER);
            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) {
                    boolean bo = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney());
                    if (!bo) {
                        System.out.println("支付宝退款失败");
                    }
                }
            } else if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//微信
                //获取支付信息
                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 = Integer.parseInt(money.substring(0, money.length() - 3));
                    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());