puzhibing
2023-10-31 32cafa15d3d4aa99a67102914a1b31e8f080c03f
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -19,11 +19,11 @@
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.DelayTaskEnum;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.activity.Activity;
import com.ruoyi.system.api.domain.poji.config.DelayTask;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.service.RemoteActivityService;
@@ -32,6 +32,7 @@
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -120,7 +121,6 @@
                    useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元";
                }
                if(couponType.equals("折扣")){
                    moneyThreshold = mgtCouponPageVo.getMoneyThreshold();
                    discountPercent = mgtCouponPageVo.getDiscountPercent();
                    useLimit = discountPercent.toString() + "折";
                }
@@ -203,6 +203,14 @@
            List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId());
            mgtCouponGetVo.setRelUserList(relUserList);
        }
        //获取活动名称
        if(coupon.getSendTarget()==5&&coupon.getRelationType()==2){
            Activity activity = remoteActivityService.getActivity(coupon.getRelationActivityId()).getData();
            mgtCouponGetVo.setRelationActivityName(activity.getActivityName());
        }
        if(mgtCouponGetVo.getSendLimitFlag()==0){
            mgtCouponGetVo.setSendLimitNumber(null);
        }
        return mgtCouponGetVo;
    }
@@ -237,6 +245,9 @@
            //获取优惠券发放用户
            List<MgtCouponMemberListVo> relUserList = couponRelUserService.listCouponMemberVo(coupon.getCouponId());
            merCouponGetVo.setRelUserList(relUserList);
        }
        if(merCouponGetVo.getSendLimitFlag()==0){
            merCouponGetVo.setSendLimitNumber(null);
        }
        return merCouponGetVo;
    }
@@ -301,6 +312,17 @@
        coupon.setRelationActivityType(mgtCouponEditDto.getRelationActivityType());
        coupon.setRelationActivityId(mgtCouponEditDto.getRelationActivityId());
        coupon.setPropagandaPoster(mgtCouponEditDto.getPropagandaPoster());
        //指定发放优惠券不做发放数限制
        if(coupon.getSendType()==2){
            mgtCouponEditDto.setSendLimitFlag(0);
        }
        coupon.setSendLimitFlag(mgtCouponEditDto.getSendLimitFlag());
        if(mgtCouponEditDto.getSendLimitFlag()==1){
            coupon.setSendLimitNumber(mgtCouponEditDto.getSendLimitNumber());
        }else{
            coupon.setSendLimitNumber(0);
        }
        coupon.setLimitNumber(mgtCouponEditDto.getLimitNumber());
        //判断是否指定商品
        if(coupon.getUseScope()==2&&!mgtCouponEditDto.getRelGoodsIdList().isEmpty()){
            List<String> relGoodsIdList = mgtCouponEditDto.getRelGoodsIdList();
@@ -399,23 +421,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());
@@ -442,23 +473,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());
@@ -534,20 +574,29 @@
                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());
