From c7cac3cbe15b4bfcfca2026811b2679d780f30d0 Mon Sep 17 00:00:00 2001 From: freeebird <1032796097@qq.com> Date: Wed, 24 Oct 2018 18:48:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=85=92=E5=BA=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=9A=84=E5=9F=BA=E6=9C=AC=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 +- .../hotel/controller/HotelController.java | 114 ++++++++++++++++++ .../java/cn/mafangui/hotel/entity/Hotel.java | 12 ++ .../cn/mafangui/hotel/mapper/HotelMapper.java | 19 +-- .../mafangui/hotel/service/HotelService.java | 16 +++ .../hotel/service/impl/HotelServiceImpl.java | 45 +++++++ .../resources/mybatis/mapper/HotelMapper.xml | 25 ++-- .../service/impl/RoomServiceImplTest.java | 77 ------------ .../service/impl/RoomTypeServiceImplTest.java | 55 --------- 9 files changed, 213 insertions(+), 155 deletions(-) create mode 100644 src/main/java/cn/mafangui/hotel/controller/HotelController.java create mode 100644 src/main/java/cn/mafangui/hotel/service/HotelService.java create mode 100644 src/main/java/cn/mafangui/hotel/service/impl/HotelServiceImpl.java delete mode 100644 src/test/java/cn/mafangui/hotel/service/impl/RoomServiceImplTest.java delete mode 100644 src/test/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImplTest.java diff --git a/README.md b/README.md index 0895a31..754120a 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,7 @@ ### 1.3 业务背景 传统的酒店管理往往需要酒店管理人花大量时间和精力来处理顾客查询、顾客登记等等事务。而错误的查询、繁琐的登记和结账手续、费用的结算错误、空余客房不能及时提供等等问题,可能导致顾客的频繁投诉,从而影响酒店的出租率。这些问题都可以通过计算机辅助系统来解决。酒店管理的信息化,不仅是酒店现代化形象的标志,而且能够酒店员工的工作效率,加速资金周转、降低各项成本以及改善服务质量。并支持客户直接在线预订,为客户提供方便快捷的服务. -## 2 项目说明 -### 2.1 问题说明 -由于酒店的客房有不同的档次,所以需要能够对客房进行分类处理。同时为了方便对客房价格的设置,需要提供一个能够对不同档次的客房能够进行预订价格、预订折扣、计时最低价格等的设置。需要提供一个客房设置功能,用来设置酒店的所有客房信息。在设置客房信息时,应该提供对不同房间的实际价格、实际折扣的设置。特别重要的是能够对房间的状态以及是否可用进行设置,这样能够方便酒店对客房的及时管理。需要提供一个入住登记和结账功能,并且能够对客户的登记时间、离店时间、客户资料、入住房间等信息进行登记。需要提供一个预定中心,能够处理客户的各种预定,如电话预定、总台面约、网上预定以及领导安排等等预定方式。需要提供一个客户管理功能,从而实现对酒店的客户信息的统一管理。最后还需要提供一个业务统计报表功能,能够对酒店一年中每月的住宿率进行统计,然后生成柱状图进行显示。 -### 2.2 用户期望 +## 2 项目功能 >酒店管理系统后台,供管理员管理系统之用 - 客房类型设置 - 客房设置 diff --git a/src/main/java/cn/mafangui/hotel/controller/HotelController.java b/src/main/java/cn/mafangui/hotel/controller/HotelController.java new file mode 100644 index 0000000..7016bd6 --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/controller/HotelController.java @@ -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 allHotel(){ + return hotelService.findAllHotel(); + } +} diff --git a/src/main/java/cn/mafangui/hotel/entity/Hotel.java b/src/main/java/cn/mafangui/hotel/entity/Hotel.java index 246ad15..bbd8416 100644 --- a/src/main/java/cn/mafangui/hotel/entity/Hotel.java +++ b/src/main/java/cn/mafangui/hotel/entity/Hotel.java @@ -92,4 +92,16 @@ public class Hotel { public void setUpdateTime(Date 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; + } } \ No newline at end of file diff --git a/src/main/java/cn/mafangui/hotel/mapper/HotelMapper.java b/src/main/java/cn/mafangui/hotel/mapper/HotelMapper.java index 6430208..950470f 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/HotelMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/HotelMapper.java @@ -1,17 +1,20 @@ package cn.mafangui.hotel.mapper; import cn.mafangui.hotel.entity.Hotel; +import org.springframework.stereotype.Component; +import java.util.List; + +@Component public interface HotelMapper { 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 insert(Hotel record); + int insertSelective(Hotel record); + int updateByPrimaryKeySelective(Hotel record); + Hotel selectByPrimaryKey(Integer hotelId); + Hotel selectByName(String hotelName); + List selectAll(); } \ No newline at end of file diff --git a/src/main/java/cn/mafangui/hotel/service/HotelService.java b/src/main/java/cn/mafangui/hotel/service/HotelService.java new file mode 100644 index 0000000..0505942 --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/service/HotelService.java @@ -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 findAllHotel(); + +} diff --git a/src/main/java/cn/mafangui/hotel/service/impl/HotelServiceImpl.java b/src/main/java/cn/mafangui/hotel/service/impl/HotelServiceImpl.java new file mode 100644 index 0000000..9dda12f --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/service/impl/HotelServiceImpl.java @@ -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 findAllHotel() { + return hotelMapper.selectAll(); + } +} diff --git a/src/main/resources/mybatis/mapper/HotelMapper.xml b/src/main/resources/mybatis/mapper/HotelMapper.xml index 9682084..1feacd1 100644 --- a/src/main/resources/mybatis/mapper/HotelMapper.xml +++ b/src/main/resources/mybatis/mapper/HotelMapper.xml @@ -32,7 +32,7 @@ ) values (#{hotelId,jdbcType=INTEGER}, #{hotelName,jdbcType=VARCHAR}, #{phone,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() ) @@ -59,12 +59,8 @@ website, - create_time, - - update_time, - @@ -88,12 +84,8 @@ #{website,jdbcType=VARCHAR}, - - #{createTime,jdbcType=TIMESTAMP}, - - - #{updateTime,jdbcType=TIMESTAMP}, - + now(), + now(), @@ -138,4 +130,15 @@ update_time = #{updateTime,jdbcType=TIMESTAMP} where hotel_id = #{hotelId,jdbcType=INTEGER} + + \ No newline at end of file diff --git a/src/test/java/cn/mafangui/hotel/service/impl/RoomServiceImplTest.java b/src/test/java/cn/mafangui/hotel/service/impl/RoomServiceImplTest.java deleted file mode 100644 index dd99a50..0000000 --- a/src/test/java/cn/mafangui/hotel/service/impl/RoomServiceImplTest.java +++ /dev/null @@ -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); - } -} \ No newline at end of file diff --git a/src/test/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImplTest.java b/src/test/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImplTest.java deleted file mode 100644 index a2ffc24..0000000 --- a/src/test/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImplTest.java +++ /dev/null @@ -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()); - } -} \ No newline at end of file