源码获取:博客首页 "资源" 里下载!

一、项目简述

功能介绍: 前台用户端:用户注册登录,房间展示,房间分类,房间 按价格区间查询,房间评论,房间预订等等 后台管理端:用户信息查询,房间分类管理,房间信息维 护,用户评论查看,入住结账等等

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + maven等等。

用户控制器层:

/*** 控制器层**/
@RestController
@CrossOrigin
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@Autowiredprivate RedisTemplate redisTemplate;@Autowiredprivate HttpServletRequest request;@AutowiredBCryptPasswordEncoder encoder;/*** 查询全部数据** @return*/@RequestMapping(value = "userList",method = RequestMethod.GET)public Result findAll() {List<User> all = userService.findAll();return new Result(true, StatusCode.OK, "查询成功",all,all.size());}/*** 根据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));}/*** 分页+多条件查询* @param searchMap 查询条件封装* @param page 页码* @param size 页大小* @return 分页结果*/@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()) );}/*** 根据条件查询* @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,"删除成功");}/*** 用户注册* @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,"验证码错误!");}userService.add(user);return new Result(true,StatusCode.OK,"注册成功");}/***判断账号是否存在* @param user* @return*/@RequestMapping(value = "/checkPhone",method = RequestMethod.POST)@ResponseBodypublic Result checkPhone(User user){String phone = user.getMobile();if(!StringUtil.isMobile(phone)){return new Result(false,StatusCode.ERROR,"请填写正确的手机号!");}User userphone= userService.findByMobile(phone);if (userphone == null){return new Result(true,StatusCode.OK,"该手机号可以注册");}return new Result(false,StatusCode.ERROR,"该手机号已经被注册");}/*** 邮箱验证* @param user* @return*/@RequestMapping(value = "/email",method = RequestMethod.POST)@ResponseBodypublic Result findemail(User user){String email = user.getEmail();if(!StringUtil.emailFormat(email)){return new Result(true,StatusCode.ERROR,"请填写正确的邮箱格式");}User useremail= userService.findByEmail(email);if (useremail == null){return new Result(true,StatusCode.OK,"该邮箱可以注册");}return new Result(false,StatusCode.ERROR,"该邮箱已经被注册");}/*** 用户登录* @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,"用户名或密码错误");}}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,"用户名或密码错误");}}}/***  用户注销* @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");}}

星级景点控制层:


/*** 星级景点控制层*/
@Controller
@CrossOrigin
@RequestMapping("/travel")
public class RecomTravelController {@Autowiredprivate ScenicService scenicService;@Autowiredprivate ScenicDao scenicDao;@Autowiredprivate HotelService hotelService;@Autowiredprivate HotelDao hotelDao;/***查询星级* @return*/@ResponseBody@RequestMapping(value = "/star",method = RequestMethod.POST)public Result judgeStar(String id,String start){System.out.println(id+"===="+start);Optional<Scenic> s = scenicDao.findById(id);if (s.isPresent()){Scenic scenic = s.get();int valuestar = (Integer.valueOf(start)+Integer.valueOf(scenic.getStart()))/2;scenic.setStart(valuestar);scenicDao.save(scenic);System.out.println("数据不为空!");return new Result(true,1,"","");}else {System.out.println("数据为空!");return new Result(false,0,"","");}}/***查询星级* @return*/@ResponseBody@RequestMapping(value = "/hotel",method = RequestMethod.POST)public Result judgeHotelStar(Long id,String start){Hotel scenic = hotelService.findById(id);if (scenic!=null){int valuestar = (Integer.valueOf(start)+Integer.valueOf(scenic.getStar()))/2;scenic.setStar(valuestar);hotelDao.save(scenic);System.out.println("数据不为空!");return new Result(true,1,"","");}else {System.out.println("数据为空!");return new Result(false,0,"","");}}/*** 查询单个景点* @param model* @param id* @return*/@RequestMapping("/oneAttr")public String One_attr(Model model,Long id){Scenic scenic=scenicService.findById(id);model.addAttribute("oneAttr",scenic);return "page/product";}/*** 景点模糊查询分页* @param model* @param start* @param limit* @param search_key* @return*/@RequestMapping("/search_attrs")public String search_attrs(Model model,@RequestParam(value = "start" ,defaultValue = "0")Integer start,@RequestParam(value = "limit" ,defaultValue = "6")Integer limit,@RequestParam String search_key){start=start<0?0:start;Sort sort=new Sort(Sort.Direction.DESC,"id");Pageable pageable=PageRequest.of(start,limit,sort);Specification specification=new Specification() {@Overridepublic Predicate toPredicate(Root root, CriteriaQuery criteriaQuery, CriteriaBuilder criteriaBuilder) {List<Predicate> scenics=new ArrayList<>();if (StringUtils.isNotBlank(search_key)){scenics.add( criteriaBuilder.like(root.get("name"),"%"+search_key+"%"));}return criteriaBuilder.and(scenics.toArray(new Predicate[scenics.size()]));}};Page<Scenic> page=scenicDao.findAll(specification,pageable);model.addAttribute("name",search_key);model.addAttribute("attrs",page);model.addAttribute("number",page.getNumber());model.addAttribute("numberOfElements",page.getNumberOfElements());model.addAttribute("size",page.getSize());model.addAttribute("totalElements",page.getTotalElements());model.addAttribute("totalPages",page.getTotalPages());model.addAttribute("first",page.isFirst());model.addAttribute("last",page.isLast());return "page/travel";}@RequestMapping("/local")public String localRefresh(Model model,Long id) {Scenic scenic=scenicService.findById(id);System.out.println(scenic.toString());List<Hotel> hotels=hotelService.findByCountryLike(scenic.getContry());Collections.sort(hotels, new Comparator<Hotel>() {@Overridepublic int compare(Hotel o1, Hotel o2) {if (o1.getStar()<o2.getStar()){return 2;}if (o1.getStar().equals(o2.getStar()) ){return 1;}return -1;}});if (hotels.size()>=4){List newList=hotels.subList(0,3);model.addAttribute("scenics",newList);System.out.println("个数:"+newList.size());}else {model.addAttribute("scenics",hotels);System.out.println("个数2:"+hotels.size());}return "page/product::table_refresh";}}

