Bootstrap

基于javaweb+mysql的springboot民宿管理系统(java+springboot+vue+elementui+layui+mysql)

基于javaweb+mysql的springboot民宿管理系统(java+springboot+vue+elementui+layui+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

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

前端:WebStorm/VSCode/HBuilderX等均可

适用

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

功能说明

基于javaweb+mysql的SpringBoot民宿管理系统(java+springboot+vue+elementui+layui+mysql)

项目介绍

角色:管理员、商家、用户

系统功能 用户注册登录后可进行首页、个人中心、民宿信息管理、房间信息管理、房间预订管理、房间退订管理、投诉反馈管理、我的收藏管理。

商家用户注册登录,可以对首页、个人中心、民宿信息管理、房间信息管理、房间预订管理、房间退订管理、投诉反馈管理、我的收藏管理等功能模块。

管理员登录后可进行首页、个人中心、用户管理、商家管理、民宿信息管理、房间类型管理、房间信息管理、房间预订管理、房间退订管理、投诉反馈管理、我的收藏管理、系统管理。

环境需要

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 5.7/8.0等版本均可;

技术栈

后端:SpringBoot+Mybaits 前端:Vue+ElementUI+Layui+HTML+CSS+JS

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

*/

@RequestMapping(value="/upload_photo",method=RequestMethod.POST)

@ResponseBody

public Map<String, String> uploadPhoto(MultipartFile photo,HttpServletRequest request){

Map<String, String> ret = new HashMap<String, String>();

if(photo == null){

ret.put("type", "error");

ret.put("msg", "选择要上传的文件!");

return ret;

if(photo.getSize() > 1024*1024*1024){

ret.put("type", "error");

ret.put("msg", "文件大小不能超过10M!");

* 编辑用户

* @param user

* @return

*/

@RequestMapping(value="/edit",method=RequestMethod.POST)

@ResponseBody

public Map<String, String> edit(User user){

Map<String, String> ret = new HashMap<String, String>();

if(user == null){

ret.put("type", "error");

ret.put("msg", "请填写正确的用户信息!");

return ret;


ret.put("msg", "请填写用户名!");

return ret;

if(StringUtils.isEmpty(user.getPassword())){

ret.put("type", "error");

ret.put("msg", "请填写密码!");

return ret;

if(user.getRoleId() == null){

ret.put("type", "error");

ret.put("msg", "请选择所属角色!");

return ret;

if(isExist(user.getUsername(), 0l)){

ret.put("type", "error");

ret.put("msg", "该用户名已经存在,请重新输入!");

return ret;

String filename = new Date().getTime()+"."+suffix;

try {

//将文件保存至指定目录

photo.transferTo(new File(savePath+filename));

}catch (Exception e) {

// TODO Auto-generated catch block

ret.put("type", "error");

ret.put("msg", "保存文件异常!");

e.printStackTrace();

return ret;

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表更新


@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()


return ResultReturn.error(2,"客房编号已存在!");

//更新已有信息

@RequestMapping("/room/update/{roomno}")

public Result roomUpdate(@PathVariable("roomno") int roomno,@RequestParam("type") int type,

@RequestParam("price") int price,@RequestParam("ifwindow") int ifwindow,

@RequestParam("comment") String comment) {

//需要先查询是否存在

if(roomservice.findByRoom(roomno)==null) {

return ResultReturn.error(1,"cant't find roomno!");

else {

Room r = saveRoom(roomno, type, price, ifwindow, comment);

return ResultReturn.success(roomservice.save(r));

@RequestMapping("/room/searchOne/{roomno}")


@RequestMapping(value="/edit",method=RequestMethod.POST)

@ResponseBody

public Map<String, String> edit(User user){

Map<String, String> ret = new HashMap<String, String>();

if(user == null){

ret.put("type", "error");

ret.put("msg", "请填写正确的用户信息!");

return ret;

if(StringUtils.isEmpty(user.getUsername())){

ret.put("type", "error");

ret.put("msg", "请填写用户名!");

return ret;

//		if(StringUtils.isEmpty(user.getPassword())){


/**

* 上传图片

* @param photo

* @param request

* @return

*/

@RequestMapping(value="/upload_photo",method=RequestMethod.POST)

@ResponseBody

public Map<String, String> uploadPhoto(MultipartFile photo,HttpServletRequest request){

Map<String, String> ret = new HashMap<String, String>();

if(photo == null){

ret.put("type", "error");

ret.put("msg", "选择要上传的文件!");

* @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);

this.orderHistoryService=orderHistoryService;

this.financeService=financeService;

/**

* 查找所有订单

* @return 返回现有的全部订单

*/

@RequestMapping("/order/orderlist")

public Result<List<Order>> orderList()

return ResultReturn.success(orderservice.findAll());

/**

* 根据订单号查找对应订单信息

* @param orderno 订单号

* @return 返回订单号对应的订单


model.addObject("roleList", roleService.findList(queryMap));

model.setViewName("user/list");

return model;

/**

* 获取用户列表

* @param page

* @param username

* @param roleId

* @param sex

* @return

*/

* @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)


/**

* 根据房间-身份证表的序号查找对应信息

* @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 姓名


public Result deleteByStdNo(@RequestParam("stdno") int stdno){

standservice.delete(standservice.findByStandard(stdno));

return ResultReturn.success();

//查询客房信息列表

@RequestMapping("/room/roomlist")

public Result<List<Room>> roomList() {

return ResultReturn.success(roomservice.getAll()) ;

//添加客房信息

@PostMapping("/room/add")

public Result roomAdd(@RequestParam("roomno") int roomno,@RequestParam("type") int type,

@RequestParam("price") int price,@RequestParam("ifwindow") int ifwindow,

@RequestParam("comment") String comment) {

System.out.println("qian"+roomno+"   "+roomservice.findByRoom(roomno));


@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 返回房间号列表

*/


return ResultReturn.error(1,"it's not exist, you can't delete!");

else {

roomservice.delete(r);

return ResultReturn.success(r);

public Room saveRoom(int roomno,int type,int price,int ifwindow,String comment) {

Room r = new Room();

r.setRoomno(roomno);

r.setType(type);

r.setPrice(price);

r.setIfwindow(ifwindow);

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

;