山东大学软件学院创新实训——飞讯(十三)
目录
一.目标概述
二.功能代码
1.问卷的创建
2.问题的回答
三.界面展示
四.总结
一.目标概述
这次项目完成的功能是问卷的创建和回答部分,我负责后端的编写,另外一位同学负责前端的编写,从而完成这最后一个功能
二.功能代码
1.问卷的创建
由于采用动态创建问卷的方式,因此我们采用json进行交互,可以动态添加不同类型的题目,后端采用fastjson进行解析,创建问卷代码如下:
@RequestMapping("/createQuestion")public JsonResult<Object> createQuestion(@RequestBody JSONObject questionPacket){//System.out.println(questionPacket);JSONObject packet = questionPacket.getJSONObject("questionPacket");int questionnaireId = Integer.parseInt(packet.getString("questionnaireId"));List<Object> questionList = packet.getJSONArray("questionList");int res = questionaireService.createQuestion(questionnaireId,questionList);/*System.out.println(questionnaireId);System.out.println(questionList);System.out.println(questionList.get(0));*/if (res == ResCondition.questionnare_success){JsonResult<Object> jsonResult = new JsonResult<Object>("200",(Object) questionList,"创建问卷内容成功");return jsonResult;}else {JsonResult<Object> jsonResult = new JsonResult<Object>("400",(Object) questionList,"创建问卷内容失败");return jsonResult;}}
@Overridepublic int createQuestion(int questionnaireId,List<Object> questionList) {for (Object o : questionList) {String jsonObject= JSON.toJSONString(o);//将json转成需要的对象Question question= JSONObject.parseObject(jsonObject,Question.class);question.setQuestionnaireId(questionnaireId);int i = questionaireMapper.createQuestion(question);if (i < 0){return ResCondition.questionnare_fail;}int questionId = question.getQuestionId();//System.out.println(questionId);if (question.getType().equals("Radio") || question.getType().equals("Checkbox")){List<Option> optionList = question.getOptionList();for (Option option : optionList) {System.out.println(option);if (option.getText() != null && !option.getText().equals("")){option.setQuestionnaireId(questionnaireId);option.setQuestionId(questionId);option.setOptionNum(option.getText());int j = questionaireMapper.createOption(option);if (j < 0){return ResCondition.questionnare_fail;}}}}}int k = questionaireMapper.updateState(questionnaireId,"Published");if (k < 0){return ResCondition.questionnare_fail;}return ResCondition.questionnare_success;}
2.问题的回答
问题的回答和创建问卷一致,采用json的方法进行数据的传送
@RequestMapping("/reply")public JsonResult<Object> reply(@RequestBody Map<Object,Object> map){//System.out.println(replyPacket);List<Question> replyPacket = (List<Question>) map.get("replyPacket");int questionnaireId = Integer.parseInt((String) map.get("questionnaireId"));System.out.println(replyPacket);//List<Object> answerList = replyPacket.getJSONArray("replyPacket");System.out.println(questionnaireId);int res = questionaireService.reply(questionnaireId,replyPacket);if (res == ResCondition.questionnare_success){JsonResult<Object> jsonResult = new JsonResult<Object>("200",(Object)replyPacket,"提交成功");return jsonResult;}else {JsonResult<Object> jsonResult = new JsonResult<Object>("400",(Object) replyPacket,"提交失败");return jsonResult;}//return null;}
@Overridepublic int reply(int questionnaireId,List<Question> questionList) {//System.out.println(questionList);int i = questionaireMapper.updateCount(questionnaireId);if (i < 0){System.out.println("fail1");return ResCondition.questionnare_fail;}List<Questionaire> questionaireList = questionaireMapper.findQuestionairename(questionnaireId);int count = questionaireList.get(0).getCount();for (Object o : questionList) {String jsonObject= JSON.toJSONString(o);//将json转成需要的对象Question question= JSONObject.parseObject(jsonObject,Question.class);//System.out.println(question);for (AnswerInfo answerInfo : question.getAnswerInfoList()) {answerInfo.setCount(count);answerInfo.setQuestionId(question.getQuestionId());answerInfo.setQuestionnaireId(question.getQuestionnaireId());System.out.println(answerInfo);int j = questionaireMapper.reply(answerInfo);System.out.println(j);if (j < 0){System.out.println("fail2");return ResCondition.questionnare_fail;}}}return ResCondition.questionnare_success;}
三.界面展示
四.总结
通过这最后一次项目的实施,我们完成了整个项目的功能,接下来便是测试和优化相关的功能了。
山东大学软件学院创新实训——飞讯(十三)相关推荐
- 山东大学软件学院创新实训——飞讯(四)
目录 一.目标概述 二.腾讯云im第三方回调 二.回调分类 三.回调示例 1.请求url 2.请求包示例 3.应答包示例 四.回调的保存 1.分析 2.实体类 3.controller层 4.serv ...
- 山东大学软件学院创新实训——飞讯(一)
目录 一.项目介绍 二.docker的安装 1.服务器的配置 2.安装需要的包 3.添加GPG密匙,并添加Docker-ce软件源 4.安装Docker-ce 5.测试运行 6.添加当前用户到 doc ...
- 山东大学软件学院创新实训——飞讯(六)
目录 一.突如起来的变化及内部调整 二.uni-app的学习 三.uni-app的搭建 登录界面 (1)界面设计 (2)核心代码 注册界面 (1)界面设计 (2)核心代码 四.总结 一.突如起来的变化 ...
- 山东大学软件学院创新实训——飞讯(八)
目录 一.目标概述 二.功能设计与实现 搜索好友 (1)界面设计 (2)功能实现 消息发送组件 (1)发送消息界面概览 (2)功能实现 三.总结 一.目标概述 经过前面对uniapp的学习和飞讯项目的 ...
- 山东大学软件学院创新实训——飞讯(十二)
目录 一.目标概述 二.功能设计与实现 问卷首页 (1)界面设计 (2)功能实现 问卷详情页 (1)界面设计 (2)功能实现 问卷二维码 (1)界面设计 (2)功能实现 回答详情 (1)界面设计 (2 ...
- 山东大学软件学院创新实训——飞讯(二)
目录 一.后端框架-springboot 二.springboot项目的创建 1.启动idea,依次选择File -->> New -->> project,弹出下框 编辑2 ...
- 山东大学软件学院创新实训——飞讯(十)
目录 一.目标概述 二.功能设计与实现 1.配置配置文件 2.编写后端代码 3.前端代码 三.总结 一.目标概述 这一次项目实施的目的是实现图片的上传和url的生成,因此,主要是前端上传图片代码和后端 ...
- 山东大学软件学院创新实训——飞讯(十一)
目录 一.目标概述 二.数据库设计 三.功能代码 1.工作日志的查询和展示 2.工作日志的添加 3.工作日志的修改 4.工作日志的删除 三.前后端联调后界面展示 四.总结 一.目标概述 本次项目实施的 ...
- 山东大学软件学院创新实训——飞讯(九)
目录 一.内部又一次调整 二.目标概述 三.功能设计与实现 界面设计 功能实现 三.总结 一.内部又一次调整 今天,组内的又一名同学决定退群,此时,我们组内已经退了两名成员,因此,任务越来越紧迫,我们 ...
最新文章
- React实践debug:JSX输出的限制(存疑)
- MongoDb数据库面试整理
- 2018-2019-1 20165201 《信息安全系统设计基础》第9周学习总结
- 安装jupyter后,使用时显示找不到命令(command not found)
- Zend Studio 8.0.1 官方汉化包安装 解决文本中文乱码
- java有趣项目_有趣的java小项目------猜拳游戏
- Visual Studio:error MSB8020
- 华中地区高校第七届ACM程序设计大赛——之字形矩阵【2012年5月27日】
- 读书笔记:《一生的计划》
- Oracle插入时间
- informatica 常见问题及解决方案
- OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.
- Unity 两个UI(坐标)之间的连线(直线)。如连线题
- idea的阿里代码规范检查
- 用计算机信息术语感恩老师,感谢师恩、感恩老师的对联
- 不用任何软件!PDF转Word用微信这个功能,简单又方便!
- html5怎么给图片加边框,怎么给图片加边框
【解决模式】
- CSS3各个模块详解
- omf多路径 oracle_OMF下Restore Oracle Datafile的优先级问题
- asp.net 后台生成二维码及生成带logo的二维码
热门文章
- 【解决两个警告】Model.fit_generator` is deprecated and will be removed in a future version. Please use `Mode
- 招聘Android开发工程师(兼职)
- 三个表左连接的sql语句
- 线性代数之极大无关组的求法
- Strcpy函数和Strncpy函数
- python 是否可以一键修图_别再浪费时间修图了!一键出片它不香吗?
- 全球最强路由来袭, 华硕再发三款AX电竞新品
- 部分阉割版Win7无法正常使用TTS语音的解决办法
- 基于java的校园网站论坛设计与实现(含源文件)
- b550和x570有什么区别 哪个好