@@ -959,6 +1008,7 @@
            couponRelGoodsService.deleteCouponRelByCouponId(coupon.getCouponId());
            coupon.setCouponStatus(1);
        }else{
            //初始化新优惠券
            coupon = new Coupon();
            String couponId = IdUtils.simpleUUID();
            coupon.setCouponId(couponId);
@@ -999,6 +1049,16 @@
        coupon.setUpdateUserId(merCouponEditDto.getUserId());
        coupon.setRelationType(1);
        coupon.setPropagandaPoster(merCouponEditDto.getPropagandaPoster());
        //指定发放优惠券不做发放数限制
        if(coupon.getSendType()==2){
            merCouponEditDto.setSendLimitFlag(0);
        }
        coupon.setSendLimitFlag(merCouponEditDto.getSendLimitFlag());
        if(merCouponEditDto.getSendLimitFlag()==1){
            coupon.setSendLimitNumber(merCouponEditDto.getSendLimitNumber());
        }else{
            coupon.setSendLimitNumber(0);
        }
        //判断是否指定商品
        if(coupon.getUseScope()==2&&!merCouponEditDto.getRelGoodsIdList().isEmpty()){
            List<String> relGoodsIdList = merCouponEditDto.getRelGoodsIdList();
@@ -1062,19 +1122,27 @@
     */
    @Override
    public void sendCouponGift(List<BirthdayGiftSendDto> giftSendDtoList){
        // 获取第一个用户和商店的ID
        Long userId = giftSendDtoList.get(0).getUserId();
        Long shopId = giftSendDtoList.get(0).getShopId();
        // 初始化变量
        String couponId;
        Coupon coupon;
        List<MemberCoupon> memberCouponList = new ArrayList<>();
        MemberCoupon memberCoupon;
        String memberCouponId;
        // 遍历生日礼物发送DTO列表
        for(BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList){
            // 获取优惠券ID并查询优惠券信息
            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();
@@ -1083,34 +1151,46 @@
                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());
                // 如果优惠券适用范围为指定商品,则设置关联商品ID
                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(new Date());
                //有效期处理1.时间段2.领取之日起
                // 根据有效期类型设置会员优惠券的截止时间
                if(coupon.getValidTimeType()==1){
                    memberCoupon.setDeadlineTime(coupon.getValidEndTime());
                }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());
        }
        // 批量保存会员优惠券列表
        memberCouponService.saveBatch(memberCouponList);
    }
