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