派生自 projectDept/qhighschool

111
EricsHu
2023-05-24 58a1078809f129905ae30e676c8705e2a083e2ec
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
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);
    }
 
    /**
     * 获取范围选择
     * <p>
     * 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------------------------------------------------------------
}