/**若需要在线教育平台&在线培训平台全部的文档和源码,可通过QQ联系:2684452562。可提供在线演示地址和账号。整套文档+安装包+源码+源码依赖资源包共12GB。-*/ package com.base.cn.platform.os.controller.web.course.cou;
import com.base.cn.platform.os.common.WebBaseController;
import com.base.cn.platform.os.common.constants.CacheConstants;
import com.base.cn.platform.os.common.j2cache.CustomCacheChannel;
import com.base.cn.platform.os.common.j2cache.J2CacheRegion;
import com.base.cn.platform.os.common.utils.ObjectUtils;
import com.base.cn.platform.os.common.utils.count.PageFrom;
import com.base.cn.platform.os.common.utils.count.PageKeyUtils;
import com.base.cn.platform.os.common.utils.course.CourseContentUtil;
import com.base.cn.platform.os.common.utils.course.CourseType;
import com.base.cn.platform.os.common.utils.order.ShopType;
import com.base.cn.platform.os.common.utils.result.ResultUtil;
import com.base.cn.platform.os.entity.op.coupon.OpCoupon;
import com.base.cn.platform.os.service.course.catalog.CourseCatalogService;
import com.base.cn.platform.os.service.course.classes.ClassesService;
import com.base.cn.platform.os.service.course.comment.CourseCommentService;
import com.base.cn.platform.os.service.course.cou.CourseService;
import com.base.cn.platform.os.service.course.cou.buy.CourseBuyRecordService;
import com.base.cn.platform.os.service.course.cou.packageCou.PackageCourseService;
import com.base.cn.platform.os.service.manage.config.SysConfigService;
import com.base.cn.platform.os.service.manage.count.PageViewCountService;
import com.base.cn.platform.os.service.manage.op.coupon.OpCouponService;
import com.base.cn.platform.os.service.manage.teacher.SysTeacherService;
import com.base.cn.platform.os.service.upload.LoggerGenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;
import java.util.*;
/**
* 课程前台Controller
*
* @author s.li
* @create 2018-05-10-19:39
*/
@Controller
@RequestMapping("/web/course")
public class WebCourseController extends WebBaseController {
@Autowired
private CourseService courseService;
@Autowired
private CourseCatalogService courseCatalogService;
@Autowired
private CourseBuyRecordService courseBuyRecordService;
@Autowired
private PackageCourseService packageCourseService;
@Autowired
private PageViewCountService pageViewCountService;
@Autowired
private SysTeacherService sysTeacherService;
@Autowired
private CourseCommentService courseCommentService;
@Autowired
private CustomCacheChannel customCacheChannel;
@Autowired
private LoggerGenService loggerGenService;
@Autowired
private SysConfigService sysConfigService;
@Autowired
private OpCouponService opCouponService;
@Autowired
private ClassesService classesService;
/**
* 直播列表
*
* @return
*/
@RequestMapping("/liveIndex")
public String newLiveList(Model model){
return resultPage("/course/live/live-index");
}
/**
* 加载课程数据
* @param model Model
* @param params 查询条件
* @param currentPage 页码
* @return String
*/
@RequestMapping("/ajaxLiveList")
public String ajaxLiveList(Model model,
@RequestBody Map<String, Object> params,
@RequestParam("currentPage") int currentPage) {
params.put("status", 1);
params.put("type", 1);
params.put("courseTypeKey", CourseType.COURSE_TYPE_LIVE.getKey());
Map<String, Object> dataMap = courseService.findWebCoursePage(params, currentPage, 6, true, false, false, true,true);
model.addAttribute("dataMap", dataMap);
return resultPage("/course/live/ajax-live-index");
}
/**
* 直播详情页
*
* @return
*/
@RequestMapping("/liveInfo")
public String newLiveInfo(HttpServletRequest request,
Model model,@RequestParam("courseId") BigDecimal courseId){
BigDecimal userId = webMobileLoginUtil.getLoginUserId(request);
Map<String, Object> course = courseService.findToBuyCourseById(courseId, userId,true, true, true, false, false, true,true);
pageViewCountService.addPageCount(PageKeyUtils.COURSE_INFO, PageFrom.PAGE_FROM_PC);
request.setAttribute("mobilePathShare", "/mobile/course/liveInfo?courseId="+courseId);
model.addAttribute("course",course);
course.put("courseService",CourseContentUtil.setCourseService(Integer.valueOf(course.get("service").toString()),sysConfigService," . "));
loggerGenService.genGoodsPVUVLog(courseId, ShopType.ORDER_SHOP_COURSE);
model.addAttribute("classes", classesService.getCourseRelevanceClasses(courseId));
return resultPage("/course/live/live-info");
}
/**
* 课程列表
*
* @return
*/
@RequestMapping("/courseList")
public String courseList(Model model ,
@RequestParam(value="courseName",required = false, defaultValue = "") String courseName,
@RequestParam(value="courseTypeKey",required = false, defaultValue = "") String courseTypeKey) {
model.addAttribute("year", Calendar.getInstance().get(Calendar.YEAR) + 2);
model.addAttribute("courseName", courseName);
model.addAttribute("courseTypeKey", courseTypeKey);
model.addAttribute("courseTypeList", CourseType.values());
return resultPage("/course/cou/course-list");
}
/**
* 加载课程数据
*
* @param model Model
* @param params 查询条件
* @param currentPage 页码
* @return String
*/
@RequestMapping("/ajaxCourseList")
public String ajaxCourseList(Model model,
@RequestBody Map<String, Object> params,
@RequestParam("currentPage") int currentPage) {
params.put("status", 1);
params.put("type", 1);
params.put("notCourseTypeKey", CourseType.COURSE_TYPE_LIVE.getKey());
Map<String, Object> dataMap = courseService.findWebCoursePage(params, currentPage, 8, false, false, false, true,false);
model.addAttribute("dataMap", dataMap);
return resultPage("/course/cou/ajax-course-list");
}
/**
* 课程详情
* @param request HttpServletRequest
* @param model Model
* @param courseId 课程ID
* @return 详情页面
*/
@RequestMapping("/courseInfo")
public String courseInfo(HttpServletRequest request,
Model model,
@RequestParam("courseId") BigDecimal courseId) {
//用户ID
BigDecimal userId = webMobileLoginUtil.getLoginUserId(request);
request.setAttribute("mobilePathShare", "/mobile/course/info?courseId="+courseId);
Map<String, Object> course = courseService.findToBuyCourseById(courseId, userId,true, true, true, false, false, false,false);
Map<String, Object> params = new HashMap<>();
params.put("courseId",courseId);
params.put("status",1);
BigDecimal commentCount = courseCommentService.findCommentCount(params);
model.addAttribute("commentCount", commentCount);
course.put("c
评论1