添加酒店信息的基本操作

This commit is contained in:
freeebird 2018-10-24 18:48:21 +08:00
parent 79971cc62c
commit c7cac3cbe1
9 changed files with 213 additions and 155 deletions

View File

@ -9,10 +9,7 @@
### 1.3 业务背景 ### 1.3 业务背景
传统的酒店管理往往需要酒店管理人花大量时间和精力来处理顾客查询、顾客登记等等事务。而错误的查询、繁琐的登记和结账手续、费用的结算错误、空余客房不能及时提供等等问题,可能导致顾客的频繁投诉,从而影响酒店的出租率。这些问题都可以通过计算机辅助系统来解决。酒店管理的信息化,不仅是酒店现代化形象的标志,而且能够酒店员工的工作效率,加速资金周转、降低各项成本以及改善服务质量。并支持客户直接在线预订,为客户提供方便快捷的服务. 传统的酒店管理往往需要酒店管理人花大量时间和精力来处理顾客查询、顾客登记等等事务。而错误的查询、繁琐的登记和结账手续、费用的结算错误、空余客房不能及时提供等等问题,可能导致顾客的频繁投诉,从而影响酒店的出租率。这些问题都可以通过计算机辅助系统来解决。酒店管理的信息化,不仅是酒店现代化形象的标志,而且能够酒店员工的工作效率,加速资金周转、降低各项成本以及改善服务质量。并支持客户直接在线预订,为客户提供方便快捷的服务.
## 2 项目说明 ## 2 项目功能
### 2.1 问题说明
由于酒店的客房有不同的档次,所以需要能够对客房进行分类处理。同时为了方便对客房价格的设置,需要提供一个能够对不同档次的客房能够进行预订价格、预订折扣、计时最低价格等的设置。需要提供一个客房设置功能,用来设置酒店的所有客房信息。在设置客房信息时,应该提供对不同房间的实际价格、实际折扣的设置。特别重要的是能够对房间的状态以及是否可用进行设置,这样能够方便酒店对客房的及时管理。需要提供一个入住登记和结账功能,并且能够对客户的登记时间、离店时间、客户资料、入住房间等信息进行登记。需要提供一个预定中心,能够处理客户的各种预定,如电话预定、总台面约、网上预定以及领导安排等等预定方式。需要提供一个客户管理功能,从而实现对酒店的客户信息的统一管理。最后还需要提供一个业务统计报表功能,能够对酒店一年中每月的住宿率进行统计,然后生成柱状图进行显示。
### 2.2 用户期望
>酒店管理系统后台,供管理员管理系统之用 >酒店管理系统后台,供管理员管理系统之用
- 客房类型设置 - 客房类型设置
- 客房设置 - 客房设置

View File

@ -0,0 +1,114 @@
package cn.mafangui.hotel.controller;
import cn.mafangui.hotel.entity.Hotel;
import cn.mafangui.hotel.service.HotelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping(value = "/hotelInfo")
public class HotelController {
@Autowired
private HotelService hotelService;
/**
* 添加酒店信息
* @param hotelName
* @param phone
* @param telephone
* @param email
* @param address
* @param website
* @return
*/
@RequestMapping(value = "/add")
public int addHotel(String hotelName,String phone,String telephone,String email,String address,String website){
int result = 0;
Hotel hotel = new Hotel(hotelName,phone,telephone,email,address,website);
try {
result = hotelService.addHotel(hotel);
}catch (Exception e){
result = -1;
}
return result;
}
/**
* 删除酒店信息
* @param hotelId
* @return
*/
@RequestMapping(value = "/delete")
public int deleteHotel(int hotelId){
int result = 0;
try {
result = hotelService.deleteHotel(hotelId);
}catch (Exception e){
result = -1;
}
return result;
}
/**
* 更改酒店信息
* @param hotelName
* @param phone
* @param telephone
* @param email
* @param address
* @param website
* @return
*/
@RequestMapping(value = "/update")
public int updateHotel(int hotelId,String hotelName,String phone,String telephone,String email,String address,String website){
int result = 0;
Hotel hotel = new Hotel(hotelName,phone,telephone,email,address,website);
hotel.setHotelId(hotelId);
try{
result = hotelService.updateHotel(hotel);
}catch (Exception e){
result = -1;
}
return result;
}
/**
* 根据id查询
* @param hotelId
* @return
*/
@RequestMapping(value = "/withId")
public Hotel selectHotel(int hotelId){
try {
return hotelService.selectHotelById(hotelId);
}catch (Exception e){
return null;
}
}
/**
* 根据酒店名查询
* @param hotelName
* @return
*/
@RequestMapping(value = "/withName")
public Hotel selectHotel(String hotelName){
try {
return hotelService.selectHotelByName(hotelName);
}catch (Exception e){
return null;
}
}
/**
* 所有酒店信息
* @return
*/
@RequestMapping(value = "/all")
public List<Hotel> allHotel(){
return hotelService.findAllHotel();
}
}

