基于SSM的酒店入住预定系统(JavaWeb毕业设计源码)

项目类型:JAVA WEB项目
项目名称:基于SSM的酒店信息管理系统
用户类型:2个角色(管理员+入住客户)
系统类型:前端网站+后台系统
设计模式:SSM(Spring+SpringMVC+Mybatis)
开发工具:Eclipse
数据库:Mysql+Navicat
数据库表:12张
适用:软件工程、计算机科学与技术等JAVA课程的学习和实验

配套参考资料:开题报告、任务书、参考文章、参考流程图、参考ER图、数据库设计等

摘要:基于SSM的酒店管理系统的设计与实现。先是通过调研分析选题背景。再研究和准备相关的开发工具、主要技术。并将对应的开发环境配置好。之后开始进行需求分析的工作。分析主要的功能性需求。再根据分析去设计对应的各个模块。之后在开发平台进行编程。实现出酒店管理选题的实际运行效果。最后经过测试验收并总结。

酒店管理系统主要是用户进行在线预定酒店。采用Java语言开发。在开发的时候使用SSM框架。并通过MySQL存储数据库。用户通过注册登录来使用。用户可以在线搜索各种各样的酒店,并且选择入住。而这些酒店都是由管理员进行发布。并且通过后台,添加酒店的各种客房信息。

  文内包含了酒店预订的核心流程图,对于不会画流程图的同学,可以使用Visio工具,直接新建一个基本流程图模板,并使用对应的流程图基本图形,参考画图。

项目和参考资料来源:公众号“学长源码”

入住客户端功能介绍

网站首页

个人中心

酒店入住订单

个人资料修改

密码修改

管理员端功能介绍

系统设置(菜单管理+角色管理+系统密码修改)

系统设置(菜单管理+角色管理+系统密码修改)

房型管理

房间信息管理

住房客户管理

办理客户入住(每当有客户入住,需要为其办理入住)

客户入住预定管理

营业金额统计

可参考使用的流程图

数据库表

项目结构

SSM核心代码(以入住酒店为例)

CheckinController

