From 9ac3c5efd5860bef93ad654d28b4a3bcda729736 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 09 六月 2025 14:02:12 +0800
Subject: [PATCH] 开发商户端相关接口

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  192 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 157 insertions(+), 35 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index bba0315..24d7837 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -181,6 +181,7 @@
         if(shop!=null&&shop.getShopStatus()!=1){
             throw new ServiceException(AppErrorConstant.SHOP_CLOSED);
         }
+        Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
         // 初始化订单对象
         AppSureOrderVo appSureOrderVo = new AppSureOrderVo();
         // 初始化订单商品列表
@@ -266,6 +267,14 @@
             ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
             if (shopGoods != null) {
                 goodsPrice = shopGoods.getSalesPrice();
+            } else {
+                //经销商定制价格
+                appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
+                appShopGoodsGetDto.setShopId(belongShop.getShopId());
+                shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
+                if (1 == belongShop.getModifyPricePermission() && null != shopGoods) {
+                    goodsPrice = shopGoods.getSalesPrice();
+                }
             }
             appSureOrderGoodsVo.setGoodsPrice(goodsPrice);
             buyNumBig = BigDecimal.valueOf(buyNum);
@@ -449,6 +458,16 @@
         ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
         if (shopGoods != null) {
             goodsPrice = shopGoods.getSalesPrice();
+        } else {
+            //经销商定制价格
+            Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
+            appShopGoodsGetDto = new AppShopGoodsGetDto();
+            appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
+            appShopGoodsGetDto.setShopId(belongShop.getShopId());
+            shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
+            if (1 == belongShop.getModifyPricePermission() && null != shopGoods) {
+                goodsPrice = shopGoods.getSalesPrice();
+            }
         }
         appPanicBuyVo.setGoodsPrice(goodsPrice);
         buyNumBig = BigDecimal.valueOf(buyNum);
@@ -588,6 +607,18 @@
             if (shopGoods != null) {
                 goodsPrice = shopGoods.getSalesPrice();
                 serviceNum = shopGoods.getServiceNum();
+            } else {
+                //经销商定制价格
+                Shop shop = remoteShopService.getShop(appPlaceOrderDto.getShopId()).getData();
+                Shop belongShop = remoteShopService.getShop(shop.getBelongShopId()).getData();
+                appShopGoodsGetDto = new AppShopGoodsGetDto();
+                appShopGoodsGetDto.setGoodsId(goods.getGoodsId());
+                appShopGoodsGetDto.setShopId(belongShop.getShopId());
+                shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData();
+                if (1 == belongShop.getModifyPricePermission() && null != shopGoods) {
+                    goodsPrice = shopGoods.getSalesPrice();
+                    serviceNum = shopGoods.getServiceNum();
+                }
             }
             appSureOrderGoodsVo.setGoodsPrice(goodsPrice);
             // 计算商品总价
@@ -2413,20 +2444,20 @@
         Long shopId = shopRelUserVo.getShopId();
         Shop shop = remoteShopService.getShop(shopId).getData();
         //平台奖品判断
-        if (memberGiftRecord.getGiftFrom() == 1) {
+        if (memberGiftRecord.getGiftFrom() == 1 && memberGiftRecord.getPrizeFrom() == 1) {
             BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
             //判断生日活动状态
-            if(birthdayCard!=null&&birthdayCard.getCardStatus()==1){
+            if (birthdayCard != null && birthdayCard.getCardStatus() == 1) {
                 shop = remoteShopService.getShop(shopId).getData();
                 //判断指定区域全部店铺
-                if(birthdayCard.getAreaFlag()==2&&birthdayCard.getShopFlag()==1&&!StringUtils.checkString(birthdayCard.getDesignatedArea(),shop.getShopCityCode())){
+                if (birthdayCard.getAreaFlag() == 2 && birthdayCard.getShopFlag() == 1 && !StringUtils.checkString(birthdayCard.getDesignatedArea(), shop.getShopCityCode())) {
                     throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                 }
                 //判断指定店铺
-                if(birthdayCard.getShopFlag()==2&&!StringUtils.checkString(birthdayCard.getApplicableShop(),shopId.toString())){
+                if (birthdayCard.getShopFlag() == 2 && !StringUtils.checkString(birthdayCard.getApplicableShop(), shopId.toString())) {
                     throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                 }
-            }else{
+            } else {
                 throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR);
             }
         }
@@ -2435,29 +2466,35 @@
             throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
         }
         Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData();
-
+    
         merVerifyAwardVo.setUserName(member.getRealName());
         merVerifyAwardVo.setUserMobile(member.getMobile());
-        if (memberGiftRecord.getGiftFrom() == 1) {
-            merVerifyAwardVo.setGiftFrom("平台生日卡");
+        if (memberGiftRecord.getPrizeFrom() == 1) {
+            if (memberGiftRecord.getGiftFrom() == 1) {
+                merVerifyAwardVo.setGiftFrom("平台生日卡");
+            } else {
+                merVerifyAwardVo.setGiftFrom("商户生日卡");
+            }
         } else {
-            merVerifyAwardVo.setGiftFrom("商户生日卡");
+            merVerifyAwardVo.setGiftFrom("抽奖");
         }
         merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
         List<BirthdayGiftSendDto> giftSendDtoList = new ArrayList<>();
         BirthdayGiftSendDto birthdayGiftSendDto = new BirthdayGiftSendDto();
         switch (memberGiftRecord.getGiftType()) {
             case 1:
-                merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
-                merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getCouponNumber()));
-                birthdayGiftSendDto.setUserId(memberGiftRecord.getUserId());
-                birthdayGiftSendDto.setGiftType(memberGiftRecord.getGiftType());
-                birthdayGiftSendDto.setGiftFrom(memberGiftRecord.getGiftFrom());
-                birthdayGiftSendDto.setShopId(memberGiftRecord.getShopId());
-                birthdayGiftSendDto.setCouponId(memberGiftRecord.getCouponId());
-                birthdayGiftSendDto.setCouponNumber(memberGiftRecord.getCouponNumber());
-                giftSendDtoList.add(birthdayGiftSendDto);
-                remoteCouponService.sendCouponGift(giftSendDtoList);
+                if (memberGiftRecord.getPrizeFrom() == 1) {
+                    merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
+                    merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getCouponNumber()));
+                    birthdayGiftSendDto.setUserId(memberGiftRecord.getUserId());
+                    birthdayGiftSendDto.setGiftType(memberGiftRecord.getGiftType());
+                    birthdayGiftSendDto.setGiftFrom(memberGiftRecord.getGiftFrom());
+                    birthdayGiftSendDto.setShopId(memberGiftRecord.getShopId());
+                    birthdayGiftSendDto.setCouponId(memberGiftRecord.getCouponId());
+                    birthdayGiftSendDto.setCouponNumber(memberGiftRecord.getCouponNumber());
+                    giftSendDtoList.add(birthdayGiftSendDto);
+                    remoteCouponService.sendCouponGift(giftSendDtoList);
+                }
                 break;
             case 2:
                 Goods goods = remoteGoodsService.getGoods(memberGiftRecord.getGoodsId()).getData();