View File

@ -92,4 +92,16 @@ public class Hotel {
public void setUpdateTime(Date updateTime) { public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime; this.updateTime = updateTime;
} }
public Hotel() {
}
public Hotel(String hotelName, String phone, String telephone, String email, String address, String website) {
this.hotelName = hotelName;
this.phone = phone;
this.telephone = telephone;
this.email = email;
this.address = address;
this.website = website;
}
} }

View File

@ -1,17 +1,20 @@
package cn.mafangui.hotel.mapper; package cn.mafangui.hotel.mapper;
import cn.mafangui.hotel.entity.Hotel; import cn.mafangui.hotel.entity.Hotel;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public interface HotelMapper { public interface HotelMapper {
int deleteByPrimaryKey(Integer hotelId); int deleteByPrimaryKey(Integer hotelId);
int insert(Hotel record);
int insertSelective(Hotel record);
Hotel selectByPrimaryKey(Integer hotelId);
int updateByPrimaryKeySelective(Hotel record);
int updateByPrimaryKey(Hotel record); int updateByPrimaryKey(Hotel record);
int insert(Hotel record);
int insertSelective(Hotel record);
int updateByPrimaryKeySelective(Hotel record);
Hotel selectByPrimaryKey(Integer hotelId);
Hotel selectByName(String hotelName);
List<Hotel> selectAll();
} }

View File

@ -0,0 +1,16 @@
package cn.mafangui.hotel.service;
import cn.mafangui.hotel.entity.Hotel;
import java.util.List;
public interface HotelService {
int addHotel(Hotel hotel);
int deleteHotel(int hotelId);
int updateHotel(Hotel hotel);
Hotel selectHotelByName(String hotelName);
Hotel selectHotelById(int hotelId);
List<Hotel> findAllHotel();
}

View File

@ -0,0 +1,45 @@
package cn.mafangui.hotel.service.impl;
import cn.mafangui.hotel.entity.Hotel;
import cn.mafangui.hotel.mapper.HotelMapper;
import cn.mafangui.hotel.service.HotelService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class HotelServiceImpl implements HotelService {
@Autowired
private HotelMapper hotelMapper;
@Override
public int addHotel(Hotel hotel) {
return hotelMapper.insertSelective(hotel);
}
@Override
public int deleteHotel(int hotelId) {
return hotelMapper.deleteByPrimaryKey(hotelId);
}
@Override
public int updateHotel(Hotel hotel) {
return hotelMapper.updateByPrimaryKeySelective(hotel);
}
@Override
public Hotel selectHotelByName(String hotelName) {
return hotelMapper.selectByName(hotelName);
}
@Override
public Hotel selectHotelById(int hotelId) {
return hotelMapper.selectByPrimaryKey(hotelId);
}
@Override
public List<Hotel> findAllHotel() {
return hotelMapper.selectAll();
}
}

View File

