基于javaweb+mysql的springboot酒店预订管理系统(java+springboot+vue+maven+mysql)
运行环境
Java≥8、MySQL≥5.7、Node.js≥10
开发工具
后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot酒店预订管理系统(java+springboot+vue+maven+mysql)
一、项目运行 环境配置:
Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。
项目技术:
Spring + SpringBoot+ mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。
}
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
private CheckInService checkInService;
}
/**
* 根据userID查询所有公告
*
* @param userId
* @return
*/
@RequestMapping(value = "/user/{userId}")
public AjaxResult getByUser(@PathVariable int userId) {
return ResponseTool.success(noticeService.selectByUserId(userId));
}
/**
* 根据id号查询公告
*
* @param id
* @return
*/
@RequestMapping(value = "/{id}")
public AjaxResult getById(@PathVariable Integer id) {
return ResponseTool.success(noticeService.selectById(id));
}
}
@RestController
/**
* @ProjectName: hotel
* @Package: cn.mafangui.hotel.controller.worker
* @ClassName: OpNoticeController
* @description:公告管理控制层
* @modified By:
* @version: v1.0.0$
*/
@RestController
@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("删除成功.");
@DateTimeFormat(pattern = "yyyy-MM-dd") Date orderDate, Integer orderDays, Double orderCost){
Order order = new Order(orderTypeId,orderType,userId,name,phone,roomTypeId,
roomType,orderDate,orderDays, OrderStatus.UNPAID.getCode(),orderCost);
int re = orderService.addOrder(order);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("添加成功.");
}
@RequestMapping(value = "/delete")
public AjaxResult deleteOrder(int orderId){
int re = orderService.delete(orderId);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("删除成功.");
}
@RequestMapping(value = "/update")
public AjaxResult updateOrder(int orderId,int orderTypeId,String orderType, int userId,String name, String phone,int roomTypeId, String roomType,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date orderDate, Integer orderDays, Double orderCost){
Order order = new Order(orderTypeId,orderType,userId,name,phone,roomTypeId,
roomType,orderDate,orderDays, OrderStatus.UNPAID.getCode(),orderCost);
int re = orderService.update(order);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("修改成功.");
}
/**
* 订单支付
* @param orderId
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/pay")
public AjaxResult payOrder(int orderId){
int re = orderService.payOrder(orderId);
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("取消成功.");
@RequestMapping(value = "/op/order")
public class OpOrderController {
@Autowired
private OrderService orderService;
/**
* 添加预订
* 订单状态默认为未付款状态
*/
@RequestMapping(value = "/add")
public AjaxResult addOrder(int orderTypeId,String orderType, int userId,String name, String phone,int roomTypeId, String roomType,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date orderDate, Integer orderDays, Double orderCost){
Order order = new Order(orderTypeId,orderType,userId,name,phone,roomTypeId,
roomType,orderDate,orderDays, OrderStatus.UNPAID.getCode(),orderCost);
int re = orderService.addOrder(order);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("添加成功.");
}
@RequestMapping(value = "/delete")
public AjaxResult deleteOrder(int orderId){
int re = orderService.delete(orderId);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("删除成功.");
}
@RequestMapping(value = "/update")
public AjaxResult updateOrder(int orderId,int orderTypeId,String orderType, int userId,String name, String phone,int roomTypeId, String roomType,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date orderDate, Integer orderDays, Double orderCost){
Order order = new Order(orderTypeId,orderType,userId,name,phone,roomTypeId,
roomType,orderDate,orderDays, OrderStatus.UNPAID.getCode(),orderCost);
int re = orderService.update(order);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("修改成功.");
}
/**
* 订单支付
* @param orderId
* @return
*/
@RequestMapping(method = RequestMethod.POST,value = "/pay")
public AjaxResult payOrder(int orderId){
int re = orderService.payOrder(orderId);
if(re!=1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("支付成功.");
}
/**
* 取消订单
@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);
}
User user = new User();
user.setUserId(userId);
user.setName(name);
user.setGender(gender);
user.setPhone(phone);
user.setEmail(email);
user.setAddress(address);
user.setIdcard(idcard);
if(userService.updateUser(user)==1)
return ResponseTool.success("修改成功");
return ResponseTool.success("修改失败,请检查或稍后再试");
/**
* 订单接口
*/
@RestController
@RequestMapping(value = "/user/order")
public class UserOrderController {
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
/**
* 添加预订
* 订单状态默认为未付款状态
* @param orderTypeId
* @param orderType
* @param userId
* @param name
* @param phone
* @param roomTypeId
* @param roomType
* @param orderDate
* @param orderDays
* @param orderCost
* @return
*/
@RequestMapping(value = "/add")
public AjaxResult addOrder(int orderTypeId,String orderType, int userId,String name, String phone,int roomTypeId, String roomType,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date orderDate, Integer orderDays, Double orderCost){
Order order = new Order(orderTypeId,orderType,userId,name,phone,roomTypeId,
roomType,orderDate,orderDays, OrderStatus.UNPAID.getCode(),orderCost);
int re = orderService.addOrder(order);
if(re!=1) ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success(MsgType.SUCCESS);
}
/**
* 删除订单
* @param orderId
* @return
*/
@RequestMapping(value = "/delete")
public AjaxResult deleteOrderByUser(int orderId){
/**
* @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("删除成功.");
}
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");
session.removeAttribute("username");
return ResponseTool.success("注销成功");
}
}
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")
public AjaxResult updateNotice(int id, String title, String content) {
Msg msg = new Msg(id, title, content);
int re = msgService.update(msg);
if (re != 1) return ResponseTool.failed(MsgType.FAILED);
return ResponseTool.success("修改成功.");
}
@RequestMapping(value = "")
public AjaxResult getAllMsg() {
return ResponseTool.success(msgService.AllMsg());
}
@RequestMapping(value = "/count")
public AjaxResult getMsgCount() {
return ResponseTool.success(msgService.getMsgCount());
}
/**
* 根据userID查询所有留言
*
* @param userId
* @return
*/
@RequestMapping(value = "/user/{userId}")
public AjaxResult getByUser(@PathVariable int userId) {
return ResponseTool.success(msgService.selectByUserId(userId));
}
/**
@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);
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")
@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()));
}
@RequestMapping(method = RequestMethod.POST,value = "/{workerId}")
public AjaxResult getOperator(@PathVariable Integer workerId){
return ResponseTool.success(workerService.selectById(workerId));
}
@RequestMapping(method = RequestMethod.POST,value = "/add")
public AjaxResult addOperator(String username,String password,String name,String gender,String phone,String email,String address){
Worker worker = new Worker(username,password,name,gender,phone,email,address);
worker.setRole(Role.OPERATOR.getValue());
int re = workerService.insert(worker);
if(re!=1) return ResponseTool.failed();
return ResponseTool.success("添加成功");
}
@RequestMapping(method = RequestMethod.POST,value = "/update")
public AjaxResult updateOperator(int workerId,String name,String gender,String phone,String email,String address){
Worker worker = new Worker();
worker.setWorkerId(workerId);
worker.setName(name);
worker.setGender(gender);
worker.setPhone(phone);
worker.setEmail(email);
worker.setAddress(address);
int re = workerService.updateById(worker);
if(re!=1) return ResponseTool.failed();
return ResponseTool.success("更新成功");
}
}
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 {
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;
}
*/
@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());
}
/**
* 根据userID查询所有公告
*
* @param userId
* @return
*/
@RequestMapping(value = "/user/{userId}")
public AjaxResult getByUser(@PathVariable int userId) {
return ResponseTool.success(noticeService.selectByUserId(userId));
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
private CheckInService checkInService;
else return ResponseTool.failed("注册失败,请稍后再试");
}
@RequestMapping(method = RequestMethod.POST,value = "/admin")
public AjaxResult adminRegister(String username, String password, String name, String gender, String phone, String email, String address){
Worker worker = new Worker(username,password,name,gender,phone,email,address);
worker.setRole(Role.ADMIN.getValue());
int result = workerService.insert(worker);
if(result==1){
return ResponseTool.success(result);
}
else return ResponseTool.failed("注册失败,请稍后再试");
}
@RequestMapping(method = RequestMethod.POST,value = "/operator")
public AjaxResult operatorRegister(String username,String password,String name,String gender,String phone,String email,String address){
Worker worker = new Worker(username,password,name,gender,phone,email,address);
worker.setRole(Role.OPERATOR.getValue());
int result = workerService.insert(worker);
if(result==1){
return ResponseTool.success(result);
}
else return ResponseTool.failed("注册失败,请稍后再试");
}
}
public class OpInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(session==null) {
return false;
}
/**
* 订单接口
*/
@RestController
@RequestMapping(value = "/user/order")
public class UserOrderController {
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
/**
* 添加预订
* 订单状态默认为未付款状态
* @param orderTypeId
* @param orderType
* @param userId
* @param name
* @param phone
* @param roomTypeId
* @param roomType
* @param orderDate
* @param orderDays
* @param orderCost
* @return
*/
@RequestMapping(value = "/add")
public AjaxResult addOrder(int orderTypeId,String orderType, int userId,String name, String phone,int roomTypeId, String roomType,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date orderDate, Integer orderDays, Double orderCost){
Order order = new Order(orderTypeId,orderType,userId,name,phone,roomTypeId,
roomType,orderDate,orderDays, OrderStatus.UNPAID.getCode(),orderCost);