Java项目:springboot访客管理系统

news2024/12/27 12:00:31

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

springboot搭建的访客管理系统,针对高端基地做严格把控来访人员信息管理,用户后端可以设置多个管理员帐号,给予不同部门的管理层使用,用户管理可以增加/修改内部成员的基本信息,需要到访的人员必须通过进入程序,在访客预约里面提交预约申请,预约后管理员可查询预约记录以及访客出入记录。

使用人群:

正在做毕设的学生,或者需要项目实战练习的Java学习者

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 
5.数据库:MySql 8.0/5.7版本;

6.是否Maven项目:是;

技术栈

1. springboot
2. mybatis
3. layUi 

4. JSP

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8090 登录

帐号:admin 密码:admin

用户:zhangsan 密码:123456

运行截图

代码相关

管理端控制器

@Api(tags="管理员")
@Controller
@RequestMapping(value = "adminManager")
public class AdminController {
	@Autowired
	private AdminService adminService;


	@ApiOperation(value="添加子管理员",notes="添加子管理员")
	@ResponseBody
	@PostMapping("/addAdmin")
	public Response<String> addAdmin(Admin admin){
		return adminService.saveOrUpdate(admin);
	}

	@ApiOperation(value="按照编号删除子管理员信息",notes="按照编号删除子管理员信息")
	@ApiImplicitParam(name="id",value="子管理员编号",paramType="path",required=true)
	@ResponseBody
	@PostMapping("/delAdmin/{id}")
	public Response<String> delAdmin(@PathVariable("id")Long id){
		adminService.deleteUserById(id);
		return Response.ok("success");
	}

	@ApiOperation(value="按照编号删除子管理员信息",notes="按照编号删除子管理员信息")
	@ApiImplicitParam(name="id",value="子管理员编号",paramType="path",required=true)
	@ResponseBody
	@PostMapping("/updateAdmin")
	public Response<String> updateAdmin(Admin admin, HttpSession session) {
		session.setAttribute("loginAdmin",admin);
		return adminService.saveOrUpdate(admin);
	}

	@ApiOperation(value="分页查找所有子管理员",notes="分页查找所有子管理员")
	@ApiImplicitParams({
		@ApiImplicitParam(name="pageNum",value="当前页码",required=false,defaultValue="1"),
		@ApiImplicitParam(name="pageSize",value="每页显示数据个数(0是全部)",required=false,defaultValue="2")
	})
	@GetMapping("/adminList")
	public ModelAndView adminList(@RequestParam(name = "pageNum",defaultValue = "1") int pageNum,
								  @RequestParam(name = "pageSize", defaultValue = "10") int pageSize,Admin  admin,ModelAndView modelAndView) {
		PageInfo<Admin> data= adminService.getAllByPage(pageNum, pageSize,admin);
		modelAndView.addObject("page",data);
		modelAndView.setViewName("admin/admin-list");
		return modelAndView;
	}


	//跳转添加子管理员页面
	@GetMapping("/admin-add")
	public ModelAndView adminAddHtml(ModelAndView modelAndView) {
		modelAndView.setViewName("admin/admin-add");
		return modelAndView;
	}	//跳转添加子管理员页面
	@GetMapping("/admin-edit")
	public ModelAndView adminEditHtml(Long id,ModelAndView modelAndView) {
		Admin admin=adminService.findUserById(id);
		modelAndView.addObject("admin",admin);
		modelAndView.setViewName("admin/admin-edit");
		return modelAndView;
	}

	//个人信息修改
	@GetMapping("/admin-update")
	public ModelAndView adminUpdateHtml(Long id,ModelAndView modelAndView) {
		Admin admin=adminService.findUserById(id);
		modelAndView.addObject("admin",admin);
		modelAndView.setViewName("admin/admin-update");
		return modelAndView;
	}


}

 登录控制器

@Api(tags="登录管理")
@Controller
@RequestMapping()
public class LoginController {
	@Autowired
	private AdminService adminService;
	@Autowired
	private SmartUserService userService;

	@Autowired
	private VisitorService visitorService;


	@GetMapping("/userIndex")
	public ModelAndView userIndex(HttpSession session,ModelAndView modelAndView){
		SmartUser user=(SmartUser) session.getAttribute("loginUser");
		if(user!=null){
			modelAndView.setViewName("userIndex");
		}else{
			modelAndView.setViewName("login");
		}
		return modelAndView;
	}

