基于javaweb的SpringBoot酒店管理系统(java+springboot+mybatis-plus+thymleaf+mysql)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

121424070701

131424070701

141424070701

151424070701

161424070701

181424070701

191424070701

201424070701

基于javaweb的SpringBoot酒店管理系统(java+springboot+mybatis-plus+thymleaf+mysql)

项目介绍

基于SpringBoot酒店管理系统

角色:管理员、前台工作人员、保洁阿姨、客户 四种角色

客户功能:

客户注册、登录、找回密码

留言板查看和留言

浏览客房,根据入住日期和退房日期查询和预定客房

支付订单,支付已对接了支付宝沙箱支付,可可以随时关闭启动

客户可以退房,续订,取消订单等功能

管理员功能:

客房管理

客房类型管理

订单管理

入住登记管理

退房登记管理

客房清洁管理

留言管理(只有管理员可以进行留言删除)

财务管理

人员管理( 前台人员,清洁人员,客户)

角色管理,权限管理

酒店前台人员:

订单管理

入住登记管理

退房登记管理

客房清洁管理(只能查看)

留言管理,(可以留言回复,不能删除留言)

财务管理

人员管理( 只能看客户)

保洁人员

客房清洁管理(可以点击开始打扫和完成打扫)

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 4.数据库:MySql 5.7/8.0版本均可; 5.是否Maven项目:是;

技术栈

后端:SpringBoot MyBatis Plus

前端:Html CSS jquery Thymleaf

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456

文档介绍(课题背景与意义、系统实现功能、课题研究现状、系统相关技术、java技术、B/S架构、Mysql介绍、Mysql环境配置、Springboot框架、系统需求分析、系统功能、可行性研究、经济可行性、技术可行性、运行可行性、事件可行性、系统业务过程分析、系统业务过程分析、系统用例图、系统设计、数据库设计、系统整体设计、系统设计思想、系统流程图、系统详情设计、系统功能模块、系统功能模块、管理员功能模块):

酒店首页展示:

留言板展示详情:

 酒店订单管理控制层:

后台财务管理展示:

后台订单管理展示列表:

订单详情管理:

客房管理详情列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    } catch (IncorrectCredentialsException e) {
e.printStackTrace();
return JsonResult.error("账号或密码错误");
} catch (LockedAccountException e) {
return JsonResult.error(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
log.info(e.getMessage());
}
return JsonResult.error("服务器内部错误");
}


/**
* 退出登录
*
* @return 重定向到/login
*/
@GetMapping(value = "/logout")
public String logOut() {
Subject subject = SecurityUtils.getSubject();
try {
subject.logout();
} catch (Exception e) {
e.printStackTrace();
}
return "redirect:/";
}

/**
* 退出登录
*
* @return 重定向到/login
*/
@PostMapping(value = "/logout")
@ResponseBody
public JsonResult ajaxLogOut() {
Subject subject = SecurityUtils.getSubject();
subject.logout();
return JsonResult.success();
}

/**
* 验证注册信息
*
* @param userName 手机号
* @param idCard 身份证号码
* @return JsonResult JsonResult
*/
@PostMapping(value = "/register")
@ResponseBody
@Transactional
public JsonResult getRegister(@RequestParam("userName") String userName,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
    //所有分类
List<Category> allCategories = categoryService.findAll();
model.addAttribute("categories", allCategories);
return "admin/admin_post_new";
}



/**
* 添加/更新客房
*
* @param post Post实体
*/
@PostMapping(value = "/save")
@ResponseBody
public JsonResult pushPost(@ModelAttribute Post post) {
// 1、提取摘要
int postSummary = 100;
//客房摘要
String summaryText = HtmlUtil.cleanHtmlTag(post.getPostContent());
if (summaryText.length() > postSummary) {
String summary = summaryText.substring(0, postSummary);
post.setPostSummary(summary);
} else {
post.setPostSummary(summaryText);
}

// 2.处理imgUrl
String postEditor = post.getPostEditor();
if(StringUtils.isNotEmpty(postEditor)) {
List<String> urlList = RegexUtil.getImgSrc(postEditor);
String imgUrl = SensUtils.listToStr(urlList);
post.setImgUrl(imgUrl);
}

// 2.添加/更新入库
postService.insertOrUpdate(post);
return JsonResult.success("发布成功");
}


/**
* 处理移至回收站的请求
*
* @param postId 客房编号
* @return 重定向到/admin/post
*/
@PostMapping(value = "/throw")
@ResponseBody
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
            return JsonResult.success();
}
}


public static void main(String[] args) {
System.out.println(Md5Util.toMd5("123456", CommonConstant.PASSWORD_SALT, 10));
}
}



/**
* 后台角色管理控制器
* 2023
*/
@Controller
@RequestMapping(value = "/admin/role")
public class RoleController {

private static final Logger log = org.slf4j.LoggerFactory.getLogger(RoleController.class);
@Autowired
private RoleService roleService;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
        model.addAttribute("endDate", end);
model.addAttribute("cateId", cateId);
return "home/index";
}


}





@Controller
public class FrontCommentController extends BaseController {

@Autowired
private CommentService commentService;

@Autowired
private CategoryService categoryService;

@Autowired
private UserService userService;

/**
* 留言列表页面
*
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        orderService.update(order);

// 添加预定记录
for (String recordDate : dateList) {
Record record = new Record();
record.setPostId(order.getPostId());
record.setUserId(user.getId());
record.setRecordDate(recordDate);
recordService.insert(record);
}
return JsonResult.success("续订成功");
}


}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* 新增/修改清除记录目录
*
* @param clean
* @return 重定向到/admin/Clean
*/
@PostMapping(value = "/save")
@ResponseBody
public JsonResult saveClean(@ModelAttribute Clean clean) {
cleanService.insertOrUpdate(clean);
return JsonResult.success("保存成功");
}

/**
* 删除清除记录
*
* @param cateId 清除记录Id
* @return JsonResult
*/
@PostMapping(value = "/delete")
@ResponseBody
public JsonResult delete(@RequestParam("id") Long cateId) {

cleanService.delete(cateId);
return JsonResult.success("删除成功");
}


/**
* 开始打扫
*
* @param id 清除记录Id
* @return JsonResult
*/
@PostMapping(value = "/start")
@ResponseBody
public JsonResult start(@RequestParam("id") Long id) {
User user = getLoginUser();
Clean clean = cleanService.get(id);
if (clean == null) {
return JsonResult.error("数据不存在");
}
clean.setStatus(1);


项目链接:
https://javayms.github.io?id=311524190701201kn
https://javayms.pages.dev?id=311524190701201kn