@@ -1124,41 +1204,82 @@
     */
    @Override
    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Member member){
        //获取用户当前已领取完优惠券
        List<String> unUserGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId());
        //获取当前已领取完优惠券
        List<String> unGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId());
        List<String> unGetList = couponMapper.listUnGetCoupon();
        //合并不可领取优惠券列表
        HashSet<String> mergedList = new HashSet<>();
        mergedList.addAll(unUserGetList);
        mergedList.addAll(unGetList);
        unGetList = new ArrayList<>(mergedList);
        List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList(page, member.getRelationShopId(),member.getUserId(),member.getBindingFlag(), unGetList);
        //处理商品限制
        if(!getAbleCouponPageVoList.isEmpty()){
            String relGoodsIds;
            List<Goods> goodsList;
            List<String> goodsLimitList = null;
            Shop shop = null;
            for(AppGetAbleCouponPageVo appGetAbleCouponPageVo : getAbleCouponPageVoList){
                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
                if(StringUtils.isNotBlank(relGoodsIds)){
                    goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                    if(goodsList!=null&&!goodsList.isEmpty()){
                        goodsLimitList = goodsList.stream().map(goods -> {
                            String goodsName = goods.getGoodsName();
                            goodsName = "限制" + goodsName + "适用";
                            return goodsName;
                        }).collect(Collectors.toList());
                    }
                }else{
                    goodsLimitList = new ArrayList<>();
                    if(appGetAbleCouponPageVo.getShopId()!=null){
                        if(shop!=null&&shop.getShopId().equals(appGetAbleCouponPageVo.getShopId())){
                        }else{
                            shop = remoteShopService.getShop(appGetAbleCouponPageVo.getShopId()).getData();
                        }
                        goodsLimitList.add(shop.getShopName()+"通用");
                    }else{
                        goodsLimitList.add("全场通用");
            HashSet<Long> shopIdSet = new HashSet<>();
            HashSet<String> goodsIdSet = new HashSet<>();
            String[] goodsIdArr;
            for(AppGetAbleCouponPageVo getAbleCouponPageVo : getAbleCouponPageVoList){
                if(getAbleCouponPageVo.getShopId()!=null){
                    shopIdSet.add(getAbleCouponPageVo.getShopId());
                }
                if(StringUtils.isNotBlank(getAbleCouponPageVo.getRelGoodsIds())){
                    relGoodsIds = getAbleCouponPageVo.getRelGoodsIds();
                    goodsIdArr = relGoodsIds.split(",");
                    for(String str : goodsIdArr){
                        goodsIdSet.add(str);
                    }
                }
                appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
            }
            //获取关联商户和商品信息并转换为Map
            String shopJoinedString;
            Map<Long, MgtSimpleShopVo> shopMap = null;
            if(shopIdSet!=null&&!shopIdSet.isEmpty()) {
                shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList()));
                MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
                mgtBaseBathDto.setIds(shopJoinedString);
                List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
                shopMap = simpleShopVoList.stream()
                        .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
            }
            String goodsJoinedString = null;
            if(goodsIdSet!=null&&!goodsIdSet.isEmpty()){
                goodsJoinedString = String.join(",", goodsIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            }
            Map<String, Goods> goodsMap = null;
            if(goodsJoinedString!=null){
                List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsJoinedString).getData();
                goodsMap = goodsList.stream()
                        .collect(Collectors.toMap(Goods::getGoodsId, Function.identity()));
            }
            //处理返回信息
            String shopLimit = "全门店通用";
            String goodsLimit;
            StringJoiner goodsNameSj;
            for(AppGetAbleCouponPageVo getAbleCouponPageVo : getAbleCouponPageVoList){
                goodsLimit = null;
                goodsNameSj = new StringJoiner(",");
                //商户限制
                if(getAbleCouponPageVo.getShopId()!=null){
                    shopLimit = shopMap.get(getAbleCouponPageVo.getShopId()).getShopName()+"可用";
                }
                getAbleCouponPageVo.setShopLimit(shopLimit);
                //商品限制
                if(StringUtils.isNotBlank(getAbleCouponPageVo.getRelGoodsIds())){
                    relGoodsIds = getAbleCouponPageVo.getRelGoodsIds();
                    goodsIdArr = relGoodsIds.split(",");
                    for(String goodsIs : goodsIdArr){
                        if(goodsMap.get(goodsIs)!=null){
                            goodsNameSj.add(goodsMap.get(goodsIs).getGoodsName());
                        }else{
                            log.debug("用户优惠券未找到关联商品"+getAbleCouponPageVo.getCouponId()+"-"+getAbleCouponPageVo.getRelGoodsIds());
                        }
                    }
                    goodsLimit = goodsNameSj.toString();
                }
                getAbleCouponPageVo.setGoodsLimit(goodsLimit);
            }
        }
        return getAbleCouponPageVoList;
    }
@@ -1175,15 +1296,26 @@
     * @return  void
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void appGetCoupon(String couponId,Long userId,Long shopId){
        Coupon coupon = this.getById(couponId);
        //判断优惠券状态
        if(coupon==null||coupon.getDelFlag()==1||coupon.getCouponStatus()!=1||coupon.getSendType()!=1){
            throw new ServiceException(AppErrorConstant.COUPON_GET_ERROR);
        }
        //判断优惠券用户领取状态
        MemberCouponRecord memberCouponRecord = memberCouponRecordService.getByCouponIdAndUserId(couponId,userId);
        if(memberCouponRecord!=null&&memberCouponRecord.getLimitFlag()==1){
            throw new ServiceException(AppErrorConstant.COUPON_GET_ALL);
        }
        //判断优惠券发放状态
        if(coupon.getSendLimitFlag()==1&&coupon.getSendLimitNumber()>0){
            CouponTotal couponTotal = couponTotalService.getById(couponId);
            if(couponTotal.getSendCount()>=coupon.getSendLimitNumber()){
                throw new ServiceException(AppErrorConstant.COUPON_GET_ALL);
            }
        }
        //生成用户优惠券
        MemberCoupon memberCoupon = new MemberCoupon();
        String memberCouponId = IdUtils.simpleUUID();
        memberCoupon.setId(memberCouponId);
@@ -1194,16 +1326,26 @@
            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());
@@ -1216,7 +1358,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);
    }