酒店管理系统Java web项目
酒店管理系统是一种用于管理和监控酒店业务的软件系统,它能够提高酒店的管理效率和服务质量,减少人力和物力的浪费,提高酒店的收益。下面分别实现这些功能。
·
酒店管理系统是一种用于管理和监控酒店业务的软件系统,它能够提高酒店的管理效率和服务质量,减少人力和物力的浪费,提高酒店的收益。
一、数据库设计
酒店管理系统需要保存以下信息:
- 酒店信息:酒店名称、地址、描述、联系电话等
- 房间信息:房间类型、房间号码、价格、入住状态等
- 用户信息:用户名、密码、联系方式、角色等
因此,设计数据库表如下:
- 酒店表:hotel(id, name, address, description, phone)
- 房间表:room(id, hotel_id, room_number, room_type, price, status)
- 用户表:user(id, username, password, phone, role)
二、项目结构
酒店管理系统采用MVC架构,使用SpringBoot框架,因此项目的结构如下:
- src/main/java/com.example.hotel:Java代码
- controller:控制层,处理HTTP请求
- service:服务层,实现业务逻辑
- dao:数据访问层,与数据库交互
- entity:实体类,定义数据库表结构
- exception:异常处理类
- src/main/resources:资源文件
- application.properties:SpringBoot配置文件
- static:静态文件,如CSS、JS、图片等
- templates:HTML模板文件
三、实现
实现酒店管理系统需要以下功能:
- 用户管理:注册、登录、注销、修改密码
- 酒店管理:添加、修改、删除、查询
- 房间管理:添加、修改、删除、查询、预订、取消预订
源码:
https://pan.baidu.com/s/1ZMr2E4bkIgov5copEtzNdg?pwd=1013
下面分别实现这些功能。
用户管理
在UserController中实现用户注册、登录、注销和修改密码的功能:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/register")
public ResponseVO register(@RequestBody UserVO userVO) {
return userService.register(userVO);
}
@PostMapping("/login")
public ResponseVO login(@RequestBody UserVO userVO, HttpSession session) {
return userService.login(userVO, session);
}
@GetMapping("/logout")
public ResponseVO logout(HttpSession session) {
return userService.logout(session);
}
@PostMapping("/{userid}/modify")
public ResponseVO modifyUser(@PathVariable int userid, @RequestBody UserVO userVO) {
return userService.modifyUser(userid, userVO);
}
}
UserService实现上述功能:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public ResponseVO register(UserVO userVO) {
// 省略参数检查和用户已存在的判断
User user = new User();
user.setUsername(userVO.getUsername());
user.setPassword(userVO.getPassword());
user.setPhone(userVO.getPhone());
user.setRole(userVO.getRole());
userDao.addUser(user);
return ResponseVO.buildSuccess();
}
@Override
public ResponseVO login(UserVO userVO, HttpSession session) {
User user = userDao.getUserByUsername(userVO.getUsername());
if (user == null) {
return ResponseVO.buildFailure("用户名不存在");
}
if (!user.getPassword().equals(userVO.getPassword())) {
return ResponseVO.buildFailure("密码错误");
}
session.setAttribute("user", user);
return ResponseVO.buildSuccess(user);
}
@Override
public ResponseVO logout(HttpSession session) {
session.removeAttribute("user");
return ResponseVO.buildSuccess();
}
@Override
public ResponseVO modifyUser(int userid, UserVO userVO) {
User user = userDao.getUserById(userid);
if (user == null) {
return ResponseVO.buildFailure("用户不存在");
}
user.setPhone(userVO.getPhone());
user.setPassword(userVO.getPassword());
userDao.updateUser(user);
return ResponseVO.buildSuccess();
}
}
UserDao负责数据库的读写操作:
@Repository
public interface UserDao {
void addUser(User user);
void updateUser(User user);
User getUserById(int id);
User getUserByUsername(String username);
}
酒店管理
在HotelController中实现酒店管理的添加、修改、删除和查询功能:
@RestController
@RequestMapping("/hotel")
public class HotelController {
@Autowired
private HotelService hotelService;
@PostMapping("/add")
public ResponseVO addHotel(@RequestBody HotelVO hotelVO) {
return hotelService.addHotel(hotelVO);
}
@PostMapping("/{hotelid}/update")
public ResponseVO updateHotel(@PathVariable int hotelid, @RequestBody HotelVO hotelVO) {
return hotelService.updateHotel(hotelid, hotelVO);
}
@GetMapping("/{hotelid}/delete")
public ResponseVO deleteHotel(@PathVariable int hotelid) {
return hotelService.deleteHotel(hotelid);
}
@GetMapping("/{hotelid}/getDetail")
public ResponseVO getHotelDetail(@PathVariable int hotelid) {
return hotelService.getHotelDetail(hotelid);
}
@GetMapping("/all")
public ResponseVO retrieveAllHotels() {
return hotelService.retrieveHotels();
}
}
HotelService实现上述功能:
@Service
public class HotelServiceImpl implements HotelService {
@Autowired
private HotelDao hotelDao;
@Override
public ResponseVO addHotel(HotelVO hotelVO) {
// 省略参数检查
Hotel hotel = new Hotel();
hotel.setName(hotelVO.getName());
hotel.setAddress(hotelVO.getAddress());
hotel.setDescription(hotelVO.getDescription());
hotel.setPhone(hotelVO.getPhone());
hotelDao.addHotel(hotel);
return ResponseVO.buildSuccess();
}
@Override
public ResponseVO updateHotel(int hotelid, HotelVO hotelVO) {
Hotel hotel = hotelDao.getHotelById(hotelid);
if (hotel == null) {
return ResponseVO.buildFailure("酒店不存在");
}
hotel.setName(hotelVO.getName());
hotel.setAddress(hotelVO.getAddress());
hotel.setDescription(hotelVO.getDescription());
hotel.setPhone(hotelVO.getPhone());
hotelDao.updateHotel(hotel);
return ResponseVO.buildSuccess();
}
@Override
public ResponseVO deleteHotel(int hotelid) {
Hotel hotel = hotelDao.getHotelById(hotelid);
if (hotel == null) {
return ResponseVO.buildFailure("酒店不存在");
}
hotelDao.deleteHotel(hotelid);
return ResponseVO.buildSuccess();
}
@Override
public ResponseVO getHotelDetail(int hotelid) {
Hotel hotel = hotelDao.getHotelById(hotelid);
if (hotel == null) {
return ResponseVO.buildFailure("酒店不存在");
}
return ResponseVO.buildSuccess(new HotelVO(hotel));
}
@Override
public ResponseVO retrieveHotels() {
List<Hotel> hotels = hotelDao.getAllHotels();
if (hotels == null || hotels.isEmpty()) {
return ResponseVO.buildFailure("酒店不存在");
}
List<HotelVO> hotelVOs = new ArrayList<>();
for (Hotel hotel : hotels) {
hotelVOs.add(new HotelVO(hotel));
}
return ResponseVO.buildSuccess(hotelVOs);
}
}
HotelDao负责数据库的读写操作:
@Repository
public interface HotelDao {
void addHotel(Hotel hotel);
void updateHotel(Hotel hotel);
void deleteHotel(int id);
Hotel getHotelById(int id);
List<Hotel> getAllHotels();
}
房间管理
在RoomController中实现房间管理的添加、修改、删除、查询、预订和取消预订功能:
@RestController
@RequestMapping("/room")
public class RoomController {
@Autowired
private RoomService roomService;
@PostMapping("/add")
public ResponseVO addRoom(@RequestBody RoomVO roomVO) {
return roomService.addRoom(roomVO);
}
@PostMapping("/{roomid}/update")
public ResponseVO updateRoom(@PathVariable int roomid, @RequestBody RoomVO roomVO) {
return roomService.updateRoom(roomid, roomVO);
}
@GetMapping("/{roomid}/delete")
public ResponseVO deleteRoom(@PathVariable int roomid) {
return roomService.deleteRoom(roomid);
}
@GetMapping("/{roomid}/getDetail")
public ResponseVO getRoomDetail(@PathVariable int roomid) {
return roomService.getRoomDetail(roomid);
}
@GetMapping("/{hotelid}/getRooms")
public ResponseVO getHotelRooms(@PathVariable int hotelid) {
return roomService.getHotelRooms(hotelid);
}
@GetMapping("/{roomid}/book")
public ResponseVO bookRoom(@PathVariable int roomid, HttpSession session) {
User user = (User) session.getAttribute("user");
if (user == null) {
return ResponseVO.buildFailure("用户未登录");
}
return roomService.bookRoom(roomid, user.getId());
}
@GetMapping("/{bookid}/cancelBook")
public ResponseVO cancelBook(@PathVariable int
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)