基于javaweb+mysql的ssm+maven酒店管理系统(java+ssm+jsp+mysql+maven)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM+Maven酒店管理系统(java+ssm+jsp+mysql+maven)
主要技术:java springmvc mybatis mysql tomcat js jauery jsp log4j等一些常见基本技术适用于Java毕设和学习使用
主要实现: 前台:登录、注册、酒店信息浏览、搜索酒店信息、查看房间、预定房间、等
后台:部门管理、房间管理、楼层管理、订单管理、入住管理、营业额报表、承担控制权限、员工管理、角色管理、预定报表等
主要功能截图如下: 前端登陆注册和一些基本信息查看等
public DataGridViewResult initMenuTree(Integer roleId){
//调用查询菜单列表的方法
List<Menu> menuList = menuService.findMenuList();
//根据角色ID查询该角色已经拥有的菜单ID的方法
List<Integer> currentRoleMenuIds = menuService.findMenuIdListByRoleId(roleId);
//定义集合,保存菜单信息
List<Menu> currentMenus = new ArrayList<Menu>();
//判断集合是否存在数据
if(currentRoleMenuIds!=null && currentRoleMenuIds.size()>0){
//根据菜单ID查询该菜单的信息
currentMenus = menuService.findMenuByMenuId(currentRoleMenuIds);
}
//创建集合保存树节点信息
List<TreeNode> treeNodes = new ArrayList<TreeNode>();
//循环遍历集合
for (Menu menu : menuList) {
//定义变量,标识是否选中
String checkArr = "0";//0表示复选框不选中,1表示选中复选框
//内层循环遍历当前角色拥有的权限菜单
//循环比较的原因:比较两个集合中的数据是否有相同的,有相同的表示当前角色拥有这个权限
for (Menu currentMenu : currentMenus) {
//如果ID相等,表示当前角色有这个菜单,有这个菜单则需要将复选框选中
if(menu.getId() == currentMenu.getId()){
checkArr ="1";//选中
break;
}
}
//定义变量,表示菜单是否展开
Boolean spread = (menu.getSpread()==null || menu.getSpread()==1) ? true : false;
treeNodes.add(new TreeNode(menu.getId(),menu.getPid(),menu.getTitle(),spread,checkArr));
}
//将数据返回到页面
return new DataGridViewResult(treeNodes);
}
/**
* 分配菜单
* @param ids
* @param roleId
* @return
*/
@RequestMapping("/saveRoleMenu")
public String saveRoleMenu(String ids,Integer roleId){
Map<String,Object> map = new HashMap<String,Object>();
//调用保存角色菜单关系的方法
if(roleService.saveRoleMenu(ids,roleId)>0){
*/
@RequestMapping("/list/{id}")
public String list(@PathVariable Integer id,Model model){
//调用查询所有房型列表的方法
List<RoomType> roomTypeList = roomTypeService.findRoomTypeList(null);
//创建查询条件类
RoomVo roomVo = new RoomVo();
roomVo.setRoomtypeid(id);//房型ID
roomVo.setStatus(3);//可预订
//查询房间列表
List<Room> roomList = roomService.findRoomListByPage(roomVo);
//将数据放到模型中
model.addAttribute("roomTypeList",roomTypeList);
model.addAttribute("roomList",roomList);
model.addAttribute("typeId",id);//将当前选中的房型ID保存到模型中,目的是在页面中回显选中的文本(改变选中的颜色)
return "hotelList";
}
}
/**
* HP - the login name of the current user.
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"修改成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"修改失败");
}
//map中存放的信息已json形式返回
return JSON.toJSONString(map);
}
//查询该部门下是否有员工
@RequestMapping("/checkDeptHasEmployee")
public String checkDeptHasEmployee(Integer id){
Map<String,Object> map = new HashMap<String, Object>();
int countById = employeeService.getEmployeeCountById(id);
if (countById>0){
//该部门下存在员工
map.put(SystemConstant.EXISI,true);//存在
map.put(SystemConstant.MESSAGE,"该部门下存在员工,不能删除");
}else{
map.put(SystemConstant.EXISI,false);//不存在
}
return JSON.toJSONString(map);
}
//删除部门信息
@RequestMapping("/deleteById")
public String deleteById(Integer id){
Map<String,Object> map = new HashMap<String, Object>();
int deleteById = deptService.deleteById(id);
if (deleteById>0){
map.put(SystemConstant.SUCCESS,true);//删除成功
map.put(SystemConstant.MESSAGE,"删除成功");
}else{
map.put(SystemConstant.SUCCESS,false);//删除失败
map.put(SystemConstant.MESSAGE,"删除失败");
}
return JSON.toJSONString(map);
}
//查询所有部门
@RequestMapping("/deptList")
public String deptList(){
return JSON.toJSONString(deptService.findDeptList());
}
}
/**
* HP - the login name of the current user.
* 16:36 - the current system time.
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
/**
* 注册
* @param user
* @return
*/
@RequestMapping("/register")
@ResponseBody
public String register(User user){
Map<String,Object> map = new HashMap<String,Object>();
//调用注册的方法
if(userService.addUser(user)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"恭喜你,注册成功!");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"很遗憾,注册失败,请重新尝试!");
}
return JSON.toJSONString(map);
}
/**
* 登录
* @param
* @return
*/
@RequestMapping("/login")
@ResponseBody
public String login(String loginName, String password, HttpSession Session){
Map<String,Object> map = new HashMap<String,Object>();
//调用注册的方法
User loginUser = userService.login(loginName, password);
@RestController
@RequestMapping("/admin/checkout")
public class CheckoutAdminController {
@Resource
private CheckoutService checkoutService;
/**
* 办理退房
* @param checkout
* @return
*/
@RequestMapping("/addCheckout")
public String addCheckin(Checkout checkout, HttpSession session){
Map<String,Object> map = new HashMap<String,Object>();
//获取当前登录用户
Employee employee = (Employee) session.getAttribute(SystemConstant.LOGINUSER);
//创建人
checkout.setCreatedBy(employee.getId());
//调用添加入住信息的方法
if(checkoutService.addCheckout(checkout)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"退房成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"退房失败");
}
return JSON.toJSONString(map);
}
}
Session.setAttribute(SystemConstant.FRONT_LOGIN_USER,loginUser);
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"用户名或密码错误,请重新登录!");
}
return JSON.toJSONString(map);
}
/**
* 根据用户名查询用户信息
* @param loginName
* @return
*/
@RequestMapping("/checkName")
@ResponseBody
public String checkName(String loginName){
Map<String,Object> map = new HashMap<String,Object>();
//调用注册的方法
if(userService.findUserByName(loginName)!=null){
map.put(SystemConstant.EXISI,true);
map.put(SystemConstant.MESSAGE,"用户名存在,请重新输入");
}else{
map.put(SystemConstant.EXISI,false);
}
return JSON.toJSONString(map);
}
}
/**
@RestController
@RequestMapping("/admin/checkout")
public class CheckoutAdminController {
@Resource
private CheckoutService checkoutService;
/**
* 办理退房
* @param checkout
* @return
*/
@RequestMapping("/addCheckout")
public String addCheckin(Checkout checkout, HttpSession session){
Map<String,Object> map = new HashMap<String,Object>();
//获取当前登录用户
Employee employee = (Employee) session.getAttribute(SystemConstant.LOGINUSER);
//创建人
checkout.setCreatedBy(employee.getId());
//调用添加入住信息的方法
if(checkoutService.addCheckout(checkout)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"退房成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"退房失败");
}
return JSON.toJSONString(map);
}
}
* @param ordersVo
* @return
*/
@RequestMapping("/list")
public DataGridViewResult list(OrdersVo ordersVo){
//设置分页信息
PageHelper.startPage(ordersVo.getPage(),ordersVo.getLimit());
//调用分页查询订单列表的方法
List<Orders> ordersList = ordersService.findOrdersList(ordersVo);
//创建分页对象
PageInfo<Orders> pageInfo = new PageInfo<Orders>(ordersList);
//返回数据
return new DataGridViewResult(pageInfo.getTotal(),pageInfo.getList());
}
/**
* 确认订单
* @param orders
* @return
*/
@RequestMapping("/confirmOrders")
public String confirmOrders(Orders orders){
Map<String,Object> map = new HashMap<String,Object>();
//将订单状态改成已确认(status=2)
orders.setStatus(2);
//调用修改的方法
if(ordersService.updateOrders(orders)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"订单确认成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"订单确认失败");
}
return JSON.toJSONString(map);
}
/**
* 批量确认订单
* @param ids
* @return
*/
@RequestMapping("/batchConfirm")
public String batchConfirm(String ids){
Map<String,Object> map = new HashMap<String,Object>();
int count = 0;
//将字符串拆分成数组
String[] idsStr = ids.split(",");
//循环确认
for (int i = 0; i < idsStr.length; i++) {
//创建Orders对象
Orders orders = new Orders();
orders.setStatus(2);//已确认
orders.setId(Integer.valueOf(idsStr[i]));
/**
* 删除员工
* @param id
* @return
*/
@RequestMapping("/deleteById")
public String deleteById(int id){
Map<String,Object> map = new HashMap<String,Object>();
//调用删除员工的方法
if(employeeService.deleteById(id)>0){
map.put(SystemConstant.SUCCESS, true);
map.put(SystemConstant.MESSAGE, "删除成功");
}else{
map.put(SystemConstant.SUCCESS, false);
map.put(SystemConstant.MESSAGE, "删除失败");
}
return JSON.toJSONString(map);
}
/**
* 重置密码
* @param id
* @return
*/
@RequestMapping("/resetPwd")
public String resetPwd(int id){
Map<String,Object> map = new HashMap<String,Object>();
//调用删除员工的方法
if(employeeService.resetPwd(id)>0){
map.put(SystemConstant.SUCCESS, true);
map.put(SystemConstant.MESSAGE, "重置密码成功");
}else{
map.put(SystemConstant.SUCCESS, false);
map.put(SystemConstant.MESSAGE, "重置密码失败");
}
return JSON.toJSONString(map);
}
/**
* 分配角色
* @param roleIds
* @param empId
* @return
*/
@RequestMapping("/saveEmployeeRole")
public String saveEmployeeRole(String roleIds,Integer empId){
Map<String,Object> map = new HashMap<String, Object>();
map.put(SystemConstant.SUCCESS,true);//删除成功
map.put(SystemConstant.MESSAGE,"删除成功");
}else{
map.put(SystemConstant.SUCCESS,false);//删除失败
map.put(SystemConstant.MESSAGE,"删除失败");
}
return JSON.toJSONString(map);
}
//查看该角色编号下是否有员工
@RequestMapping("/checkRoleHasEmployee")
public String checkDeptHasEmployee(Integer id){
Map<String,Object> map = new HashMap<String, Object>();
int countById = employeeService.getEmployeeCountByRoleId(id);
if (countById>0){
//该角色是否有员工在用
map.put(SystemConstant.EXISI,true);//存在
map.put(SystemConstant.MESSAGE,"该角色有员工使用,不能删除");
}else{
map.put(SystemConstant.EXISI,false);//存在
}
return JSON.toJSONString(map);
}
/**
* 初始化菜单
* @return
*/
@RequestMapping("/initMenuTree")
public DataGridViewResult initMenuTree(Integer roleId){
//调用查询菜单列表的方法
List<Menu> menuList = menuService.findMenuList();
//根据角色ID查询该角色已经拥有的菜单ID的方法
List<Integer> currentRoleMenuIds = menuService.findMenuIdListByRoleId(roleId);
//定义集合,保存菜单信息
List<Menu> currentMenus = new ArrayList<Menu>();
//判断集合是否存在数据
if(currentRoleMenuIds!=null && currentRoleMenuIds.size()>0){
//根据菜单ID查询该菜单的信息
currentMenus = menuService.findMenuByMenuId(currentRoleMenuIds);
}
//创建集合保存树节点信息
List<TreeNode> treeNodes = new ArrayList<TreeNode>();
//循环遍历集合
for (Menu menu : menuList) {
//定义变量,标识是否选中
String checkArr = "0";//0表示复选框不选中,1表示选中复选框
//内层循环遍历当前角色拥有的权限菜单
//循环比较的原因:比较两个集合中的数据是否有相同的,有相同的表示当前角色拥有这个权限
date = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
}
return JSON.toJSONString(chartsService.getCurrentDateHotelByDate(date));
}
}
/**
* HP - the login name of the current user.
* 10:52 - the current system time.
* 处理跳转页面的(后台页面)
*/
@Controller
@RequestMapping("/admin")
public class SystemController {
/**
* 去到登录页面
* @return
*/
@RequestMapping("/login.html")
public String login(){
return "admin/login";
}
/**
* 去到后台欢迎页
* return
*/
private UserService userService;
/**
* 注册
* @param user
* @return
*/
@RequestMapping("/register")
@ResponseBody
public String register(User user){
Map<String,Object> map = new HashMap<String,Object>();
//调用注册的方法
if(userService.addUser(user)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"恭喜你,注册成功!");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"很遗憾,注册失败,请重新尝试!");
}
return JSON.toJSONString(map);
}
/**
* 登录
* @param
* @return
*/
@RequestMapping("/login")
@ResponseBody
public String login(String loginName, String password, HttpSession Session){
Map<String,Object> map = new HashMap<String,Object>();
//调用注册的方法
User loginUser = userService.login(loginName, password);
//登录判断
if(loginUser!=null){
//将密码清空
loginUser.setPassword(null);
map.put(SystemConstant.SUCCESS,true);
//保存登录用户信息到session中
Session.setAttribute(SystemConstant.FRONT_LOGIN_USER,loginUser);
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"用户名或密码错误,请重新登录!");
}
return JSON.toJSONString(map);
}
/**
* 根据用户名查询用户信息
* @param loginName
//修改菜单
@RequestMapping("/updateMenu")
public String updateMenu(Menu menu){
Map<String,Object> map = new HashMap<String,Object>();
//调用新增菜单的方法
if(menuService.updateMenu(menu)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"修改成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"修改失败");
}
return JSON.toJSONString(map);
}
//通过id查询此菜单下是否有子菜单
@RequestMapping("/checkMenuHasChild")
public String checkMenuHasChild(Integer id){
Map<String,Object> map = new HashMap<String,Object>();
//调用新增菜单的方法
if(menuService. getMenuCountByMenuId(id)>0){
map.put(SystemConstant.EXISI,true);
map.put(SystemConstant.MESSAGE,"该菜单下存在子菜单,无法删除");
}else{
map.put(SystemConstant.EXISI,false);
}
return JSON.toJSONString(map);
}
//删除菜单
@RequestMapping("/deleteById")
public String deleteById(Integer id){
Map<String,Object> map = new HashMap<String,Object>();
//调用新增菜单的方法
if(menuService.deleteById(id)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"删除成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"删除失败");
}
return JSON.toJSONString(map);
}
}
@RestController
@RequestMapping("/admin/roomType")
public class RoomTypeController {
@Autowired
private RoomTypeService roomTypeService;
/**
* 查询房型列表
* @param roomTypeVo
* @return
*/
@RequestMapping("/list")
private DataGridViewResult list(RoomTypeVo roomTypeVo){
//设置分页信息
PageHelper.startPage(roomTypeVo.getPage(),roomTypeVo.getLimit());
//查询房型列表
List<RoomType> roomTypeList = roomTypeService.findRoomTypeList(roomTypeVo);
//创建分页对象
PageInfo<RoomType> pageInfo = new PageInfo<RoomType>(roomTypeList);
//返回数据
return new DataGridViewResult(pageInfo.getTotal(),pageInfo.getList());
}
/**
* 添加房型
* @param roomType
* @return
*/
@RequestMapping("/addRoomType")
public String addRoomType(RoomType roomType){
Map<String,Object> map = new HashMap<String,Object>();
roomType.setReservednum(0);
if(roomTypeService.addRoomType(roomType)>0){
map.put(SystemConstant.SUCCESS,true);//成功
map.put(SystemConstant.MESSAGE,"添加成功");
}else{
map.put(SystemConstant.SUCCESS,false);//失败
map.put(SystemConstant.MESSAGE,"添加失败");
}
return JSON.toJSONString(map);
}
/**
* 修改房型
* @param roomType
* @return
*/
}
/**
* 修改楼层
* @param floor
* @return
*/
@RequestMapping("/updateFloor")
public String updateFloor(Floor floor){
Map<String,Object> map = new HashMap<String, Object>();
if (floorService.updateFloor(floor)>0){
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"修改成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"修改失败");
}
return JSON.toJSONString(map);
}
/**
* 查询所有楼层
* @return
*/
@RequestMapping("/findAll")
public String findAll(){
return JSON.toJSONString(floorService.findFloorList(null));
}
}
map.put(SystemConstant.SUCCESS,true);
map.put(SystemConstant.MESSAGE,"删除成功");
}else{
map.put(SystemConstant.SUCCESS,false);
map.put(SystemConstant.MESSAGE,"删除失败");
}
return JSON.toJSONString(map);
}
}
/**
* HP - the login name of the current user.
* 16:53 - the current system time.
*/
@RestController
@RequestMapping("/admin/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
/**
* 去到房型管理页面
* @return
*/
@RequestMapping("/toRoomTypeManager")
public String toRoomTypeManager(){
return "admin/roomType/roomTypeManager";
}
/**
* 去到房间管理页面
* @return
*/
@RequestMapping("/toRoomManager")
public String toRoomManager(){
return "admin/room/roomManager";
}
/**
* 去到预订管理页面
* @return
*/
@RequestMapping("/toOrdersManager")
public String toOrdersManager(){
return "admin/orders/ordersManager";
}
/**
* 去到入住管理页面
* @return
*/
@RequestMapping("/toCheckinManager")
public String toCheckinManager(){
return "admin/checkin/checkinManager";
}
/**
* 去到年度营业额报表统计分析页面
* @return
*/
@RequestMapping("/toYearTotalPriceManager")
public String toYearTotalPriceManager(){