package com.qxueyou.scc.controller; import java.io.IOException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import com.fasterxml.jackson.databind.ObjectMapper; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.ResultJson; import com.qxueyou.scc.config.AliOssConfig; import com.qxueyou.scc.evaluate.service.IEvaluateService; import com.qxueyou.scc.school.model.SchEvaluate; import com.qxueyou.scc.school.model.TeachEvaScoreResult; import com.qxueyou.scc.sys.service.IOssService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; /** * 评估控制器 * * @author zhiyong */ @Api(tags = "问卷接口") @Controller @CrossOrigin(origins="*",maxAge=3600) @RequestMapping(value = "/evaluate") @EnableConfigurationProperties(AliOssConfig.class) public class EvaluateController { private final Logger log = LogManager.getLogger(EvaluateController.class); @Autowired private IEvaluateService evaluateService; @Autowired IOssService ossService; // ------------------------------后台 start------------------------------------------------------------ /** * 获取列表数据 * * @return */ @ApiOperation(value = "获取列表数据-教师端", notes = "", httpMethod = "GET") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNum", value = "页码", required = false, paramType="query", dataType = "Integer"), @ApiImplicitParam(name = "pageSize", value = "每页数目", required = false, paramType="query", dataType = "Integer"), @ApiImplicitParam(name = "keyword", value = "查询字段", required = false, paramType="query", dataType = "String"), @ApiImplicitParam(name = "sort", value = "排序字段", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "list", method = RequestMethod.GET) public @ResponseBody ResultJson queryList(Integer pageNum, Integer pageSize, String keyword, @RequestParam(defaultValue = "desc") String sort) { return evaluateService.queryList(pageNum, pageSize, keyword, sort); } /** * 获取范围选择 *

* type: lesson:课程 class:班级 person:人员 * * @return */ @ApiOperation(value = "获取范围选择", notes = "根据填写范围获取下拉列表的值") @ApiImplicitParams({ @ApiImplicitParam(name = "type", value = "填写范围【lesson:课程 class:班级 person:人员】", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "rangeList", method = RequestMethod.GET) public @ResponseBody ResultJson queryRangeList(String type, String searchName) { return evaluateService.queryRangeList(type, searchName); } /** * 后台管理 * 新增或修改教学评估 * * @param obj * @return */ @ApiOperation(value = "新增或修改问卷", notes = "") @RequestMapping(value = "addOrUpdate", method = RequestMethod.POST) public @ResponseBody ResultJson addOrUpdateEvaluate(@RequestBody SchEvaluate eva) { return evaluateService.addOrUpdateEvaluate(eva); } /** * 获取回显数据 * * @return */ @ApiOperation(value = "读取问卷的信息", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateId", value = "问卷id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "baseInfo", method = RequestMethod.GET) public @ResponseBody ResultJson queryBaseInfo(String evaluateId) { return evaluateService.queryBaseInfo(evaluateId); } /** * 删除 * * @return */ @ApiOperation(value = "删除问卷", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateIds", value = "问卷id,id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "delete", method = RequestMethod.POST) public @ResponseBody ResultJson delete(String evaluateIds) { return evaluateService.delete(evaluateIds); } /** * 后台管理 * 激活教学评估 * * @return */ @ApiOperation(value = "激活教学评估", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateIds", value = "问卷id,id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "active", method = RequestMethod.POST) @ResponseBody public ResultJson active(String evaluateIds) { return evaluateService.doActive(evaluateIds); } /** * 后台管理 * 撤回 * * @return */ @ApiOperation(value = "撤回教学评估", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateIds", value = "问卷id,id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "withdraw", method = RequestMethod.POST) @ResponseBody public ResultJson withdraw(String evaluateIds) { return evaluateService.doWithdraw(evaluateIds); } /** * 后台管理 * 复制 * * @return */ @ApiOperation(value = "复制教学评估", notes = "") @RequestMapping(value = "copy", method = RequestMethod.POST) @ResponseBody public ResultJson doCopy(@RequestBody SchEvaluate eva) { return evaluateService.doCopy(eva); } /** * 查看结果 问卷整体情况 * * @param groupId * @param schEvaluateId * @param classId * @return */ @ApiOperation(value = "问卷整体答题情况", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateId", value = "问卷id", required = false, paramType="query", dataType = "String"), @ApiImplicitParam(name = "groupId", value = "练习组id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "queryEvaluateDetail", method = RequestMethod.GET) @ResponseBody public ResultJson queryEvaluateDetail(String evaluateId, String groupId) { return evaluateService.queryEvaluateDetail(evaluateId, groupId); } /** * 查看统计 * * @param groupId * @param schEvaluateId * @return */ @ApiOperation(value = "查看问卷统计情况", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateId", value = "问卷id", required = false, paramType="query", dataType = "String"), @ApiImplicitParam(name = "groupId", value = "练习组id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "evaluateStatisDetail", method = RequestMethod.GET) @ResponseBody public ResultJson queryEvaluateStatis(String groupId, String evaluateId) { return evaluateService.queryEvaluateStatis(groupId, evaluateId); } // ------------------------------后台 end------------------------------------------------------------ // ------------------------------前端 start----------------------------------------------------------- /** * 微信提交问卷 * * @param answers * @param userId * @return */ @ApiOperation(value = "提交问卷答案", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "answers", value = "{\"evaluateId\":\"297ebe0e653d1bf601654064de690004\",\"exerciseGroupId\":\"297ebe0e653d1bf601654064de2b0002\",\"items\":[{\"exerciseId\":\"297ebe0e653d1bf60165407d5e9f0033\",\"answer\":\"B,C\"},{\"exerciseId\":\"297ebe0e653d1bf60165407eb3b6003e\",\"answer\":\"B\"},{\"exerciseId\":\"297ebe0e653d1bf6016541a801c5009e\",\"answer\":\"A,B\"},{\"exerciseId\":\"297ebe0e653d1bf6016540755a4a0005\",\"answer\":\"B\"},{\"exerciseId\":\"297ebe0e653d1bf6016540787e42001d\",\"answer\":\"B\"},{\"exerciseId\":\"297ebe0e653d1bf60165407b48a80028\",\"answer\":\"B\"}]}", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "saveEvaluateWeixin", method = RequestMethod.POST) public @ResponseBody ResultJson saveEvaluateWeixin(@RequestParam("answers") String answers, String userId) { ResultJson result = new ResultJson(false); try { ObjectMapper mapper = new ObjectMapper(); // 装换json到对象 TeachEvaScoreResult scoreResult = mapper.readValue(answers, TeachEvaScoreResult.class); // 提交答卷入库 result = evaluateService.doSubmitTeachEvalScoreData(scoreResult, userId); evaluateService.updateEvaluateCount(scoreResult.getEvaluateId()); } catch (IOException e) { result = new ResultJson(false); log.error(e); } return result; } /** * 查询学生评估list * * @return */ @ApiOperation(value = "问卷列表-学员端", notes = "") @RequestMapping(value = "stuEvaluateList", method = RequestMethod.GET) public @ResponseBody ResultJson queryStuEvaluateList(Pager pager) { return evaluateService.queryStuEvaluateList(pager); } /** * 问卷查询题目 * * @param evaluateId * @return */ @ApiOperation(value = "问卷题目列表", notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "evaluateId", value = "问卷id", required = false, paramType="query", dataType = "String"), }) @RequestMapping(value = "viewStuEvaluate", method = RequestMethod.GET) public @ResponseBody ResultJson evaluateListWeixin(@RequestParam("evaluateId") String evaluateId) { return evaluateService.doGetEvalExerItemResponseDataNew(evaluateId); } // ------------------------------前端 end------------------------------------------------------------ }