package com.qxueyou.scc.exercise.action;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMethod;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
import com.qxueyou.scc.admin.classes.service.IClassService;
|
import com.qxueyou.scc.admin.teacher.service.ITeacherService;
|
import com.qxueyou.scc.base.dao.CommonDAO;
|
import com.qxueyou.scc.base.model.Pager;
|
import com.qxueyou.scc.base.model.Result;
|
import com.qxueyou.scc.base.util.ClientUtils;
|
import com.qxueyou.scc.base.util.CollectionUtils;
|
import com.qxueyou.scc.base.util.QBeanUtils;
|
import com.qxueyou.scc.exercise.model.ExerciseGroup;
|
import com.qxueyou.scc.exercise.service.IExerciseGroupService;
|
import com.qxueyou.scc.teach.subject.model.Subject;
|
import com.qxueyou.scc.teach.subject.service.ISubjectService;
|
|
import io.swagger.annotations.Api;
|
|
/**
|
* 练习题目控制
|
*
|
* @author kevin
|
* @history 2018-03-11 create kevin
|
*/
|
|
@Api(tags = "题库管理接口")
|
@Controller
|
@RequestMapping(value = "/exercise/group")
|
public class ExerciseGroupController {
|
|
// 分页查询中,默认记录条数和页数
|
private static final int DEFAULT_PAGE_SIZE = Integer.MAX_VALUE;
|
private static final int DEFAULT_PAGE_NUM = 1;
|
|
@Autowired
|
private CommonDAO commonDAO;
|
|
@Autowired
|
private IExerciseGroupService exerciseGroupService;
|
|
@Autowired
|
private ITeacherService teacherService;
|
|
@Autowired
|
IClassService classService;
|
|
@Autowired
|
ISubjectService subjectService;
|
|
/**
|
* 题库列表
|
*/
|
@RequestMapping(value = "/list", method = RequestMethod.GET)
|
public @ResponseBody Result pageList(String keyword,Short status, Integer pageSize, Integer pageNum,String typeStatus) {
|
//判断是否是教师
|
// String teacherId = ClientUtils.isAdmin() ? null : teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
|
String teacherId = ClientUtils.isAdmin() ? null : ClientUtils.getUserId();
|
|
Result result = new Result(Boolean.TRUE);
|
Pager page = new Pager();
|
List<ExerciseGroup> listResult = null;
|
List<Object> queryParam = null;
|
// 查询记录数
|
String hqlCount = "from ExerciseGroup where type=? and name like ? and deleteFlag is false ";
|
|
|
if(status!=null){
|
hqlCount = hqlCount.concat(" and status = ?");
|
queryParam = CollectionUtils.newList(ExerciseGroup.TYPE_EXERCISE_GROUP_LIB,'%'+(keyword==null?"":keyword.trim())+'%',status);
|
}else{
|
queryParam = CollectionUtils.newList( ExerciseGroup.TYPE_EXERCISE_GROUP_LIB,'%'+(keyword==null?"":keyword.trim())+'%');
|
}
|
if (StringUtils.isNotBlank(teacherId)) {
|
hqlCount = hqlCount.concat(" and createId=?");
|
queryParam.add(teacherId);
|
}
|
if (StringUtils.isNotBlank(typeStatus)) {
|
hqlCount = hqlCount.concat(" and typeStatus=?");
|
queryParam.add(typeStatus);
|
}
|
|
int totalCount = commonDAO.findCount(hqlCount,queryParam);
|
// page赋值
|
page.setTotalCount(totalCount);
|
page.setPageSize(pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE);
|
page.setPageNum(pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM);
|
|
StringBuffer hqlBuffer = new StringBuffer(500);
|
hqlBuffer.append("select g,s.name from ExerciseGroup g,Subject s where g.subjectId=s.subjectId and g.type=? and g.name like ? and g.deleteFlag is false ");
|
if(status!=null){
|
hqlBuffer.append(" and g.status = ? ");
|
}
|
if (StringUtils.isNotBlank(teacherId)) {
|
hqlBuffer.append(" and g.createId=?");
|
}
|
|
if (StringUtils.isNotBlank(typeStatus)) {
|
hqlBuffer.append(" and g.typeStatus=?");
|
}
|
hqlBuffer.append(" order by g.createTime DESC");
|
List<Object[]> list = commonDAO.findList(hqlBuffer.toString(), page,queryParam,Object[].class);
|
if(list!=null&& list.size()>0){
|
listResult = new ArrayList<ExerciseGroup>();
|
for(Object[] temp:list){
|
((ExerciseGroup)temp[0]).setSubjectName((String) temp[1]);
|
((ExerciseGroup)temp[0]).setItems(null);
|
listResult.add((ExerciseGroup)temp[0]);
|
}
|
}
|
|
result.addData("list", listResult);
|
result.addData("page", page);
|
return result;
|
}
|
|
/**
|
* 详情页面数据
|
*
|
* @param exerciseGroupId
|
* @return
|
*/
|
@RequestMapping(value = "/detail", method = RequestMethod.GET)
|
public @ResponseBody Result detail(String groupId) {
|
Result result = new Result(true);
|
result.addData("detail", exerciseGroupService.queryExerciseGroupDetail(groupId));
|
return result;
|
}
|
|
/**
|
* 保存题库基本信息
|
*
|
* @param exerciseGroup
|
* @return
|
*/
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
public @ResponseBody Result save(@RequestBody ExerciseGroup exerciseGroup) {
|
Result result = null;
|
String exerciseGroupId = exerciseGroup.getGroupId();
|
// 暂时题库类型配置为题库类型
|
if(StringUtils.isEmpty(exerciseGroupId)){
|
result = new Result(true);
|
exerciseGroup.setType(ExerciseGroup.TYPE_EXERCISE_GROUP_LIB);
|
exerciseGroupId = exerciseGroupService.addExerciseGroup(exerciseGroup);
|
result.addData("groupId", exerciseGroupId);
|
}else{
|
return exerciseGroupService.updateExerciseGroup(exerciseGroup);
|
}
|
return result;
|
}
|
|
/**
|
* 删除
|
*
|
* @param exerciseGroupIds
|
* @return
|
*/
|
@RequestMapping(value = "/delete", method = RequestMethod.GET)
|
public @ResponseBody Result delete(String exerciseGroupIds) {
|
Result result = new Result(true);
|
if (StringUtils.isNotEmpty(exerciseGroupIds)) {
|
result = exerciseGroupService.deleteExerciseGroup(exerciseGroupIds.split(","));
|
}
|
return result;
|
}
|
|
|
/**
|
* 作业布置班级列表
|
*
|
* @param examId
|
* @return
|
*/
|
@RequestMapping(value = "/subject/list", method = RequestMethod.GET)
|
public @ResponseBody List<Map<String,Object>> subjectList(Integer subjectType) {
|
//判断是否是教师
|
String teacherId = ClientUtils.isAdmin() ? null : teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
|
|
if(subjectType==null){
|
subjectType= Subject.TYPE_ORG_SUBJECT;
|
}
|
|
return this.subjectService.queryAvailableSubjectIdAndName(teacherId,subjectType);
|
}
|
|
/**
|
* 作业布置班级列表
|
*
|
* @param examId
|
* @return
|
*/
|
@RequestMapping(value = "/class/list", method = RequestMethod.GET)
|
public @ResponseBody List<Map<String,Object>> classList(String subjectId) {
|
//判断是否是教师
|
String teacherId = ClientUtils.isAdmin() ? null : teacherService.getTeacherIdByUserId(ClientUtils.getUserId());
|
|
return classService.queryAvailableClassIdAndName(teacherId,subjectId);
|
}
|
|
/**
|
* 发布题库
|
*
|
* @param exerciseIds
|
* @return
|
*/
|
@RequestMapping(value = "/exerciselib/publish", method = RequestMethod.GET)
|
public @ResponseBody Result publishExerciseLib(String groupIds) {
|
if (StringUtils.isEmpty(groupIds)) {
|
return new Result(false, "参数错误");
|
}
|
return this.exerciseGroupService.doPublishExerciseLib(groupIds.split(","));
|
}
|
|
/**
|
* 撤回题库
|
*
|
* @param exerciseIds
|
* @return
|
*/
|
@RequestMapping(value = "/exerciselib/revoke", method = RequestMethod.GET)
|
public @ResponseBody Result revokeExerciseLib(String groupIds) {
|
if (StringUtils.isEmpty(groupIds)) {
|
return new Result(false, "参数错误");
|
}
|
return this.exerciseGroupService.doRevokeExerciseLib(groupIds.split(","));
|
}
|
|
/**
|
* 题目统计
|
* @param examPaperIds
|
* @return
|
*/
|
@RequestMapping(value = "/item/statistics", method = RequestMethod.GET)
|
public @ResponseBody Result statisticsItem (String groupIds) {
|
if (StringUtils.isEmpty(groupIds)) {
|
return new Result(false, "参数错误");
|
}
|
|
List<ExerciseGroup> lstGroupStatistics = this.exerciseGroupService.queryExerciseGroupItemsStatistic(groupIds.split(","));
|
|
return new Result(true, "success",
|
CollectionUtils.newObjectMap("itemStatistics",
|
QBeanUtils.listBean2ListMap(lstGroupStatistics,CollectionUtils.newStringMap(
|
"groupId", "groupId", "name", "groupName","singleSelectCount", "singleSelectCount","multiSelectCount", "multiSelectCount", "judgeCount", "judgeCount", "questionCount", "questionCount", "fillBlanksCount", "fillBlanksCount"
|
))
|
));
|
}
|
|
}
|