目录

一.目标概述

二.功能代码

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;}

三.界面展示

四.总结

通过这最后一次项目的实施,我们完成了整个项目的功能,接下来便是测试和优化相关的功能了。

山东大学软件学院创新实训——飞讯(十三)相关推荐

  1. 山东大学软件学院创新实训——飞讯(四)

    目录 一.目标概述 二.腾讯云im第三方回调 二.回调分类 三.回调示例 1.请求url 2.请求包示例 3.应答包示例 四.回调的保存 1.分析 2.实体类 3.controller层 4.serv ...

  2. 山东大学软件学院创新实训——飞讯(一)

    目录 一.项目介绍 二.docker的安装 1.服务器的配置 2.安装需要的包 3.添加GPG密匙,并添加Docker-ce软件源 4.安装Docker-ce 5.测试运行 6.添加当前用户到 doc ...

  3. 山东大学软件学院创新实训——飞讯(六)

    目录 一.突如起来的变化及内部调整 二.uni-app的学习 三.uni-app的搭建 登录界面 (1)界面设计 (2)核心代码 注册界面 (1)界面设计 (2)核心代码 四.总结 一.突如起来的变化 ...

  4. 山东大学软件学院创新实训——飞讯(八)

    目录 一.目标概述 二.功能设计与实现 搜索好友 (1)界面设计 (2)功能实现 消息发送组件 (1)发送消息界面概览 (2)功能实现 三.总结 一.目标概述 经过前面对uniapp的学习和飞讯项目的 ...

  5. 山东大学软件学院创新实训——飞讯(十二)

    目录 一.目标概述 二.功能设计与实现 问卷首页 (1)界面设计 (2)功能实现 问卷详情页 (1)界面设计 (2)功能实现 问卷二维码 (1)界面设计 (2)功能实现 回答详情 (1)界面设计 (2 ...

  6. 山东大学软件学院创新实训——飞讯(二)

    目录 一.后端框架-springboot 二.springboot项目的创建 1.启动idea,依次选择File -->> New -->> project,弹出下框 ​编辑2 ...

  7. 山东大学软件学院创新实训——飞讯(十)

    目录 一.目标概述 二.功能设计与实现 1.配置配置文件 2.编写后端代码 3.前端代码 三.总结 一.目标概述 这一次项目实施的目的是实现图片的上传和url的生成,因此,主要是前端上传图片代码和后端 ...

  8. 山东大学软件学院创新实训——飞讯(十一)

    目录 一.目标概述 二.数据库设计 三.功能代码 1.工作日志的查询和展示 2.工作日志的添加 3.工作日志的修改 4.工作日志的删除 三.前后端联调后界面展示 四.总结 一.目标概述 本次项目实施的 ...

  9. 山东大学软件学院创新实训——飞讯(九)

    目录 一.内部又一次调整 二.目标概述 三.功能设计与实现 界面设计 功能实现 三.总结 一.内部又一次调整 今天,组内的又一名同学决定退群,此时,我们组内已经退了两名成员,因此,任务越来越紧迫,我们 ...

最新文章

  1. React实践debug:JSX输出的限制(存疑)
  2. MongoDb数据库面试整理
  3. 2018-2019-1 20165201 《信息安全系统设计基础》第9周学习总结
  4. 安装jupyter后,使用时显示找不到命令(command not found)
  5. Zend Studio 8.0.1 官方汉化包安装 解决文本中文乱码
  6. java有趣项目_有趣的java小项目------猜拳游戏
  7. Visual Studio:error MSB8020
  8. 华中地区高校第七届ACM程序设计大赛——之字形矩阵【2012年5月27日】
  9. 读书笔记:《一生的计划》
  10. Oracle插入时间
  11. informatica 常见问题及解决方案
  12. OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.
  13. Unity 两个UI(坐标)之间的连线(直线)。如连线题
  14. idea的阿里代码规范检查
  15. 用计算机信息术语感恩老师,感谢师恩、感恩老师的对联
  16. 不用任何软件!PDF转Word用微信这个功能,简单又方便!
  17. html5怎么给图片加边框,怎么给图片加边框 【解决模式】
  18. CSS3各个模块详解
  19. omf多路径 oracle_OMF下Restore Oracle Datafile的优先级问题
  20. asp.net 后台生成二维码及生成带logo的二维码

热门文章

  1. 【解决两个警告】Model.fit_generator` is deprecated and will be removed in a future version. Please use `Mode
  2. 招聘Android开发工程师(兼职)
  3. 三个表左连接的sql语句
  4. 线性代数之极大无关组的求法
  5. Strcpy函数和Strncpy函数
  6. python 是否可以一键修图_别再浪费时间修图了!一键出片它不香吗?
  7. 全球最强路由来袭, 华硕再发三款AX电竞新品
  8. 部分阉割版Win7无法正常使用TTS语音的解决办法
  9. 基于java的校园网站论坛设计与实现(含源文件)
  10. b550和x570有什么区别 哪个好