@ -32,7 +32,7 @@
) )
values (#{hotelId,jdbcType=INTEGER}, #{hotelName,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, values (#{hotelId,jdbcType=INTEGER}, #{hotelName,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR},
#{telephone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, #{telephone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR},
#{website,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP} #{website,jdbcType=VARCHAR}, now(),now()
) )
</insert> </insert>
<insert id="insertSelective" parameterType="cn.mafangui.hotel.entity.Hotel"> <insert id="insertSelective" parameterType="cn.mafangui.hotel.entity.Hotel">
@ -59,12 +59,8 @@
<if test="website != null"> <if test="website != null">
website, website,
</if> </if>
<if test="createTime != null">
create_time, create_time,
</if>
<if test="updateTime != null">
update_time, update_time,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="hotelId != null"> <if test="hotelId != null">
@ -88,12 +84,8 @@
<if test="website != null"> <if test="website != null">
#{website,jdbcType=VARCHAR}, #{website,jdbcType=VARCHAR},
</if> </if>
<if test="createTime != null"> now(),
#{createTime,jdbcType=TIMESTAMP}, now(),
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective" parameterType="cn.mafangui.hotel.entity.Hotel"> <update id="updateByPrimaryKeySelective" parameterType="cn.mafangui.hotel.entity.Hotel">
@ -138,4 +130,15 @@
update_time = #{updateTime,jdbcType=TIMESTAMP} update_time = #{updateTime,jdbcType=TIMESTAMP}
where hotel_id = #{hotelId,jdbcType=INTEGER} where hotel_id = #{hotelId,jdbcType=INTEGER}
</update> </update>
<select id="selectAll" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from hotel_info
</select>
<select id="selectByName" parameterType="String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from hotel_info
where hotel_name = #{hotelName,jdbcType=VARCHAR}
</select>
</mapper> </mapper>

View File

@ -1,77 +0,0 @@
package cn.mafangui.hotel.service.impl;
import cn.mafangui.hotel.entity.Room;
import cn.mafangui.hotel.service.RoomService;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.*;
@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class RoomServiceImplTest {
Room room = new Room();
@Autowired
RoomService roomService;
@Before
public void setUp() throws Exception {
room.setRoomId(4);
room.setRoomNumber("102");
room.setRoomFloor(1);
room.setRoomDiscount(10.0);
room.setRoomPrice(119.0);
room.setRoomStatus("已预订");
room.setRoomType(1);
room.setTypeName("单人房");
}
@Test
public void addRoom() {
Assert.assertEquals(1, roomService.addRoom(room));
}
@Test
public void deleteRoom() {
Assert.assertEquals(1, roomService.deleteRoom(1));
}
@Test
public void deleteRoom1() {
Assert.assertEquals(1, roomService.deleteRoom("100"));
}
@Test
public void updateRoom() {
Assert.assertEquals(1, roomService.updateRoom(room));
}
@Test
public void findById() {
Assert.assertEquals("102", roomService.findById(4).getRoomNumber());
}
@Test
public void findByNumber() {
Assert.assertEquals("单人房", roomService.findByNumber("102").getTypeName());
}
@Test
public void findByStatus() {
Assert.assertTrue(!roomService.findByStatus("空闲").isEmpty());
}
@Test
public void findByType() {
Assert.assertTrue(!roomService.findByType("单人房").isEmpty());
}
@Test
public void findAll() {
Assert.assertTrue(roomService.findAll().size() == 3);
}
}

View File

@ -1,55 +0,0 @@
package cn.mafangui.hotel.service.impl;
import cn.mafangui.hotel.entity.RoomType;
import cn.mafangui.hotel.mapper.RoomTypeMapper;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class RoomTypeServiceImplTest {
@Autowired
private RoomTypeMapper roomTypeMapper;
@Test
public void addRoomType() {
RoomType roomType = new RoomType(201,"豪华大床房",229.00,20.0);
Assert.assertEquals(1, roomTypeMapper.insertSelective(roomType));
}
@Test
public void delRoomType() {
RoomType roomType = new RoomType();
roomType.setRoomType(201);
Assert.assertEquals(1, roomTypeMapper.deleteByRoomType(roomType));
}
@Test
public void updateRoomType() {
RoomType roomType = new RoomType();
roomType.setRoomType(103);
roomType.setBookingDiscount(20.0);
Assert.assertEquals(1,roomTypeMapper.updateByRoomTypeSelective(roomType));
}
@Test
public void selectByName() {
RoomType roomType = new RoomType();
roomType.setRoomType(103);
System.out.println(roomTypeMapper.selectByRoomType(roomType));
Assert.assertNotNull(roomTypeMapper.selectByRoomType(roomType));
}
@Test
public void findAllType() {
System.out.println(roomTypeMapper.findAll());
Assert.assertNotNull(roomTypeMapper.findAll());
}
}