订单控制器层:

/*** 订单控制器层**/
@Controller
@CrossOrigin
@RequestMapping("/orders")
public class OrdersController {@Autowiredprivate OrdersService ordersService;@Autowiredprivate HotelOrdersService hotel_ordersService;@Autowiredprivate HotelService hotelService;@Autowiredprivate ScenicService scenicService;/*** 查询全部数据* @return*/@ResponseBody@RequestMapping(value = "/list",method= RequestMethod.GET)public Result findAll(){List<Orders> all = ordersService.findAll();return new Result(true, StatusCode.OK,"查询成功",all,all.size());}/*** 查询全部订单* @return*/@ResponseBody@RequestMapping(value = "/allorders",method = RequestMethod.POST)public String findAllOrders(HttpSession session, Model model) throws ParseException {User user= (User) session.getAttribute("user");model.addAttribute("orders",ordersService.findOrders(user.getId().toString()));return "index_header::table_refresh";}/*** 查询全部订单* @return*/@ResponseBody@RequestMapping(value = "/allorder",method = RequestMethod.POST)public List<Orders> findAllOrder(HttpSession session) throws ParseException {User user= (User) session.getAttribute("user");return ordersService.findOrders(user.getId().toString());}/*** 查询全部订单* @return*/@ResponseBody@RequestMapping(value = "/allorderhotel",method = RequestMethod.POST)public List<HotelOrders> findAllOrderHotel(HttpSession session){User user= (User) session.getAttribute("user");List<HotelOrders> hotel_orders=hotel_ordersService.hotel_orders(user.getId());return hotel_orders;}/*** 根据ID查询* @param id ID* @return*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.GET)public Result findById(@PathVariable Long id){return new Result(true,StatusCode.OK,"查询成功",ordersService.findById(id));}/*** 分页+多条件查询* @param searchMap 查询条件封装* @param page 页码* @param size 页大小* @return 分页结果*/@ResponseBody@RequestMapping(value="/search/{page}/{size}",method=RequestMethod.POST)public Result findSearch(@RequestBody Map searchMap , @PathVariable int page, @PathVariable int size){Page<Orders> pageList = ordersService.findSearch(searchMap, page, size);return  new Result(true,StatusCode.OK,"查询成功",  new PageResult<Orders>(pageList.getTotalElements(), pageList.getContent()) );}/*** 根据条件查询* @param searchMap* @return*/@ResponseBody@RequestMapping(value="/search",method = RequestMethod.POST)public Result findSearch( @RequestBody Map searchMap){return new Result(true,StatusCode.OK,"查询成功",ordersService.findSearch(searchMap));}/*** 订单添加操作* @param orders*/@ResponseBody@RequestMapping(value ="/add",method=RequestMethod.POST)public Result add(Orders orders, HttpSession session){//获取数量User user = (User) session.getAttribute("user");if (user == null){return new Result(false,StatusCode.ACCESSERROR,"请登录");}return ordersService.add(orders,user.getId(),orders.getId(),orders.getQty());}/*** 修改* @param*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.PUT)public Result update(@PathVariable Long id){ordersService.updateStatus(id);return new Result(true,StatusCode.OK,"修改成功");}/*** 删除* @param id*/@ResponseBody@RequestMapping(value="/{id}",method= RequestMethod.DELETE)public Result delete(@PathVariable Long id ){ordersService.deleteById(id);return new Result(true,StatusCode.OK,"删除成功");}@RequestMapping(value = "/ordersList")public String ordersList(){return "admin/ordersmanage/orderslist";}/*** 酒店评分* @param hotel* @return*/@ResponseBody@PostMapping("/hotelOrderStar")public Result hotelOrderStar(Hotel hotel,@RequestParam("orderId")Long orderId){Long id = hotel.getId();Hotel newHotel = hotelService.findById(id);if(newHotel==null){return new Result(false,StatusCode.ERROR,"未找到该酒店!");}Integer currentStar = hotel.getStar();Integer totalStar = newHotel.getStar();if(currentStar<0){return new Result(false,StatusCode.ERROR,"请选择评分!");}Integer commentCount = newHotel.getCommentCount();commentCount=commentCount+1;totalStar=currentStar+totalStar;int avgStar = totalStar / commentCount;hotel.setCommentCount(commentCount);hotel.setStar(avgStar);Integer hotel1 = hotelService.updateStar(hotel);hotel_ordersService.updateStarStatus(orderId);if(hotel1==null){return new Result(false,StatusCode.ERROR,"评分更新失败!");}return new Result(true,StatusCode.OK,"评价成功!");}/*** 景点评分* @param scenic* @return*/@ResponseBody@PostMapping("/travelOrderStar")public Result travelOrderStar(Scenic scenic,@RequestParam("orderId")Long orderId){Long id = scenic.getId();Scenic newScenic = scenicService.findById(id);if(newScenic==null){return new Result(false,StatusCode.ERROR,"未找到该景点!");}Integer totalStar = newScenic.getStart();Integer currentStar = scenic.getStart();if(currentStar<0){return new Result(false,StatusCode.ERROR,"请选择评分!");}Integer commentCount = newScenic.getCommentCount();commentCount=commentCount+1;totalStar=currentStar+totalStar;int avgStar = totalStar / commentCount;scenic.setCommentCount(commentCount);scenic.setStart(avgStar);Integer scenic1 = scenicService.updateStar(scenic);ordersService.updateStarStatus(orderId);if(scenic1==null){return new Result(false,StatusCode.ERROR,"评分更新失败!");}return new Result(true,StatusCode.OK,"评价成功!");}}

源码获取:博客首页 "资源" 里下载!

Java项目:前台预定+后台管理酒店管理系统(java+SSM+jsp+mysql+maven)相关推荐

