可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C++、python、数据可视化、大数据、文案
如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统校园生活服务平台信息管理难度大,容错率低,管理人员处理数据费工费时,所以专门为解决这个难题开发了一个校园生活服务平台管理系统,可以解决许多问题。
校园生活服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括备忘录管理、字典管理、分享大厅管理、公告管理、活动申请管理、跑腿管理、跑腿接单管理、文娱活动管理、文娱活动报名管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。
校园生活服务平台管理系统可以提高校园生活服务平台信息管理问题的解决效率,优化校园生活服务平台信息处理流程,保证校园生活服务平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。
关键词:校园生活服务平台管理系统;Mysql数据库;Java语言
基于springboot校园生活服务平台源码和论文685
演示视频:
【源码 导入教程 文档 讲解】基于springboot校园生活服务平台源码和论文
Nowadays, all walks of life in society like to work with their own industry-specific software. At this point in the development of the Internet, people have found that they cannot do without the Internet. The emergence of new technologies can often solve the drawbacks of some old technologies. Because the traditional personnel information management is difficult, the fault tolerance rate is low, and the management personnel is labor-intensive and time-consuming to process data, a personnel management system has been specially developed to solve this problem, which can solve many problems.
The personnel management system is divided into administrators and users according to the operating subjects. The functions of the administrator include managing employees, managing personnel information, including recruitment management, training management, reward and punishment management, salary management, etc., and can manage operators. User functions include managing department and department position information, managing recruitment information, training information, salary information, etc. The system uses Mysql database, Java language, Spring Boot framework and other technologies for programming.
The personnel management system can improve the efficiency of solving personnel information management problems, optimize the personnel information processing process, and ensure the security of personnel information data. It is a very reliable and very safe application.
Key Words:Personnel management system; Mysql database; Java language
摘 要
Abstract
目 录
第1章 绪论
1.1 课题背景
1.2 课题意义
1.3 研究内容
第2章 开发环境与技术
2.1 Java语言
2.2 MYSQL数据库
2.3 IDEA开发工具
2.4 Spring Boot框架
第3章 系统分析
3.1 可行性分析
3.1.1 技术可行性
3.1.2 经济可行性
3.1.3 操作可行性
3.2 系统流程
3.2.1 操作流程
3.2.2 登录流程
3.2.3 删除信息流程
3.2.4 添加信息流程
3.3 性能需求
3.4 功能需求
第4章 系统设计
4.1 系统设计思想
4.2 功能结构设计
4.3 数据库设计
4.3.1 数据库概念设计
4.3.2 数据库物理设计
第5章 系统实现
5.1 管理员功能实现
5.1.1 跑腿管理
5.1.2 文娱活动管理
5.1.3 分享管理
5.1.4 公告管理
5.2 用户功能实现
5.2.1 跑腿管理
5.2.2 文娱活动管理
5.2.3 备忘录管理
第6章 系统测试
6.1 功能测试
6.1.1 登录功能测试
6.2 系统测试结果
结 论
致 谢
第1章 绪论
1.1 课题背景
二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的传播速度极慢,信息处理的速度和要求还是通过人们骑马或者是信鸽传递,这些信息传递都是不可控制的,中间很有可能丢失,信息的传递水平决定了人们生活的水平。如今大家都在使用互联网软件产品,从内部管理设置计算机管理,提高内部信息化的管理水准,从外部市场也可以用计算机获取相关数据进行处理,如今各行各业已经严重依赖于计算机了。
本课题研究和开发校园生活服务平台管理系统,让安装在计算机上的该系统变成管理人员的小帮手,提高校园生活服务平台信息处理速度,规范校园生活服务平台信息处理流程,让管理人员的产出效益更高。
1.2 课题意义
传统处理数据,必须是一张张纸,然后处理完毕又是统计在一张张纸上面,不断的重复处理,最终有个结果给最高层作为参考,这个模式在互联网没有出现之前,是一种常见的事情,信息管理的效率提不上去,人多不一定力量大,因为人多肯定更加消耗资源,并且因为人类需要休息,需要管理,思想会不统一,会偷懒,所以人们研究出专门帮助人们计算的机器,就是计算机的前身,到了互联网时代,人们发现完全可以让程序供应商提供解决方案,自己挑选自己合适的方案来提高自己的产出比。所以在日常工作和生活中会发现各种各样方便人们的工具。
本课题研发的校园生活服务平台管理系统,就是提供校园生活服务平台信息处理的解决方案,它可以短时间处理完信息,并且这些信息都有专门的存储设备,而且数据的备份和迁移都可以设定为无人值守,从人力角度和信息处理角度以及信息安全角度,校园生活服务平台管理系统是完胜传统纸质操作的。
package com.controller;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
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.transaction.annotation.Transactional;
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.YuangongEntity;
import com.entity.view.YuangongView;
import com.service.YuangongService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
/**
* 员工
* 后端接口
* @author
* @email
* @date 2023-03-17 15:49:43
*/
@RestController
@RequestMapping("/yuangong")
public class YuangongController {
@Autowired
private YuangongService yuangongService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YuangongEntity u = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("gonghao", username));
if(u==null || !u.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(u.getId(), username,"yuangong", "员工" );
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody YuangongEntity yuangong){
//ValidatorUtils.validateEntity(yuangong);
YuangongEntity u = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("gonghao", yuangong.getGonghao()));
if(u!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
yuangong.setId(uId);
yuangongService.insert(yuangong);
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");
YuangongEntity u = yuangongService.selectById(id);
return R.ok().put("data", u);
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
YuangongEntity u = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("gonghao", username));
if(u==null) {
return R.error("账号不存在");
}
u.setMima("123456");
yuangongService.updateById(u);
return R.ok("密码已重置为:123456");
}
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,YuangongEntity yuangong,
HttpServletRequest request){
EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>();
PageUtils page = yuangongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangong), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,YuangongEntity yuangong,
HttpServletRequest request){
EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>();
PageUtils page = yuangongService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangong), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( YuangongEntity yuangong){
EntityWrapper<YuangongEntity> ew = new EntityWrapper<YuangongEntity>();
ew.allEq(MPUtil.allEQMapPre( yuangong, "yuangong"));
return R.ok().put("data", yuangongService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(YuangongEntity yuangong){
EntityWrapper< YuangongEntity> ew = new EntityWrapper< YuangongEntity>();
ew.allEq(MPUtil.allEQMapPre( yuangong, "yuangong"));
YuangongView yuangongView = yuangongService.selectView(ew);
return R.ok("查询员工成功").put("data", yuangongView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
YuangongEntity yuangong = yuangongService.selectById(id);
return R.ok().put("data", yuangong);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
YuangongEntity yuangong = yuangongService.selectById(id);
return R.ok().put("data", yuangong);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YuangongEntity yuangong, HttpServletRequest request){
yuangong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(yuangong);
YuangongEntity u = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("gonghao", yuangong.getGonghao()));
if(u!=null) {
return R.error("用户已存在");
}
yuangong.setId(new Date().getTime());
yuangongService.insert(yuangong);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody YuangongEntity yuangong, HttpServletRequest request){
yuangong.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(yuangong);
YuangongEntity u = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("gonghao", yuangong.getGonghao()));
if(u!=null) {
return R.error("用户已存在");
}
yuangong.setId(new Date().getTime());
yuangongService.insert(yuangong);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody YuangongEntity yuangong, HttpServletRequest request){
//ValidatorUtils.validateEntity(yuangong);
yuangongService.updateById(yuangong);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
yuangongService.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<YuangongEntity> wrapper = new EntityWrapper<YuangongEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = yuangongService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
package com.controller;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.text.ParseException;
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.transaction.annotation.Transactional;
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.PutongguanliyuanEntity;
import com.entity.view.PutongguanliyuanView;
import com.service.PutongguanliyuanService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
/**
* 普通管理员
* 后端接口
* @author
* @email
* @date 2023-03-08 18:33:34
*/
@RestController
@RequestMapping("/putongguanliyuan")
public class PutongguanliyuanController {
@Autowired
private PutongguanliyuanService putongguanliyuanService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
PutongguanliyuanEntity u = putongguanliyuanService.selectOne(new EntityWrapper<PutongguanliyuanEntity>().eq("guanlizhanghao", username));
if(u==null || !u.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(u.getId(), username,"putongguanliyuan", "普通管理员" );
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody PutongguanliyuanEntity putongguanliyuan){
//ValidatorUtils.validateEntity(putongguanliyuan);
PutongguanliyuanEntity u = putongguanliyuanService.selectOne(new EntityWrapper<PutongguanliyuanEntity>().eq("guanlizhanghao", putongguanliyuan.getGuanlizhanghao()));
if(u!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
putongguanliyuan.setId(uId);
putongguanliyuanService.insert(putongguanliyuan);
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");
PutongguanliyuanEntity u = putongguanliyuanService.selectById(id);
return R.ok().put("data", u);
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
PutongguanliyuanEntity u = putongguanliyuanService.selectOne(new EntityWrapper<PutongguanliyuanEntity>().eq("guanlizhanghao", username));
if(u==null) {
return R.error("账号不存在");
}
u.setMima("123456");
putongguanliyuanService.updateById(u);
return R.ok("密码已重置为:123456");
}
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,PutongguanliyuanEntity putongguanliyuan,
HttpServletRequest request){
EntityWrapper<PutongguanliyuanEntity> ew = new EntityWrapper<PutongguanliyuanEntity>();
PageUtils page = putongguanliyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, putongguanliyuan), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,PutongguanliyuanEntity putongguanliyuan,
HttpServletRequest request){
EntityWrapper<PutongguanliyuanEntity> ew = new EntityWrapper<PutongguanliyuanEntity>();
PageUtils page = putongguanliyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, putongguanliyuan), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( PutongguanliyuanEntity putongguanliyuan){
EntityWrapper<PutongguanliyuanEntity> ew = new EntityWrapper<PutongguanliyuanEntity>();
ew.allEq(MPUtil.allEQMapPre( putongguanliyuan, "putongguanliyuan"));
return R.ok().put("data", putongguanliyuanService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(PutongguanliyuanEntity putongguanliyuan){
EntityWrapper< PutongguanliyuanEntity> ew = new EntityWrapper< PutongguanliyuanEntity>();
ew.allEq(MPUtil.allEQMapPre( putongguanliyuan, "putongguanliyuan"));
PutongguanliyuanView putongguanliyuanView = putongguanliyuanService.selectView(ew);
return R.ok("查询普通管理员成功").put("data", putongguanliyuanView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
PutongguanliyuanEntity putongguanliyuan = putongguanliyuanService.selectById(id);
return R.ok().put("data", putongguanliyuan);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
PutongguanliyuanEntity putongguanliyuan = putongguanliyuanService.selectById(id);
return R.ok().put("data", putongguanliyuan);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody PutongguanliyuanEntity putongguanliyuan, HttpServletRequest request){
putongguanliyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(putongguanliyuan);
PutongguanliyuanEntity u = putongguanliyuanService.selectOne(new EntityWrapper<PutongguanliyuanEntity>().eq("guanlizhanghao", putongguanliyuan.getGuanlizhanghao()));
if(u!=null) {
return R.error("用户已存在");
}
putongguanliyuan.setId(new Date().getTime());
putongguanliyuanService.insert(putongguanliyuan);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody PutongguanliyuanEntity putongguanliyuan, HttpServletRequest request){
putongguanliyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(putongguanliyuan);
PutongguanliyuanEntity u = putongguanliyuanService.selectOne(new EntityWrapper<PutongguanliyuanEntity>().eq("guanlizhanghao", putongguanliyuan.getGuanlizhanghao()));
if(u!=null) {
return R.error("用户已存在");
}
putongguanliyuan.setId(new Date().getTime());
putongguanliyuanService.insert(putongguanliyuan);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody PutongguanliyuanEntity putongguanliyuan, HttpServletRequest request){
//ValidatorUtils.validateEntity(putongguanliyuan);
putongguanliyuanService.updateById(putongguanliyuan);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
putongguanliyuanService.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<PutongguanliyuanEntity> wrapper = new EntityWrapper<PutongguanliyuanEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = putongguanliyuanService.selectCount(wrapper);
return R.ok().put("count", count);
}
}