基于javaweb+mysql的springboot酒店预订管理系统(java+springboot+vue+maven+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot酒店预订管理系统(java+springboot+vue+maven+mysql)
一、项目运行 环境配置:
Jdk1.8 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。
*/
@RequestMapping(value = "/{orderId}")
public AjaxResult getById(@PathVariable Integer orderId){
return ResponseTool.success(orderService.selectById(orderId));
}
/**
* 根据姓名、预留手机号查找订单
* 主要用于客户入住
* @param name
* @param phone
* @return
*/
@RequestMapping(value = "/withNameAndPhone")
public AjaxResult getByNameAndPhone(String name,String phone){
return ResponseTool.success(orderService.selectByNameAndPhone(name,phone));
}
}
/**
* @ProjectName: hotel
* @Package: cn.mafangui.hotel.controller.worker
* @ClassName: OpNoticeController
* @description:公告管理控制层
* @modified By:
}
@RequestMapping(value = "/admin",method = RequestMethod.POST)
public AjaxResult workerLogin(String username, String password,
HttpServletRequest request){
if(StringUtils.isEmpty(username)){
return ResponseTool.failed("用户名不能为空");
}else if(StringUtils.isEmpty(password)) {
return ResponseTool.failed("密码不能为空");
}
Worker worker = workerService.login(username,password);
if(worker==null){
return ResponseTool.failed("用户名或密码不正确");
}
HttpSession session = request.getSession();
session.setAttribute("worker",worker);
session.setAttribute("userId",worker.getWorkerId());
session.setAttribute("role",worker.getRole());
HashMap<String, String> map = new HashMap<>();
map.put("sessionId",session.getId());
map.put("role",worker.getRole());
map.put("id",worker.getWorkerId().toString());
return ResponseTool.success(map);
}
}
/**
* @ProjectName: hotel
* @Package: cn.mafangui.hotel.controller.worker
* @ClassName: OpMsgController
}
public class SessionInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(session.getAttribute("userId") != null){
return true;
}else {
setCorsMappings(request, response);
PrintWriter writer = response.getWriter();
AjaxResult result = ResponseTool.failed(MsgType.NOT_LOGIN);
ObjectMapper mapper = new ObjectMapper();
writer.write(mapper.writeValueAsString(result));
return false;
}
}
private void setCorsMappings(HttpServletRequest request, HttpServletResponse response){
String origin = request.getHeader("Origin");
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization");
response.setHeader("Access-Control-Allow-Credentials", "true");
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
if(userService.updateUser(user)==1)
return ResponseTool.success("修改成功");
return ResponseTool.failed("修改失败");
}
/**
* 获取个人资料
* @param request
* @return
*/
@RequestMapping(value = "/profile")
public AjaxResult getProfile(HttpServletRequest request){
String username = (String) request.getSession().getAttribute("username");
User user = userService.selectByUsername(username);
if(user==null) return ResponseTool.failed("未知错误");
user.setPassword(null);
StringBuilder sb = new StringBuilder(user.getIdcard());
sb.replace(5,12,"********");
user.setIdcard(sb.toString());
return ResponseTool.success(user);
}
/**
* 注销
* @param request
* @return
*/
@RequestMapping(value = "/logout",method = RequestMethod.POST)
public AjaxResult logout(HttpServletRequest request){
HttpSession session = request.getSession();
session.removeAttribute("userId");
session.removeAttribute("username");
return ResponseTool.success("注销成功");
}
}
@RestController
@RequestMapping(value = "/op/user")
public class OpUserController {
@Autowired
private UserService userService;
@RequestMapping(value = "")
public AjaxResult getAllUser(){
return ResponseTool.success(userService.selectAllUser());
}
@RequestMapping(value = "/count")
public AjaxResult getUserCount(){
return ResponseTool.success(userService.getUserCount());
}
@RequestMapping(value = "/delete/{userId}")
public AjaxResult deleteUser(@PathVariable Integer userId){
int re = userService.deleteUser(userId);
if(re!=1) return ResponseTool.failed();
return ResponseTool.success();
}
@RequestMapping(method = RequestMethod.POST,value = "/add")
public AjaxResult userAdd(String username,String password,String name,String gender,String phone,String email,String address,String idcard){
User user = new User(username,password,name,gender,phone,email,address,idcard);
int re = userService.addUser(user);
if(re!=1) return ResponseTool.failed();
return ResponseTool.success();
}
@RequestMapping(method = RequestMethod.POST,value = "/update")
public AjaxResult userUpdate(Integer userId, String name, String gender, String phone,
String email, String address, String idcard, HttpServletRequest request){
HttpSession session = request.getSession();
if (!session.getAttribute("userId").equals(userId)){
return ResponseTool.failed(MsgType.PERMISSION_DENIED);
@Autowired
private RoomTypeService roomTypeService;
/**
* 所有房型
* @return
*/
@RequestMapping(value = "")
public AjaxResult getAllRoomType(){
List<RoomType> rooms = roomTypeService.findAllType();
return ResponseTool.success(rooms);
}
/**
* 查找有余量的房型
* @return
*/
@RequestMapping(value = "/rest")
public AjaxResult findAllRestRoomType(){
return ResponseTool.success(roomTypeService.findAllRestType());
}
/**
* 根据id查找房型
* @param typeId
* @return
*/
@RequestMapping(value = "/{typeId}")
public AjaxResult getById(@PathVariable int typeId){
return ResponseTool.success(roomTypeService.selectById(typeId));
}
/**
* 添加房型
* @param roomType
* @param price
* @param discount
* @param area
* @param bedNum
* @param bedSize
* @param window
* @param remark
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/add")
public AjaxResult addRoomType(String roomType,Double price,Double discount,Integer area,
Integer bedNum,String bedSize,Integer window,String remark,Integer rest){
RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window);
rt.setRest(rest);
int result = roomTypeService.insert(rt);
/**
* @ProjectName: hotel
* @Package: cn.mafangui.hotel.controller.worker
* @ClassName: OpMsgController
* @description:留言管理
* @modified By:
* @version: v1.0.0$
*/
@RestController
@RequestMapping(value = "/op/msg")
public class OpMsgController {
@Autowired
private MsgService msgService;
/**
* 添加公告
* 订单状态默认为未付款状态
*/
@RequestMapping(value = "/add")
public AjaxResult addNotice(String title, String content, @DateTimeFormat(pattern = "yyyy-MM-dd") Date time, String userId, String userName, String phone,String role) {
Msg msg = new Msg(0,title, content, time, Integer.parseInt(userId), userName, phone,role);
int re = msgService.insert(msg);
if (re != 1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("添加成功.");
}
@RequestMapping(value = "/delete")
public AjaxResult deleteNotice(int orderId) {
int re = msgService.delete(orderId);
if (re != 1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("删除成功.");
}
@RequestMapping(value = "/update")
@RequestMapping(value = "/count")
public AjaxResult getDishesCount() {
return ResponseTool.success(dishesManagerService.getDishesCount());
}
/**
* 根据id号查询
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}")
public AjaxResult getById(@PathVariable Integer id) {
return ResponseTool.success(dishesManagerService.selectById(id));
}
}
@RestController
@RequestMapping(value = "/admin/operator")
public class OperatorController {
@Autowired
private WorkerService workerService;
@RequestMapping(method = RequestMethod.POST,value = "/delete/{workerId}")
public AjaxResult deleteOperator(@PathVariable Integer workerId){
int re = workerService.delete(workerId);
if(re!=1) ResponseTool.failed();
return ResponseTool.success("删除成功");
}
@RequestMapping(value = "")
public AjaxResult getAllOperator(){
return ResponseTool.success(workerService.selectByRole(Role.OPERATOR.getValue()));
* @param username
* @param oldPassword
* @param newPassword
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/updatePassword")
public AjaxResult updatePassword(String username,String oldPassword,String newPassword){
User user = userService.selectByUsernameAndPassword(username,oldPassword);
if (user == null){
return ResponseTool.failed("密码不对");
}
user.setPassword(newPassword);
if(userService.updateUser(user)==1)
return ResponseTool.success("修改成功");
return ResponseTool.failed("修改失败");
}
/**
* 获取个人资料
* @param request
* @return
*/
@RequestMapping(value = "/profile")
public AjaxResult getProfile(HttpServletRequest request){
String username = (String) request.getSession().getAttribute("username");
User user = userService.selectByUsername(username);
if(user==null) return ResponseTool.failed("未知错误");
user.setPassword(null);
StringBuilder sb = new StringBuilder(user.getIdcard());
sb.replace(5,12,"********");
user.setIdcard(sb.toString());
return ResponseTool.success(user);
}
/**
* 注销
* @param request
* @return
*/
@RequestMapping(value = "/logout",method = RequestMethod.POST)
public AjaxResult logout(HttpServletRequest request){
HttpSession session = request.getSession();
session.removeAttribute("userId");
@RequestMapping(value = "/update")
public AjaxResult update(int checkId,String roomNumber){
CheckIn checkIn = new CheckIn();
checkIn.setCheckInId(checkId);
checkIn.setRoomNumber(roomNumber);
if(checkInService.update(checkIn)!=1)
return ResponseTool.failed("更新失败");
return ResponseTool.success("更新成功");
}
@RequestMapping(value = "/{checkId}")
public AjaxResult getById(@PathVariable int checkId){
return ResponseTool.success(checkInService.selectById(checkId));
}
@RequestMapping(value = "")
public AjaxResult getAll(){
return ResponseTool.success(checkInService.selectAll());
}
}
public class AdminInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(session.getAttribute("role").equals(Role.ADMIN.getValue())){
return true;
}else {
public AjaxResult addRoomType(String roomType,Double price,Double discount,Integer area,
Integer bedNum,String bedSize,Integer window,String remark,Integer rest){
RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window);
rt.setRest(rest);
int result = roomTypeService.insert(rt);
if(result!=1) return ResponseTool.failed("添加失败");
return ResponseTool.success("添加成功");
}
/**
* 修改房型
* @param typeId
* @param roomType
* @param price
* @param discount
* @param area
* @param bedNum
* @param bedSize
* @param window
* @param rest
* @param remark
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/update")
public AjaxResult updateRoomType(Integer typeId,String roomType,Double price,Double discount,Integer area,
Integer bedNum,String bedSize,Integer window,Integer rest,String remark){
RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window);
rt.setTypeId(typeId);
rt.setRest(rest);
int result = roomTypeService.update(rt);
if(result!=1) return ResponseTool.failed("修改失败");
return ResponseTool.success("修改成功");
}
/**
* 删除房型
* @param typeId
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/delete/{typeId}")
public AjaxResult deleteRoomType(@PathVariable Integer typeId){
int result = roomTypeService.delete(typeId);
if(result!=1) return ResponseTool.failed("删除失败");
return ResponseTool.success("删除成功");
}
}
@RequestMapping(value = "/user/{userId}")
public AjaxResult getByUser(@PathVariable int userId) {
return ResponseTool.success(dishesService.selectByUserId(userId));
}
/**
* 根据id号查询公告
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}")
public AjaxResult getById(@PathVariable Integer id) {
return ResponseTool.success(dishesService.selectById(id));
}
}
/**
* 订单接口
*/
@RestController
@RequestMapping(value = "/user/order")
@RequestMapping(value = "/op/notice")
public class OpNoticeController {
@Autowired
private NoticeService noticeService;
/**
* 添加公告
* 订单状态默认为未付款状态
*/
@RequestMapping(value = "/add")
public AjaxResult addNotice(String title, String content, @DateTimeFormat(pattern = "yyyy-MM-dd") Date time, String userId, String userName, String phone,String role) {
Notice notice = new Notice(0,title, content, time, Integer.parseInt(userId), userName, phone,role);
int re = noticeService.insert(notice);
if (re != 1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("添加成功.");
}
@RequestMapping(value = "/delete")
public AjaxResult deleteNotice(int id) {
int re = noticeService.delete(id);
if (re != 1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("删除成功.");
}
@RequestMapping(value = "/update")
public AjaxResult updateNotice(int id, String title, String content) {
Notice notice = new Notice(id,title,content);
int re = noticeService.update(notice);
if (re != 1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("修改成功.");
}
@RequestMapping(value = "")
public AjaxResult getAllNotice() {
return ResponseTool.success(noticeService.AllNotices());
}
@RequestMapping(value = "/count")
public AjaxResult getNoticeCount() {
return ResponseTool.success(noticeService.getNoticeCount());
}
/**
HttpSession session = request.getSession();
if(session==null) {
return false;
}
if(session.getAttribute("role").equals(Role.OPERATOR.getValue()) ||
session.getAttribute("role").equals(Role.ADMIN.getValue())||
session.getAttribute("role").equals(Role.USER.getValue())){
return true;
}else {
setCorsMappings(request, response);
PrintWriter writer = response.getWriter();
AjaxResult result = ResponseTool.failed(MsgType.PERMISSION_DENIED);
ObjectMapper mapper = new ObjectMapper();
writer.write(mapper.writeValueAsString(result));
return false;
}
}
private void setCorsMappings(HttpServletRequest request, HttpServletResponse response){
String origin = request.getHeader("Origin");
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization");
response.setHeader("Access-Control-Allow-Credentials", "true");
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
@RestController
@RequestMapping(value = "/op/check-in")
public class OpCheckInController {
@Autowired
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(session.getAttribute("role").equals(Role.ADMIN.getValue())){
return true;
}else {
setCorsMappings(request, response);
PrintWriter writer = response.getWriter();
AjaxResult result = ResponseTool.failed(MsgType.PERMISSION_DENIED);
ObjectMapper mapper = new ObjectMapper();
writer.write(mapper.writeValueAsString(result));
return false;
}
}
private void setCorsMappings(HttpServletRequest request, HttpServletResponse response){
String origin = request.getHeader("Origin");
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization");
response.setHeader("Access-Control-Allow-Credentials", "true");
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
return ResponseTool.success(roomTypeService.selectById(typeId));
}
/**
* 添加房型
* @param roomType
* @param price
* @param discount
* @param area
* @param bedNum
* @param bedSize
* @param window
* @param remark
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/add")
public AjaxResult addRoomType(String roomType,Double price,Double discount,Integer area,
Integer bedNum,String bedSize,Integer window,String remark,Integer rest){
RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window);
rt.setRest(rest);
int result = roomTypeService.insert(rt);
if(result!=1) return ResponseTool.failed("添加失败");
return ResponseTool.success("添加成功");
}
/**
* 修改房型
* @param typeId
* @param roomType
* @param price
* @param discount
* @param area
* @param bedNum
* @param bedSize
* @param window
* @param rest
* @param remark
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/update")
public AjaxResult updateRoomType(Integer typeId,String roomType,Double price,Double discount,Integer area,
Integer bedNum,String bedSize,Integer window,Integer rest,String remark){
RoomType rt = new RoomType(roomType,remark,price,discount,area,bedNum,bedSize,window);
rt.setTypeId(typeId);
rt.setRest(rest);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("支付成功.");
}
/**
* 取消订单
* @param orderId
* @return
*/
@RequestMapping(value = "/cancel")
public AjaxResult cancelOrder(int orderId){
int re= orderService.cancelOrder(orderId);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("取消成功.");
}
/**
* 订单超时
* @param orderId
* @return
*/
@RequestMapping(value = "/overtime")
public int orderOver(int orderId){
Order order = new Order(orderId,OrderStatus.OVERTIME.getCode());
return orderService.update(order);
}
@RequestMapping(value = "")
public AjaxResult getAllOrder(){
return ResponseTool.success(orderService.AllOrders());
}
@RequestMapping(value = "/count")
public AjaxResult getOrderCount(){
return ResponseTool.success(orderService.getOrderCount());
}
/**
* 根据userID查询所有订单
* @param userId