  1. 基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的酒店管理系统(java+SSM+jsp+mysql+maven) 主要技术:java springmvc mybatis mysql tomcat js jquery js ...

  2. 基于javaweb+jsp的小区物业管理系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的小区物业管理系统(java+SSM+jsp+mysql+maven) 一.项目简述 功能包括: 分为管理员及普通业主角色,业主信息,社区房屋,维护 管理,社区车辆,社区投诉 ...

  3. 基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven)

    基于javaweb+jsp的在线点餐系统(java+SSM+jsp+mysql+maven) 一.项目简述 功能包括: 在线点餐,评论,购物车,下单,支付,管理员,店家多 商家管理,后台评论管理,订单 ...

  4. Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述功能 javaweb 网上商城系统,前台+后台管理,用户注册,登录,上哦展示,分组展示,搜索,收货地址管理,购物车管理,添加,购 ...

  5. Java项目:酒店管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 主要技术:java springmvc  mybatis   mysql  tomcat js   jauery  jsp   log4j等 ...

  6. Java项目:在线高中考试系统(java+SSM+Jsp+Mysql+Maven)

    源码获取:博客首页 "资源" 里下载! 项目分为前台和后台,前台主要为学生角色.后台主要为管理员角色. 管理员添加试题和发布试卷,学生负责在线考试.在线查看成绩和错题记录列表等. ...