package com.ischoolbar.programmer.controller.admin;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.ischoolbar.programmer.entity.BookOrder;
import com.ischoolbar.programmer.entity.RoomType;
import com.ischoolbar.programmer.entity.admin.Checkin;
import com.ischoolbar.programmer.entity.admin.Room;
import com.ischoolbar.programmer.page.admin.Page;
import com.ischoolbar.programmer.service.BookOrderService;
import com.ischoolbar.programmer.service.RoomTypeService;
import com.ischoolbar.programmer.service.admin.CheckinService;
import com.ischoolbar.programmer.service.admin.RoomService;


		编辑成功之后:1:判断房型是否发生变化,2:判断房间是否发生变化,3:判断是否是从预定订单来的信息
		首先判断是否是从预定来的入住信息
		RoomType oldRoomType = roomTypeService.find(existCheckin.getRoomTypeId());
		RoomType newRoomType = roomTypeService.find(checkin.getRoomTypeId());
		
		//房型入住数不收预定订单的影响
		if(oldRoomType.getId().longValue() != newRoomType.getId().longValue()){
			//说明房型发生了变化,原来的房型入住数恢复,新的房型入住数增加
			oldRoomType.setLivedNum(oldRoomType.getLivedNum() - 1);
			newRoomType.setLivedNum(newRoomType.getLivedNum() + 1);
			if(bookOrderId == null){
				oldRoomType.setAvilableNum(oldRoomType.getAvilableNum() + 1);
				newRoomType.setAvilableNum(newRoomType.getAvilableNum() - 1);
			}
		}
	
		if(bookOrderId == null){
			//表示不是从预定订单来的,此时需判断原来的入住信息是否来源于预定
			if(existCheckin.getBookOrderId() == null){
				oldRoomType.setAvilableNum(oldRoomType.getAvilableNum() + 1);
				newRoomType.setAvilableNum(newRoomType.getAvilableNum() - 1);
			}
			if(existCheckin.getBookOrderId() != null){
				//表示原来的入住信息来源于预定,但是新的入住信息不是来源于预定,需恢复原来的预定状态
				BookOrder oldBookOrder = bookOrderService.find(existCheckin.getBookOrderId());
				oldBookOrder.setStatus(0);
				bookOrderService.edit(oldBookOrder);
				oldRoomType.setBookNum(oldRoomType.getBookNum() + 1);
			}
		}
		表示此时的订单是来源于预定
		if(bookOrderId != null){
			//表示是从预定订单来的,此时需判断原来的入住信息是否来源于预定
			if(existCheckin.getBookOrderId() != null){
				//表示原来的入住信息来源于预定,但是新的入住信息不是来源于预定,需恢复原来的预定状态
				BookOrder oldBookOrder = bookOrderService.find(existCheckin.getBookOrderId());
				if(bookOrderId.longValue() != oldBookOrder.getId().longValue()){
					oldBookOrder.setStatus(0);
					bookOrderService.edit(oldBookOrder);
					//oldRoomType.setBookNum(oldRoomType.getBookNum() + 1);
				}
			}
			if(oldRoomType.getId().longValue() != newRoomType.getId().longValue()){
				newRoomType.setBookNum(newRoomType.getBookNum() - 1);
				
				if(existCheckin.getBookOrderId() == null){
					oldRoomType.setAvilableNum(oldRoomType.getAvilableNum() + 1);
				}else{
					oldRoomType.setBookNum(oldRoomType.getBookNum() + 1);
				}
			}
			BookOrder newBookOrder = bookOrderService.find(bookOrderId);
			newBookOrder.setStatus(1);
			bookOrderService.edit(newBookOrder);
		}
		roomTypeService.updateNum(newRoomType);
		roomTypeService.updateNum(oldRoomType);
		//判断房间是否发生变化
		if(checkin.getRoomId().longValue() != existCheckin.getRoomId().longValue()){
			//表示房间发生了变化
			Room oldRoom = roomService.find(existCheckin.getRoomId());
			Room newRoom = roomService.find(checkin.getRoomId());
			oldRoom.setStatus(0);//原来的房间可入住
			newRoom.setStatus(1);//现在的房间已入住
			roomService.edit(newRoom);
			roomService.edit(oldRoom);
		}
		ret.put("type", "success");
		ret.put("msg", "修改成功!");
		return ret;
	}
	

CheckinService

package com.ischoolbar.programmer.service.admin;
/**
 * 入住service
 */
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.ischoolbar.programmer.entity.admin.Checkin;

@Service
public interface CheckinService {
	public int add(Checkin checkin);
	public int edit(Checkin checkin);
	public int delete(Long id);
	public List<Checkin> findList(Map<String, Object> queryMap);
	public Integer getTotal(Map<String, Object> queryMap);
	public Checkin find(Long id);
	public List<Map> getStatsByMonth();
	public List<Map> getStatsByDay();
}

CheckinServiceImpl

package com.ischoolbar.programmer.service.admin.impl;
/**
 * 入住管理service实现类
 */
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ischoolbar.programmer.dao.admin.CheckinDao;
import com.ischoolbar.programmer.entity.admin.Checkin;
import com.ischoolbar.programmer.service.admin.CheckinService;
@Service
public class CheckinServiceImpl implements CheckinService {

	@Autowired
	private CheckinDao checkinDao;

	@Override
	public int add(Checkin checkin) {
		// TODO Auto-generated method stub
		return checkinDao.add(checkin);
	}

	@Override
	public int edit(Checkin checkin) {
		// TODO Auto-generated method stub
		return checkinDao.edit(checkin);
	}

	@Override
	public int delete(Long id) {
		// TODO Auto-generated method stub
		return checkinDao.delete(id);
	}

	@Override
	public List<Checkin> findList(Map<String, Object> queryMap) {
		// TODO Auto-generated method stub
		return checkinDao.findList(queryMap);
	}

	@Override
	public Integer getTotal(Map<String, Object> queryMap) {
		// TODO Auto-generated method stub
		return checkinDao.getTotal(queryMap);
	}

	@Override
	public Checkin find(Long id) {
		// TODO Auto-generated method stub
		return checkinDao.find(id);
	}

	@Override
	public List<Map> getStatsByMonth() {
		// TODO Auto-generated method stub
		return checkinDao.getStatsByMonth();
	}

