Java實戰(zhàn)之酒店人事管理系統(tǒng)的實現(xiàn)
一、項目運行
環(huán)境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
項目技術(shù):
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>();
//調(diào)用注冊的方法
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>();
//調(diào)用注冊的方法
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);
}
/**
* 根據(jù)用戶名查詢用戶信息
* @param loginName
* @return
*/
@RequestMapping("/checkName")
@ResponseBody
public String checkName(String loginName){
Map<String,Object> map = new HashMap<String,Object>();
//調(diào)用注冊的方法
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){
//調(diào)用查詢房間詳情的方法
Room room = roomService.findById(id);
//將數(shù)據(jù)放到模型中
model.addAttribute("room",room);
return "detail";
}
/**
* 查詢?nèi)糠块g列表
* @param model
* @return
*/
@RequestMapping("/list.html")
public String list(Model model){
//調(diào)用查詢所有房型列表的方法
List<RoomType> roomTypeList = roomTypeService.findRoomTypeList(null);
//創(chuàng)建查詢條件類
RoomVo roomVo = new RoomVo();
roomVo.setStatus(3);//可預訂
//查詢房間列表
List<Room> roomList = roomService.findRoomListByPage(roomVo);
//將數(shù)據(jù)放到模型中
model.addAttribute("roomTypeList",roomTypeList);
model.addAttribute("roomList",roomList);
return "hotelList";
}
/**
* 根據(jù)房型查詢房間列表
* @param model
* @return
*/
@RequestMapping("/list/{id}")
public String list(@PathVariable Integer id,Model model){
//調(diào)用查詢所有房型列表的方法
List<RoomType> roomTypeList = roomTypeService.findRoomTypeList(null);
//創(chuàng)建查詢條件類
RoomVo roomVo = new RoomVo();
roomVo.setRoomtypeid(id);//房型ID
roomVo.setStatus(3);//可預訂
//查詢房間列表
List<Room> roomList = roomService.findRoomListByPage(roomVo);
//將數(shù)據(jù)放到模型中
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>();
//調(diào)用添加訂單的方法
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());
//調(diào)用分頁查詢的方法
List<Role> roleList = roleService.findRoleList(roleVo);
//創(chuàng)建分頁對象
PageInfo<Role> pageInfo = new PageInfo<Role>(roleList);
//返回數(shù)據(jù)
return new DataGridViewResult(pageInfo.getTotal(),pageInfo.getList());
}
//添加部門信息
@RequestMapping("/addRole")
public String addRole(Role role){
//創(chuàng)建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){
//調(diào)用查詢菜單列表的方法
List<Menu> menuList = menuService.findMenuList();
//根據(jù)角色ID查詢該角色已經(jīng)擁有的菜單ID的方法
List<Integer> currentRoleMenuIds = menuService.findMenuIdListByRoleId(roleId);
//定義集合,保存菜單信息
List<Menu> currentMenus = new ArrayList<Menu>();
//判斷集合是否存在數(shù)據(jù)
if(currentRoleMenuIds!=null && currentRoleMenuIds.size()>0){
//根據(jù)菜單ID查詢該菜單的信息
currentMenus = menuService.findMenuByMenuId(currentRoleMenuIds);
}
//創(chuàng)建集合保存樹節(jié)點信息
List<TreeNode> treeNodes = new ArrayList<TreeNode>();
//循環(huán)遍歷集合
for (Menu menu : menuList) {
//定義變量,標識是否選中
String checkArr = "0";//0表示復選框不選中,1表示選中復選框
//內(nèi)層循環(huán)遍歷當前角色擁有的權(quán)限菜單
//循環(huán)比較的原因:比較兩個集合中的數(shù)據(jù)是否有相同的,有相同的表示當前角色擁有這個權(quán)限
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));
}
//將數(shù)據(jù)返回到頁面
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>();
//調(diào)用保存角色菜單關(guān)系的方法
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();
//調(diào)用根據(jù)員工ID查詢該員工擁有的角色列表的方法
List<Integer> roleIds = roleService.findEmployeeRoleByEmployeeId(id);
//循環(huán)比較兩個集合中的角色ID值是否相等,相等則選中該角色
for (Map<String, Object> map : roleList) {
//定義變量,標識是否選中
boolean flag = false;//不選中
//獲取每一個角色ID
Integer rid = (Integer) map.get("id");//id是主鍵,以主鍵作為map集合中key
//內(nèi)層循環(huán)遍歷該員工擁有的角色列表
for (Integer roleId : roleIds) {
//判斷兩個集合中是否存在角色ID相同
if(rid == roleId){
flag = true;//選中該角色
break;
}
}
//將狀態(tài)保存在map集合中
map.put("LAY_CHECKED",flag);//key必須是LAY_CHECKED
}
return new DataGridViewResult(Long.valueOf(roleList.size()),roleList);
}
}以上就是Java實戰(zhàn)之酒店人事管理系統(tǒng)的實現(xiàn)的詳細內(nèi)容,更多關(guān)于Java酒店管理系統(tǒng)的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
springboot themaleaf 第一次進頁面不加載css的問題
這篇文章主要介紹了springboot themaleaf 第一次進頁面不加載css的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
SpringBoot+SpringCloud用戶信息微服務傳遞實現(xiàn)解析
這篇文章主要介紹了SpringBoot+SpringCloud實現(xiàn)登錄用戶信息在微服務之間的傳遞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11
3行代碼快速實現(xiàn)Spring Boot Oauth2服務功能
oauthserver是一個基于Spring Boot Oauth2的完整的獨立的Oauth服務器。僅僅需要創(chuàng)建相關(guān)數(shù)據(jù)表,修改數(shù)據(jù)庫的連接信息,你就可以得到一個Oauth服務器。這篇文章給大家介紹3行代碼快速實現(xiàn)Spring Boot Oauth2服務功能,需要的朋友參考下吧2018-04-04
SpringBoot RedisTemplate分布式鎖的項目實戰(zhàn)
本文主要介紹了SpringBoot RedisTemplate分布式鎖的項目實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-05-05

