Java 實(shí)戰(zhàn)練手項(xiàng)目之酒店管理系統(tǒng)的實(shí)現(xiàn)流程
一、項(xiàng)目簡(jiǎn)述
功能包括(管理員和用戶角色): 酒店預(yù)訂,酒店管理,員工管理,入住原理,訂單管理, 樓層管理,退房管理,營(yíng)業(yè)額報(bào)表等等。
二、項(xiàng)目運(yùn)行
環(huán)境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
項(xiàng)目技術(shù): JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
管理員控制器層:
/** * 控制器層 * @author Administrator * */ @Controller @CrossOrigin @RequestMapping("/admin") public class AdminController { @Autowired private AdminService adminService; @Autowired BCryptPasswordEncoder encoder; /** * 查詢?nèi)繑?shù)據(jù) * @return */ @ResponseBody @RequestMapping(method= RequestMethod.GET) public Result findAll(){ return new Result(true, StatusCode.OK,"查詢成功",adminService.findAll()); } /** * 根據(jù)ID查詢 * @param id ID * @return */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.GET) public Result findById(@PathVariable Long id){ return new Result(true,StatusCode.OK,"查詢成功",adminService.findById(id)); } /** * 分頁(yè)+多條件查詢 * @param searchMap 查詢條件封裝 * @param page 頁(yè)碼 * @param size 頁(yè)大小 * @return 分頁(yè)結(jié)果 */ @ResponseBody @RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST) public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){ Page<Admin> pageList = adminService.findSearch(searchMap, page, size); return new Result(true,StatusCode.OK,"查詢成功", new PageResult<Admin>(pageList.getTotalElements(), pageList.getContent()) ); } /** * 根據(jù)條件查詢 * @param searchMap * @return */ @ResponseBody @RequestMapping(value="/search",method = RequestMethod.POST) public Result findSearch( @RequestBody Map searchMap){ return new Result(true,StatusCode.OK,"查詢成功",adminService.findSearch(searchMap)); } /** * 增加 * @param admin */ @ResponseBody @RequestMapping(method=RequestMethod.POST) public Result add(@RequestBody Admin admin ){ adminService.add(admin); return new Result(true,StatusCode.OK,"增加成功"); } /** * 修改 * @param admin */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.PUT) public Result update(@RequestBody Admin admin, @PathVariable Long id ){ admin.setId(id); adminService.update(admin); return new Result(true,StatusCode.OK,"修改成功"); } /** * 刪除 * @param id */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.DELETE) public Result delete(@PathVariable String id ){ adminService.deleteById(id); return new Result(true,StatusCode.OK,"刪除成功"); } /** * 管理員跳轉(zhuǎn) * @return */ @RequestMapping(value = "/adminlogin") public String adminlogin() { return "admin/login/login"; } /** * admin登錄 * @param loginMap * @param request * @return */ @ResponseBody @RequestMapping(value="/login",method= RequestMethod.POST) public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){ Admin admin = adminService.finbyNameAndPassword(loginMap.get("name"),loginMap.get("password")); if (admin!=null){ request.getSession().setAttribute("admin",admin); Map map=new HashMap(); map.put("name",admin.getName()); return new Result(true,StatusCode.OK,"登錄成功"); }else { return new Result(false,StatusCode.ERROR,"賬號(hào)密碼錯(cuò)誤"); } } /** * 管理員登錄成功 * @return */ @RequestMapping(value = "/index") public String success(){ return "admin/index"; } /** * 用戶列表 * @return */ @RequestMapping(value = "/userList") public String user(){ return "admin/usermanage/userList"; } @RequestMapping(value = "/echars") public String analysis(){ return "admin/echars/console"; } /** * 管理員退出登錄 * @return */ @RequestMapping(value = "/logout") public String logout(HttpSession session){ session.removeAttribute("admin"); return "admin/login/login"; } /** * 管理員修改密碼 * @return */ @ResponseBody @RequestMapping(value = "/passwd") public Result passwd(HttpSession session,String passwd,String oldpad){ Admin admindmin= (Admin) session.getAttribute("admin"); Admin admins=adminService.findById(admindmin.getId()); boolean old=encoder.matches(oldpad,admins.getPassword()); if (old){ String newPassd=encoder.encode(passwd); admins.setPassword(newPassd); adminService.update(admins); return new Result(true,StatusCode.OK,"成功"); }else { return new Result(false,StatusCode.ERROR,"更新失敗"); } } }
輪播內(nèi)容控制器層:
/** * 輪播內(nèi)容控制器層 * @author Administrator * */ @Controller @CrossOrigin @RequestMapping("/carousel") public class CarouselController { @Autowired private CarouselService carouselService; /** * 查詢?nèi)繑?shù)據(jù) * @return */ @ResponseBody @RequestMapping(value = "/list",method= RequestMethod.GET) public Result findAll(){ List<Carousel> all = carouselService.findAll(); return new Result(true, StatusCode.OK,"查詢成功",all,all.size()); } /** * 根據(jù)ID查詢 * @param id ID * @return */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.GET) public Result findById(@PathVariable Long id){ return new Result(true,StatusCode.OK,"查詢成功",carouselService.findById(id)); } /** * 分頁(yè)+多條件查詢 * @param searchMap 查詢條件封裝 * @param page 頁(yè)碼 * @param size 頁(yè)大小 * @return 分頁(yè)結(jié)果 */ @ResponseBody @RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST) public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){ Page<Carousel> pageList = carouselService.findSearch(searchMap, page, size); return new Result(true,StatusCode.OK,"查詢成功", new PageResult<Carousel>(pageList.getTotalElements(), pageList.getContent()) ); } /** * 根據(jù)條件查詢 * @param searchMap * @return */ @ResponseBody @RequestMapping(value="/search",method = RequestMethod.POST) public Result findSearch( @RequestBody Map searchMap){ return new Result(true,StatusCode.OK,"查詢成功",carouselService.findSearch(searchMap)); } /** * 輪播內(nèi)容添加 * @param carousel */ @ResponseBody @RequestMapping(value = "/add",method=RequestMethod.POST) public Result add(Carousel carousel){ if(StringUtils.isEmpty(carousel.getTitle())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懙谝恍袃?nèi)容"); } if(StringUtils.isEmpty(carousel.getScenictime())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懙诙袃?nèi)容"); } if(StringUtils.isEmpty(carousel.getComment())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懙谌袃?nèi)容"); } if(carouselService.add(carousel)==null){ return new Result(false,StatusCode.ERROR,"輪播信息添加失敗"); } return new Result(true,StatusCode.OK,"添加成功"); } /** * 輪播內(nèi)容修改 * @param carousel */ @ResponseBody @RequestMapping(value="/edit",method= RequestMethod.PUT) public Result update(Carousel carousel){ if(StringUtils.isEmpty(carousel.getTitle())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懙谝恍袃?nèi)容"); } if(StringUtils.isEmpty(carousel.getScenictime())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懙诙袃?nèi)容"); } if(StringUtils.isEmpty(carousel.getComment())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懙谌袃?nèi)容"); } if(carouselService.update(carousel)==null){ return new Result(false,StatusCode.ERROR,"輪播信息修改成功!"); } return new Result(true,StatusCode.OK,"修改成功"); } /** * 刪除 * @param id */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.DELETE) public Result delete(@PathVariable Long id ){ try{ carouselService.deleteById(id); }catch (Exception e){ e.printStackTrace(); new Result(false,StatusCode.ERROR,"刪除失敗"); } return new Result(true,StatusCode.OK,"刪除成功"); } /** * 后臺(tái)輪播列表 * @return */ @RequestMapping(value = "/carouselList") public String carouselList(){ return "admin/carouselmanage/carouselList"; } }
景點(diǎn)控制器層:
/** * 景點(diǎn)控制器層 * */ @Controller @CrossOrigin @RequestMapping("/scenic") public class ScenicController { @Autowired private ScenicService scenicService; /** * 查詢?nèi)繑?shù)據(jù) * @return */ @ResponseBody @RequestMapping(value = "list",method= RequestMethod.GET) public Result findAll(){ List<Scenic> all = scenicService.findAll(); return new Result(true, StatusCode.OK,"查詢成功",all,all.size()); } /** * 根據(jù)ID查詢 * @param id ID * @return */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.GET) public Result findById(@PathVariable Long id){ return new Result(true,StatusCode.OK,"查詢成功",scenicService.findById(id)); } /** * 分頁(yè)+多條件查詢 * @param searchMap 查詢條件封裝 * @param page 頁(yè)碼 * @param size 頁(yè)大小 * @return 分頁(yè)結(jié)果 */ @ResponseBody @RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST) public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){ Page<Scenic> pageList = scenicService.findSearch(searchMap, page, size); return new Result(true,StatusCode.OK,"查詢成功", new PageResult<Scenic>(pageList.getTotalElements(), pageList.getContent()) ); } /** * 根據(jù)條件查詢 * @param searchMap * @return */ @ResponseBody @RequestMapping(value="/search",method = RequestMethod.POST) public Result findSearch( @RequestBody Map searchMap){ return new Result(true,StatusCode.OK,"查詢成功",scenicService.findSearch(searchMap)); } /** * 景點(diǎn)添加操作 * @param scenic */ @ResponseBody @RequestMapping(method=RequestMethod.POST) public Result add(@RequestBody Scenic scenic){ if(StringUtils.isEmpty(scenic.getName())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢包c(diǎn)名稱"); } if(StringUtils.isEmpty(scenic.getContry())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢包c(diǎn)所在地"); } if(StringUtils.isEmpty(scenic.getComment())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢包c(diǎn)概述"); } if(StringUtils.isEmpty(scenic.getMiaoshu())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懺敿?xì)描述"); } scenic.setCommentCount(0); scenic.setStart(0); if(scenicService.add(scenic)==null){ return new Result(false,StatusCode.ERROR,"景點(diǎn)添加失敗"); } return new Result(true,StatusCode.OK,"景點(diǎn)添加成功"); } /** * 景點(diǎn)修改操作 * @param scenic */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.PUT) public Result update(@RequestBody Scenic scenic, @PathVariable Long id ){ if(StringUtils.isEmpty(scenic.getName())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢包c(diǎn)名稱"); } if(StringUtils.isEmpty(scenic.getContry())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢包c(diǎn)所在地"); } if(StringUtils.isEmpty(scenic.getComment())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懢包c(diǎn)概述"); } if(StringUtils.isEmpty(scenic.getMiaoshu())){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懺敿?xì)描述"); } Scenic scenic1ById = scenicService.findById(id); if(scenic1ById==null){ return new Result(false,StatusCode.ERROR,"該景點(diǎn)不存在"); } BeanUtils.copyProperties(scenic,scenic1ById,"id","startdate","img","commentCount"); if(scenicService.update(scenic1ById)==null){ return new Result(false,StatusCode.ERROR,"景點(diǎn)修改失敗"); } return new Result(true,StatusCode.OK,"修改成功"); } /** * 刪除 * @param id */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.DELETE) public Result delete(@PathVariable String id ){ scenicService.deleteById(id); return new Result(true,StatusCode.OK,"刪除成功"); } @RequestMapping(value = "/scenicList") public String scenicList(){ return "admin/scenicmanage/scenicList"; } @RequestMapping(value = "/scenicAdd") public String scenicAdd(){ return "admin/scenicmanage/scenicAdd"; } }
用戶控制器層:
/** * 控制器層 * @author Administrator * */ @RestController @CrossOrigin @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @Autowired private RedisTemplate redisTemplate; @Autowired private HttpServletRequest request; @Autowired BCryptPasswordEncoder encoder; /** * 查詢?nèi)繑?shù)據(jù) * * @return */ @RequestMapping(value = "userList",method = RequestMethod.GET) public Result findAll() { List<User> all = userService.findAll(); return new Result(true, StatusCode.OK, "查詢成功",all,all.size()); } /** * 根據(jù)ID查詢 * * @param id ID * @return */ @RequestMapping(value = "/{id}", method = RequestMethod.GET) public Result findById(@PathVariable Long id) { return new Result(true, StatusCode.OK, "查詢成功", userService.findById(id)); } /** * 分頁(yè)+多條件查詢 * @param searchMap 查詢條件封裝 * @param page 頁(yè)碼 * @param size 頁(yè)大小 * @return 分頁(yè)結(jié)果 */ @RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST) public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){ Page<User> pageList = userService.findSearch(searchMap, page, size); return new Result(true,StatusCode.OK,"查詢成功", new PageResult<User>(pageList.getTotalElements(), pageList.getContent()) ); } /** * 根據(jù)條件查詢 * @param searchMap * @return */ @RequestMapping(value="/search",method = RequestMethod.POST) public Result findSearch( @RequestBody Map searchMap){ return new Result(true,StatusCode.OK,"查詢成功",userService.findSearch(searchMap)); } /** * 增加 * @param user */ @RequestMapping(method=RequestMethod.POST) public Result add(@RequestBody User user ){ userService.add(user); return new Result(true,StatusCode.OK,"增加成功"); } /** * 修改 * @param user */ @ResponseBody @RequestMapping(value="/{id}",method= RequestMethod.PUT) public Result update(User user, @PathVariable Long id ){ User oldUser=userService.findById(id); user.setId(id); user.setPassword(oldUser.getPassword()); userService.update(user); return new Result(true,StatusCode.OK,"修改成功"); } /** * 修改 * @param user */ @RequestMapping(value="/change",method= RequestMethod.POST,consumes = "application/json") public Result update(@RequestBody User user, HttpSession session){ User us= (User) session.getAttribute("user"); user.setId(us.getId()); user.setPassword(us.getPassword()); userService.update(user); return new Result(true,StatusCode.OK,"修改成功"); } /** * 刪除 * @param id */ @RequestMapping(value="/{id}",method= RequestMethod.DELETE) public Result delete(@PathVariable String id ){ userService.deleteById(id); return new Result(true,StatusCode.OK,"刪除成功"); } /** * 用戶注冊(cè) * @param code * @param user * @return */ @ResponseBody @RequestMapping(value = "/register/",method = RequestMethod.POST) public Result regist(@RequestParam(name = "code") String code,User user,HttpServletRequest request){ String sCode = (String) request.getSession().getAttribute("user_register_email_code"); if(!sCode.equalsIgnoreCase(code)){ return new Result(false,StatusCode.ERROR,"驗(yàn)證碼錯(cuò)誤!"); } userService.add(user); return new Result(true,StatusCode.OK,"注冊(cè)成功"); } /** *判斷賬號(hào)是否存在 * @param user * @return */ @RequestMapping(value = "/checkPhone",method = RequestMethod.POST) @ResponseBody public Result checkPhone(User user){ String phone = user.getMobile(); if(!StringUtil.isMobile(phone)){ return new Result(false,StatusCode.ERROR,"請(qǐng)?zhí)顚懻_的手機(jī)號(hào)!"); } User userphone= userService.findByMobile(phone); if (userphone == null){ return new Result(true,StatusCode.OK,"該手機(jī)號(hào)可以注冊(cè)"); } return new Result(false,StatusCode.ERROR,"該手機(jī)號(hào)已經(jīng)被注冊(cè)"); } /** * 郵箱驗(yàn)證 * @param user * @return */ @RequestMapping(value = "/email",method = RequestMethod.POST) @ResponseBody public Result findemail(User user){ String email = user.getEmail(); if(!StringUtil.emailFormat(email)){ return new Result(true,StatusCode.ERROR,"請(qǐng)?zhí)顚懻_的郵箱格式"); } User useremail= userService.findByEmail(email); if (useremail == null){ return new Result(true,StatusCode.OK,"該郵箱可以注冊(cè)"); } return new Result(false,StatusCode.ERROR,"該郵箱已經(jīng)被注冊(cè)"); } /** * 用戶登錄 * @param loginMap * @return */ @ResponseBody @RequestMapping(value="/login",method=RequestMethod.POST) public Result login(@RequestParam Map<String,String> loginMap,HttpServletRequest request){ String mobile = loginMap.get("login"); if (StringUtil.isMobile(mobile)){ User user = userService.findByMobileAndPassword(loginMap.get("login"),loginMap.get("password")); if(user!=null){ request.getSession().setAttribute("user",user); Map map=new HashMap(); return new Result(true,StatusCode.OK,"登陸成功"); }else{ return new Result(false,StatusCode.LOGINERROR,"用戶名或密碼錯(cuò)誤"); } }else { User user = userService.findByNameAndPassword(loginMap.get("login"),loginMap.get("password")); if(user!=null){ request.getSession().setAttribute("user",user); Map map=new HashMap(); map.put("name",user.getName());//姓名 return new Result(true,StatusCode.OK,"登陸成功",map); }else{ return new Result(false,StatusCode.LOGINERROR,"用戶名或密碼錯(cuò)誤"); } } } /** * 用戶注銷 * @param request * @param response * @throws IOException */ @RequestMapping(value="/logout",method=RequestMethod.GET) public void logout(HttpServletRequest request,HttpServletResponse response) throws IOException { request.getSession().setAttribute("user", null); response.sendRedirect(request.getContextPath() + "/dist/view"); } }
以上就是Java 實(shí)戰(zhàn)練手項(xiàng)目之酒店管理系統(tǒng)的實(shí)現(xiàn)流程的詳細(xì)內(nèi)容,更多關(guān)于Java 酒店管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Java代碼實(shí)現(xiàn)酒店管理系統(tǒng)
- Java實(shí)現(xiàn)簡(jiǎn)單酒店管理系統(tǒng)
- Java實(shí)戰(zhàn)之酒店人事管理系統(tǒng)的實(shí)現(xiàn)
- 基于JavaSwing設(shè)計(jì)和實(shí)現(xiàn)的酒店管理系統(tǒng)
- Java實(shí)現(xiàn)簡(jiǎn)單的酒店管理系統(tǒng)
- java實(shí)現(xiàn)酒店管理系統(tǒng)
- Java swing實(shí)現(xiàn)酒店管理系統(tǒng)
- Java實(shí)現(xiàn)酒店客房管理系統(tǒng)
- Java代碼實(shí)現(xiàn)簡(jiǎn)單酒店管理系統(tǒng)
相關(guān)文章
解決JavaEE開發(fā)中字符編碼出現(xiàn)亂碼的問(wèn)題
下面小編就為大家?guī)?lái)一篇解決JavaEE開發(fā)中字符編碼出現(xiàn)亂碼的問(wèn)題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07java編譯時(shí)指定classpath的實(shí)現(xiàn)方法
在Java編程中,classpath是用于指定Java虛擬機(jī)在運(yùn)行時(shí)查找類文件的路徑,本文主要介紹了java編譯時(shí)指定classpath的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10關(guān)于SpringBoot+Mybatis報(bào)MapperScan.factoryBean()問(wèn)題
解決SpringBoot+Mybatis中的MapperScan.factoryBean()問(wèn)題,讓你的項(xiàng)目運(yùn)行更順暢!本指南將帶你一步步解決這個(gè)問(wèn)題,讓你的開發(fā)過(guò)程更加高效,不要錯(cuò)過(guò)這個(gè)實(shí)用指南,快來(lái)一探究竟吧!2024-02-02spring監(jiān)視器actuator配置應(yīng)用
這篇文章主要介紹了spring監(jiān)視器actuator配置應(yīng)用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07Java抓包工具fiddler實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā)
Fiddler是一個(gè)http協(xié)議調(diào)試代理工具,本文主要介紹了Java抓包工具fiddler實(shí)現(xiàn)請(qǐng)求轉(zhuǎn)發(fā),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04SpringBoot工程搭建打包、啟動(dòng)jar包和war包的教程圖文詳解
這篇文章主要介紹了SpringBoot工程搭建打包、啟動(dòng)jar包和war包的教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09RabbitMQ交換機(jī)使用場(chǎng)景和消息可靠性總結(jié)分析
這篇文章主要為大家介紹了RabbitMQ交換機(jī)使用場(chǎng)景和消息可靠性總結(jié)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01JavaWeb Session失效時(shí)間設(shè)置方法
這篇文章主要介紹了JavaWeb Session失效時(shí)間設(shè)置方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-12-12