基于javaweb+mysql的酒店预定管理系统(前台、后台)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
(1)用户在线浏览客房,管理自己的个人信息,预订客房。
(2)管理员对酒店的客房信息、活动信息进行管理,同时对客房评论进行管理。
前台
后台:
技术框架
JavaBean MVC JSP SSM(Spring SpringMVC MyBatis) MySQL EasyUI JavaScript
$("#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');
}
}, {
<div class="code">&#xe66c;</div>
<div class="fontclass">.Hui-iconfont-zhongzuo</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">下载</div>
<div class="code">&#xe640;</div>
<div class="fontclass">.Hui-iconfont-down</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">切换器右</div>
<div class="code">&#xe63d;</div>
<div class="fontclass">.Hui-iconfont-slider-right</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">切换器左</div>
<div class="fontclass">.Hui-iconfont-tel2</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">电话</div>
<div class="code">&#xe696;</div>
<div class="fontclass">.Hui-iconfont-phone</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">平板电脑</div>
<div class="code">&#xe64c;</div>
<div class="fontclass">.Hui-iconfont-pad</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">PC</div>
<div class="code">&#xe64f;</div>
<div class="fontclass">.Hui-iconfont-xianshiqi</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">照相机</div>
<div class="code">&#xe650;</div>
<div class="fontclass">.Hui-iconfont-zhaoxiangji</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">单反相机</div>
<div class="code">&#xe651;</div>
</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>
if(StringUtils.isEmpty(bookOrder.getMobile())){
ret.put("type", "error");
ret.put("msg", "预定订单联系人手机号不能为空!");
return ret;
}
if(StringUtils.isEmpty(bookOrder.getIdCard())){
ret.put("type", "error");
ret.put("msg", "联系人身份证号不能为空!");
return ret;
}
if(StringUtils.isEmpty(bookOrder.getArriveDate())){
ret.put("type", "error");
ret.put("msg", "到达时间不能为空!");
return ret;
}
if(StringUtils.isEmpty(bookOrder.getLeaveDate())){
ret.put("type", "error");
ret.put("msg", "离店时间不能为空!");
return ret;
}
bookOrder.setCreateTime(new Date());
if(bookOrderService.add(bookOrder) <= 0){
ret.put("type", "error");
return true;
}
}
package com.demo.controller.admin;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.demo.entity.admin.Menu;
<li> <i class="icon Hui-iconfont"></i>
<div class="name">朋友圈</div>
<div class="code">&#xe693;</div>
<div class="fontclass">.Hui-iconfont-share-pengyouquan</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">微信</div>
<div class="code">&#xe694;</div>
<div class="fontclass">.Hui-iconfont-share-weixin</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">QQ</div>
<div class="code">&#xe67b;</div>
<div class="fontclass">.Hui-iconfont-share-qq</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">QQ空间</div>
<div class="code">&#xe6c8;</div>
$('#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');
}
* @param ids
* @return
*/
@RequestMapping(value="/delete",method=RequestMethod.POST)
@ResponseBody
public Map<String, String> delete(String ids){
Map<String, String> ret = new HashMap<String, String>();
if(StringUtils.isEmpty(ids)){
ret.put("type", "error");
ret.put("msg", "选择要删除的数据!");
return ret;
}
if(ids.contains(",")){
ids = ids.substring(0,ids.length()-1);
}
if(userService.delete(ids) <= 0){
ret.put("type", "error");
ret.put("msg", "用户删除失败,请联系管理员!");
return ret;
}
ret.put("type", "success");
ret.put("msg", "用户删除成功!");
return ret;
}
@RequestMapping("/admin/book_order")
@Controller
public class BookOrderController {
@Autowired
private AccountService accountService;
@Autowired
private RoomTypeService roomTypeService;
@Autowired
private BookOrderService bookOrderService;
/**
* 预定订单管理列表页面
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">重做</div>
<div class="code">&#xe66c;</div>
<div class="fontclass">.Hui-iconfont-zhongzuo</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">下载</div>
<div class="code">&#xe640;</div>
<div class="fontclass">.Hui-iconfont-down</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">切换器右</div>
<div class="code">&#xe63d;</div>
<div class="fontclass">.Hui-iconfont-slider-right</div>
</li>
<li> <i class="icon Hui-iconfont"></i>
<div class="name">切换器左</div>
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('getSelections');
if(item == null || item.length == 0){
$.messager.alert('信息提示','请选择要删除的数据!','info');
return;
}
var ids = '';
for(var i=0;i<item.length;i++){
ids += item[i].id + ',';
}
$.ajax({
url:'delete',
dataType:'json',
type:'post',
data:{ids:ids},
success:function(data){
if(data.type == 'success'){
}
});
}
$('#select-icon-dialog').dialog({
closed: false,
modal:true,
title: "选择icon信息",
buttons: [{
text: '确定',
iconCls: 'icon-ok',
handler: function(){
var icon = $(".selected a").attr('class');
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;
* 分页查询入住信息
* @param name
* @param page
* @return
*/
@RequestMapping(value="/list",method=RequestMethod.POST)
@ResponseBody
public Map<String,Object> list(
@RequestParam(name="name",defaultValue="") String name,
@RequestParam(name="roomId",defaultValue="") Long roomId,
@RequestParam(name="roomTypeId",defaultValue="") Long roomTypeId,
@RequestParam(name="idCard",defaultValue="") String idCard,
@RequestParam(name="mobile",defaultValue="") String mobile,
@RequestParam(name="status",required=false) Integer status,
Page page
){
Map<String,Object> ret = new HashMap<String, Object>();
Map<String,Object> queryMap = new HashMap<String, Object>();
queryMap.put("name", name);
queryMap.put("status", status);
queryMap.put("roomId", roomId);
queryMap.put("roomTypeId", roomTypeId);
<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>