基于SSH的2022精修版,修复了大量bug,
核心功能:用户管理,日志管理,人员权限管理,客房预订管理,预定转入住,客房管理,卫生管理,物品采购,商品管理,建议管理,换房管理,客房类型管理,文件上传下载,自定义文件目录。
开发环境:mysql5.7,tomcat9,jdk8,eclipse,(MyEclipse或者IDEA也可以)
框架技术:Struts2 + Spring + Hibernate
上传文件的目录可以设置,独立于项目之外,这样每次部署以及迁移的时候就不会受到影响。
运行截图
文章图片
【java|JAVA-MYSQL-SSH酒店民宿客房管理系统】
管理员首页
文章图片
用户管理
文章图片
日志管理
文章图片
客服预定管理
文章图片
工作人员权限分配
文章图片
客房管理
文章图片
卫生管理
文章图片
物品采购
文章图片
商品管理
文章图片
换房管理
文章图片
客房类型管理
文章图片
源码分享:
ItemCatAction
package com.hotel.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.hotel.model.Item_cat;
import com.hotel.model.Room_cat;
import com.hotel.service.ItemCatService;
import com.hotel.service.LogService;
import com.hotel.utils.Pager;
import com.hotel.utils.UUIDUtils;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@Controller("itemCatAction")
@Scope("prototype")
public class ItemCatAction extends ActionSupport implements ModelDriven{
private Item_cat item_cat;
private int itemCatId;
@Autowired
private LogService logService;
public int getItemCatId() {
return itemCatId;
} public void setItemCatId(int itemCatId) {
this.itemCatId = itemCatId;
} //========================图片上传
private File file;
//提交过来的file的名字
private String fileFileName;
//提交过来的file的MIME类型
private String fileContentType;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
//========================图片上传 @Override
public Item_cat getModel() {
if(item_cat==null) item_cat = new Item_cat();
return item_cat;
}
@Autowired
private ItemCatService itemCatService;
/**
* 获取类别信息列表
* @return
*/
public String itemCatList(){
Pager pagers = itemCatService.listAll();
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}
/**
* 删除商品类别信息
* @return
*/
public String delItemCat(){
itemCatService.delItemCat(itemCatId);
ActionContext.getContext().put("url", "/itemCat_itemCatList.do");
return "redirect";
}/**
* 新增商品类别页面
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String addItemCat() {
return "success";
}public String itemCatAdd() throws Exception{
//图片上传
String root= "D:/my/upload";
InputStream is = new FileInputStream(file);
fileFileName = UUIDUtils.create()+fileFileName;
OutputStream os = new FileOutputStream(new File(root, fileFileName));
System.out.println("fileFileName: " + fileFileName);
System.out.println("file: " + file.getName());
System.out.println("file: " + file.getPath());
byte[] buffer = new byte[500];
int length = 0;
while(-1 != (length = is.read(buffer, 0, buffer.length)))
{
os.write(buffer);
}
os.close();
is.close();
item_cat.setImage("\\upload\\"+fileFileName);
itemCatService.add(item_cat);
String content="新增商品类型";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/itemCat_itemCatList.do");
return "redirect";
}/**
* 初始化修改页面
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String updateItemCat(){
Item_cat item_cat =itemCatService.itemCatDetail(itemCatId);
ActionContext.getContext().put("item_cat", item_cat);
return "success";
}/**
* 修改商品类别
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
* @throws Exception
*/
public String ItemCatUpdate() throws Exception{
if(file!=null){
//图片上传
String root= "D:/my/upload";
InputStream is = new FileInputStream(file);
fileFileName = UUIDUtils.create()+fileFileName;
OutputStream os = new FileOutputStream(new File(root, fileFileName));
System.out.println("fileFileName: " + fileFileName);
System.out.println("file: " + file.getName());
System.out.println("file: " + file.getPath());
byte[] buffer = new byte[500];
int length = 0;
while(-1 != (length = is.read(buffer, 0, buffer.length)))
{
os.write(buffer);
}
os.close();
is.close();
item_cat.setImage("\\upload\\"+fileFileName);
}else{
Item_cati =itemCatService.itemCatDetail(item_cat.getCid());
item_cat.setImage(i.getImage());
}
itemCatService.update(item_cat);
String content="修改商品类型";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/itemCat_itemCatList.do");
return "redirect";
}
}
ManageAction
package com.hotel.action;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.hotel.model.Manage;
import com.hotel.model.Suggest;
import com.hotel.model.User;
import com.hotel.service.LogService;
import com.hotel.service.ManageService;
import com.hotel.service.SuggestService;
import com.hotel.service.UserService;
import com.hotel.utils.Pager;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@Controller("manageAction")
@Scope("prototype")
public class ManageAction extends ActionSupport implements ModelDriven{private Manage manage;
private int userId;
private int manageId;
public int getUserId() {
return userId;
}public void setUserId(int userId) {
this.userId = userId;
}public int getManageId() {
return manageId;
}public void setManageId(int manageId) {
this.manageId = manageId;
}@Override
public Manage getModel() {
if(manage==null) manage = new Manage();
return manage;
}
@Autowired
private ManageService manageService;
@Autowired
private UserServiceuserService;
@Autowired
private LogService logService;
/**
* 登陆以后进入首页
* @return
*/
public String index(){
Manage ma = manageService.login(manage);
if(ma == null){
return "login";
}
HttpSession session =ServletActionContext.getRequest().getSession();
session.setAttribute("userName", ma.getName());
session.setAttribute("userId", ma.getId());
session.setAttribute("type1", ma.getType());
return SUCCESS;
//返回成功后默认为你提交需要跳转的方法中去
}
/**
* 获取用户列表
* @return
*/
public String userList(){
Pager pagers = userService.listAll();
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}
/**
* 删除用户
* @return
*/
public String delUser(){
userService.delUse(userId);
String content="删除用户";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/manage_userList.do");
return "redirect";
}/**
* 用户详情
* @return
*/
public String userDetail(){
User user =userService.userDetail(userId);
ActionContext.getContext().put("user", user);
return SUCCESS;
}/**
* 获取权限管理员列表
* @return
*/
public String authList(){
Pager pagers = manageService.listAll();
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}/**
* 删除管理员
* @return
*/
public String delManage(){
manageService.delManage(manageId);
String content="删除管理员";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/manage_authList.do");
return "redirect";
}/**
* 管理员详情
* @return
*/
public String authDetail(){
Manage manage =manageService.manageDetail(manageId);
ActionContext.getContext().put("manage", manage);
return SUCCESS;
}/**
* 管理员新增页面
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String addAuth() {
return "success";
}/**
* 新增管理员
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String addManage(){
manage.setCreateTime(new Date());
manage.setIsDelete(2);
manageService.add(manage);
String content="新增管理员";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/manage_authList.do");
return "redirect";
}/**
* 初始化修改页面
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String updateManage(){
Manage manage =manageService.manageDetail(manageId);
ActionContext.getContext().put("manage", manage);
return "success";
}/**
* 修改管理员
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String updateAuth(){
manageService.update(manage);
String content="修改管理员";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/manage_authList.do");
return "redirect";
}@Autowired
private SuggestService suggestService;
/**
* 获取建议信息列表
* @return
*/
public String suggestList() {
Pager pagers = suggestService.listAll();
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}
}
RoomCatAction
package com.hotel.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.hotel.model.Room_cat;
import com.hotel.service.LogService;
import com.hotel.service.RoomCatService;
import com.hotel.utils.Pager;
import com.hotel.utils.UUIDUtils;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@Controller("roomCatAction")
@Scope("prototype")
public class RoomCatAction extends ActionSupport implements ModelDriven{
private Room_cat room_cat;
private String rName2;
private int roomCatId;
public String getrName2() {
return rName2;
}public void setrName2(String rName2) {
this.rName2 = rName2;
}
@Override
public Room_cat getModel() {
if(room_cat==null) room_cat = new Room_cat();
return room_cat;
}
@Autowired
private RoomCatService roomCatService;
@Autowired
private LogService logService;
//========================图片上传
private File file;
//提交过来的file的名字
private String fileFileName;
//提交过来的file的MIME类型
private String fileContentType;
public File getFile() {
return file;
}
public void setFile(File file) {
this.file = file;
}
public String getFileFileName() {
return fileFileName;
}
public void setFileFileName(String fileFileName) {
this.fileFileName = fileFileName;
}
public String getFileContentType() {
return fileContentType;
}
public void setFileContentType(String fileContentType) {
this.fileContentType = fileContentType;
}
//========================图片上传public int getRoomCatId() {
return roomCatId;
}public void setRoomCatId(int roomCatId) {
this.roomCatId = roomCatId;
} /**
* 获取客房类型信息列表
* @return
*/
public String roomCatList(){
Pager pagers = roomCatService.listAll();
ActionContext.getContext().put("pagers", pagers);
return SUCCESS;
}/**
* 初始化客房类型新增页面
* @return
*/
public String addRoomCat(){
return SUCCESS;
}/**
* 新增类型
* @return
*/
public String roomAddCat()throws Exception{
//图片上传
String root= "D:/my/upload";
InputStream is = new FileInputStream(file);
fileFileName = UUIDUtils.create()+fileFileName;
OutputStream os = new FileOutputStream(new File(root, fileFileName));
System.out.println("fileFileName: " + fileFileName);
System.out.println("file: " + file.getName());
System.out.println("file: " + file.getPath());
byte[] buffer = new byte[500];
int length = 0;
while(-1 != (length = is.read(buffer, 0, buffer.length)))
{
os.write(buffer);
}
os.close();
is.close();
room_cat.setImage("\\upload\\"+fileFileName);
roomCatService.add(room_cat);
String content="新增客房类型";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/roomCat_roomCatList.do");
return "redirect";
}/**
* 初始化修改页面
* @Description (TODO这里用一句话描述这个方法的作用)
* @return
*/
public String updateRoomCat(){
Room_catroom_cat =roomCatService.roomCatDetail(roomCatId);
ActionContext.getContext().put("room_cat", room_cat);
return "success";
}/**
* 修改客房类别
* @return
*/
public String roomCatUpdate()throws Exception{
if(file!=null){
//图片上传
String root= "D:/my/upload";
InputStream is = new FileInputStream(file);
fileFileName = UUIDUtils.create()+fileFileName;
OutputStream os = new FileOutputStream(new File(root, fileFileName));
System.out.println("fileFileName: " + fileFileName);
System.out.println("file: " + file.getName());
System.out.println("file: " + file.getPath());
byte[] buffer = new byte[500];
int length = 0;
while(-1 != (length = is.read(buffer, 0, buffer.length)))
{
os.write(buffer);
}
os.close();
is.close();
room_cat.setImage("\\upload\\"+fileFileName);
}else{
Room_catr =roomCatService.roomCatDetail(room_cat.getId());
room_cat.setImage(r.getImage());
}
roomCatService.update(room_cat);
String content="修改客房类型";
HttpSession session =ServletActionContext.getRequest().getSession();
int userId = Integer.parseInt( session.getAttribute("userId").toString());
//插入日志
logService.addLog(content,userId);
ActionContext.getContext().put("url", "/roomCat_roomCatList.do");
return "redirect";
}}
完整源码 :JAVA-MYSQL-SSH酒店客房管理系统毕业设计全套源码-Java文档类资源-CSDN下载基于SSH的毕业设计全套源码,2022精修版,修复了大量bug,用户管理,日志管理,人员权限管理更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/xia15000506007/85122484
推荐阅读
- java|ssm糖尿病居家健康管理系统,java项目全套代码,小程序+后台管理,mysql数据库
- java|SSM教务管理系统
- java|Java+Swing+Mysql实现ATM自助存取款系统(2022最新版)
- 编程开发|Python3.9最新版下载与安装
- java|使用环信进行即时通信IM
- 即时通讯使用|极光通讯用于java web即时通信---构建idea下maven+springboot第三方即时通讯
- 云原生|云上机器CLOSE_WAIT过多的原因和解决办法
- java|软件架构设计的核心(抽象与模型、“战略编程”)
- 编程语言|编程语言(类型系统的本质)