Java实战之酒店人事管理系统的实现
作者:qq_1334611189 发布时间:2021-06-02 16:44:37
标签:Java,酒店管理系统
一、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax 等等
二、效果图
三、核心代码
用户管理注册登录控制层
@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);
//登录判断
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
* @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);
}
}
房间管理控制层
@Controller
@RequestMapping("/room")
public class RoomController {
@Resource
private RoomService roomService;
@Resource
private RoomTypeService roomTypeService;
/**
* 查询房间详情
* @param id
* @param model
* @return
*/
@RequestMapping("/{id}.html")
public String detail(@PathVariable Integer id, Model model){
//调用查询房间详情的方法
Room room = roomService.findById(id);
//将数据放到模型中
model.addAttribute("room",room);
return "detail";
}
/**
* 查询全部房间列表
* @param model
* @return
*/
@RequestMapping("/list.html")
public String list(Model model){
//调用查询所有房型列表的方法
List<RoomType> roomTypeList = roomTypeService.findRoomTypeList(null);
//创建查询条件类
RoomVo roomVo = new RoomVo();
roomVo.setStatus(3);//可预订
//查询房间列表
List<Room> roomList = roomService.findRoomListByPage(roomVo);
//将数据放到模型中
model.addAttribute("roomTypeList",roomTypeList);
model.addAttribute("roomList",roomList);
return "hotelList";
}
/**
* 根据房型查询房间列表
* @param model
* @return
*/
@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";
}
}
订单管理控制层
@Controller
@RequestMapping("/orders")
public class OrdersController {
@Resource
private OrdersService ordersService;
/**
* 添加订单
* @param orders
* @return
*/
@RequestMapping("/addOrders")
@ResponseBody
public String addOrders(Orders orders){
Map<String,Object> map = new HashMap<String,Object>();
//调用添加订单的方法
if(ordersService.addOrders(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);
}
}
角色管理控制层
/**
* 角色管理
*/
@RequestMapping("/admin/role")
@RestController
public class RoleController {
@Autowired
private RoleService roleService;
@Autowired
private EmployeeService employeeService;
@Autowired
private MenuService menuService;
/**
* 角色列表查询
* @return
*/
@RequestMapping("/list")
public DataGridViewResult list(RoleVo roleVo){
//设置分页信息
PageHelper.startPage(roleVo.getPage(),roleVo.getLimit());
//调用分页查询的方法
List<Role> roleList = roleService.findRoleList(roleVo);
//创建分页对象
PageInfo<Role> pageInfo = new PageInfo<Role>(roleList);
//返回数据
return new DataGridViewResult(pageInfo.getTotal(),pageInfo.getList());
}
//添加部门信息
@RequestMapping("/addRole")
public String addRole(Role role){
//创建map存放信息
Map<String,Object> map = new HashMap<String, Object>();
int addRole = roleService.addRole(role);
if(addRole>0){
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("/updateRole")
public String updateRole(Role role){
Map<String,Object> map = new HashMap<String, Object>();
int updateRole = roleService.updateRole(role);
if(updateRole>0){
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("/deleteById")
public String deleteById(Integer id){
Map<String,Object> map = new HashMap<String, Object>();
int deleteById = roleService.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("/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表示选中复选框
//内层循环遍历当前角色拥有的权限菜单
//循环比较的原因:比较两个集合中的数据是否有相同的,有相同的表示当前角色拥有这个权限
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){
map.put(SystemConstant.MESSAGE,"菜单分配成功");
}else{
map.put(SystemConstant.MESSAGE,"菜单分配失败");
}
return JSON.toJSONString(map);
}
/**
* 查询角色列表通过员工ID
* @param id
* @return
*/
@RequestMapping("/initRoleListByEmpId")
public DataGridViewResult initRoleListByEmpId(int id){
List<Map<String, Object>> roleList = roleService.findRoleListByMap();
//调用根据员工ID查询该员工拥有的角色列表的方法
List<Integer> roleIds = roleService.findEmployeeRoleByEmployeeId(id);
//循环比较两个集合中的角色ID值是否相等,相等则选中该角色
for (Map<String, Object> map : roleList) {
//定义变量,标识是否选中
boolean flag = false;//不选中
//获取每一个角色ID
Integer rid = (Integer) map.get("id");//id是主键,以主键作为map集合中key
//内层循环遍历该员工拥有的角色列表
for (Integer roleId : roleIds) {
//判断两个集合中是否存在角色ID相同
if(rid == roleId){
flag = true;//选中该角色
break;
}
}
//将状态保存在map集合中
map.put("LAY_CHECKED",flag);//key必须是LAY_CHECKED
}
return new DataGridViewResult(Long.valueOf(roleList.size()),roleList);
}
}
来源:https://blog.csdn.net/m0_59687645/article/details/123415829
0
投稿
猜你喜欢
- 在Java中可以使用HttpServer类来实现Http服务器,该类位于com.sun.net包下(rt.jar)。实现代码如下:主程序类p
- spring @Autowired注解无法注入问题简述在使用spring框架的过程中,常会遇到这种两情况:1、在扫描的包以外使用需要使用ma
- 前言前段时间一直使用到word文档转pdf或者pdf转word,寻思着用Java应该是可以实现的,于是花了点时间写了个文件转换工具源码wel
- 在工作上,我最近对一个现有的Java项目代码进行了清理。完成之后,我发现了一些反复出现的不规范代码。所以,我把它们整理成了一个列表出来分享给
- 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。文件上传概述1、文件上传
- 1、包装类型是什么?Java 为每一个基本数据类型都引入了对应的包装类型,int 的包装类就是 Integer,从 Java 5 开始引入了
- 由于众所周知的原因,maven的库在中国大陆非常慢。我在百度上搜到的大部分文章都是直接在~/.m2/settings.xml 加入以下内容&
- 前言在工作中,比如要实现一个功能,前端传什么参数,后端的controller层中怎么接收参数 ,封装成了什么实体对象,有些参数是在URL上使
- 1.实例1(主要看到[2])1.1.系统功能: 开发一个计算器服务CalculateService,这个服务包含加(plus)、减(minu
- 写在前面从Java 1.0开始,引入java.io包;到Java 1.4再扩展了java.nio包;再到java 1.7又添加了新的流类,使
- android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 Translat
- 前言我们通常使用Spring boot做项目搭建的基础框架,必然少不了它的内置日志框架Logback,在spring-boot-starte
- 免责声明:本教程所有资源均来源于网络;仅用于学习交流,请勿用于任何商业行为;如需要,请使用正版授权;侵权联删。推荐最新 IntelliJ I
- 本文实例讲述了Java定义泛型方法。分享给大家供大家参考,具体如下:一 点睛1 如果定义类、接口是没有使用类型形参,但定义方法时想自己定义类
- 注意事项阿里云的dataworks提供了OpenApi, 需要是企业版或旗舰版才能够调用,也就是付费项目。这里测试主要是调用拉取datawo
- springcloud微服务包含的技术种类众多,eureka作为其注册中心,一直处于主流,但在今年已经处于永久停更状态,但其优秀的能力还是值
- 本文实例分析了Java接口默认方法带来的问题。分享给大家供大家参考,具体如下:一 点睛Java 8中,如果一个类实现两个或多个接口,即“变相
- 接收从控制台输入的数据可以使用Scanner类实现,Scanner类在一个名为util的包中需要在程序中导入这个包, 即在程序中添加impo
- yaml语法注解配置文件两种形式application.properties和.yaml第一种语法 key=value第二种key:空格va
- 1. 前言在Java开发中接触的开发者大多数不太注重对接口的测试,结果在联调对接中出现各种问题。也有的使用Postman等工具进行测试,虽然