package com.fs.course.controller; import com.fs.common.annotation.Log; import com.fs.common.constant.HttpStatus; import com.fs.common.core.controller.BaseController; import com.fs.common.core.domain.AjaxResult; import com.fs.common.core.page.TableDataInfo; import com.fs.common.enums.BusinessType; import com.fs.common.exception.CustomException; import com.fs.common.utils.ServletUtils; import com.fs.common.utils.poi.ExcelUtil; import com.fs.core.security.LoginUser; import com.fs.core.web.service.TokenService; import com.fs.course.domain.FsCourseWatchLog; import com.fs.course.param.FsCourseOverParam; import com.fs.course.param.FsCourseUserStatisticsListParam; import com.fs.course.param.FsCourseWatchLogListParam; import com.fs.course.param.FsCourseWatchLogStatisticsListParam; import com.fs.course.service.IFsCourseWatchLogService; import com.fs.course.vo.FsCourseOverVO; import com.fs.course.vo.FsCourseUserStatisticsListVO; import com.fs.course.vo.FsCourseWatchLogListVO; import com.fs.course.vo.FsCourseWatchLogStatisticsListVO; import com.fs.qw.param.QwWatchLogStatisticsListParam; import com.fs.qw.service.IQwWatchLogService; import com.fs.qw.vo.QwWatchLogAllStatisticsListVO; import com.fs.qw.vo.QwWatchLogStatisticsListVO; import com.fs.sop.mapper.SopUserLogsMapper; import com.github.pagehelper.PageInfo; import org.aspectj.weaver.ast.Var; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * 短链课程看课记录Controller * * @author fs * @date 2024-10-24 */ @RestController @RequestMapping("/course/courseWatchLog") public class FsCourseWatchLogController extends BaseController { @Autowired private IFsCourseWatchLogService fsCourseWatchLogService; @Autowired private TokenService tokenService; @Autowired private SopUserLogsMapper sopUserLogsMapper; @Autowired private IQwWatchLogService qwWatchLogService; /** * 查询短链课程看课记录列表 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:list')") @GetMapping("/list") public TableDataInfo list(FsCourseWatchLogListParam param) { List list = fsCourseWatchLogService.selectFsCourseWatchLogListVONew(param); TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(list); rspData.setTotal(fsCourseWatchLogService.selectFsCourseWatchLogListVOCount(param)); return rspData; } @PreAuthorize("@ss.hasPermi('course:courseWatchLog:statisticsList')") @GetMapping("/statisticsList") public TableDataInfo statisticsList(FsCourseWatchLogStatisticsListParam param) { // 如果看指定用户就不用设置公司 if(param.getCompanyId() == null){ if(param.getUserId() == null) { throw new CustomException("查看公司或者用户必填!"); } } if (param.getSTime()==null||param.getETime()==null){ throw new CustomException("必须选择开始时间和结束时间!"); } List list = fsCourseWatchLogService.selectFsCourseWatchLogStatisticsListVONew(param); TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(list); rspData.setTotal(fsCourseWatchLogService.selectFsCourseWatchLogStatisticsListVONewCount(param)); return rspData; } @GetMapping("/qwWatchLogStatisticsList") public TableDataInfo qwWatchLogStatisticsList(QwWatchLogStatisticsListParam param) { if(param.getPageNum() == null){ param.setPageNum(1L); } if(param.getPageSize() == null){ param.setPageSize(10L); } if (param.getSTime()==null||param.getETime()==null){ return getDataTable(new ArrayList<>()); } if(param.getCompanyId() == null){ throw new CustomException("必须选择公司!"); } return qwWatchLogService.selectQwWatchLogStatisticsListVONew(param); } @GetMapping("/myQwWatchLogStatisticsList") public TableDataInfo myQwWatchLogStatisticsList(QwWatchLogStatisticsListParam param) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); param.setCompanyUserId(loginUser.getUser().getUserId()); if (param.getSTime()==null||param.getETime()==null){ return getDataTable(new ArrayList<>()); } return qwWatchLogService.selectQwWatchLogStatisticsListVONew(param); } @GetMapping("/qwWatchLogAllStatisticsList") public TableDataInfo qwWatchLogAllStatisticsList(QwWatchLogStatisticsListParam param) { logger.info("会员课程数据汇总 参数: {}",param); if(param.getCompanyId() == null){ throw new CustomException("必须选择公司!"); } if (param.getSTime()==null||param.getETime()==null){ return getDataTable(new ArrayList<>()); } return qwWatchLogService.selectQwWatchLogAllStatisticsListVONew(param); } @GetMapping("/myQwWatchLogAllStatisticsList") public TableDataInfo myQwWatchLogAllStatisticsList(QwWatchLogStatisticsListParam param) { LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest()); param.setCompanyUserId(loginUser.getUser().getUserId()); if (param.getSTime()==null||param.getETime()==null){ return getDataTable(new ArrayList<>()); } return qwWatchLogService.selectQwWatchLogAllStatisticsListVONew(param); } @GetMapping("/watchLogStatistics") public TableDataInfo watchLogStatistics(FsCourseOverParam param) { startPage(); if (param.getSTime()==null||param.getETime()==null){ return getDataTable(new ArrayList<>()); } List list = fsCourseWatchLogService.selectFsCourseWatchLogOverStatisticsListVONew(param); return getDataTable(list); } @GetMapping("/watchLogStatisticsExport") public AjaxResult watchLogStatisticsExport(FsCourseOverParam param) { if (param.getSTime()==null||param.getETime()==null){ return AjaxResult.error("请选择时间"); } List list = fsCourseWatchLogService.selectFsCourseWatchLogOverStatisticsListVO(param); ExcelUtil util = new ExcelUtil(FsCourseOverVO.class); return util.exportExcel(list, "完课数据"); } @PreAuthorize("@ss.hasPermi('course:courseWatchLog:userStatisticsList')") @GetMapping("/userStatisticsList") public TableDataInfo userStatisticsList(FsCourseUserStatisticsListParam param) { startPage(); if (param.getSTime()==null||param.getETime()==null){ return getDataTable(new ArrayList<>()); } List list = fsCourseWatchLogService.selectFsCourseUserStatisticsListVO(param); return getDataTable(list); } /** * 查询短链课程看课记录列表 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:myList')") @GetMapping("/myList") public TableDataInfo myList(FsCourseWatchLogListParam param) { List list = fsCourseWatchLogService.selectFsCourseWatchLogListVONew(param); TableDataInfo rspData = new TableDataInfo(); rspData.setCode(HttpStatus.SUCCESS); rspData.setMsg("查询成功"); rspData.setRows(list); rspData.setTotal(fsCourseWatchLogService.selectFsCourseWatchLogListVOCount(param)); return rspData; } /** * 导出短链课程看课记录列表 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:export')") @Log(title = "短链课程看课记录", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(FsCourseWatchLogListParam param) { List list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param); ExcelUtil util = new ExcelUtil(FsCourseWatchLogListVO.class); return util.exportExcel(list, "短链课程看课记录数据"); } /** * 导出短链课程看课记录列表 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:myExport')") @Log(title = "短链课程看课记录", businessType = BusinessType.EXPORT) @GetMapping("/myExport") public AjaxResult myExport(FsCourseWatchLogListParam param) { List list = fsCourseWatchLogService.selectFsCourseWatchLogListVO(param); ExcelUtil util = new ExcelUtil(FsCourseWatchLogListVO.class); return util.exportExcel(list, "短链课程看课记录数据"); } /** * 获取短链课程看课记录详细信息 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:query')") @GetMapping(value = "/{logId}") public AjaxResult getInfo(@PathVariable("logId") Long logId) { return AjaxResult.success(fsCourseWatchLogService.selectFsCourseWatchLogByLogId(logId)); } /** * 新增短链课程看课记录 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:add')") @Log(title = "短链课程看课记录", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody FsCourseWatchLog fsCourseWatchLog) { return toAjax(fsCourseWatchLogService.insertFsCourseWatchLog(fsCourseWatchLog)); } /** * 修改短链课程看课记录 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:edit')") @Log(title = "短链课程看课记录", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody FsCourseWatchLog fsCourseWatchLog) { return toAjax(fsCourseWatchLogService.updateFsCourseWatchLog(fsCourseWatchLog)); } /** * 删除短链课程看课记录 */ @PreAuthorize("@ss.hasPermi('course:courseWatchLog:remove')") @Log(title = "短链课程看课记录", businessType = BusinessType.DELETE) @DeleteMapping("/{logIds}") public AjaxResult remove(@PathVariable Long[] logIds) { return toAjax(fsCourseWatchLogService.deleteFsCourseWatchLogByLogIds(logIds)); } }