	@Override
	public List<Map> getStatsByDay() {
		// TODO Auto-generated method stub
		return checkinDao.getStatsByDay();
	}

	

	
	
	

}

CheckinDao

package com.ischoolbar.programmer.dao.admin;
import java.util.List;
import java.util.Map;

/**
 * 入住dao
 */
import org.springframework.stereotype.Repository;

import com.ischoolbar.programmer.entity.admin.Checkin;

@Repository
public interface CheckinDao {
	public int add(Checkin checkin);
	public int edit(Checkin checkin);
	public int delete(Long id);
	public List<Checkin> findList(Map<String, Object> queryMap);
	public Integer getTotal(Map<String, Object> queryMap);
	public Checkin find(Long id);
	public List<Map> getStatsByMonth();
	public List<Map> getStatsByDay();
}

Checkin.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@include file="../common/header.jsp"%>
<div class="easyui-layout" data-options="fit:true">
    <!-- Begin of toolbar -->
    <div id="wu-toolbar">
        <div class="wu-toolbar-button">
            <%@include file="../common/menus.jsp"%>
        </div>
        <div class="wu-toolbar-search">
            <label>入住姓名:</label><input id="search-name" class="wu-text" style="width:100px">
            <label>身份证号:</label><input id="search-idCard" class="wu-text" style="width:100px">
            <label>手机号码:</label><input id="search-mobile" class="wu-text" style="width:100px">
            <label>房间:</label>
            <select id="search-room" class="easyui-combobox" panelHeight="auto" style="width:120px">
            	<option value="-1">全部</option>
            	<c:forEach items="${roomList}" var="room">
            	<option value="${room.id }">${room.sn }</option>
            	</c:forEach>
            </select>
            <label>房型:</label>
            <select id="search-roomType" class="easyui-combobox" panelHeight="auto" style="width:120px">
            	<option value="-1">全部</option>
            	<c:forEach items="${roomTypeList}" var="roomType">
            	<option value="${roomType.id }" price="${roomType.price }">${roomType.name }</option>
            	</c:forEach>
            </select>
            <label>状态:</label>
            <select id="search-status" class="easyui-combobox" panelHeight="auto" style="width:120px">
            	<option value="-1">全部</option>
            	<option value="0">入住中</option>
            	<option value="1">已结算离店</option>
            </select>
            <a href="#" id="search-btn" class="easyui-linkbutton" iconCls="icon-search">搜索</a>
        </div>
    </div>
    <!-- End of toolbar -->
    <table id="data-datagrid" class="easyui-datagrid" toolbar="#wu-toolbar"></table>
</div>
<!-- 订单选择弹框 -->
<div id="show-order-dialog" class="easyui-dialog" data-options="closed:true,iconCls:'icon-save'" style="width:750px;height:500px; padding:10px;">
	<table id="order-datagrid" class="easyui-datagrid"></table>
