| 
                         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;  
 - } 
 
  
这样后端的工作就全部完成了,接下来就是前端怎么给后端提供这样的数据结构了。 
前端实现数据结构 
                        (编辑:我爱故事小小网_铜陵站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |