From d6a0c57043e8cc20694a3c678bf8e3a8f28f6499 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 29 五月 2025 11:20:14 +0800
Subject: [PATCH] 新增加用户端接口

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java |  119 +++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 94 insertions(+), 25 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..1ab53ad 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
@@ -2413,20 +2413,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 +2435,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 +2486,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 +2523,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 +2598,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;
     }
-
+    
     /**
      * 结清订单
      *

--
Gitblit v1.7.1