jiangqs
2023-07-02 fad58948e8c787706525dcbd70f06140e8dab2b7
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -192,6 +192,66 @@
    }
    /**
     * @description  平台获取优惠券编辑信息
     * @author  jqs
     * @date    2023/6/13 14:29
     * @param couponId
     * @return  MgtCouponGetVo
     */
    @Override
    public MerCouponGetVo getMerCouponVo(String couponId){
        MerCouponGetVo merCouponGetVo = new MerCouponGetVo();
        Coupon coupon = this.getById(couponId);
        BeanUtils.copyProperties(coupon, merCouponGetVo);
        //判断优惠券是否为指定商品
        if(coupon.getUseScope()==2){
            String relGoodsIds = coupon.getRelGoodsIds();
            if(StringUtils.isNotBlank(relGoodsIds)){
                //获取指定商品列表
                List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                if(!goodsList.isEmpty()){
                    //转换为返回对象
                    List<MgtCouponGoodsListVo> relGoodsList = new ArrayList<>();
                    MgtCouponGoodsListVo mgtCouponGoodsListVo;
                    for(Goods goods : goodsList){
                        mgtCouponGoodsListVo = new MgtCouponGoodsListVo();
                        mgtCouponGoodsListVo.setGoodsId(goods.getGoodsId());
                        mgtCouponGoodsListVo.setGoodsName(goods.getGoodsName());
                        mgtCouponGoodsListVo.setGoodsNo(goods.getGoodsNo());
                        //商品类型1周期2服务3体验4单品
                        switch (goods.getGoodsType()){
                            case 1:
                                mgtCouponGoodsListVo.setGoodsType("周期");
                                break;
                            case 2:
                                mgtCouponGoodsListVo.setGoodsType("服务");
                                break;
                            case 3:
                                mgtCouponGoodsListVo.setGoodsType("体验");
                                break;
                            case 4:
                                mgtCouponGoodsListVo.setGoodsType("单品");
                                break;
                            default:
                                break;
                        }
                        mgtCouponGoodsListVo.setSalesPrice(goods.getSalesPrice());
                        relGoodsList.add(mgtCouponGoodsListVo);
                    }
                    merCouponGetVo.setRelGoodsList(relGoodsList);
                }
            }
        }
        //判断优惠券是否指定发放用户
        if(coupon.getSendType()==5&&coupon.getRelationType()==1){
            //获取优惠券发放用户
            List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId());
            merCouponGetVo.setRelUserList(relUserList);
        }
        return merCouponGetVo;
    }
    /**
     * @description  平台编辑优惠券
     * @author  jqs
     * @date    2023/6/13 16:50
@@ -629,4 +689,62 @@
        }
        return couponPageVoList;
    }
    /**
     * @description  平台获取优惠券列表
     * @author  jqs
     * @date    2023/6/30 16:53
     * @param page
     * @param merPageDto
     * @return  List<MerCouponPageVo>
     */
    @Override
    public List<MerCouponPageVo> pageShopMerCoupon(Page page, MerPageDto merPageDto){
        List<MerCouponPageVo> couponPageVoList = couponMapper.pageShopMerCoupon(page, merPageDto);
        //处理使用限制和有效期
        if(couponPageVoList!=null&&!couponPageVoList.isEmpty()){
            Integer couponType;
            Integer validTimeType;
            Date validStartTime;
            Date validEndTime;
            Integer validDay;
            String validTime = "";
            BigDecimal moneyThreshold;
            BigDecimal discountMoney;
            BigDecimal discountPercent;
            String useLimit = "";
            for(MerCouponPageVo merCouponPageVo : couponPageVoList){
                //处理使用限制
                couponType = merCouponPageVo.getCouponType();
                switch (couponType){
                    case 1:
                        moneyThreshold = merCouponPageVo.getMoneyThreshold();
                        discountMoney = merCouponPageVo.getDiscountMoney();
                        useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元";
                        break;
                    case 2:
                        break;
                    case 3:
                        break;
                    case 4:
                        break;
                    default:
                        break;
                }
                merCouponPageVo.setUseLimit(useLimit);
                //处理有效期
                validTimeType = merCouponPageVo.getValidTimeType();
                if(validTimeType==1){
                    validStartTime = merCouponPageVo.getValidStartTime();
                    validEndTime = merCouponPageVo.getValidEndTime();
                    validTime = DateUtils.dateTime(validStartTime) + '-' +  DateUtils.dateTime(validEndTime);
                }else if(validTimeType==2){
                    validDay = merCouponPageVo.getValidDay();
                    validTime = "领取之日起" + validDay.toString() + "天";
                }
                merCouponPageVo.setValidTime(validTime);
            }
        }
        return couponPageVoList;
    }
}