From 9486766c806fe1d9e082b2fd02ea1cc558f1b443 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 08 五月 2025 09:21:57 +0800
Subject: [PATCH] bug修改

---
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java |  230 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 230 insertions(+), 0 deletions(-)

diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
index 1a7dc72..3d22fa8 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
@@ -1,10 +1,33 @@
 package com.dsh.activity.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.BenefitsVideoClassification;
 import com.dsh.activity.entity.BenefitsVideos;
+import com.dsh.activity.entity.UserBenefitsVideos;
+import com.dsh.activity.feignclient.account.UserIntegralChangesClient;
+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.*;
 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;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +40,211 @@
 @Service
 public class BenefitsVideosServiceImpl extends ServiceImpl<BenefitsVideosMapper, BenefitsVideos> implements BenefitsVideosService {
 
+    @Autowired
+    private IBenefitsVideoClassificationService benefitsVideoClassificationService;
+
+    @Autowired
+    private IUserBenefitsVideosService userBenefitsVideosService;
+
+    @Resource
+    private CourseClient courseClient;
+
+    @Resource
+    private UserIntegralChangesClient userIntegralChangesClient;
+    @Resource
+    private BenefitsVideosMapper benefitsVideosMapper;
+
+
+    /**
+     * 获取福利视频分类列表数据
+     *
+     * @param uid
+     * @param search
+     * @return
+     * @throws Exception
+     */
+    @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)) {
+            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", -1));
+        List<Integer> collect = userBenefitsVideos.stream().map(UserBenefitsVideos::getBenefitsVideosId).collect(Collectors.toList());
+
+        List<BenefitsVideoClassificationListVo> listVos = new ArrayList<>();
+        for (BenefitsVideoClassification benefitsVideoClassification : list) {
+            BenefitsVideoClassificationListVo benefitsVideoClassificationListVo = new BenefitsVideoClassificationListVo();
+            benefitsVideoClassificationListVo.setId(benefitsVideoClassification.getId());
+            benefitsVideoClassificationListVo.setName(benefitsVideoClassification.getName());
+            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();
+                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<BenefitsVideosListVo> queryBenefitsVideosList(Integer uid, Integer classificationId, String search, Integer pageSize, Integer pageNo) throws Exception {
+        pageSize = (pageSize - 1) * 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());
+            Integer courseId = Integer.valueOf(benefitsVideo.get("courseId").toString());
+            Integer integral = Integer.valueOf(benefitsVideo.get("integral").toString());
+            Integer study = Integer.valueOf(benefitsVideo.get("study").toString());
+            Course course = courseClient.queryCourseById(courseId);
+            BenefitsVideosListVo benefitsVideosListVo = new BenefitsVideosListVo();
+            benefitsVideosListVo.setId(id);
+            benefitsVideosListVo.setName(course.getName());
+            benefitsVideosListVo.setCover(course.getCoverDrawing());
+            benefitsVideosListVo.setIntroduce(course.getIntroduce());
+            benefitsVideosListVo.setIntegral(integral);
+            benefitsVideosListVo.setStudy(study);
+            lists.add(benefitsVideosListVo);
+        }
+        return lists;
+    }
+
+
+    /**
+     * 获取福利视频详情
+     *
+     * @param uid
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public BenefitsVideosInfoVo queryBenefitsVideosInfo(Integer uid, Integer id) throws Exception {
+        BenefitsVideos benefitsVideos = this.getById(id);
+        Integer courseId = benefitsVideos.getCourseId();
+        Course course = courseClient.queryCourseById(courseId);
+        BenefitsVideosInfoVo benefitsVideosInfoVo = new BenefitsVideosInfoVo();
+        benefitsVideosInfoVo.setId(id);
+        benefitsVideosInfoVo.setName(course.getName());
+        benefitsVideosInfoVo.setCover(course.getCoverDrawing());
+        benefitsVideosInfoVo.setIntroduce(course.getIntroduce());
+        benefitsVideosInfoVo.setIntroductionDrawing(course.getIntroductionDrawing());
+        benefitsVideosInfoVo.setCourseVideo(course.getCourseVideo());
+        benefitsVideosInfoVo.setIntegral(benefitsVideos.getIntegral());
+        UserBenefitsVideos one = userBenefitsVideosService.getOne(new QueryWrapper<UserBenefitsVideos>().eq("appUserId", uid).eq("benefitsVideosId", id));
+        benefitsVideosInfoVo.setStudy(null == one ? 0 : 1);
+        return benefitsVideosInfoVo;
+    }
+
+
+    /**
+     * 视频观看完毕后获得奖励
+     *
+     * @param uid
+     * @param id
+     * @throws Exception
+     */
+    @Override
+    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) {
+            one = new UserBenefitsVideos();
+            one.setAppUserId(uid);
+            one.setBenefitsVideoClassificationId(benefitsVideos.getBenefitsVideoClassificationId());
+            one.setBenefitsVideosId(id);
+            one.setInsertTime(new Date());
+            one.setIntegral(benefitsVideos.getIntegral());
+            userBenefitsVideosService.save(one);
+
+            //添加积分
+            SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo();
+            vo.setAppUserId(uid);
+            vo.setIntegral(benefitsVideos.getIntegral());
+            vo.setType(4);
+            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);
+    }
+
+
 }

--
Gitblit v1.7.1