基于javaweb+SSM的民宿管理系统(java+SSM+JSP+bootstrap+jQuery+mysql)

ssm民宿管理系统网页前后端
项目介绍
游客功能:用户注册、登录、登录权限拦截、按名称搜索房间、支付流程、查看订单信息和状态、评论预定过的房间,并自动修改订单状态、查看统计剩余房间数量,数量为0时不可预定
管理员功能:房间分类管理、房间管理、订单管理

高级功能:各种列表清单的导出和打印功能、订单组合条件查询

功能清单
游客功能

  • 用户注册、登录

  • 登录权限拦截

  • 按名称搜索房间

  • 支付流程

  • 查看订单信息和状态

  • 评论预定过的房间,并自动修改订单状态

  • 查看统计剩余房间数量,数量为0时不可预定

管理员功能

房间分类管理

  • 类型的删除、修改、查询(准备添加增添功能,即图片上传功能)
  • 类型所含属性的增删改查
  • 房间分类图片上传

房间管理

  • 房间增删改导印统
  • 查询已上传房间的所有照片
  • 房间的配套设施属性设置
  • 房间价格(原价、活动价)、名称、描述等属性设置
  • 房间存量统计

订单管理

  • 订单信息修改、删除

  • 订单组合条件查询

  • 筛选出超时未评论的订单

高级功能

  • 各种列表清单的导出和打印功能

  • 订单组合条件查询

环境需要
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版本;

技术栈

  1. 后端:Spring SpringMVC MyBatis

  2. 前端:JSP+bootstrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

  2. 将项目中applicationContext.xml配置文件中的数据库配置改为自己的配置;

  3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
    若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行;

  4. 运行项目,输入localhost:8080/ 登录请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述
    请添加图片描述

适用

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

							  @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,
	 * @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);
		{
			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/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 phone 手机号码
	 * @return 返回对应会员
	 */
	@RequestMapping("/member/getbyphone")
	public Result<Member> getByPhone(@RequestParam("phone") String phone)
	{
		return ResultReturn.success(memberService.findByPhone(phone));
	}
	/**
	 *
	 * @param id 身份证
	 * @return 返回对应会员
			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("\\|"); //“.”和“|”都是转义字符,必须得加”\\”;
		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());
			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}")
			){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("username", username);
		queryMap.put("roleId", roleId);
		queryMap.put("sex", sex);
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		ret.put("rows", userService.findList(queryMap));
		ret.put("total", userService.getTotal(queryMap));
		return ret;
	}
	
	/**
	 * 添加用户
	 * @param user
	 * @return
	 */
	@RequestMapping(value="/add",method=RequestMethod.POST)
            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);
        r.setComment(comment);
        return r;
    }
    public Standard saveStandard(String stdname,int roomarea,int bedno,String equip1,String equip2){
        Standard s = new Standard();
        s.setStdname(stdname);
        s.setRoomerea(roomarea);
        s.setBedno(bedno);
        s.setEquip1(equip1);
        s.setEquip2(equip2);
        return s;
    }
}
		return ResultReturn.success();
	}
}
用户管理控制器:
/**
 * 用户管理控制器
 */
@RequestMapping("/admin/user")
@Controller
public class UserController {
	@Autowired
	private UserService userService;
	@Autowired
	private RoleService roleService;
	
	/**
	 * 用户列表页面
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public ModelAndView list(ModelAndView model){
		Map<String, Object> queryMap = new HashMap<String, Object>();
		model.addObject("roleList", roleService.findList(queryMap));
		model.setViewName("user/list");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值