bug
jiangqs
2023-09-11 3adbcc42d5f84c3c83d220543189361add81e04d
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -111,6 +111,7 @@
            BigDecimal discountPercent;
            String useLimit = "";
            for(MgtCouponPageVo mgtCouponPageVo : mgtCouponPageVoList){
                useLimit = null;
                //处理使用限制
                couponType = mgtCouponPageVo.getCouponType();
                if(couponType.equals("满减")){
@@ -123,7 +124,7 @@
                    discountPercent = mgtCouponPageVo.getDiscountPercent();
                    useLimit = discountPercent.toString() + "折";
                }
                if(couponType.equals("抵扣")){
                if(couponType.equals("代金")){
                    discountMoney = mgtCouponPageVo.getDiscountMoney();
                    useLimit = discountMoney.toString();
                }
@@ -133,7 +134,7 @@
                if(validTimeType==1){
                    validStartTime = mgtCouponPageVo.getValidStartTime();
                    validEndTime = mgtCouponPageVo.getValidEndTime();
                    validTime = DateUtils.dateTime(validStartTime) + '-' +  DateUtils.dateTime(validEndTime);
                    validTime = DateUtils.parseDateToStr("yyyy-MM-dd",validStartTime) + '-' +  DateUtils.parseDateToStr("yyyy-MM-dd",validEndTime);
                }else if(validTimeType==2){
                    validDay = mgtCouponPageVo.getValidDay();
                    validTime = "领取之日起" + validDay.toString() + "天";
@@ -209,21 +210,24 @@
     * @description  平台获取优惠券编辑信息
     * @author  jqs
     * @date    2023/6/13 14:29
     * @param couponId
     * @param merBaseGetDto
     * @return  MgtCouponGetVo
     */
    @Override
    public MerCouponGetVo getMerCouponVo(String couponId){
    public MerCouponGetVo getMerCouponVo(MerBaseGetDto merBaseGetDto){
        MerCouponGetVo merCouponGetVo = new MerCouponGetVo();
        Coupon coupon = this.getById(couponId);
        Coupon coupon = this.getById(merBaseGetDto.getId());
        BeanUtils.copyProperties(coupon, merCouponGetVo);
        //判断优惠券是否为指定商品
        if(coupon.getUseScope()==2){
            String relGoodsIds = coupon.getRelGoodsIds();
            if(StringUtils.isNotBlank(relGoodsIds)){
                //获取指定商品列表
                List<MerGoodsPriceListVo> goodsList = remoteGoodsService.listGoodsPriceByGoodsId(relGoodsIds).getData();
                if(!goodsList.isEmpty()){
                MerGoodsPriceListDto merGoodsPriceListDto = new MerGoodsPriceListDto();
                merGoodsPriceListDto.setGoodsIds(relGoodsIds);
                merGoodsPriceListDto.setShopId(merBaseGetDto.getShopId());
                List<MerGoodsPriceListVo> goodsList = remoteGoodsService.listGoodsPriceByGoodsId(merGoodsPriceListDto).getData();
                if(goodsList!=null&&!goodsList.isEmpty()){
                    merCouponGetVo.setRelGoodsList(goodsList);
                }
            }
@@ -267,7 +271,7 @@
            coupon.setCreateUserId(mgtCouponEditDto.getUserId());
            coupon.setCouponFrom(1);
            coupon.setAuditStatus(2);
            coupon.setLimitNumber(0);
            coupon.setLimitNumber(1);
            coupon.setSendFlag(0);
            //创建优惠券统计
            couponTotal = new CouponTotal();
@@ -296,6 +300,7 @@
        coupon.setRelationType(mgtCouponEditDto.getRelationType());
        coupon.setRelationActivityType(mgtCouponEditDto.getRelationActivityType());
        coupon.setRelationActivityId(mgtCouponEditDto.getRelationActivityId());
        coupon.setPropagandaPoster(mgtCouponEditDto.getPropagandaPoster());
        //判断是否指定商品
        if(coupon.getUseScope()==2&&!mgtCouponEditDto.getRelGoodsIdList().isEmpty()){
            List<String> relGoodsIdList = mgtCouponEditDto.getRelGoodsIdList();
@@ -394,23 +399,32 @@
                        memberCoupon.setUserId(userId);
                        memberCoupon.setShopId(coupon.getShopId());
                        memberCoupon.setCouponType(coupon.getCouponType());
                        if(coupon.getCouponType()==1){
                            memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                            memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                        }else if(coupon.getCouponType()==2){
                            memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                        }else if(coupon.getCouponType()==3){
                            memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                        }else{
                            memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                        }
                        memberCoupon.setCouponStatus(coupon.getCouponStatus());
                        memberCoupon.setCouponName(coupon.getCouponName());
                        memberCoupon.setSendType(coupon.getSendType());
                        memberCoupon.setSendTarget(coupon.getSendTarget());
                        memberCoupon.setSendTimeType(coupon.getSendTimeType());
                        memberCoupon.setSendTime(coupon.getSendTime());
                        memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                        memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                        memberCoupon.setUseScope(coupon.getUseScope());
                        if(memberCoupon.getUseScope()==2){
                            memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                        }
                        memberCoupon.setValidTimeType(coupon.getValidTimeType());
                        memberCoupon.setValidStartTime(coupon.getValidStartTime());
                        memberCoupon.setValidEndTime(coupon.getValidEndTime());
                        memberCoupon.setValidDay(coupon.getValidDay());
                        memberCoupon.setCouponFrom(coupon.getCouponFrom());
                        memberCoupon.setReceiveTime(nowTime);
                        memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                        //有效期处理1.时间段2.领取之日起
                        if(coupon.getValidTimeType()==1){
                            memberCoupon.setDeadlineTime(coupon.getValidEndTime());
@@ -435,25 +449,34 @@
                    memberCoupon.setDelFlag(0);
                    memberCoupon.setCouponId(coupon.getCouponId());
                    memberCoupon.setUserId(userId);
                    memberCoupon.setShopId(coupon.getShopId());
                    //memberCoupon.setShopId(coupon.getShopId());
                    memberCoupon.setCouponType(coupon.getCouponType());
                    if(coupon.getCouponType()==1){
                        memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                    }else if(coupon.getCouponType()==2){
                        memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                    }else if(coupon.getCouponType()==3){
                        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                    }else{
                        memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                    }
                    memberCoupon.setCouponStatus(coupon.getCouponStatus());
                    memberCoupon.setCouponName(coupon.getCouponName());
                    memberCoupon.setSendType(coupon.getSendType());
                    memberCoupon.setSendTarget(coupon.getSendTarget());
                    memberCoupon.setSendTimeType(coupon.getSendTimeType());
                    memberCoupon.setSendTime(coupon.getSendTime());
                    memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                    memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                    memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                    memberCoupon.setUseScope(coupon.getUseScope());
                    if(memberCoupon.getUseScope()==2){
                        memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                    }
                    memberCoupon.setValidTimeType(coupon.getValidTimeType());
                    memberCoupon.setValidStartTime(coupon.getValidStartTime());
                    memberCoupon.setValidEndTime(coupon.getValidEndTime());
                    memberCoupon.setValidDay(coupon.getValidDay());
                    memberCoupon.setCouponFrom(coupon.getCouponFrom());
                    memberCoupon.setReceiveTime(nowTime);
                    memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                    //有效期处理1.时间段2.领取之日起
                    if(coupon.getValidTimeType()==1){
                        memberCoupon.setDeadlineTime(coupon.getValidEndTime());
@@ -522,25 +545,36 @@
                memberCoupon.setDelFlag(0);
                memberCoupon.setCouponId(coupon.getCouponId());
                memberCoupon.setUserId(userId);
                memberCoupon.setShopId(coupon.getShopId());
                if(coupon.getCouponFrom()==2){
                    memberCoupon.setShopId(coupon.getShopId());
                }
                memberCoupon.setCouponType(coupon.getCouponType());
                memberCoupon.setCouponStatus(coupon.getCouponStatus());
                memberCoupon.setCouponName(coupon.getCouponName());
                memberCoupon.setSendType(coupon.getSendType());
                if(coupon.getCouponType()==1){
                    memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                    memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                }else if(coupon.getCouponType()==2){
                    memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                }else if(coupon.getCouponType()==3){
                    memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                }else{
                    memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                }
                memberCoupon.setSendTarget(coupon.getSendTarget());
                memberCoupon.setSendTimeType(coupon.getSendTimeType());
                memberCoupon.setSendTime(coupon.getSendTime());
                memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                memberCoupon.setUseScope(coupon.getUseScope());
                if(memberCoupon.getUseScope()==2){
                    memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                }
                memberCoupon.setValidTimeType(coupon.getValidTimeType());
                memberCoupon.setValidStartTime(coupon.getValidStartTime());
                memberCoupon.setValidEndTime(coupon.getValidEndTime());
                memberCoupon.setValidDay(coupon.getValidDay());
                memberCoupon.setCouponFrom(coupon.getCouponFrom());
                memberCoupon.setReceiveTime(nowTime);
                memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                //有效期处理1.时间段2.领取之日起
                if(coupon.getValidTimeType()==1){
                    memberCoupon.setDeadlineTime(coupon.getValidEndTime());
@@ -694,7 +728,7 @@
                if(validTimeType==1){
                    validStartTime = mgtCouponAuditPageVo.getValidStartTime();
                    validEndTime = mgtCouponAuditPageVo.getValidEndTime();
                    validTime = DateUtils.dateTime(validStartTime) + '-' +  DateUtils.dateTime(validEndTime);
                    validTime = DateUtils.parseDateToStr("yyyy-MM-dd",validStartTime) + '-' +  DateUtils.parseDateToStr("yyyy-MM-dd",validEndTime);
                }else if(validTimeType==2){
                    validDay = mgtCouponAuditPageVo.getValidDay();
                    validTime = "领取之日起" + validDay.toString() + "天";
@@ -798,7 +832,7 @@
        coupon.setUpdateTime(new Date());
        coupon.setUpdateUserId(mgtCouponAuditDto.getUserId());
        //审核通过后判断是否立即发放
        if(coupon.getAuditStatus()==2&&coupon.getSendTimeType()==1){
        if(coupon.getAuditStatus()==2&&coupon.getSendType()==2&&coupon.getSendTimeType()==1){
            List<CouponRelUser> couponRelUserList = couponRelUserService.list(new LambdaQueryWrapper<CouponRelUser>().eq(CouponRelUser::getDelFlag,0).eq(CouponRelUser::getCouponId,coupon.getCouponId()));
            List<Long> userIdList = new ArrayList<>();
            if(couponRelUserList!=null&&!couponRelUserList.isEmpty()){
@@ -866,6 +900,7 @@
                    validTime = "领取之日起" + validDay.toString() + "天";
                }
                merCouponPageVo.setValidTime(validTime);
                merCouponPageVo.setCouponCode("https://hongruitang.oss-cn-beijing.aliyuncs.com/2023/8/3/couponCode.jpg");
            }
        }
        return couponPageVoList;
@@ -990,6 +1025,7 @@
        coupon.setUpdateTime(new Date());
        coupon.setUpdateUserId(merCouponEditDto.getUserId());
        coupon.setRelationType(1);
        coupon.setPropagandaPoster(merCouponEditDto.getPropagandaPoster());
        //判断是否指定商品
        if(coupon.getUseScope()==2&&!merCouponEditDto.getRelGoodsIdList().isEmpty()){
            List<String> relGoodsIdList = merCouponEditDto.getRelGoodsIdList();
@@ -1063,6 +1099,9 @@
        for(BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList){
            couponId = birthdayGiftSendDto.getCouponId();
            coupon = this.getById(couponId);
            if(coupon==null||coupon.getCouponStatus()!=1){
                throw new ServiceException(AppErrorConstant.COUPON_GET_ERROR);
            }
            for(int i=0;i<birthdayGiftSendDto.getCouponNumber();i++){
                memberCoupon = new MemberCoupon();
                memberCouponId = IdUtils.simpleUUID();
@@ -1071,17 +1110,26 @@
                memberCoupon.setCouponId(couponId);
                memberCoupon.setUserId(userId);
                memberCoupon.setShopId(shopId);
                memberCoupon.setCouponType(coupon.getCouponType());
                if(coupon.getCouponType()==1){
                    memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                    memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                }else if(coupon.getCouponType()==2){
                    memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                }else if(coupon.getCouponType()==3){
                    memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                }else{
                    memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                }
                memberCoupon.setCouponStatus(coupon.getCouponStatus());
                memberCoupon.setCouponName(coupon.getCouponName());
                memberCoupon.setSendType(coupon.getSendType());
                memberCoupon.setSendTarget(coupon.getSendTarget());
                memberCoupon.setSendTimeType(coupon.getSendTimeType());
                memberCoupon.setSendTime(coupon.getSendTime());
                memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
                memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
                memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
                memberCoupon.setUseScope(coupon.getUseScope());
                if(memberCoupon.getUseScope()==2){
                    memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                }
                memberCoupon.setValidTimeType(coupon.getValidTimeType());
                memberCoupon.setValidStartTime(coupon.getValidStartTime());
                memberCoupon.setValidEndTime(coupon.getValidEndTime());
@@ -1094,7 +1142,6 @@
                }else if(coupon.getValidTimeType()==2){
                    memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay()));
                }
                memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
                memberCouponList.add(memberCoupon);
            }
            memberCouponRecordService.updateMemberCouponRecord(coupon,userId,birthdayGiftSendDto.getCouponNumber());
@@ -1178,18 +1225,30 @@
        memberCoupon.setDelFlag(0);
        memberCoupon.setCouponId(couponId);
        memberCoupon.setUserId(userId);
        memberCoupon.setShopId(shopId);
        if(coupon.getCouponFrom()==2){
            memberCoupon.setShopId(shopId);
        }
        memberCoupon.setCouponType(coupon.getCouponType());
        if(coupon.getCouponType()==1){
            memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
            memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
        }else if(coupon.getCouponType()==2){
            memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
        }else if(coupon.getCouponType()==3){
            memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
        }else{
            memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
        }
        memberCoupon.setCouponStatus(coupon.getCouponStatus());
        memberCoupon.setCouponName(coupon.getCouponName());
        memberCoupon.setSendType(coupon.getSendType());
        memberCoupon.setSendTarget(coupon.getSendTarget());
        memberCoupon.setSendTimeType(coupon.getSendTimeType());
        memberCoupon.setSendTime(coupon.getSendTime());
        memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
        memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
        memberCoupon.setUseScope(coupon.getUseScope());
        if(memberCoupon.getUseScope()==2){
            memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
        }
        memberCoupon.setValidTimeType(coupon.getValidTimeType());
        memberCoupon.setValidStartTime(coupon.getValidStartTime());
        memberCoupon.setValidEndTime(coupon.getValidEndTime());
@@ -1202,7 +1261,6 @@
        }else if(coupon.getValidTimeType()==2){
            memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay()));
        }
        memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
        memberCouponService.save(memberCoupon);
        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
    }