Java项目:springboot酒店宾馆管理系统
作者主页:源码空间站2022
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
功能介绍
springboot酒店宾馆管理系统。该系统为后管系统,无前台。主要分三种角色:管理者/工作人员/前台人员。
主要功能有:
客房:客房标准、房间信息;
订单:入住订单;
员工:员工信息;
事务:事务信息;
停车:车位信息;
财务:财务信息;
历史:订单历史、车库历史;
会员:会员信息;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 8.0版本;
技术栈
1. 后端:SpringBoot
2. 前端:html+layui+jQuery
使用说明
1. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,下载所需jar包;
2. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置
4. 配置tomcat,然后运行项目,输入localhost:8888 登录
5. 数据库中的employ中有密码,密码是加密过的,三种权限,管理者/工作人员/前台人员
管理账号:admin 密码:worker1
工作人员账号:worker1 密码:worker1
前台人员:sever1 密码:worker1
运行截图
代码相关
员工管理控制器
@RestController
public class EmployController
{
private final EmployService employservice;
@Autowired
public EmployController(EmployService employservice)
{
this.employservice=employservice;
}
@Autowired
EventService eventService;
@RequestMapping("/employ/list")
public Result<Employ> employList() {
return ResultReturn.success(employservice.findAll());
}
@RequestMapping("/employ/searchOne/{employno}")
public Result employSearchOne(@PathVariable("employno") int employno) {
Employ r = employservice.findByEmployno(employno);
if(r == null) {
return ResultReturn.error(1,"it's not exist, you can't delete!");
}
else {
return ResultReturn.success(r);
}
}
@RequestMapping("/employ/add")
public Result employAdd(@RequestParam("employno")int employno,@RequestParam("employname") String employname,
@RequestParam("employsex")int employsex,@RequestParam("employage") int employage,
@RequestParam("employposition")int employposition,
@RequestParam("employauthority") int employauthority,
@RequestParam("employpaymentpermonth")int employpaymentpermonth,
@RequestParam("employworktime") int employworktime,
@RequestParam("username") String username,
@RequestParam("password") String password) {
Employ e = employservice.findByEmployno(employno);
if(e!=null)
return ResultReturn.error(2,"that employno arleady exist");
else{
e = saveEmploy(employno,employname,employsex,employage,employposition,employauthority,
employpaymentpermonth,employworktime,username,password);
return ResultReturn.success(employservice.save(e));
}
}
@RequestMapping("/employ/update/{employno}")
public Result employUpdate(@PathVariable("employno")int employno,@RequestParam("employname") String employname,
@RequestParam("employsex")int employsex,@RequestParam("employage") int employage,
@RequestParam("employposition")int employposition,
@RequestParam("employauthority") int employauthority,
@RequestParam("employpaymentpermonth")int employpaymentpermonth,
@RequestParam("employworktime") int employworktime,
@RequestParam("username") String username,
@RequestParam("password") String password) {
Employ e = employservice.findByEmployno(employno);
if(e==null) {
return ResultReturn.error(1,"that employno did not exist");
}
else{
e = saveEmploy(employno,employname,employsex,employage,employposition,employauthority,
employpaymentpermonth, employworktime,username,password);
return ResultReturn.success(employservice.save(e));
}
}
@RequestMapping("/employ/delete/{employno}")
public Result employDelete(@PathVariable("employno")int employno) {
Employ e = employservice.findByEmployno(employno);
if (e==null)
return ResultReturn.error(1,"can't find this employno");
employservice.delete(e);
return ResultReturn.success(e);
}
@RequestMapping("/employ/personalMeasage")
public Result getPersonalMeasage() {
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String username = userDetails.getUsername();
String password = userDetails.getPassword();
Employ e = employservice.findByUsernameAndPassword(username,password);
System.out.println("employ measage:"+e);
return ResultReturn.success(e);
}
@RequestMapping("/employ/personalEvent")
public Result getPersonalEvent() {
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
String username = userDetails.getUsername();
String password = userDetails.getPassword();
Employ e = employservice.findByUsernameAndPassword(username,password);
List<Event> event = eventService.findAllByEmployno(e.getEmployno());
System.out.println("event: "+event);
return ResultReturn.success(event);
}
public Employ saveEmploy(int employno,String employname,int employsex,int employage,
int employposition,int employauthority,
int employpaymentpermonth,int employworktime,
String username,String password) {
Employ e = new Employ();
e.setEmployno(employno);
e.setEmployposition(employposition);
e.setEmployworktime(employworktime);
e.setEmployage(employage);
e.setEmploysex(employsex);
e.setEmployname(employname);
e.setEmploypaymentpermonth(employpaymentpermonth);
e.setEmployauthority(employauthority);
e.setUsername(username);
e.setPassword(BCrypt.hashpw(password, BCrypt.gensalt()));
return e;
}
}
订单管理控制器
@RestController
public class OrderController
{
private final OrderService orderservice;
private final OrderRoomService orderroomservice;
private final RoomidService roomidservice;
private final RoomService roomservice;
private final OrderHistoryService orderHistoryService;
private final FinanceService financeService;
@Autowired
public OrderController(OrderService orderservice,OrderRoomService orderroomservice,RoomidService roomidservice,
RoomService roomservice,OrderHistoryService orderHistoryService,
FinanceService financeService)
{
this.orderservice=orderservice;
this.orderroomservice=orderroomservice;
this.roomidservice=roomidservice;
this.roomservice=roomservice;
this.orderHistoryService=orderHistoryService;
this.financeService=financeService;
}
/**
* 查找所有订单
*
* @return 返回现有的全部订单
*/
@RequestMapping("/order/orderlist")
public Result<List<Order>> orderList()
{
return ResultReturn.success(orderservice.findAll());
}
/**
* 根据订单号查找对应订单信息
*
* @param orderno 订单号
* @return 返回订单号对应的订单
*/
@RequestMapping("/order/searchOne/{orderno}")
public Result<Order> orderSearchOne(@PathVariable("orderno") int orderno)
{
return ResultReturn.success(orderservice.findByOrderNo(orderno));
}
/**
* 更新订单信息
*
* @param orderno 订单号
* @param name 姓名
* @param id 身份证
* @param phone 电话号码
* @param isenter 是否入住
* @return 返回更新后的订单
*/
@RequestMapping("/order/update/{orderno}")
public Result<Order> orderUpdate(@PathVariable("orderno") int orderno,@RequestParam("name") String name,
@RequestParam("id") String id,@RequestParam("phone") String phone,
@RequestParam("isenter") int isenter)
{
Order o=orderservice.findByOrderNo(orderno);
o.setName(name);
o.setId(id);
o.setPhone(phone);
o.setIsenter(isenter);
return ResultReturn.success(orderservice.save(o));
}
/**
* 插入订单
*
* @param
* @return
*/
@RequestMapping("/order/insert")
public Result orderInsert(@RequestParam("name") String name,
@RequestParam("id") String id, @RequestParam("phone") String phone,
@RequestParam("starttime") String starttime, @RequestParam("endtime") String endtime,
@RequestParam("isenter") int isenter, @RequestParam("ismenber") int ismenber,
@RequestParam("roomcount") int roomcount, @RequestParam("roomnos") String roomnos,
@RequestParam("price") int price)
{
Order o = new Order();
o.setName(name);
o.setId(id);
o.setPhone(phone);
// 将String类型格式化为timestamp
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
Date startT = sdf.parse(starttime);
Date endT = sdf.parse(endtime);
o.setStarttime(new Timestamp(startT.getTime()));
o.setEndtime(new Timestamp(endT.getTime()));
} catch (ParseException e) {
e.printStackTrace();
}
o.setIsenter(isenter);
o.setIsmenber(ismenber);
o.setRoomcount(roomcount);
o.setPrice(price);
Order saveO = orderservice.save(o);
List<Order> orderList = orderservice.findAllSortByOrderNo();
Order lastOrder = orderList.get(0);
// 房间号处理
String roomStrArray[] = roomnos.split("\\|"); //“.”和“|”都是转义字符,必须得加”\\”;
for (int i=0;i<roomStrArray.length;i++){
System.out.println(roomStrArray[i]);
OrderRoom orderRoom = new OrderRoom();
orderRoom.setOrderno(lastOrder.getOrderno());
orderRoom.setRoomno(Integer.parseInt(roomStrArray[i]));
orderroomservice.save(orderRoom);
}
return ResultReturn.success(saveO);
}
/**
* 删除订单
*
* @param orderno 订单号
* @return 返回成功
*/
@RequestMapping("/order/delete/{orderno}")
public Result orderDelete(@PathVariable("orderno") int orderno)
{
Order o=orderservice.findByOrderNo(orderno);
orderservice.delete(o);
return ResultReturn.success();
}
/**
* 根据订单号查找所有的订单中的所有房间
*
* @param orderno 订单号
* @return 返回房间列表
*/
@RequestMapping("/order/orderroom/{orderno}")
public Result<List<OrderRoom>> orderroomList(@PathVariable("orderno") int orderno)
{
return ResultReturn.success(orderroomservice.findAll(orderno));
}
/**
* 根据订单-房间序号查找对应记录
*
* @param orno 订单-房间表的序号
* @return 返回对应的订单-房间信息
*/
@RequestMapping("/order/orderroom/orderroomSearchOne/{orno}")
public Result<OrderRoom> orderroomSearchOne(@PathVariable("orno") int orno)
{
return ResultReturn.success(orderroomservice.findOne(orno));
}
/**
* OrderRoom表更新
*
* @param orno 编号
* @param brand 车牌号
* @param roomnoAfter 之前的房间号
* @param roomnoBefore 现在重新设定的房间号(计算价格需要)
* @param orderno 订单号(保存当前订单的价格需要)
* @return 返回保存的orderroom对象
*/
@RequestMapping("/order/orderroom/update/{orno}")
public Result orderroomUpdate(@PathVariable("orno") int orno,@RequestParam("brand") String brand,
@RequestParam("roomnoAfter") int roomnoAfter,
@RequestParam("roomnoBefore") int roomnoBefore,@RequestParam("orderno") int orderno)
{
OrderRoom or=orderroomservice.findOne(orno);
or.setBrand(brand);
or.setRoomno(roomnoAfter);
List<Roomid> ri=roomidservice.findAll(roomnoBefore);
for (Roomid aRi : ri)
{
aRi.setRoomno(roomnoAfter);
}
roomidservice.saveAll(ri);
Order order=orderservice.findByOrderNo(orderno);
Room roomAfter=roomservice.findByRoom(roomnoAfter);
Room roomBefore=roomservice.findByRoom(roomnoBefore);
order.setPrice(order.getPrice()+roomAfter.getPrice()-roomBefore.getPrice());
orderservice.save(order);
return ResultReturn.success(orderroomservice.save(or));
}
//roomid表查看
@RequestMapping("/order/orderroom/roomid/list/{roomno}")
public Result<List<Roomid>> roomidList(@PathVariable("roomno") int roomno)
{
return ResultReturn.success(roomidservice.findAll(roomno));
}
/**
* 根据房间-身份证表的序号查找对应信息
*
* @param rino 房间-身份证表的序号
* @return 返回对应信息
*/
@RequestMapping("/order/orderroom/roomid/roomidSearchOne/{rino}")
public Result<Roomid> roomidSearchOne(@PathVariable("rino") int rino)
{
return ResultReturn.success(roomidservice.findByRino(rino));
}
/**
* 房间-身份证表更新
*
* @param rino 房间-身份证表的序号
* @param name 姓名
* @param id 身份证
* @return 返回更改后的信息
*/
@RequestMapping("/order/orderroom/roomid/update/{rino}")
public Result roomidUpdate(@PathVariable("rino") int rino,@RequestParam("name") String name,
@RequestParam("id") String id)
{
Roomid ri=roomidservice.findByRino(rino);
ri.setId(id);
ri.setName(name);
return ResultReturn.success(roomidservice.save(ri));
}
/**
* 寻找未入住的房间号列表
*
* @return 返回房间号列表
*/
@RequestMapping("/order/orderroom/roomid/getEmptyRoomno")
public Result<List<Integer>> getEmptyRoomno()
{
List<Roomid> ri=roomidservice.findAllWithoutparam();
List<Integer> q=new ArrayList<>(ri.size());
for (Roomid aRi : ri)
{
q.add(aRi.getRoomno());
}
List<Room> r=roomservice.getEmpty(q);
List<Integer> sum=new ArrayList<>();
for (Room aR : r)
{
sum.add(aR.getRoomno());
}
return ResultReturn.success(sum);
}
/**
* 结算订单
*
* @param orderno 订单号
* @return 返回订单结算结果
* @throws HotelException 抛出订单未入住异常 code: 601
*/
@RequestMapping("/order/settle/{orderno}")
public Result<OrderHistory> orderSettle(@PathVariable("orderno") int orderno) throws HotelException
{
Order order=orderservice.findByOrderNo(orderno);
if(order.getIsenter()==1)
{
Order orderTemp=new Order(order);
orderservice.delete(order);
return new OrderHistoryController(orderHistoryService,financeService).orderHistoryInsert(orderTemp);
}
else
{
throw new HotelException(ExceptionType.ORDER_ISENTER_ERROR.getCode(),
ExceptionType.ORDER_ISENTER_ERROR.getMsg());
}
}
}
如果也想学习本系统,下面领取。回复:036springboot