dataId用于将这个问题同一个业务数据绑定,dataType用来标志这个业务数据的类型,这两个字段方便数据的扩展;dataTitle是业务数据的标题;options是这个问题的选项;analysis问题的解析,用于用户答题结束后的自查;right用来记录问题的正确与否。
新增问题
上层接口
提供新增问题的接口:
- @PostMapping("/saveOrUpdateQuestion")
- public JsonData saveOrUpdateQuestion(@RequestBody Question data) {
- questionService.saveOrUpdateQuestion(data);
- return JsonData.success();
- }
QuestionService:
- public void saveOrUpdateQuestion(Question data) {
- if (StringUtils.isEmpty(data.getId())) {// 新增
- writer.insert(manager.getExamDataBase(), ExamConstant.QUESTION_COLLECT, data);
- } else {//修改
- writer.updateDocument(data, ExamConstant.QUESTION_COLLECT);
- }
- }
DAO
Writer:
- public void insert(String dataBase, String collect, MongoBean data) {
- if (data.getId() == null) {
- data.setId(BsonTool.uuid());
- }
- MongoCollection<Document> collection = getCollection(dataBase, collect);
- collection.insertOne(Document.parse(JSONObject.toJSONString(data)));
- }
- public Document updateDocument(MongoBean data, String questionCollect) {
- Document filter = new Document();
- filter.put("id", data.getId());
- Document res = new Document();
- res.put("$set", BsonDocument.parse(JSONObject.toJSONString(data)));
- update(manager.getExamDataBase(), questionCollect, filter, res);
- return res;
- }
- public boolean update(String dataBase, String collect, Bson filter, Bson update) {
- MongoCollection<Document> collection = getCollection(dataBase, collect);
- UpdateResult ur = collection.updateOne(filter, update);
- return ur.getModifiedCount() > 0;
- }
这样后端的工作就全部完成了,接下来就是前端怎么给后端提供这样的数据结构了。
前端实现数据结构
(编辑:青岛站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|