package com.thhy.secure.modules.biz.exam.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.api.utils.StringUtils; import com.github.pagehelper.PageInfo; import com.thhy.general.common.BasicResult; import com.thhy.general.common.BasicStatus; import com.thhy.general.config.GlobalConfig; import com.thhy.general.exception.BasicException; import com.thhy.general.utils.ExcelUtils; import com.thhy.general.utils.PagingUtils; import com.thhy.secure.modules.biz.exam.entity.*; import com.thhy.secure.modules.biz.exam.service.ExamRecordService; import com.thhy.secure.modules.biz.exam.service.ExamService; import org.checkerframework.checker.units.qual.A; import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; /** * @author zhang_xiao_bo * @since 2023-05-26 09:14:42 */ @RestController @RequestMapping("exam") public class ExamController { @Autowired private ExamService examService; @Autowired private ExamRecordService recordService; @Autowired private RedissonClient redissonClient; @Autowired private GlobalConfig globalConfig; @RequestMapping("findList") public BasicResult findList(@RequestBody(required = false) ExamDto examDto, HttpServletRequest req){ PagingUtils.setPageParam(req); List examList = examService.findList(examDto); PageInfo pageInfo = new PageInfo<>(examList); return BasicResult.success(pageInfo); } @RequestMapping("miniList") public BasicResult miniList(@RequestBody(required = false) ExamDto examDto, HttpServletRequest req){ PagingUtils.setPageParam(req); List examList = examService.miniList(examDto); PageInfo pageInfo = new PageInfo<>(examList); return BasicResult.success(pageInfo); } @RequestMapping("addExam") public BasicResult addExam(@RequestBody Exam exam){ examService.addExam(exam); return BasicResult.success(); } /** @RequestMapping("update") public BasicResult update(@RequestBody Exam exam){ examService.update(exam); return BasicResult.success(); }**/ @RequestMapping("delete") public BasicResult delete(@RequestBody Exam exam){ examService.delete(exam.getExamId()); return BasicResult.success(); } /** * PC 考核报表 * @param examDto * @param req * @return */ @RequestMapping("examReportList") public BasicResult examReportList(@RequestBody(required = false) ExamDto examDto, HttpServletRequest req){ PagingUtils.setPageParam(req); List examList = examService.examReportList(examDto); PageInfo pageInfo = new PageInfo<>(examList); return BasicResult.success(pageInfo); } /** * * @param authcode * @param response * @return */ @RequestMapping("examRecordDown") public void examRecordDown(String authcode, HttpServletResponse response){ RBucket rBucket = redissonClient.getBucket(globalConfig.getFilePreKey()+":authcode:"+authcode); String param = rBucket.getAndDelete(); if(StringUtils.isEmpty(param)){ throw new BasicException(BasicStatus.TOKEN_IS_NULL); } JSONObject jsonObject = JSON.parseObject(param); ExamRecordDto examRecordDto = JSON.toJavaObject(jsonObject,ExamRecordDto.class); List examList = recordService.recordList(examRecordDto); String fileName = examList.get(0).getExamName()+"-考核记录列表"; ExcelUtils.downExcel(examList,ExamRecordListVo.class,response,fileName); } /** * MP 考核列表 * @param examDto * @param req * @return */ @RequestMapping("examList") public BasicResult examList(@RequestBody(required = false) ExamDto examDto, HttpServletRequest req){ PagingUtils.setPageParam(req); List examList = examService.examList(examDto); PageInfo pageInfo = new PageInfo<>(examList); return BasicResult.success(pageInfo); } /** * MP 开始考核 * @param examDto * @param req * @return */ @RequestMapping("goExam") public BasicResult goExam(@RequestBody(required = false) ExamDto examDto, HttpServletRequest req){ Map map = examService.goExam(examDto); return BasicResult.success(map); } /** * MP 开始考核 * @param commitAnswerDto * @param req * @return */ @RequestMapping("commitAnswer") public BasicResult commitAnswer(@RequestBody CommitAnswerDto commitAnswerDto, HttpServletRequest req){ Map map = examService.commitAnswer(commitAnswerDto); return BasicResult.success(map); } }