java毕业设计基于springboot网上问卷调查系统-编号:project25765

前言

随着互联网的快速发展,人们对于在线服务的需求越来越高,这促使了各种在线调查系统的蓬勃发展。其中,在线问卷调查系统因其操作简便、数据统计快速、受访者覆盖范围广等特点,逐渐成为一种主流的调查方式。传统的问卷调查方式由于时间和地点的限制,难以收集到足够的数据,而在线问卷调查系统则可以随时随地进行调查,大大提高了数据收集的效率。

一、项目介绍

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven

二、功能介绍

一、系统背景与意义
随着互联网的快速发展,人们对于在线服务的需求越来越高,这促使了各种在线调查系统的蓬勃发展。其中,在线问卷调查系统因其操作简便、数据统计快速、受访者覆盖范围广等特点,逐渐成为一种主流的调查方式。传统的问卷调查方式由于时间和地点的限制,难以收集到足够的数据,而在线问卷调查系统则可以随时随地进行调查,大大提高了数据收集的效率。
二、系统架构与技术栈
1.
后端架构:
2.
1.开发语言:Java
2.框架:Spring Boot
1.Spring Boot简化了Spring应用的初始搭建以及开发过程,通过“约定优于配置”的原则,提供了一种快速启动和运行Spring应用程序的方法。
2.无需大量的XML配置,便可以快速启动内嵌的Tomcat、Jetty或Undertow服务器,并且能够自动配置Spring以及第三方库。
3.持久层框架:MyBatis或MyBatis Plus
1.MyBatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
2.MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,简化开发、提高效率。
4.数据库:MySQL等关系型数据库
1.用于存储系统数据,如问卷信息、用户信息、提交记录等。
5.构建工具:Maven或Gradle
1.用于管理项目的依赖、构建和打包。
3.
前端架构:
4.
1.技术栈:HTML、CSS、JavaScript、Vue.js等
1.HTML用于构建页面的基本结构。
2.CSS用于美化页面和布局。
3.JavaScript用于实现页面的交互功能。
4.Vue.js是一个用于构建用户界面的渐进式JavaScript框架,可以方便地实现前后端数据的交互和页面的动态渲染。
三、系统功能
1.
用户注册与登录:
2.
2.系统支持用户的注册和登录功能,用户可以通过填写相关信息完成注册,并通过登录功能进入系统。
3.
问卷管理:
4.
3.用户(包括普通用户和管理员)可以创建、编辑和删除问卷。
4.支持多种类型的题目,如选择题、填空题、判断题等。
5.可以设置问卷的发布时间、截止时间等属性。
5.
问卷调查:
6.
6.用户可以参与已经发布的问卷调查,填写问卷并提交。
7.系统支持多种填写方式,如单选、多选、填空等。
7.
数据统计与分析:
8.
1.系统可以对提交的问卷数据进行统计和分析,生成各种图表和报告。
2.支持按题目、按用户、按时间等多种维度的统计和分析。
9.
用户管理:
10.
1.管理员可以管理系统的用户信息,包括查看用户详情、编辑用户信息、删除用户等。
11.
权限管理:
12.
1.系统支持细粒度的权限管理,可以为不同的用户角色分配不同的权限。
2.如管理员可以管理所有问卷和用户信息,而普通用户只能参与问卷调查和查看自己的问卷数据。
四、系统优势与特点
1.界面友好:系统界面简洁明了,易于操作。
2.功能丰富:系统提供了完整的问卷调查功能,包括问卷创建、编辑、发布、填写、提交和数据统计等。
3.数据安全:系统采用关系型数据库存储数据,保证了数据的完整性和一致性。同时,系统还提供了权限管理功能,确保了数据的安全性。
4.可扩展性:系统采用前后端分离架构,方便后续的功能扩展和升级。同时,Spring Boot框架也提供了良好的扩展性支持。
综上所述,Spring Boot网上问卷调查系统是一个功能强大、易于使用的在线问卷调查平台。它借助Spring Boot框架和前端技术的优势,实现了高效的问卷调查和数据统计功能。无论是个人还是企业,都可以利用该系统来进行问卷调查和数据收集工作。

三、核心代码

部分代码:


package com.example.controller;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {

    @Resource
    private CaiwuService caiwuService;

    @PostMapping
    public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
        caiwuService.add(caiwu);
           return Result.success(caiwu);
    }
	
	

    @PostMapping("/deleteList")
    public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
        caiwuService.deleteList(caiwu.getList());
        return Result.success();
    }

    @DeleteMapping("/{id}")
    public Result delete(@PathVariable Long id) {
        caiwuService.delete(id);
        return Result.success();
    }

    @PutMapping
    public Result update(@RequestBody CaiwuVo caiwu) {
        caiwuService.update(caiwu);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result<Caiwu> detail(@PathVariable Integer id) {
        Caiwu caiwu = caiwuService.findById(id);
        return Result.success(caiwu);
    }

    @GetMapping
    public Result<List<Caiwu>> all() {
        return Result.success(caiwuService.list());
    }

    @PostMapping("/page")
    public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
        return Result.success(caiwuService.findPage(caiwuVo));
    }
	    @PostMapping("/login")
    public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
        if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
            throw new CustomException(ResultCode.PARAM_LOST_ERROR);
        }
        Caiwu login = caiwuService.login(caiwu);
//        if(!login.getStatus()){
//            return Result.error("1001","状态限制,无法登录系统");
//        }
        if(login != null) {
            HashMap hashMap = new HashMap();
            hashMap.put("user", login);
            Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
            String token = JwtUtil.creatToken(map);
            hashMap.put("token", token);
            return Result.success(hashMap);
        }else {
            return Result.error();
        }
    }
    @PutMapping("/updatePassword")
    public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
        Caiwu caiwu = caiwuService.findById(info.getId());
        String oldPassword = SecureUtil.md5(info.getMima());
        if (!oldPassword.equals(caiwu.getMima())) {
            return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
        }
        info.setMima(SecureUtil.md5(info.getNewPassword()));
        Caiwu caiwu1 = new Caiwu();
        BeanUtils.copyProperties(info, caiwu1);
        caiwuService.update(caiwu1);
        return Result.success();
    }
}

四、效果图

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值