  7. Java项目:前台+后台精品图书管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 登录注册,办理借阅.借阅记录,预约借阅,借出未还, 借阅逾期,学生管理,图书管理,书库分类查询搜索. 二.项目运行 ...

  8. Java项目:图书管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括(管理员和学生角色): 管理员和学生登录,图书管理,图书添加删除修改,图书 借阅,图书归还,图书查看,学生管理,借还管 ...

  9. Java项目:教材管理系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 功能包括: 管理员可以增删改查教材.教材商.入库教材.用户(用 户包括学生和教师)可以对教材商.教材进行.xcel的导入 导出 ...

最新文章

  1. 面试官:来说说单点登录的三种实现方式
  2. Hive:解决Hive创建文件数过多的问题
  3. BZOJ 1444: [Jsoi2009]有趣的游戏
  4. PyQt5 技巧篇-便于文字排版的等宽字体推荐:Source Code Pro的中文为英文两倍宽字体
  5. C#方法重载(overload)方法重写(override)隐藏(new)
  6. python dialect='excel'是什么意思_python读取和生成excel文件
  7. sas数据导入终极汇总-之一
  8. SpringBoot 配置文件(yml)
  9. 速成pytorch学习——10天.训练模型的3种方法
  10. Windows 7 Gadget的打包问题
  11. maven为什么删除了一致弹出这个模块的文件夹_史诗级!有手就会的Maven教程(四)...
  12. Ubuntu18.04安装python3.7.7和tensorflow-gpu 2.2.0
  13. Qt使用QAudioRecorder进行音频采集,以及声音、热红外和可见光数据采集软件效果
  14. 多继承下的super()指向的不一定是直接父类
  15. 防火墙状态检测及会话表技术
  16. Backpropagation Algorithm 的梯度
  17. 用友U8 ERP系统材料出库单打印格式设置-表格格式调整
  18. c语言大作业背单词,c语言必背代码 c语言入门必背单词 c语言必背100代码
  19. HFSS印刷偶极子天线(3)
  20. Vue3 异步组件 suspense

热门文章

  1. linux 文件查找命令集:find,locate,wheres,which,type
  2. 递归和循环:跳台阶和变态跳台阶和矩形覆盖
  3. 微信公众号开发的一些配置
  4. 让你的javascript函数拥有记忆功能,降低全局变量的使用
  5. 2016 - 1- 21 - RunLoop使用(2016-1-24修改一次)(2016 - 1 - 24 再次修改)
  6. DDD领域驱动设计之聚合、实体、值对象
  7. 银监会警示担保圈贷款风险 联保贷款变异 防多米诺效应
  8. winform动态的文字效果
  9. .net 连接ORACLE 数据库的例子
  10. NetBeans配置Xdebug