主页视频,厨神,大健康,商品二维码优惠卷领取状态,优惠卷领取状态
9个文件已修改
143 ■■■■ 已修改文件
buyer-api/src/main/java/cn/lili/controller/promotion/CouponBuyerController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/query/WxHealthVideoQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/query/WxKitchenVideoQuery.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/promotion/entity/vos/CouponVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/promotion/service/CouponService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/promotion/CouponBuyerController.java
@@ -43,6 +43,7 @@
@RequestMapping("/buyer/promotion/coupon")
public class CouponBuyerController {
    /**
     * 优惠券
     */
@@ -85,15 +86,23 @@
    @GetMapping
    @ApiOperation(value = "获取可领取优惠券列表")
    public ResultMessage<IPage<CouponVO>> getCouponList(CouponSearchParams queryParam, PageVO page) {
        System.out.println("------------------------------------");
        System.out.println(queryParam);
        queryParam.setPromotionStatus(PromotionsStatusEnum.START.name());
        queryParam.setGetType(CouponGetEnum.FREE.name());
        IPage<CouponVO> canUseCoupons = couponService.pageVOFindAll(queryParam, page);
        List<CouponVO> list = canUseCoupons.getRecords();
        couponService.getUserCouponsStatus(list);
        //更具用户id
        return ResultUtil.data(canUseCoupons);
    }
    @ApiOperation(value = "获取当前会员的优惠券列表")
    @GetMapping("/getCoupons")
    public ResultMessage<IPage<MemberCoupon>> getCoupons(MemberCouponSearchParams param, PageVO pageVo) {
        System.out.println("------------------------------------");
        System.out.println(param);
        AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
        param.setMemberId(currentUser.getId());
        return ResultUtil.data(memberCouponService.getMemberCoupons(param, pageVo));
framework/src/main/java/cn/lili/modules/lmk/domain/query/WxHealthVideoQuery.java
@@ -18,6 +18,9 @@
    @ApiModelProperty("来源默认system,system/user")
    private String source;
    private String videoId;
    /**
     * @see VideoTypeEnum
     */
framework/src/main/java/cn/lili/modules/lmk/domain/query/WxKitchenVideoQuery.java
@@ -19,6 +19,8 @@
    @ApiModelProperty("来源默认system,system/user")
    private String source;
    private String videoId;
    /**
     * @see VideoTypeEnum
     */
framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityServiceImpl.java
@@ -146,9 +146,9 @@
    //删除活动同时删除活动的相关信息
    public void delActivityAndInformation(Activity activity){
        if (StringUtils.isNotEmpty(activity.getCover())){
            lmkFileService.deleteObject(activity.getCover());
        }
//        if (StringUtils.isNotEmpty(activity.getCover())){
//            lmkFileService.deleteObject(activity.getCover());
//        }
        baseMapper.deleteById(activity.getId());
        //删除审核记录
        activityAuditRecordService.delActivityAuditById(activity.getId());
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java
@@ -558,15 +558,16 @@
            case "recommend":// 加载推荐视频
                baseMapper.recommendVideo(page, query);
                //推荐视频重新排序
                WxVideoVO wxVideoVO = null;
                if (StringUtils.isNotBlank(query.getVideoId())) {
                    wxVideoVO  = baseMapper.recommendVideoByVideoId(query);
                }
                List<WxVideoVO> records = page.getRecords();
                Collections.shuffle(records);
                if (wxVideoVO!=null) {
                    records.set(0, wxVideoVO);
                }
                buildRecommendVideoList(page, query.getVideoId());
//                WxVideoVO wxVideoVO = null;
//                if (StringUtils.isNotBlank(query.getVideoId())) {
//                    wxVideoVO  = baseMapper.recommendVideoByVideoId(query);
//                }
//                List<WxVideoVO> records = page.getRecords();
//                Collections.shuffle(records);
//                if (wxVideoVO!=null) {
//                    records.set(0, wxVideoVO);
//                }
                break;
            case "author":  // 加载视频主页我发布的视频
                AuthorVideoQuery query1 = new AuthorVideoQuery();
@@ -699,7 +700,10 @@
    public Result healthRecommendVideo(WxHealthVideoQuery query) {
        IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class);
        //获取大健康视频列表
        baseMapper.recommendHealthVideo(page,query);
        buildRecommendVideoList(page, query.getVideoId());
        if (page.getTotal() > 0) {
            page.getRecords().forEach(v -> {
                v.setAuthorAvatar(cosUtil.getPreviewUrl(v.getAuthorAvatar()));
@@ -723,8 +727,11 @@
    @Override
    public Result kitchenRecommendVideo(WxKitchenVideoQuery query) {
        IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class);
         baseMapper.wxKitchenVideoQuery(page, query);
         page.getRecords().forEach(v -> {
        baseMapper.wxKitchenVideoQuery(page, query);
        buildRecommendVideoList(page, query.getVideoId());
        page.getRecords().forEach(v -> {
             v.setAuthorAvatar(cosUtil.getPreviewUrl(v.getAuthorAvatar()));
             if (VideoContentTypeEnum.VIDEO.getValue().equals(v.getVideoContentType())) {
                 v.setVideoUrl(cosUtil.getPreviewUrl(v.getVideoFileKey()));
@@ -734,6 +741,51 @@
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }
    /**
     *
     * @param page
     * @param videoId videoId推荐的视频id
     */
    private void buildRecommendVideoList(IPage<WxVideoVO> page, String videoId) {
        //查询到有视频列表
        if(org.apache.commons.collections.CollectionUtils.isNotEmpty(page.getRecords())){
            //现将视频顺序打乱
            Collections.shuffle(page.getRecords());
            WxVideoVO wxVideoVO = null;
            if (StringUtils.isNotBlank(videoId)){
                VideoQuery videoQuery = new VideoQuery();
                videoQuery.setVideoId(videoId);
                wxVideoVO  = baseMapper.recommendVideoByVideoId(videoQuery);
                boolean found = false;
                int foundIndex = -1;
                List<WxVideoVO> records = page.getRecords();
                //判断二维码过来的videoId是否存在与page.getRecords重复 记录下标
                for (int i = 0; i < records.size(); i++) {
                    if (wxVideoVO.getId().equals(records.get(i).getId())) {
                        found = true;
                        foundIndex = i;
                        break;
                    }
                }
                if (found){
                    WxVideoVO matchedRecord = records.remove(foundIndex);
                    records.add(0, matchedRecord);
                }else {
                    // 如果没找到,替换首位
                    records.set(0, wxVideoVO);
                }
            }
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateCollectNumBatch(List<CollectTypeNumVO> numList) {
framework/src/main/java/cn/lili/modules/member/serviceimpl/MemberServiceImpl.java
@@ -534,11 +534,12 @@
    @Override
    public Result updateMemberNickName(MemberNickNameForm form) {
        Member member = baseMapper.selectById(form.getMemberId());
        if ("微信用户".equals(member.getNickName()) || StringUtils.isEmpty(member.getNickName())) {
        if ("微信用户".equals(member.getNickName()) || StringUtils.isBlank(member.getNickName())) {
            member.setNickName(form.getNickName());
            baseMapper.updateById(member);
            return Result.ok().data(member.getNickName());
        }
        return Result.ok("修改成功");
        return Result.ok().data(member.getNickName());
    }
    @Override
framework/src/main/java/cn/lili/modules/promotion/entity/vos/CouponVO.java
@@ -28,6 +28,10 @@
    private static final long serialVersionUID = 8372420376262437018L;
    /**
     * 是否拥有优惠卷
     */
    private Boolean owned;
    /**
     * 促销关联的商品
     */
    @ApiModelProperty(value = "优惠券关联商品集合")
framework/src/main/java/cn/lili/modules/promotion/service/CouponService.java
@@ -6,6 +6,8 @@
import cn.lili.modules.promotion.entity.vos.CouponVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
 * 优惠券业务层
 *
@@ -14,6 +16,7 @@
 */
public interface CouponService extends AbstractPromotionsService<Coupon> {
    void getUserCouponsStatus(List<CouponVO> list);
    /**
     * 领取优惠券
     *
framework/src/main/java/cn/lili/modules/promotion/serviceimpl/CouponServiceImpl.java
@@ -8,12 +8,16 @@
import cn.lili.common.event.TransactionCommitSendMQEvent;
import cn.lili.common.exception.ServiceException;
import cn.lili.common.properties.RocketmqCustomProperties;
import cn.lili.common.security.AuthUser;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.DateUtil;
import cn.lili.common.utils.StringUtils;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.promotion.entity.dos.Coupon;
import cn.lili.modules.promotion.entity.dos.FullDiscount;
import cn.lili.modules.promotion.entity.dos.MemberCoupon;
import cn.lili.modules.promotion.entity.dos.PromotionGoods;
import cn.lili.modules.promotion.entity.dto.search.CouponSearchParams;
import cn.lili.modules.promotion.entity.dto.search.FullDiscountSearchParams;
@@ -24,6 +28,7 @@
import cn.lili.modules.promotion.entity.enums.PromotionsStatusEnum;
import cn.lili.modules.promotion.entity.vos.CouponVO;
import cn.lili.modules.promotion.mapper.CouponMapper;
import cn.lili.modules.promotion.mapper.MemberCouponMapper;
import cn.lili.modules.promotion.service.*;
import cn.lili.modules.promotion.tools.PromotionTools;
import cn.lili.mybatis.util.PageUtil;
@@ -31,6 +36,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
@@ -39,6 +45,7 @@
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@@ -82,6 +89,36 @@
    @Autowired
    private ApplicationEventPublisher applicationEventPublisher;
    @Autowired
    private MemberCouponMapper memberCouponMapper;
    @Override
    public void getUserCouponsStatus(List<CouponVO> list) {
        AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
        if (StringUtils.isNotBlank(currentUser.getId())){
            List<String> ids = list.stream().map(CouponVO::getId).collect(Collectors.toList());
            //获得分页优惠劵后的结果后,判断对象是否被用户获得过。
            List<MemberCoupon> userCouponVOS  = new LambdaQueryChainWrapper<>(memberCouponMapper)
                    .in(MemberCoupon::getCouponId,ids)
                    .eq(MemberCoupon::getMemberId,currentUser.getId())
                    .list();
            //用户获得过的优惠卷id集合
            List<String> userHaveCouponIds = userCouponVOS.stream().map(MemberCoupon::getCouponId).collect(Collectors.toList());
            //修改状态
            for(CouponVO couponVO : list){
                boolean owned = false;
                for (String id : userHaveCouponIds){
                    if(id.equals(couponVO.getId())){
                        owned = true;
                        break;
                    }
                }
                couponVO.setOwned(owned);
            }
        }
    }
    /**
     * 领取优惠券
     *