无关风月
2025-05-08 9486766c806fe1d9e082b2fd02ea1cc558f1b443
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
@@ -10,14 +10,14 @@
import com.dsh.activity.feignclient.account.model.SaveUserIntegralChangesVo;
import com.dsh.activity.feignclient.course.CourseClient;
import com.dsh.activity.feignclient.course.model.Course;
import com.dsh.activity.mapper.BenefitsVideoClassificationMapper;
import com.dsh.activity.mapper.BenefitsVideosMapper;
import com.dsh.activity.model.BenefitsVideoClassificationListVo;
import com.dsh.activity.model.BenefitsVideosInfoVo;
import com.dsh.activity.model.BenefitsVideosListVo;
import com.dsh.activity.model.*;
import com.dsh.activity.service.BenefitsVideosService;
import com.dsh.activity.service.IBenefitsVideoClassificationService;
import com.dsh.activity.service.IUserBenefitsVideosService;
import com.dsh.activity.util.ToolUtil;
import org.aspectj.weaver.ast.Var;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -51,13 +51,13 @@
    @Resource
    private UserIntegralChangesClient userIntegralChangesClient;
    @Resource
    private BenefitsVideosMapper benefitsVideosMapper;
    /**
     * 获取福利视频分类列表数据
     *
     * @param uid
     * @param search
     * @return
@@ -66,11 +66,56 @@
    @Override
    public List<BenefitsVideoClassificationListVo> queryClassificationBenefitsVideosList(Integer uid, Integer position, String search) throws Exception {
        QueryWrapper<BenefitsVideoClassification> wrapper = new QueryWrapper<BenefitsVideoClassification>().eq("position", position);
        if(ToolUtil.isNotEmpty(search)){
        if (ToolUtil.isNotEmpty(search)) {
            wrapper.like("name", search);
        }
        List<BenefitsVideoClassification> list = benefitsVideoClassificationService.list(wrapper.eq("state", 1)
                .orderByDesc("sort"));
        List<UserBenefitsVideos> userBenefitsVideos = userBenefitsVideosService.list(new QueryWrapper<UserBenefitsVideos>()
                .eq("appUserId", uid));
        List<Integer> collect = userBenefitsVideos.stream().map(UserBenefitsVideos::getBenefitsVideosId).collect(Collectors.toList());
        List<BenefitsVideoClassificationListVo> listVos = new ArrayList<>();
        for (BenefitsVideoClassification benefitsVideoClassification : list) {
            if (benefitsVideoClassification.getState() == 1) {
                BenefitsVideoClassificationListVo benefitsVideoClassificationListVo = new BenefitsVideoClassificationListVo();
                benefitsVideoClassificationListVo.setId(benefitsVideoClassification.getId());
                benefitsVideoClassificationListVo.setName(benefitsVideoClassification.getName());
                QueryWrapper<BenefitsVideos> benefitsVideosQueryWrapper = new QueryWrapper<BenefitsVideos>()
                        .eq("state", 1).eq("benefitsVideoClassificationId", benefitsVideoClassification.getId());
                if (collect.size() > 0) {
                    benefitsVideosQueryWrapper.notIn("id", collect);
                }
                List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.orderByAsc("insertTime").last(" limit 0, 4"));
                List<BenefitsVideosListVo> lists = new ArrayList<>();
                for (BenefitsVideos benefitsVideos : list1) {
                    if (benefitsVideos.getState() == 1) {
                        Integer courseId = benefitsVideos.getCourseId();
                        Course course = courseClient.queryCourseById(courseId);
                        BenefitsVideosListVo benefitsVideosListVo = new BenefitsVideosListVo();
                        benefitsVideosListVo.setId(benefitsVideos.getId());
                        benefitsVideosListVo.setName(course.getName());
                        benefitsVideosListVo.setCover(course.getCoverDrawing());
                        benefitsVideosListVo.setIntroduce(course.getIntroduce());
                        lists.add(benefitsVideosListVo);
                    }
                }
                benefitsVideoClassificationListVo.setList(lists);
                listVos.add(benefitsVideoClassificationListVo);
            }
        }
        return listVos;
    }
    @Override
    public List<BenefitsVideoClassificationListVo> queryClassificationBenefitsVideosListOne(Integer uid, Integer position, String search) throws Exception {
        QueryWrapper<BenefitsVideoClassification> wrapper = new QueryWrapper<BenefitsVideoClassification>().eq("position", position);
        if (ToolUtil.isNotEmpty(search)) {
            wrapper.like("name", search);
        }
        List<BenefitsVideoClassification> list = benefitsVideoClassificationService.list(wrapper.orderByAsc("sort"));
        List<UserBenefitsVideos> userBenefitsVideos = userBenefitsVideosService.list(new QueryWrapper<UserBenefitsVideos>().eq("appUserId", uid));
        List<UserBenefitsVideos> userBenefitsVideos = userBenefitsVideosService.list(new QueryWrapper<UserBenefitsVideos>().eq("appUserId", -1));
        List<Integer> collect = userBenefitsVideos.stream().map(UserBenefitsVideos::getBenefitsVideosId).collect(Collectors.toList());
        List<BenefitsVideoClassificationListVo> listVos = new ArrayList<>();
@@ -78,8 +123,11 @@
            BenefitsVideoClassificationListVo benefitsVideoClassificationListVo = new BenefitsVideoClassificationListVo();
            benefitsVideoClassificationListVo.setId(benefitsVideoClassification.getId());
            benefitsVideoClassificationListVo.setName(benefitsVideoClassification.getName());
            List<BenefitsVideos> list1 = this.list(new QueryWrapper<BenefitsVideos>().eq("state", 1).notIn("id", collect).orderByDesc("insertTime").last(" limit 4"));
            QueryWrapper<BenefitsVideos> benefitsVideosQueryWrapper = new QueryWrapper<BenefitsVideos>().eq("state", 1);
            if (collect.size() > 0) {
                benefitsVideosQueryWrapper.notIn("id", collect);
            }
            List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.orderByDesc("insertTime").last(" limit 0, 4"));
            List<BenefitsVideosListVo> lists = new ArrayList<>();
            for (BenefitsVideos benefitsVideos : list1) {
                Integer courseId = benefitsVideos.getCourseId();
@@ -99,9 +147,19 @@
    @Override
    public List<BenefitsVideosListVo> queryBenefitsVideosList(Integer uid, Integer classificationId, Integer pageSize, Integer pageNo) throws Exception {
    public List<BenefitsVideosListVo> queryBenefitsVideosList(Integer uid, Integer classificationId, String search, Integer pageSize, Integer pageNo) throws Exception {
        pageSize = (pageSize - 1) * pageNo;
        List<Map<String, Object>> benefitsVideos = this.baseMapper.queryBenefitsVideosList(uid, classificationId, pageSize, pageNo);
        List<Integer> ids = null;
        if (ToolUtil.isNotEmpty(search)) {
            List<Course> courses = courseClient.queryCourseByName(search);
            ids = courses.stream().map(Course::getId).collect(Collectors.toList());
        }
        int offset = (pageNo - 1) * pageSize;
        int limit = pageSize;
        List<Map<String, Object>> benefitsVideos = this.baseMapper.queryBenefitsVideosList(uid, classificationId, ids, offset, limit);
        List<BenefitsVideosListVo> lists = new ArrayList<>();
        for (Map<String, Object> benefitsVideo : benefitsVideos) {
            Integer id = Integer.valueOf(benefitsVideo.get("id").toString());
@@ -124,6 +182,7 @@
    /**
     * 获取福利视频详情
     *
     * @param uid
     * @param id
     * @return
@@ -150,6 +209,7 @@
    /**
     * 视频观看完毕后获得奖励
     *
     * @param uid
     * @param id
     * @throws Exception
@@ -158,7 +218,7 @@
    public void receiveAward(Integer uid, Integer id) throws Exception {
        BenefitsVideos benefitsVideos = this.getById(id);
        UserBenefitsVideos one = userBenefitsVideosService.getOne(new QueryWrapper<UserBenefitsVideos>().eq("appUserId", uid).eq("benefitsVideosId", id));
        if(null == one){
        if (null == one) {
            one = new UserBenefitsVideos();
            one.setAppUserId(uid);
            one.setBenefitsVideoClassificationId(benefitsVideos.getBenefitsVideoClassificationId());
@@ -175,4 +235,16 @@
            userIntegralChangesClient.saveUserIntegralChanges(vo);
        }
    }
    @Override
    public List<BenefitsVideos> getBenefitVideoById(Integer id, Integer state) {
        return benefitsVideosMapper.getBenefitVideoById(id, state);
    }
    @Override
    public List<BenefitsVideos> getBybIdAndcId(Integer benefitsVideoClassificationId, Integer courseId) {
        return benefitsVideosMapper.getBybIdAndcId(benefitsVideoClassificationId, courseId);
    }
}