</div>
<!-- 添加弹框 -->
<div id="add-dialog" class="easyui-dialog" data-options="closed:true,iconCls:'icon-save'" style="width:450px; padding:10px;">
	<form id="add-form" method="post">
        <table>
            <tr>
                <td align="right">预定订单:</td>
                <td>
	              <input type="text" readonly="readonly" id="add-bookOrderId" name="bookOrderId" class="wu-text" />  	
                </td>
                <td><a href="#" class="select-order-btn easyui-linkbutton" iconCls="icon-add" plain="true">选择</a></td>
            </tr>
            <tr>
                <td align="right">房型:</td>
                <td>
	                <select id="add-roomTypeId" name="roomTypeId" class="easyui-combobox" panelHeight="auto" style="width:268px" data-options="required:true, missingMessage:'请选择房型'">
		            	<c:forEach items="${roomTypeList}" var="roomType">
		            	<option value="${roomType.id }">${roomType.name }</option>
		            	</c:forEach>
	            	</select>	
                </td>
                <td></td>
            </tr>
            <tr>
                <td align="right">房间:</td>
                <td>
	                <select id="add-roomId" name="roomId" class="easyui-combobox" panelHeight="auto" style="width:268px" data-options="required:true, missingMessage:'请选择客户'">
		            	<c:forEach items="${roomList}" var="room">
		            	<option value="${room.id }">${room.sn }</option>
		            	</c:forEach>
	            	</select>	
                </td>
                <td></td>
            </tr>
            
            <tr>
                <td align="right">入住价格:</td>
                <td><input type="text" id="add-checkinPrice" name="checkinPrice" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入姓名'" /></td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">入住人姓名:</td>
                <td><input type="text" id="add-name" name="name" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入姓名'" /></td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">身份证号:</td>
                <td><input type="text" id="add-idCard" name="idCard" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入身份证号'"  /></td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">手机号码:</td>
                <td><input type="text" id="add-mobile" name="mobile" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入手机号'" /></td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">入住日期:</td>
                <td><input type="text" id="add-arriveDate" name="arriveDate" class="wu-text easyui-datebox easyui-validatebox"  /></td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">离店日期:</td>
                <td><input type="text" id="add-leaveDate" name="leaveDate" class="wu-text easyui-datebox easyui-validatebox"  /></td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">状态:</td>
                <td>
	                <select id="add-status" name="status" class="easyui-combobox" panelHeight="auto" style="width:268px" data-options="required:true, missingMessage:'请选择状态'">
		            	<option value="0">已入住</option>
		            	<option value="1">已结算离店</option>
	            	</select>	
                </td>
            	<td></td>
            </tr>
            <tr>
                <td align="right">备注:</td>
                <td><textarea id="add-remark" name="remark" rows="6" class="wu-textarea" style="width:260px"></textarea></td>
            	<td></td>
            </tr>
        </table>
    </form>
</div>
<!-- 修改窗口 -->
<div id="edit-dialog" class="easyui-dialog" data-options="closed:true,iconCls:'icon-save'" style="width:450px; padding:10px;">
	<form id="edit-form" method="post">
        <input type="hidden" name="id" id="edit-id">
        <input type="hidden" name="bookOrderId" id="edit-bookOrderId">
        <table>
           <tr>
                <td align="right">房型:</td>
                <td>
	                <select id="edit-roomTypeId" name="roomTypeId" class="easyui-combobox" panelHeight="auto" style="width:268px" data-options="required:true, missingMessage:'请选择房型'">
		            	<c:forEach items="${roomTypeList}" var="roomType">
		            	<option value="${roomType.id }">${roomType.name }</option>
		            	</c:forEach>
	            	</select>	
                </td>
            </tr>
           <tr>
                <td align="right">房间:</td>
                <td>
	                <select id="edit-roomId" name="roomId" class="easyui-combobox" panelHeight="auto" style="width:268px" data-options="required:true, missingMessage:'请选择客户'">
		            	<c:forEach items="${roomList}" var="room">
		            	<option value="${room.id }">${room.sn }</option>
		            	</c:forEach>
	            	</select>	
                </td>
            </tr>
            
            <tr>
                <td align="right">入住价格:</td>
                <td><input type="text" id="edit-checkinPrice" name="checkinPrice" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入姓名'" /></td>
            </tr>
            <tr>
                <td align="right">入住人姓名:</td>
                <td><input type="text" id="edit-name" name="name" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入姓名'" /></td>
            </tr>
            <tr>
                <td align="right">身份证号:</td>
                <td><input type="text" id="edit-idCard" name="idCard" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入身份证号'"  /></td>
            </tr>
            <tr>
                <td align="right">手机号码:</td>
                <td><input type="text" id="edit-mobile" name="mobile" class="wu-text easyui-validatebox" data-options="required:true, missingMessage:'请输入手机号'" /></td>
            </tr>
            <tr>
                <td align="right">入住日期:</td>
                <td><input type="text" id="edit-arriveDate" name="arriveDate" class="wu-text easyui-datebox easyui-validatebox"  /></td>
            </tr>
            <tr>
                <td align="right">离店日期:</td>
                <td><input type="text" id="edit-leaveDate" name="leaveDate" class="wu-text easyui-datebox easyui-validatebox"  /></td>
            </tr>
            <tr>
                <td align="right">状态:</td>
                <td>
	                <select id="edit-status" name="status" class="easyui-combobox" panelHeight="auto" style="width:268px" data-options="required:true, missingMessage:'请选择状态'">
		            	<option value="0">已入住</option>
		            	<option value="1">已结算离店</option>
	            	</select>	
                </td>
            </tr>
            <tr>
                <td align="right">备注:</td>
                <td><textarea id="edit-remark" name="remark" rows="6" class="wu-textarea" style="width:260px"></textarea></td>
            </tr>
        </table>
    </form>