	@GetMapping({"index","/"})
	public ModelAndView index(HttpSession session,ModelAndView modelAndView){
		Admin user=(Admin) session.getAttribute("loginAdmin");
		if(user!=null){
			modelAndView.setViewName("index");
			int num=visitorService.getNewVisitor();
			modelAndView.addObject("num",num);
		}else{
			modelAndView.setViewName("login");
		}
		return modelAndView;
	}
	/**
	 * @Description(功能描述): 登录
	 **/
	@GetMapping({"login","logout"})
	public ModelAndView login(HttpSession session,ModelAndView modelAndView){
		modelAndView.setViewName("login");
		return modelAndView;
	}

	@ResponseBody
	@PostMapping("/uploadImg")
	public Response<String> uploadImg(){
		return Response.ok();
	}

	@ResponseBody
	@PostMapping("/doLogin")
	public Response<String> doLogin(HttpSession session, Admin admin){
		if("admin".equalsIgnoreCase(admin.getRole())){
			Admin result= adminService.login(admin);
			if(null!=result){
				session.setAttribute("loginAdmin",result);
				return Response.ok("index");
			}else {
				return  Response.error(300);
			}
		}else{
			SmartUser user=new SmartUser();
			user.setAccount(admin.getAccount());
			user.setPassword(admin.getPasswd());
			user=userService.login(user);
			if(null!=user){
				session.setAttribute("loginUser",user);
				return Response.ok("userIndex");
			}else {
				return  Response.error(300);
			}
		}
	}
}

如果也想学习本系统,下面领取。回复:093springboot

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣(LeetCode)207. 课程表(C++)

拓扑排序 根据示例看出&#xff0c;课程表是否存在环&#xff0c;是问题的关键。这题的环&#xff0c;和数组、链表的环不一样&#xff0c;不好判&#xff0c;要转化成图判拓扑序列。 考虑向右和向左的方向&#xff0c;拓扑序列的所有边可以指向同一方向。 无环图进行重排序…

论文阅读Measuring Regularity of Individual Travel Patterns

这是一篇发表在IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS上的论文&#xff0c;论文主要描述了一种刻画出行规律性的方法。 1.论文概述 论文主要描述了一种刻画出行规律性的方法。首先&#xff0c;论文给出了对出行活动序列&#xff08;travel event&#xff…

因果推断3--DRNet(个人笔记)

目录 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 1介绍 2相关工作 3方法 4实验 5结果和讨论 6结论 7理解 论文标题 Learning Counterfactual Representations for Estimating Individual Dose-Response Curves 收录会…

深度学习-AlexNet(第一个深度卷积网络)

文章目录简介数据集模型搭建模型训练模型测试前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 简介 AlexNet是第一个深度卷积网络模型&#xff0c;赢得了2012年ImageNet图像分类竞赛的冠军…

Java项目:springboot销售团队后台管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 该项目为后管系统&#xff0c;主要功能包括&#xff1a; 看板、业务机会管理、客户管理、联系人管理、我的日报、团队日报、主数据管理&#x…

【Linux】进程间通信之共享内存

目录&#x1f308;前言&#x1f338;1、System V共享内存&#x1f361;1.1、概念&#x1f362;1.2、原理&#x1f33a;2、共享内存相关函数和指令&#x1f361;2.1、shmget函数&#xff08;创建&#xff09;&#x1f362;2.2、shmctl函数&#xff08;控制&#xff09;&#x1f…

TCP 的重传机制、选择确认、缓存与流量控制、连接管理、拥塞控制(计算机网络-运输层)

目录 TCP 的重传机制 TCP 的选择确认 TCP 的缓存与流量控制 TCP 的连接管理 TCP的拥塞控制 TCP 的重传机制 TCP 每发送一个报文段就设置一个超时计时器&#xff1b; TCP 使用指数加权移动平均算法计算 RTT 及其偏差的估计值&#xff0c;并据此计算超时重传时间&#xff1b…

8 NP完全性理论

8 NP完全性理论 p问题 NP问题 NP完全问题 NPC(complete ) NP难问题NP-hard p问题 是一类能够用**(确定的)算法**在多项式时间内求解的可判定问题 ●这种问题类型也称为多项式类型 NP问题 是一类能够用不确定算法在多项式时间内求解的可判定问题 在确定性计算模型下多项式时…

程序员高手解决问题,都是从正确的提问开始