@@ -2480,10 +2517,16 @@
                 birthdayGiftSendDto.setGoodsNumber(memberGiftRecord.getGoodsNumber());
                 giftSendDtoList.add(birthdayGiftSendDto);
                 consumerGoodsService.sendGoodsGift(giftSendDtoList);
+                //抽奖奖品中的平台商品需要生成订单数据
+                if (memberGiftRecord.getPrizeFrom() == 2) {
+                    addOrder(memberGiftRecord.getShopId(), memberGiftRecord.getUserId(), goods, memberGiftRecord.getGoodsNumber(), memberGiftRecord.getGiftId());
+                }
                 break;
             case 3:
-                merVerifyAwardVo.setGiftName("现金");
-                merVerifyAwardVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue());
+                if (memberGiftRecord.getPrizeFrom() == 1) {
+                    merVerifyAwardVo.setGiftName("现金");
+                    merVerifyAwardVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue());
+                }
                 break;
             case 4:
                 merVerifyAwardVo.setGiftName(memberGiftRecord.getGiftName());
@@ -2511,8 +2554,65 @@
         merVerifyAwardVo.setVerifyStatus(2);
         return merVerifyAwardVo;
     }
-
-
+    
+    
+    /**
+     * 核销抽奖的平台商品生成订单
+     *
+     * @param shopId
+     * @param userId
+     * @param goods
+     * @param goodsNum
+     */
+    public void addOrder(Long shopId, Long userId, Goods goods, Integer goodsNum, String giftId) {
+        Order order = new Order();
+        order.setOrderId(IdUtils.simpleUUID());
+        order.setDelFlag(0);
+        order.setOrderStatus(3);
+        order.setOrderNo(CodeFactoryUtil.getShopOrderNo());
+        order.setOrderFrom(4);
+        order.setShopId(shopId);
+        order.setUserId(userId);
+        order.setOrderMoney(BigDecimal.ZERO);
+        order.setCouponMoney(BigDecimal.ZERO);
+        order.setDiscountMoney(BigDecimal.ZERO);
+        order.setReceivableMoney(BigDecimal.ZERO);
+        order.setPayType(1);
+        order.setPayMoney(BigDecimal.ZERO);
+        order.setOrderRemark("抽奖订单");
+        order.setCreateTime(new Date());
+        order.setPayTime(new Date());
+        order.setUseTime(new Date());
+        order.setUseUserId(userId);
+        order.setGoodsNum(goodsNum);
+        order.setReceivableDeposit(BigDecimal.ZERO);
+        order.setCloseFlag(1);
+        order.setActivityId(giftId);
+        this.save(order);
+        OrderGoods orderGoods = new OrderGoods();
+        orderGoods.setOrderGoodsId(IdUtils.simpleUUID());
+        orderGoods.setDelFlag(0);
+        orderGoods.setOrderId(order.getOrderId());
+        orderGoods.setGoodsId(goods.getGoodsId());
+        orderGoods.setBuyNum(goodsNum);
+        orderGoods.setGoodsPrice(goods.getSalesPrice());
+        orderGoods.setGoodsDeposit(goods.getSubscription());
+        orderGoods.setGoodsTotalMoney(goods.getSalesPrice().multiply(new BigDecimal(goodsNum)));
+        orderGoods.setGoodsReceivableMoney(BigDecimal.ZERO);
+        orderGoods.setCycleNumFlag(goods.getCycleNumFlag());
+        orderGoods.setServiceNum(goods.getServiceNum());
+        orderGoods.setGoodsType(goods.getGoodsType());
+        orderGoods.setGoodsName(goods.getGoodsName());
+        GoodsFile goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData();
+        if (null != goodsFile) {
+            orderGoods.setGoodsPicture(goodsFile.getFileUrl());
+        }
+        orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+        orderGoods.setGoodsTag(goods.getGoodsTags());
+        orderGoodsService.save(orderGoods);
+    }
+    
+    
     /**
      * 收银未结清订单列表
      *
@@ -2529,14 +2629,14 @@
                 if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
                     merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                 }
-                if(merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig)<0){
+                if (merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig) < 0) {
                     merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                 }
             }
         }
         return merMemberNoClearOrderVoList;
     }
-
+    
     /**
      * 结清订单
      *
@@ -2963,9 +3063,27 @@
                 if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
                     merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                 }
-                if(merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig)<0){
+                if (merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig) < 0) {
                     merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
                 }
+                List<MerCouponGoodsListVo> goodsList = new ArrayList<>();
+                orderGoodsService.listByOrderId(merMemberNoClearOrderVo.getOrderId()).forEach(orderGoodsVo -> {
+                    MerCouponGoodsListVo merCouponGoodsListVo = new MerCouponGoodsListVo();
+                    merCouponGoodsListVo.setGoodsId(orderGoodsVo.getGoodsId());
+                    merCouponGoodsListVo.setGoodsName(orderGoodsVo.getGoodsName());
+                    merCouponGoodsListVo.setGoodsNum(orderGoodsVo.getBuyNum());
+                    if (orderGoodsVo.getGoodsType() == 1) {
+                        merCouponGoodsListVo.setGoodsType("周期");
+                    } else if (orderGoodsVo.getGoodsType() == 2) {
+                        merCouponGoodsListVo.setGoodsType("服务");
+                    } else if (orderGoodsVo.getGoodsType() == 3) {
+                        merCouponGoodsListVo.setGoodsType("体验");
+                    } else if (orderGoodsVo.getGoodsType() == 4) {
+                        merCouponGoodsListVo.setGoodsType("单品");
+                    }
+                    goodsList.add(merCouponGoodsListVo);
+                });
+                merMemberNoClearOrderVo.setGoodsList(goodsList);
             }
         }
         return merMemberNoClearOrderVoList;
@@ -4732,17 +4850,17 @@
         if (memberGiftRecord.getGiftFrom() == 1) {
             BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
             //判断生日活动状态
-            if(birthdayCard!=null&&birthdayCard.getCardStatus()==1){
+            if (birthdayCard != null && birthdayCard.getCardStatus() == 1) {
                 shop = remoteShopService.getShop(shopId).getData();
                 //判断指定区域全部店铺
-                if(birthdayCard.getAreaFlag()==2&&birthdayCard.getShopFlag()==1&&!StringUtils.checkString(birthdayCard.getDesignatedArea(),shop.getShopCityCode())){
+                if (birthdayCard.getAreaFlag() == 2 && birthdayCard.getShopFlag() == 1 && !StringUtils.checkString(birthdayCard.getDesignatedArea(), shop.getShopCityCode())) {
                     throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                 }
                 //判断指定店铺
-                if(birthdayCard.getShopFlag()==2&&!StringUtils.checkString(birthdayCard.getApplicableShop(),shopId.toString())){
+                if (birthdayCard.getShopFlag() == 2 && !StringUtils.checkString(birthdayCard.getApplicableShop(), shopId.toString())) {
                     throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
                 }
-            }else{
+            } else {
                 throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR);
             }
         }
@@ -4750,16 +4868,20 @@
         if (memberGiftRecord.getGiftFrom() == 2 && !memberGiftRecord.getShopId().equals(shopId)) {
             throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
         }
-
+    
         merVerifyAwardVo.setUserName(member.getRealName());
         merVerifyAwardVo.setUserMobile(member.getMobile());
-        if (memberGiftRecord.getGiftFrom() == 1) {
-            merVerifyAwardVo.setGiftFrom("平台生日卡");
+        if (1 == memberGiftRecord.getPrizeFrom()) {
+            if (memberGiftRecord.getGiftFrom() == 1) {
+                merVerifyAwardVo.setGiftFrom("平台生日卡");
+            } else {
+                merVerifyAwardVo.setGiftFrom("商户生日卡");
+            }
         } else {
-            merVerifyAwardVo.setGiftFrom("商户生日卡");
+            merVerifyAwardVo.setGiftFrom("平台抽奖");
         }
         merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
-        //礼物类型1优惠券2商品3现金4实物
+        //礼物类型1优惠券2商品3现金4实物5积分
         switch (memberGiftRecord.getGiftType()) {
             case 1:
                 merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());

--
Gitblit v1.7.1