0
点赞
收藏
分享

微信扫一扫

基于java的在线问卷调查系统——文档

 研究内容

本文对在线问卷调查系统的设计与实现分成六个章节进行描述。

第1章:研究在线问卷调查系统的背景,以及开发在线问卷调查系统的意义。

第2章:对开发在线问卷调查系统的环境还有技术进行说明。

第3章:分析在线问卷调查系统的可行性,性能,流程以及功能。

第4章:设计在线问卷调查系统的功能结构,设计数据库E-R图以及对数据表的存储结构进行设计。

第5章:实现在线问卷调查系统的功能并进行功能界面展示。

第6章:对系统测试进行阐述,以及对本系统部分功能进行检测。

1 问卷管理

图5.1 即为编码实现的问卷管理界面,管理员在该界面中可以对已有问卷进行启用或禁用,可以新增问卷,编辑更改已有问卷的资料,包括问卷名称,结束语等信息,可以删除需要删除的问卷,可以根据问卷名称,问卷的状态来获取需要的问卷信息。

核心代码:


   /**

   * 后端修改

   */

   @RequestMapping("/update")

   public R update(@RequestBody ExampaperEntity exampaper, HttpServletRequest request){

       logger.debug("update方法:,,Controller:{},,exampaper:{}",this.getClass().getName(),exampaper.toString());


       String role = String.valueOf(request.getSession().getAttribute("role"));

       if(StringUtil.isEmpty(role))

           return R.error(511,"权限为空");

       //根据字段查询是否有相同数据

       Wrapper<ExampaperEntity> queryWrapper = new EntityWrapper<ExampaperEntity>()

           .notIn("id",exampaper.getId())

           .andNew()

           .eq("exampaper_name", exampaper.getExampaperName())

           .eq("exampaper_date", exampaper.getExampaperDate())

           .eq("exampaper_types", exampaper.getExampaperTypes())

           ;


       logger.info("sql语句:"+queryWrapper.getSqlSegment());

       ExampaperEntity exampaperEntity = exampaperService.selectOne(queryWrapper);

       if(exampaperEntity==null){

           //  String role = String.valueOf(request.getSession().getAttribute("role"));

           //  if("".equals(role)){

           //      exampaper.set

           //  }

           exampaperService.updateById(exampaper);//根据id更新

           return R.ok();

       }else {

           return R.error(511,"表中有相同数据");

       }

   }


   /**

   * 删除

   */

   @RequestMapping("/delete")

   public R delete(@RequestBody Integer[] ids){

       logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());

       exampaperService.deleteBatchIds(Arrays.asList(ids));

       return R.ok();

   }

2 问卷调查管理

图5.2 即为编码实现的问卷调查管理界面,管理员在该界面中对用户提交的问卷调查信息进行查看,管理员可以直接查看每条问卷调查的调查详情信息,同时可以删除问卷调查信息。

核心代码:

/**

    * 批量上传

    */

   @RequestMapping("/batchInsert")

   public R save( String fileName){

       logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);

       try {

           List<ExampaperEntity> exampaperList = new ArrayList<>();//上传的东西

           Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段

           Date date = new Date();

           int lastIndexOf = fileName.lastIndexOf(".");

           if(lastIndexOf == -1){

               return R.error(511,"该文件没有后缀");

           }else{

               String suffix = fileName.substring(lastIndexOf);

               if(!".xls".equals(suffix)){

                   return R.error(511,"只支持后缀为xls的excel文件");

               }else{

                   URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径

                   File file = new File(resource.getFile());

                   if(!file.exists()){

                       return R.error(511,"找不到上传文件,请联系管理员");

                   }else{

                       List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件

                       dataList.remove(0);//删除第一行,因为第一行是提示

                       for(List<String> data:dataList){

                           //循环

                           ExampaperEntity exampaperEntity = new ExampaperEntity();

//                            exampaperEntity.setExampaperName(data.get(0));                    //问卷名称 要改的

//                            exampaperEntity.setExampaperDate(Integer.valueOf(data.get(0)));   //时长(分钟) 要改的

//                            exampaperEntity.setExampaperTypes(Integer.valueOf(data.get(0)));   //问卷状态 要改的

//                            exampaperEntity.setCreateTime(date);//时间

                           exampaperList.add(exampaperEntity);



                           //把要查询是否重复的字段放入map中

                       }


                       //查询是否重复

                       exampaperService.insertBatch(exampaperList);

                       return R.ok();

                   }

               }

           }

       }catch (Exception e){

           return R.error(511,"批量插入数据异常,请联系管理员");

       }

   }

/**

   * 前端列表

   */

   @IgnoreAuth

   @RequestMapping("/list")

   public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){

       logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));


       // 没有指定排序字段就默认id倒序

       if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){

           params.put("orderBy","id");

       }

       PageUtils page = exampaperService.queryPage(params);


       //字典表数据转换

       List<ExampaperView> list =(List<ExampaperView>)page.getList();

       for(ExampaperView c:list)

           dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段

       return R.ok().put("data", page);

   }


   /**

   * 前端详情

   */

   @RequestMapping("/detail/{id}")

   public R detail(@PathVariable("id") Long id, HttpServletRequest request){

       logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);

       ExampaperEntity exampaper = exampaperService.selectById(id);

           if(exampaper !=null){

               //entity转view

               ExampaperView view = new ExampaperView();

               BeanUtils.copyProperties( exampaper , view );//把实体数据重构到view中


               //修改对应字典表字段

               dictionaryService.dictionaryConvert(view, request);

               return R.ok().put("data", view);

           }else {

               return R.error(511,"查不到数据");

           }

   }

基于java的在线问卷调查系统——文档_数据库

基于java的在线问卷调查系统——文档_源码_02

基于java的在线问卷调查系统——文档_程序设计_03

举报

相关推荐

0 条评论