jiangqs
2023-07-11 25ef12504f10cb066db53541bd7bc7bac4c09ac4
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -10,15 +10,15 @@
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.pojo.coupon.*;
import com.ruoyi.member.service.coupon.*;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.coupon.CouponMapper;
import com.ruoyi.member.service.coupon.*;
import com.ruoyi.member.service.member.MemberCouponService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
import com.ruoyi.system.api.service.RemoteActivityService;
import com.ruoyi.system.api.service.RemoteGoodsService;
@@ -893,10 +893,82 @@
     * @return  List<AppUnGetCouponPageVo>
     */
    @Override
    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto){
    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Long shopId){
        //获取当前已领取完优惠券
        List<String> unGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId());
        //List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList( unGetList);
        return null;
        List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList(page, shopId, unGetList);
        //处理商品限制
        if(!getAbleCouponPageVoList.isEmpty()){
            String relGoodsIds;
            List<Goods> goodsList;
            List<String> goodsLimitList;
            for(AppGetAbleCouponPageVo appGetAbleCouponPageVo : getAbleCouponPageVoList){
                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
                goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
                if(!goodsList.isEmpty()){
                    goodsLimitList = goodsList.stream().map(goods -> {
                        String goodsName = goods.getGoodsName();
                        goodsName = "限制" + goodsName + "适用";
                        return goodsName;
                    }).collect(Collectors.toList());
                    appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
                }
            }
        }
        return getAbleCouponPageVoList;
    }
    /**
     * @description  用户领取优惠券
     * @author  jqs
     * @date    2023/7/11 15:04
     * @param couponId
     * @param shopId
     * @return  void
     */
    @Override
    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);
        }
        MemberCoupon memberCoupon = new MemberCoupon();
        String memberCouponId = IdUtils.simpleUUID();
        memberCoupon.setId(memberCouponId);
        memberCoupon.setDelFlag(0);
        memberCoupon.setCouponId(couponId);
        memberCoupon.setUserId(userId);
        memberCoupon.setShopId(shopId);
        memberCoupon.setCouponType(coupon.getCouponType());
        memberCoupon.setCouponStatus(coupon.getCouponStatus());
        memberCoupon.setCouponName(coupon.getCouponName());
        memberCoupon.setSendType(coupon.getSendType());
        memberCoupon.setSendTimeType(coupon.getSendTimeType());
        memberCoupon.setSendTime(coupon.getSendTime());
        memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
        memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
        memberCoupon.setUseScope(coupon.getUseScope());
        memberCoupon.setValidTimeType(coupon.getValidTimeType());
        memberCoupon.setValidStartTime(coupon.getValidStartTime());
        memberCoupon.setValidEndTime(coupon.getValidEndTime());
        memberCoupon.setValidDay(coupon.getValidDay());
        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());
        memberCouponService.save(memberCoupon);
        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
    }
}