</div>
<%@include file="../common/footer.jsp"%>

<!-- End of easyui-dialog -->
<script type="text/javascript">
	
	
	
	/**
	*  添加记录
	*/
	function add(){
		var validate = $("#add-form").form("validate");
		if(!validate){
			$.messager.alert("消息提醒","请检查你输入的数据!","warning");
			return;
		}
		var data = $("#add-form").serialize();
		$.ajax({
			url:'add',
			dataType:'json',
			type:'post',
			data:data,
			success:function(data){
				if(data.type == 'success'){
					$.messager.alert('信息提示','添加成功!','info');
					$("#add-name").val('');
					$("#add-remark").val('');
					$('#add-dialog').dialog('close');
					$('#data-datagrid').datagrid('reload');
				}else{
					$.messager.alert('信息提示',data.msg,'warning');
				}
			}
		});
	}
	
	/**
	* 编辑记录
	*/
	function edit(){
		var validate = $("#edit-form").form("validate");
		if(!validate){
			$.messager.alert("消息提醒","请检查你输入的数据!","warning");
			return;
		}
		var data = $("#edit-form").serialize();
		$.ajax({
			url:'edit',
			dataType:'json',
			type:'post',
			data:data,
			success:function(data){
				if(data.type == 'success'){
					$.messager.alert('信息提示','修改成功!','info');
					$('#edit-dialog').dialog('close');
					$('#data-datagrid').datagrid('reload');
				}else{
					$.messager.alert('信息提示',data.msg,'warning');
				}
			}
		});
	}
	
	
	/**
	* 删除记录
	*/
	function remove(){
		$.messager.confirm('信息提示','确定要删除该记录?', function(result){
			if(result){
				var item = $('#data-datagrid').datagrid('getSelected');
				if(item == null || item.length == 0){
					$.messager.alert('信息提示','请选择要删除的数据!','info');
					return;
				}
				
				$.ajax({
					url:'delete',
					dataType:'json',
					type:'post',
					data:{id:item.id},
					success:function(data){
						if(data.type == 'success'){
							$.messager.alert('信息提示','删除成功!','info');
							$('#data-datagrid').datagrid('reload');
						}else{
							$.messager.alert('信息提示',data.msg,'warning');
						}
					}
				});
			}	
		});
	}
	
	/**
	* Name 打开编辑窗口
	*/
	function openEdit(){
		//$('#add-form').form('clear');
		var item = $('#data-datagrid').datagrid('getSelected');
		if(item == null || item.length == 0){
			$.messager.alert('信息提示','请选择要编辑的数据!','info');
			return;
		}
		$('#edit-dialog').dialog({
			closed: false,
			modal:true,
            title: "编辑入住信息",
            buttons: [{
                text: '确定',
                iconCls: 'icon-ok',
                handler: edit
            }, {
                text: '取消',
                iconCls: 'icon-cancel',
                handler: function () {
                    $('#edit-dialog').dialog('close');                    
                }
            }],
            onBeforeOpen:function(){
            	//$("#add-form input").val('');
            	$("#edit-id").val(item.id);
            	$("#edit-name").val(item.name);
            	$("#edit-arriveDate").datebox('setValue',item.arriveDate);
            	$("#edit-leaveDate").datebox('setValue',item.leaveDate);
            	$("#edit-idCard").val(item.idCard);
            	$("#edit-mobile").val(item.mobile);
            	$("#edit-checkinPrice").val(item.checkinPrice);
            	$("#edit-bookOrderId").val(item.bookOrderId);
            	$("#edit-status").combobox('setValue',item.status);
            	$("#edit-roomId").combobox('setValue',item.roomId);
            	$("#edit-roomTypeId").combobox('setValue',item.roomTypeId);
            	$("#edit-remark").val(item.remark);
            }
        });
	}
	
	//等级退房
	function openCheckOut(){
		$.messager.confirm('信息提示','确定要退房?', function(result){
			if(result){
				var item = $('#data-datagrid').datagrid('getSelected');
				if(item == null || item.length == 0){
					$.messager.alert('信息提示','请选择要退房的数据!','info');
					return;
				}
				if(item.status != 0){
					$.messager.alert('信息提示','该状态不能结算!','info');
					return;
				}
				$.ajax({
					url:'checkout',
					dataType:'json',
					type:'post',
					data:{checkId:item.id},
					success:function(data){
						if(data.type == 'success'){
							$.messager.alert('信息提示','退房成功!','info');
							$('#data-datagrid').datagrid('reload');
						}else{
							$.messager.alert('信息提示',data.msg,'warning');
						}
					}
				});
			}	
		});
	} 
	
	/**
	* Name 打开添加窗口
	*/
	function openAdd(){
		//$('#add-form').form('clear');
		$('#add-dialog').dialog({
			closed: false,
			modal:true,
            title: "等级入住信息",
            buttons: [{
                text: '确定',
                iconCls: 'icon-ok',
                handler: add
            }, {
                text: '取消',
                iconCls: 'icon-cancel',
                handler: function () {
                    $('#add-dialog').dialog('close');                    
                }
            }],
            onBeforeOpen:function(){
            	$("#add-form input").val('');
            	
            }
        });
	}
	
	//搜索按钮监听
	$("#search-btn").click(function(){
		var option = {name:$("#search-name").val()};
		var status = $("#search-status").combobox('getValue');
		var account = $("#search-room").combobox('getValue');
		var roomType = $("#search-roomType").combobox('getValue');
		if(status != -1){
			option.status = status;
		}
		if(account != -1){
			option.accountId = account;
		}
		if(roomType != -1){
			option.roomTypeId = roomType;
		}
		option.idCard = $("#search-idCard").val();
		option.mobile = $("#search-mobile").val();
		$('#data-datagrid').datagrid('reload',option);
	});
	
	
	function add0(m){return m<10?'0'+m:m }
	function format(shijianchuo){
	//shijianchuo是整数,否则要parseInt转换
		var time = new Date(shijianchuo);
		var y = time.getFullYear();
		var m = time.getMonth()+1;
		var d = time.getDate();
		var h = time.getHours();
		var mm = time.getMinutes();
		var s = time.getSeconds();
		return y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);
	}
	
	$("#add-roomTypeId").combobox({
		onSelect:function(data){
			$("#add-roomId").combobox('clear');
			$("#add-roomId").combobox('reload','load_room_list?roomTypeId='+data.value);
		}
	});
	
	$("#edit-roomTypeId").combobox({
		onSelect:function(data){
			$("#edit-roomId").combobox('clear');
			$("#edit-roomId").combobox('reload','load_room_list?roomTypeId='+data.value);
		}
	});
	
	/** 
	* 载入数据
	*/
	$('#data-datagrid').datagrid({
		url:'list',
		rownumbers:true,
		singleSelect:true,
		pageSize:20,           
		pagination:true,
		multiSort:true,
		fitColumns:true,
		idField:'id',
	    treeField:'name',
		fit:true,
		columns:[[
			{ field:'chk',checkbox:true},
			{ field:'roomId',title:'房间',width:100,formatter:function(value,row,index){
				var roomIdList = $("#search-room").combobox('getData');
				//console.log(roomIdList);
				for(var i=0;i<roomIdList.length;i++){
					if(roomIdList[i].value == value)return roomIdList[i].text;
				}
				return value;
			}},
			{ field:'roomTypeId',title:'房型',width:150,formatter:function(value,row,index){
				var roomTypeList = $("#search-roomType").combobox('getData');
				for(var i=0;i<roomTypeList.length;i++){
					if(roomTypeList[i].value == value){
						return roomTypeList[i].text + '(¥:' + $("#search-roomType option[value='"+value+"']").attr('price') + ')';
					}
				}
				return value;
			}},
			{ field:'checkinPrice',title:'入住价格',width:60,sortable:true},
			{ field:'name',title:'入住人',width:60,sortable:true},
			{ field:'idCard',title:'身份证号',width:100,sortable:true},
			{ field:'mobile',title:'手机号',width:100,sortable:true},
			{ field:'arriveDate',title:'入住日期',width:100,sortable:true},
			{ field:'leaveDate',title:'离店日期',width:100,sortable:true},
			{ field:'status',title:'状态',width:100,formatter:function(value,row,index){
				switch(value){
					case 0:{
						return '入住中';
					}
					case 1:{
						return '已结算离店';
					}
				}
				return value;
			}},
			{ field:'createTime',title:'预定时间',width:150,formatter:function(value,row,index){
				return format(value);
			}},
			{ field:'remark',title:'备注',width:120,sortable:true}
		]]
	});
	
	$(".select-order-btn").click(function(){
		$('#show-order-dialog').dialog({
			closed: false,
			modal:true,
            title: "选择预定订单信息",
            buttons: [{
                text: '确定',
                iconCls: 'icon-ok',
                handler: function(){
                	var selectedOrder = $('#order-datagrid').datagrid('getSelected');
            		if(selectedOrder == null || selectedOrder.length == 0){
            			$.messager.alert('信息提示','请选择订单信息!','info');
            			return;
            		}
            		$("#add-name").val(selectedOrder.name);
                	$("#add-arriveDate").datebox('setValue',selectedOrder.arriveDate);
                	$("#add-leaveDate").datebox('setValue',selectedOrder.leaveDate);
                	$("#add-idCard").val(selectedOrder.idCard);
                	$("#add-mobile").val(selectedOrder.mobile);
                	$("#add-bookOrderId").val(selectedOrder.id);
                	$("#add-status").combobox('setValue',selectedOrder.status);
                	$("#add-roomTypeId").combobox('setValue',selectedOrder.roomTypeId);
                	$("#add-remark").val(selectedOrder.remark);
                	
                	$("#edit-name").val(selectedOrder.name);
                	$("#edit-arriveDate").datebox('setValue',selectedOrder.arriveDate);
                	$("#edit-leaveDate").datebox('setValue',selectedOrder.leaveDate);
                	$("#edit-idCard").val(selectedOrder.idCard);
                	$("#edit-mobile").val(selectedOrder.mobile);
                	$("#edit-bookOrderId").val(selectedOrder.id);
                	$("#edit-status").combobox('setValue',selectedOrder.status);
                	$("#edit-roomTypeId").combobox('setValue',selectedOrder.roomTypeId);
                	$("#edit-remark").val(selectedOrder.remark);
                	
                	$('#show-order-dialog').dialog('close'); 
                }
            }, {
                text: '取消',
                iconCls: 'icon-cancel',
                handler: function () {
                    $('#show-order-dialog').dialog('close');                    
                }
            }],
            onBeforeOpen:function(){
            	$('#order-datagrid').datagrid({
            		url:'../book_order/list',
            		rownumbers:true,
            		singleSelect:true,
            		pageSize:20,           
            		pagination:true,
            		multiSort:true,
            		fitColumns:true,
            		idField:'id',
            	    treeField:'name',
            	    queryParams:{status:0},
            		fit:true,
            		columns:[[
            			{ field:'chk',checkbox:true},
            			{ field:'roomTypeId',title:'房型',width:150,formatter:function(value,row,index){
            				var roomTypeList = $("#search-roomType").combobox('getData');
            				for(var i=0;i<roomTypeList.length;i++){
            					if(roomTypeList[i].value == value){
            						return roomTypeList[i].text + '(¥:' + $("#search-roomType option[value='"+value+"']").attr('price') + ')';
            					}
            				}
            				return value;
            			}},
            			{ field:'name',title:'预定人',width:60,sortable:true},
            			{ field:'arriveDate',title:'入住日期',width:100,sortable:true},
            			{ field:'leaveDate',title:'离店日期',width:100,sortable:true},
            			{ field:'status',title:'状态',width:100,formatter:function(value,row,index){
            				switch(value){
            					case 0:{
            						return '预定中';
            					}
            					case 1:{
            						return '已入住';
            					}
            					case 2:{
            						return '已结算离店';
            					}
            				}
            				return value;
            			}},
            			{ field:'remark',title:'备注',width:120,sortable:true}
            		]]
            	});
            	
            }
        });
	});
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

那条学长V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值