Pu Zhibing
9 天以前 9a03e46771f68bae27b172c561b6b6f49b5f0505
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());