|
@@ -1,12 +1,22 @@
|
|
|
package cn.com.qmth.scancentral.controller.admin;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
-import javax.annotation.Resource;
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-
|
|
|
+import cn.com.qmth.scancentral.controller.BaseController;
|
|
|
+import cn.com.qmth.scancentral.enums.LockType;
|
|
|
+import cn.com.qmth.scancentral.service.AdapteFileService;
|
|
|
+import cn.com.qmth.scancentral.service.AnswerCardService;
|
|
|
+import cn.com.qmth.scancentral.service.ExamService;
|
|
|
+import cn.com.qmth.scancentral.vo.ResultVo;
|
|
|
+import cn.com.qmth.scancentral.vo.card.CardEdit;
|
|
|
+import cn.com.qmth.scancentral.vo.card.CardInfo;
|
|
|
+import cn.com.qmth.scancentral.vo.card.CardQuery;
|
|
|
+import com.qmth.boot.api.annotation.Aac;
|
|
|
+import com.qmth.boot.api.constant.ApiConstant;
|
|
|
+import com.qmth.boot.core.collection.PageResult;
|
|
|
+import com.qmth.boot.core.concurrent.service.ConcurrentService;
|
|
|
+import com.qmth.boot.core.exception.ParameterException;
|
|
|
+import com.qmth.boot.core.exception.ReentrantException;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -16,25 +26,10 @@ import org.springframework.web.bind.annotation.RequestParam;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
-import com.qmth.boot.api.annotation.Aac;
|
|
|
-import com.qmth.boot.api.constant.ApiConstant;
|
|
|
-import com.qmth.boot.api.utils.RequestUtil;
|
|
|
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
|
|
|
-import com.qmth.boot.core.exception.ReentrantException;
|
|
|
-
|
|
|
-import cn.com.qmth.scancentral.controller.BaseController;
|
|
|
-import cn.com.qmth.scancentral.entity.AnswerCardEntity;
|
|
|
-import cn.com.qmth.scancentral.enums.LockType;
|
|
|
-import cn.com.qmth.scancentral.service.AdapteFileService;
|
|
|
-import cn.com.qmth.scancentral.service.AnswerCardService;
|
|
|
-import cn.com.qmth.scancentral.service.ExamService;
|
|
|
-import cn.com.qmth.scancentral.vo.UriVo;
|
|
|
-import io.swagger.annotations.Api;
|
|
|
-import io.swagger.annotations.ApiOperation;
|
|
|
-import net.sf.json.JSONObject;
|
|
|
+import javax.annotation.Resource;
|
|
|
|
|
|
@RestController
|
|
|
-@Api(tags = "卡格式接口")
|
|
|
+@Api(tags = "卡格式相关接口")
|
|
|
@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/admin/card")
|
|
|
@Aac(strict = false, auth = true)
|
|
|
public class CardController extends BaseController {
|
|
@@ -53,34 +48,19 @@ public class CardController extends BaseController {
|
|
|
@Autowired
|
|
|
private ExamService examService;
|
|
|
|
|
|
- @ApiOperation(value = "卡格式详情")
|
|
|
- @RequestMapping(value = "/info", method = RequestMethod.POST)
|
|
|
- public Map<String, Object> info(@RequestParam Long examId) {
|
|
|
- Map<String, Object> status = new HashMap<String, Object>();
|
|
|
- status.put("synching", concurrentService.isLocked(LockType.CARD_SYNC + "-" + examId));
|
|
|
- status.put("updateTime", examService.getById(examId).getCardSyncTime());
|
|
|
- Map<String, Object> result = new HashMap<String, Object>();
|
|
|
- result.put("status", status);
|
|
|
- result.put("answer", answerCardService.listByExamId(examId));
|
|
|
- result.put("package", new ArrayList<>());
|
|
|
- return result;
|
|
|
+ @ApiOperation(value = "查询卡格式列表(分页)")
|
|
|
+ @RequestMapping(value = "/list", method = RequestMethod.POST)
|
|
|
+ public PageResult<CardInfo> list(CardQuery query) {
|
|
|
+ return answerCardService.pageQuery(query);
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value = "创建/修改题卡卡格式")
|
|
|
- @RequestMapping(value = "/answer/save", method = RequestMethod.POST)
|
|
|
- public JSONObject answerSave(@RequestParam Long examId, @RequestParam(required = false) Integer number,
|
|
|
- @RequestParam(required = false) String subjectCode, @RequestParam(required = false) String parameter,
|
|
|
- @RequestParam(required = false) String remark, @RequestParam Integer paperCount,
|
|
|
- @RequestParam Boolean singlePage, @RequestParam String md5, @RequestParam(required = false) Integer dpi,
|
|
|
- @RequestParam MultipartFile file) {
|
|
|
+ @ApiOperation(value = "删除卡格式")
|
|
|
+ @RequestMapping(value = "/delete", method = RequestMethod.POST)
|
|
|
+ public ResultVo answerDelete(@RequestParam Long examId, @RequestParam Integer number) {
|
|
|
if (concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).tryLock()) {
|
|
|
try {
|
|
|
- JSONObject result = new JSONObject();
|
|
|
- AnswerCardEntity card = answerCardService.save(getAccessUser(), examId, number, subjectCode, parameter,
|
|
|
- remark, paperCount, singlePage, md5, dpi, file);
|
|
|
- result.accumulate("number", card.getNumber());
|
|
|
- result.accumulate("updateTime", System.currentTimeMillis());
|
|
|
- return result;
|
|
|
+ answerCardService.delete(getAccessUser(), examId, number);
|
|
|
+ return new ResultVo(System.currentTimeMillis());
|
|
|
} finally {
|
|
|
concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).unlock();
|
|
|
}
|
|
@@ -89,36 +69,50 @@ public class CardController extends BaseController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value = "删除答题卡卡格式")
|
|
|
- @RequestMapping(value = "/answer/delete", method = RequestMethod.POST)
|
|
|
- public JSONObject answerDelete(@RequestParam Long examId, @RequestParam Integer number) {
|
|
|
- if (concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).tryLock()) {
|
|
|
+ @ApiOperation(value = "导入卡格式")
|
|
|
+ @RequestMapping(value = "/import", method = RequestMethod.POST)
|
|
|
+ public ResultVo cardImport(CardEdit info, @RequestParam MultipartFile file) {
|
|
|
+ if (info.getExamId() == null) {
|
|
|
+ throw new ParameterException("考试ID不能为空");
|
|
|
+ }
|
|
|
+ if (concurrentService.getLock(LockType.CARD_SYNC + "-" + info.getExamId()).tryLock()) {
|
|
|
try {
|
|
|
- answerCardService.delete(getAccessUser(), examId, number);
|
|
|
- JSONObject result = new JSONObject();
|
|
|
- result.accumulate("number", number);
|
|
|
- result.accumulate("updateTime", System.currentTimeMillis());
|
|
|
- return result;
|
|
|
+ answerCardService.saveCard(info, file);
|
|
|
+ return new ResultVo(System.currentTimeMillis());
|
|
|
} finally {
|
|
|
- concurrentService.getLock(LockType.CARD_SYNC + "-" + examId).unlock();
|
|
|
+ concurrentService.getLock(LockType.CARD_SYNC + "-" + info.getExamId()).unlock();
|
|
|
}
|
|
|
} else {
|
|
|
throw new ReentrantException("正在同步卡格式,请稍后再试");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @ApiOperation(value = "答题卡适配卡格式上传")
|
|
|
- @RequestMapping(value = "/answer/adapte/upload", method = RequestMethod.POST)
|
|
|
- public UriVo adapteUpload(HttpServletRequest request, @RequestParam Long examId, @RequestParam Integer cardNumber,
|
|
|
- @RequestParam MultipartFile file, @RequestParam String md5, @RequestParam Integer dpi) {
|
|
|
- return adapteFileService.save(RequestUtil.getIpAddress(request), getAccessUser().getRole(), examId, cardNumber,
|
|
|
- md5, dpi, file);
|
|
|
- }
|
|
|
+ // @ApiOperation(value = "答题卡适配卡格式上传")
|
|
|
+ // @RequestMapping(value = "/answer/adapte/upload", method = RequestMethod.POST)
|
|
|
+ // public UriVo adapteUpload(HttpServletRequest request, @RequestParam Long examId, @RequestParam Integer cardNumber,
|
|
|
+ // @RequestParam MultipartFile file, @RequestParam String md5, @RequestParam Integer dpi) {
|
|
|
+ // return adapteFileService.save(RequestUtil.getIpAddress(request), getAccessUser().getRole(), examId, cardNumber,
|
|
|
+ // md5, dpi, file);
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // @ApiOperation(value = "卡格式详情")
|
|
|
+ // @RequestMapping(value = "/info", method = RequestMethod.POST)
|
|
|
+ // public Map<String, Object> info(@RequestParam Long examId) {
|
|
|
+ // Map<String, Object> status = new HashMap<String, Object>();
|
|
|
+ // status.put("synching", concurrentService.isLocked(LockType.CARD_SYNC + "-" + examId));
|
|
|
+ // status.put("updateTime", examService.getById(examId).getCardSyncTime());
|
|
|
+ // Map<String, Object> result = new HashMap<String, Object>();
|
|
|
+ // result.put("status", status);
|
|
|
+ // result.put("answer", answerCardService.listByExamId(examId));
|
|
|
+ // result.put("package", new ArrayList<>());
|
|
|
+ // return result;
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // @ApiOperation(value = "创建/修改签到表卡格式")
|
|
|
+ // @RequestMapping(value = "/package/save", method = RequestMethod.POST)
|
|
|
+ // public JSONObject packageSave() {
|
|
|
+ // JSONObject result = new JSONObject();
|
|
|
+ // return result;
|
|
|
+ // }
|
|
|
|
|
|
- @ApiOperation(value = "创建/修改签到表卡格式")
|
|
|
- @RequestMapping(value = "/package/save", method = RequestMethod.POST)
|
|
|
- public JSONObject packageSave() {
|
|
|
- JSONObject result = new JSONObject();
|
|
|
- return result;
|
|
|
- }
|
|
|
}
|