回顾各大技术网站、社区、问答&#xff0c;我们发现&#xff1a;真正的程序员高手都极度擅长提问。 好的提问不但能得到建设性的解决方案&#xff0c;更加能激发人们的好奇心、创造力和学习的动力。 毫不夸张地说&#xff0c;会提问的程序员一开口就赢了&#xff01; 所以今…

HashMap源码剖析(下)——java集合

系列文章目录 文章目录系列文章目录前言一、 回顾总结二、HashMap数据插入流程JDK1.8 HashMap的put方法源码如下:2.1 扩容机制2.2 链表树化2.3 红黑树转链三、查找总结四、删除五、遍历前言 既上一节内容 本节内容是&#xff0c;HashMap还有基本的数据功能&#xff1b;存储、删…

(三)GNSS定位中的定位系统和误差源

翻看了一下记录&#xff0c;离上一次GNSS内容的更新已经过去9个月了。时间过的太快&#xff0c;硕士生涯已经过去一半&#xff0c;有遗憾也有收获&#xff0c;过去的9个月经历了各种喜怒哀乐以及迷茫。永远相信美好的事情即将发生&#xff0c;GO LONG CHINA&#xff01; 今天写…

魅族大会公布未来多项规划!全场景门店、旗舰新品明年将落地

如果说中国手机行业中哪个品牌的粉丝忠诚度最高&#xff0c;那恐怕魅族说第二&#xff0c;也没几家敢说第一。这些年来&#xff0c;虽然魅族手机经历风风雨雨&#xff0c;但依然有着非常庞大的粉丝基础。前不久刚刚结束的魅友大会2022大会现场人潮涌动&#xff0c;随着天南海北…

Linux系统下的常用查找指令及用法

find指令&#xff1a;将从指定目录向下递归地遍历其各个子目录&#xff0c;将满足条件的文件或者目录显示在终端&#xff0c; 语法&#xff1a;find[搜索范围][选项] 方式作用-name<查询方式>按照指定的文件名查找模式查找文件-user<用户名>查找属于指定用户名所有…

Java项目:springboot教务管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 1.系统默认超级管理员账号为admin&#xff0c;默认密码为123456 系统配置&#xff1a;用户管理、角色管理、权限管理 默认已配置好基本数据&…

4.3.2、分类编址的 IPv4 地址

分类编址的 IPv4 地址分为 A、B、C、D、E 五类 A 类地址的网络号部分占 888 比特&#xff0c;主机号部分占 242424 比特。网络号的最高位固定为 000B 类地址的网络号部分占 161616 比特&#xff0c;主机号部分占 161616 比特。网络号的最高两位固定为 101010C 类地址的网络号部…

Reason: CORS request did not succeed 浏览器

放上我的错误&#xff1a; 一定要坚信他给你的提提示&#xff01;&#xff01;&#xff01;一定要怀疑是浏览器的设置 因为我试过网上的两种方法&#xff0c;均无效 法一&#xff1a;将Access-Control-Allow-Origin设置为&#xff1a;* 法二&#xff1a;因为我使用的是vue3&…

深度学习——转置卷积(笔记)

1.卷积层和汇聚层通常会减少下采样输入图像的空间维度&#xff08;高和宽&#xff09;&#xff0c;语义分割对输入进行像素级别的输出&#xff0c;但是卷积会不断减小高宽&#xff0c;不利于像素级别的输出。通过转置卷积能增大输入的高和宽 2.具体操作&#xff1a;步幅为1没有…

uni-app整包更新与热更新方案(安卓和IOS)

原文链接&#xff1a;uni-app整包更新与热更新方案(安卓和IOS) 效果预览 大致效果&#xff1a; 打开App&#xff0c;进入首页&#xff08;首次&#xff09;&#xff0c;检测线上是否存在新版本&#xff0c;如果存在&#xff0c;弹窗提示用户是否进行版本更新。Android 有热更新…

VMware17虚拟机安装及Linux系统搭建(详细版)

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; &#x1f4dc;前言&#xff1a; VMware是一个虚拟PC的软件&#xff0c;可以在现有的操作系统上虚…

虚拟机最小化方式安装Centos7后,ping和ifconfig都不可用解决方法

我用的是台式机&#xff0c;主机连接的是网线&#xff0c;在以最小化方式安装Centos7后&#xff0c;ping和ifconfig不可用。这里要记住&#xff0c;vm虚拟机使用网络适配器是&#xff1a;NAT 模式(N): 用于共享主机的 IP 地址 问题&#xff1a; ifconfig command not found p…