无关风月
2024-07-11 eb6b6dbb35a9f029e0b7d269773685c19fd40976
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TWelfareVideoController.java
@@ -1,28 +1,250 @@
package com.dsh.guns.modular.system.controller.code;
import com.dsh.course.feignClient.activity.BenefitsVideoClient;
import com.dsh.course.feignClient.activity.PointMercharsClient;
import com.dsh.course.feignClient.activity.model.BenefitsVedioChangeStateVO;
import com.dsh.course.feignClient.activity.model.BenefitsVideoClassification;
import com.dsh.course.feignClient.activity.model.BenefitsVideos;
import com.dsh.course.feignClient.activity.model.QueryBenefitsVedioVO;
import com.dsh.course.feignClient.course.CourseClient;
import com.dsh.course.feignClient.course.model.CourseChangeStateDTO;
import com.dsh.guns.config.UserExt;
import com.dsh.guns.modular.system.model.TCourse;
import com.dsh.guns.modular.system.model.TQueryBenefitsVO;
import com.dsh.guns.modular.system.model.TQueryBenefitsVideosDTO;
import com.dsh.guns.modular.system.model.TQueryBenefitsVideosVO;
import com.dsh.guns.modular.system.util.ResultUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * 福利视频分类 控制器
 */
@Controller
@RequestMapping("/tWelfareVideo")
@RequestMapping("/benefits")
public class TWelfareVideoController {
    private String PREFIX = "/system/tWelfareVideo/";
    private String PREFIX = "/system/benefits/";
    @Autowired
    private BenefitsVideoClient benefitsVideoClient;
    @Autowired
    private CourseClient courseClient;
    /**
     * 优惠券审核列表页
     * 跳转福利视频分类首页
     */
    @RequestMapping("")
    public String index(Model model) {
        return PREFIX + "TWelfareVideo.html";
        return PREFIX + "TBenefits.html";
    }
    /**
     * 跳转福利视频分类添加页面
     */
    @RequestMapping("/add")
    public String add(Model model) {
        return PREFIX + "TBenefits_add.html";
    }
    /**
     * 跳转福利视频分类编辑页面--查看详情
     */
    @RequestMapping("/info/{id}")
    public String info(Model model, @PathVariable("id") Integer id) {
        BenefitsVideoClassification data = benefitsVideoClient.getById(id);
        model.addAttribute("data",data);
        model.addAttribute("type",1);
        return PREFIX + "TBenefits_edit.html";
    }
    /**
     * 跳转福利视频分类编辑页面
     */
    @RequestMapping("/update/{id}")
    public String update(Model model, @PathVariable("id") Integer id) {
        BenefitsVideoClassification data = benefitsVideoClient.getById(id);
        model.addAttribute("data",data);
        model.addAttribute("type",0);
        return PREFIX + "TBenefits_edit.html";
    }
    /**
     * 跳转视频详情页面
     */
    @RequestMapping("/getBenefitsVideos/{courseId}")
    public String getBenefitsVideos(Model model, @PathVariable("courseId") Integer id) {
        model.addAttribute("id",id);
        return PREFIX + "TBenefitsVideos.html";
    }
    /**
     * 跳转视频详情添加页面
     * @param id 福利视频分类id
     */
    @RequestMapping("/addBenefitsVideos/{id}")
    public String addBenefitsVideos(Model model,@PathVariable("id")Integer id) {
        model.addAttribute("id",id);
        List<BenefitsVideos> benefitVideoById = benefitsVideoClient.getBenefitVideoById(id);
//        // 所选福利视频分类下的视频的courseId集合
//        List<Integer> list = new ArrayList<>();
//        for (BenefitsVideos benefitsVideos : benefitVideoById) {
//            list.add(benefitsVideos.getCourseId());
//        }
        TQueryBenefitsVideosDTO dto = new TQueryBenefitsVideosDTO();
//        dto.setCoursIds(list);
        List<TQueryBenefitsVideosVO> courseByCourseIds = courseClient.getCourseByCourseIds(dto);
        List<TQueryBenefitsVideosVO> tQueryBenefitsVideosVOS = new ArrayList<>();
        for (TQueryBenefitsVideosVO courseByCourseId : courseByCourseIds) {
            if (courseByCourseId.getType()!=1){
                tQueryBenefitsVideosVOS.add(courseByCourseId);
            }
        }
        model.addAttribute("data",tQueryBenefitsVideosVOS);
        return PREFIX + "TBenefitsVideos_add.html";
    }
    /**
     * 跳转视频详情编辑页面
     */
    @RequestMapping("/infoBenefitsVideos/{id}/{type}/{benefitsVideosId}")
    public String infoBenefitsVideos(Model model, @PathVariable("id") Integer id,@PathVariable("type") Integer type,@PathVariable("benefitsVideosId") Integer benefitsVideosId) {
        TQueryBenefitsVideosVO tQueryBenefitsVideosVO = new TQueryBenefitsVideosVO();
        BenefitsVideos benefitVideosById = benefitsVideoClient.getBenefitVideosById(benefitsVideosId);
        TCourse tCourse = courseClient.queryCourseById(benefitVideosById.getCourseId());
        BeanUtils.copyProperties(tCourse,tQueryBenefitsVideosVO);
        tQueryBenefitsVideosVO.setIntegral(benefitVideosById.getIntegral());
        tQueryBenefitsVideosVO.setBenefitsVideosId(benefitVideosById.getId());
        model.addAttribute("data",tQueryBenefitsVideosVO);
        model.addAttribute("type",type);
        return PREFIX + "TBenefitsVideos_edit.html";
    }
    /**
     * 根据所选视频 获取视频封面用于前端显示
     */
    @RequestMapping("/getCoverDrawing/{id}")
    @ResponseBody
    public TCourse infoBenefitsVideos( @PathVariable("id") Integer id) {
        TCourse tCourse = courseClient.queryCourseById(id);
        return tCourse;
    }
    /**
     * 查询福利视频分类列表
     */
    @RequestMapping(value= "/list")
    @ResponseBody
    public List<TQueryBenefitsVO> listAll(String name, Integer position) {
        // 对象类型
        Integer type = UserExt.getUser().getObjectType();
        // 对象类型Id
        Integer objectId = UserExt.getUser().getObjectId();
        QueryBenefitsVedioVO vo = new QueryBenefitsVedioVO();
        vo.setName(name);
        vo.setPosition(position);
        return benefitsVideoClient.listAll(vo);
    }
    /**
     * 查询视频详情列表
     */
    @RequestMapping(value= "/listBenefitsVideos/{id}")
    @ResponseBody
    public List<TQueryBenefitsVideosVO> listBenefitsVideos(@PathVariable("id")Integer bId, String name, Integer type, Integer state) {
        TQueryBenefitsVideosDTO vo = new TQueryBenefitsVideosDTO();
        List<BenefitsVideos> benefitVideoById = benefitsVideoClient.getBenefitVideoById(bId);
        vo.setCoursIds(new ArrayList<>());
        for (BenefitsVideos benefitsVideos : benefitVideoById) {
            // 获取课程id集合
            vo.getCoursIds().add(benefitsVideos.getCourseId());
        }
        if (benefitVideoById.size()==0){
            return new ArrayList<>();
        }
        vo.setName(name);
        vo.setType(type);
        vo.setState(state);
        List<TQueryBenefitsVideosVO> courseByCourseIds = courseClient.getCourseByCourseIds(vo);
        for (BenefitsVideos benefitsVideos : benefitVideoById) {
            for (TQueryBenefitsVideosVO courseByCourseId : courseByCourseIds) {
                if (benefitsVideos.getCourseId().equals(courseByCourseId.getId())){
                    courseByCourseId.setId(benefitsVideos.getId());
                    courseByCourseId.setIntegral(benefitsVideos.getIntegral());
                    courseByCourseId.setBenefitsVideosId(benefitsVideos.getId());
                    courseByCourseId.setState(benefitsVideos.getState());
                }
            }
        }
        return courseByCourseIds;
    }
    /**
     * 添加福利视频分类
     */
    @RequestMapping(value= "/addBenefits")
    @ResponseBody
    public Object addBenefits(@RequestBody BenefitsVideoClassification bvcf) {
        bvcf.setState(1);
        bvcf.setInsertTime(new Date());
        return benefitsVideoClient.addSite(bvcf);
    }
    /**
     * 添加视频详情
     */
    @RequestMapping(value= "/addBenefitsVideos")
    @ResponseBody
    public Object addBenefitsVideos(@RequestBody BenefitsVideos bvcf) {
        if (bvcf.getId()!=null){
            return benefitsVideoClient.addBenefitsVideos(bvcf);
        }else {
        bvcf.setState(1);
        bvcf.setInsertTime(new Date());
        return benefitsVideoClient.addBenefitsVideos(bvcf);
        }
    }
    /**
     * 福利视频分类上/下架 1为上架 2为下架 3为删除
     *
     * @return
     */
    @RequestMapping("/changeState")
    @ResponseBody
    public Object changeState(@RequestBody BenefitsVedioChangeStateVO vo){
        benefitsVideoClient.changeState(vo);
        return ResultUtil.success();
    }
    /**
     * 视频详情上/下架 1为上架 2为下架 3为删除
     *
     * @return
     */
    @Resource
    private PointMercharsClient mercharsClient;
    @RequestMapping("/changeCourseState")
    @ResponseBody
    public Object changeCourseState(@RequestBody CourseChangeStateDTO dto){
        courseClient.changeState(dto);
        mercharsClient.changeState(dto);
        return ResultUtil.success();
    }
}