From 6eed4f4600ba2c2d7b5d3cc14a1e0a9e4d8f0d83 Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期二, 17 十月 2023 10:09:19 +0800
Subject: [PATCH] 10.17
---
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java | 218 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 218 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..f80ffc2 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,199 @@
@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;
+ @Autowired
+ private BenefitsVideoClassificationMapper benefitsVideoClassificationMapper;
+ @Autowired
+ 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.orderByAsc("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) {
+ 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<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());
+ }
+ List<Map<String, Object>> benefitsVideos = this.baseMapper.queryBenefitsVideosList(uid, classificationId, ids, pageSize, pageNo);
+ 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) {
+ return benefitsVideosMapper.getBenefitVideoById(id);
+ }
+
+ @Override
+ public List<BenefitsVideos> getBybIdAndcId(Integer benefitsVideoClassificationId, Integer courseId) {
+ return benefitsVideosMapper.getBybIdAndcId(benefitsVideoClassificationId,courseId);
+ }
+
+
}
--
Gitblit v1.7.1