派生自 projectDept/qhighschool

EricsHu
2023-11-26 bf13676673e9f0f090a68bd8cfbaefbf0d696d32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.qxueyou.scc.exercise.action;
 
import java.util.List;
import java.util.Map;
 
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
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.base.dao.CommonDAO;
import com.qxueyou.scc.base.model.Pager;
import com.qxueyou.scc.base.model.Result;
import com.qxueyou.scc.base.service.ICommonService;
import com.qxueyou.scc.base.util.CollectionUtils;
import com.qxueyou.scc.base.util.QBeanUtils;
import com.qxueyou.scc.exercise.model.ExerciseCompleteInfo;
import com.qxueyou.scc.exercise.model.ExerciseInfo;
import com.qxueyou.scc.exercise.service.IExerciseCompleteService;
 
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
 
/**
 *作业完成情况
 * 
 * @author kevin
 * @history 2018-03-11 create kevin
 * 
 */
@Api(tags="作业完成情况管理接口")
@Controller
@RequestMapping(value = "/exercise/complete")
public class ExerciseCompleteController {
    //分页查询中,默认记录条数和页数
    private static final int DEFAULT_PAGE_SIZE=10;
    private static final int DEFAULT_PAGE_NUM=1;
    
    @Autowired
    private CommonDAO commonDAO;
 
    @Autowired
    @Qualifier("commonAppService")
    ICommonService commonService;
    
    @Autowired
    IExerciseCompleteService exerciseCompleteService;
    
    
    /**
     * 作业完成情况列表
     * */
    @ApiOperation(value = "作业完成情况列表", notes = "")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "keyword", value = "学生名称", required = false, paramType="query", dataType = "String"),
        @ApiImplicitParam(name = "exerciseInfoId", value = "作业id", required = true, paramType="query", dataType = "String"),
        @ApiImplicitParam(name = "status", value = "状态(0未提交,1待批阅,2已批阅,3需重写)", required = false, paramType="query", dataType = "Short"),
    })
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public @ResponseBody Result list(String keyword,String exerciseInfoId,Short status,Integer pageSize,Integer pageNum){
        pageSize = pageSize != null && pageSize > 0 ? pageSize : DEFAULT_PAGE_SIZE;
        pageNum = pageNum != null && pageNum > 0 ? pageNum : DEFAULT_PAGE_NUM;
        
        //读取作业信息
        ExerciseInfo exerciseInfo =  commonService.read(ExerciseInfo.class, exerciseInfoId);
        
        //总考试数量
        int totalCount = exerciseCompleteService.listCount(keyword == null ? "" : keyword.trim(),exerciseInfoId,status);
        Pager pager = new Pager(pageSize,pageNum);
        pager.setTotalCount(totalCount);
        
        List<ExerciseCompleteInfo> list = exerciseCompleteService.list(keyword == null ? "" : keyword.trim(),exerciseInfoId,status,pageSize,pageNum);
        
        List<Map<String, Object>> listResult =QBeanUtils.listBean2ListMap(list,
                CollectionUtils.newStringMap("exerciseCompleteId", "exerciseCompleteId", "exerciseInfoId", "exerciseInfoId", "className", "className",
                                             "studentNo","studentNo","studentUserName", "studentUserName", "submitTime", "submitTime",
                                             "completeStatus","completeStatus","studentScore","studentScore"));
        
        return new Result(true,"",CollectionUtils.newObjectMap("exerciseInfoId",exerciseInfoId,"exerciseName",exerciseInfo.getName(),"list",listResult,"pager", pager));
    }
    
    /**
     * 根据不同的作业类型,返回作业完成情况及审批详情
     * @param exerciseCompleteId
     * @return
     */
    @ApiOperation(value = "详情页面数据", notes = "")
    @ApiImplicitParams({@ApiImplicitParam(name = "exerciseCompleteId", value = "作业完成情况id", required = true, paramType="query", dataType = "String")})
    @RequestMapping(value = "/detail", method = RequestMethod.GET)
    public @ResponseBody Result detail(String exerciseCompleteId) {
        return new Result(true,"",CollectionUtils.newObjectMap("detail",exerciseCompleteService.queryExerciseCompleteDetail(exerciseCompleteId)));
    }
    
    /**
     * 批阅
     * @param exerciseCompleteInfo
     * @return
     */
    @RequestMapping(value = "/save", method = RequestMethod.POST)
    public @ResponseBody Result save(@RequestBody ExerciseCompleteInfo exerciseCompleteInfo) {
        if(StringUtils.isEmpty(exerciseCompleteInfo.getExerciseCompleteId())){
            return new Result(true,"",CollectionUtils.newObjectMap("exerciseCompleteId",exerciseCompleteService.addExerciseComplete(exerciseCompleteInfo)));
        }else{
            return exerciseCompleteService.updateExerciseComplete(exerciseCompleteInfo);
        }
    }    
    
    /**
     * 批阅
     * @param examInfo
     * @return
     */
    @ApiOperation(value = "批阅", notes = "")
    @RequestMapping(value = "/check", method = RequestMethod.POST)
    public @ResponseBody Result checkExerciseComplateInfo(@RequestBody ExerciseCompleteInfo exerciseCompleteInfo) {
        return  exerciseCompleteService.updateExerciseComplete(exerciseCompleteInfo);
    }
    
    /**
     * 批阅下一个
     * @param examInfo
     * @return
     */
    @ApiOperation(value = "批阅下一个", notes = "")
    @ApiImplicitParams({@ApiImplicitParam(name = "exerciseInfoId", value = "作业id", required = true, paramType="query", dataType = "String")})
    @RequestMapping(value = "/checknext", method = RequestMethod.GET)
    public @ResponseBody Result checkExerciseComplateInfo(String exerciseInfoId) {
        String hql = "from ExerciseCompleteInfo where exerciseInfoId=? and completeStatus=? and deleteFlag is false order by studentNo asc";
        ExerciseCompleteInfo  lastCompleteInfo = this.commonDAO.findUnique(hql, CollectionUtils.newList(exerciseInfoId,ExerciseCompleteInfo.STATUS_COMMIT), ExerciseCompleteInfo.class);
        if(lastCompleteInfo!=null){
            return new Result(true,"",CollectionUtils.newObjectMap("detail",exerciseCompleteService.queryExerciseCompleteDetail(lastCompleteInfo.getExerciseCompleteId())));
        }else{
            return new Result(false,"已经没有待批阅的作业!");
        }
    }
 
}