ssm+vue毕业论文管理系统源码和论文

ssm+vue毕业论文管理系统053

 开发工具:idea 
 数据库mysql5.7+
 数据库链接工具:navcat,小海豚等
  技术:ssm

   

高校规模越来越大,学生越来越多,每年都有大批的大学生完成学业。毕业之前,各大高校设立毕业论文来对学生进行考核,传统毕业论文管理方式效率低下,为了提高效率,特开发了本毕业论文管理系统。

本毕业论文管理系统以实际运用为开发背景,基于SSM框架,采用JSP技术、JAVA编程语言,MYSQL数据库设计开发,充分保证系统的稳定性。系统满足了不同权限用户的功能需求,包括管理员、学生和导师,系统的应用可有效提高毕业论文管理效率,本系统具有界面清晰、操作简单,功能齐全的特点,使得毕业论文管理工作系统化、规范化、高效化。

在设计本系统时对系统进行了充分的分析,包括需求分析,性能分析,功能分析,从开发背景、开发环境、目标、流程、数据库、系统维护等方面都进行了总体的规划与设计。

关键词:毕业论文管理,JSP技术,SSM框架,MYSQL数据库

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.DaoshiEntity;
import com.entity.view.DaoshiView;import com.service.DaoshiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 导师* 后端接口* @author * @email * @date 2021-03-19 16:32:30*/
@RestController
@RequestMapping("/daoshi")
public class DaoshiController {@Autowiredprivate DaoshiService daoshiService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {DaoshiEntity user = daoshiService.selectOne(new EntityWrapper<DaoshiEntity>().eq("daoshizhanghao", username));if(user==null || !user.getMima().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(), username,"daoshi",  "导师" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody DaoshiEntity daoshi){//ValidatorUtils.validateEntity(daoshi);DaoshiEntity user = daoshiService.selectOne(new EntityWrapper<DaoshiEntity>().eq("daoshizhanghao", daoshi.getDaoshizhanghao()));if(user!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();daoshi.setId(uId);daoshiService.insert(daoshi);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");DaoshiEntity user = daoshiService.selectById(id);return R.ok().put("data", user);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){DaoshiEntity user = daoshiService.selectOne(new EntityWrapper<DaoshiEntity>().eq("daoshizhanghao", username));if(user==null) {return R.error("账号不存在");}user.setMima("123456");daoshiService.updateById(user);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,DaoshiEntity daoshi, HttpServletRequest request){EntityWrapper<DaoshiEntity> ew = new EntityWrapper<DaoshiEntity>();PageUtils page = daoshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, daoshi), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,DaoshiEntity daoshi, HttpServletRequest request){EntityWrapper<DaoshiEntity> ew = new EntityWrapper<DaoshiEntity>();PageUtils page = daoshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, daoshi), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( DaoshiEntity daoshi){EntityWrapper<DaoshiEntity> ew = new EntityWrapper<DaoshiEntity>();ew.allEq(MPUtil.allEQMapPre( daoshi, "daoshi")); return R.ok().put("data", daoshiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(DaoshiEntity daoshi){EntityWrapper< DaoshiEntity> ew = new EntityWrapper< DaoshiEntity>();ew.allEq(MPUtil.allEQMapPre( daoshi, "daoshi")); DaoshiView daoshiView =  daoshiService.selectView(ew);return R.ok("查询导师成功").put("data", daoshiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){DaoshiEntity daoshi = daoshiService.selectById(id);return R.ok().put("data", daoshi);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){DaoshiEntity daoshi = daoshiService.selectById(id);return R.ok().put("data", daoshi);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody DaoshiEntity daoshi, HttpServletRequest request){daoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(daoshi);DaoshiEntity user = daoshiService.selectOne(new EntityWrapper<DaoshiEntity>().eq("daoshizhanghao", daoshi.getDaoshizhanghao()));if(user!=null) {return R.error("用户已存在");}daoshi.setId(new Date().getTime());daoshiService.insert(daoshi);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody DaoshiEntity daoshi, HttpServletRequest request){daoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(daoshi);DaoshiEntity user = daoshiService.selectOne(new EntityWrapper<DaoshiEntity>().eq("daoshizhanghao", daoshi.getDaoshizhanghao()));if(user!=null) {return R.error("用户已存在");}daoshi.setId(new Date().getTime());daoshiService.insert(daoshi);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody DaoshiEntity daoshi, HttpServletRequest request){//ValidatorUtils.validateEntity(daoshi);daoshiService.updateById(daoshi);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){daoshiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<DaoshiEntity> wrapper = new EntityWrapper<DaoshiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = daoshiService.selectCount(wrapper);return R.ok().put("count", count);}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/89640.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小企业需不需要内部知识库?为什么都在倡导内部知识沉淀?

有多种方法可以提高员工敬业度和员工工作效率&#xff0c;从给予信任到创造积极的工作环境。但一还有一个不为人知但十分有效的方式——为员工创建良好的内部知识库。所以小企业同样需要内部知识库&#xff0c;以下是为什么倡导内部知识沉淀的理由&#xff1a; 知识积累与传承…

Unity插件---Dotween

1.什么是DOTween DoTween 是由 Demigiant 开发的&#xff0c;被广泛应用于 Unity 游戏开发中。它是一个流行的动画插件&#xff0c;被许多开发者用于创建流畅、高效的动画效果&#xff0c;提升游戏体验。 2.DOTween的初始配置 ①set up 首先找到DOTween Unity Panel 的面板 点…

算法:模拟思想算法

文章目录 实现原理算法思路典型例题替换所有问号提莫攻击N字型变换外观序列 总结 本篇总结的是模拟算法 实现原理 模拟算法的实现原理很简单&#xff0c;就是依据题意实现题意的目的即可&#xff0c;考察的是你能不能实现题目题意的代码能力 算法思路 没有很明显的算法思路…

MySQL—MySQL主从如何保证强一致性

一、前言 涉及到的东西&#xff1a;两阶段提交&#xff0c;binlog三种格式 1、两阶段提交 在持久化 redo log 和 binlog 这两份日志的时候&#xff0c;如果出现半成功的状态&#xff0c;就会造成主从环境的数据不一致性。这是因为 redo log 影响主库的数据&#xff0c;binlog…

递归算法学习——子集

目录 一&#xff0c;题目解析 二&#xff0c;例子 三&#xff0c;题目接口 四&#xff0c;解题思路以及代码 1.完全深度搜索 2.广度搜索加上深度优先搜索 五&#xff0c;相似题 1.题目 2.题目接口 3.解题代码 一&#xff0c;题目解析 给你一个整数数组 nums &#xff0c…

MySQL8.xx 解决1251 client does not support ..解决方案

MySQL8.0.30一主两从复制与配置(一)_蜗牛杨哥的博客-CSDN博客 MySQL8.xx一主两从复制安装与配置 MySQL8.XX随未生成随机密码解决方案 一、客户端连接mysql&#xff0c;问题&#xff1a;1251 client does not support ... 二、解决 1.查看用户信息 备注&#xff1a;host为 % …

docker高级(redis集群三主三从)

1. 新建6个docker容器redis实例 docker run -d --name redis-node-1 --net host --privilegedtrue -v /redis/share/redis-node-1:/data redis:6.0.8 --cluster-enabled yes --appendonly yes --port 6381docker run -d --name redis-node-2 --net host --privilegedtrue -v /…

飞天使-python的分支结构,循环,函数

文章目录 分支结构单分支双分支多分支内联if条件语句案例&#xff0c;门票价格 循环for,in 循环for in 次数控制while 循环while遍历跳出循环break跳出循环continue 函数函数概念内置函数自定义函数函数进阶作用域 参考视频 分支结构 单分支 对事情判断&#xff0c;然后做出选…

Vision Transformer(vit)原理分析以及特征可视化

目录 Vit简介 Vit model结构图 vit输入处理 图像分块 class token与position的添加 特征提取 vit代码 Vit简介 Vision Transformer&#xff08;ViT&#xff09;是一种基于Transformer架构的深度学习模型&#xff0c;用于图像识别和计算机视觉任务。与传统的卷积神经网络…

香橙派OrangePi zero H2+ 驱动移远4G/5G模块

目录 1 安装系统和内核文件&#xff1a; 1.1 下载镜像 1.2 内核头安装 1.2.1 下载内核 1.2.2 将内核头文件导入开发板中 1.2.3 安装内核头 2 安装依赖工具&#xff1a; 2.1 Installing Required Host Utilities 3 驱动步骤&#xff1a; 3.1 下载模块驱动文件…

ArrayList与顺序表

文章目录 一. 顺序表是什么二. ArrayList是什么三. ArrayList的构造方法四. ArrayList的常见方法4.1 add()4.2 size()4.3 remove()4.4 get()4.5 set()4.6 contains()4.7 lastIndexOf()和 indexOf(&#xff09;4.8 subList()4.9 clear() 以上就是ArrayList的常见方法&#xff01…