From 833ff34b64f903d325d2ee9e7c1616ced0c8d397 Mon Sep 17 00:00:00 2001 From: freeebird <1032796097@qq.com> Date: Tue, 23 Oct 2018 20:43:43 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=B7=BB=E5=8A=A0=E5=AF=B9=E6=88=BF=E9=97=B4?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E7=9A=84=E7=AE=80=E5=8D=95=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=202.=E6=96=B0=E5=A2=9E=E6=97=B6=E9=97=B4=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=8C=96=E7=9A=84=E5=B7=A5=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hotel/controller/AdminController.java | 4 +- .../hotel/controller/RoomController.java | 143 ++++++++++++++++++ .../hotel/controller/RoomTypeController.java | 31 ++++ .../hotel/controller/WorkerController.java | 40 +++++ .../java/cn/mafangui/hotel/entity/Room.java | 51 ++++++- .../cn/mafangui/hotel/mapper/RoomMapper.java | 22 ++- .../mafangui/hotel/service/RoomService.java | 18 +++ .../hotel/service/impl/RoomServiceImpl.java | 60 ++++++++ .../hotel/utils/MyDateTimeFormat.java | 103 +++++++++++++ .../resources/mybatis/mapper/RoomMapper.xml | 110 +++++++++----- .../hotel/controller/RoomControllerTest.java | 54 +++++++ .../service/impl/RoomServiceImplTest.java | 77 ++++++++++ 12 files changed, 657 insertions(+), 56 deletions(-) create mode 100644 src/main/java/cn/mafangui/hotel/controller/RoomController.java create mode 100644 src/main/java/cn/mafangui/hotel/service/RoomService.java create mode 100644 src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java create mode 100644 src/main/java/cn/mafangui/hotel/utils/MyDateTimeFormat.java create mode 100644 src/test/java/cn/mafangui/hotel/controller/RoomControllerTest.java create mode 100644 src/test/java/cn/mafangui/hotel/service/impl/RoomServiceImplTest.java diff --git a/src/main/java/cn/mafangui/hotel/controller/AdminController.java b/src/main/java/cn/mafangui/hotel/controller/AdminController.java index 9e145c9..67ad432 100644 --- a/src/main/java/cn/mafangui/hotel/controller/AdminController.java +++ b/src/main/java/cn/mafangui/hotel/controller/AdminController.java @@ -17,7 +17,7 @@ public class AdminController { private AdminService adminService; /** - * 登录 + * 管理员登录 * @param userName * @param password * @return @@ -34,7 +34,7 @@ public class AdminController { } /** - * 注册 + * 管理员注册 * @param userName * @param password * @return diff --git a/src/main/java/cn/mafangui/hotel/controller/RoomController.java b/src/main/java/cn/mafangui/hotel/controller/RoomController.java new file mode 100644 index 0000000..b238e84 --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/controller/RoomController.java @@ -0,0 +1,143 @@ +package cn.mafangui.hotel.controller; + + +import cn.mafangui.hotel.entity.Room; +import cn.mafangui.hotel.service.RoomService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.awt.print.PrinterException; +import java.util.List; + +@RestController +@RequestMapping(value = "room") +public class RoomController { + + @Autowired + private RoomService roomService; + + /** + * 增加房间 + * @param roomNumber + * @param roomFloor + * @param roomType + * @param typeName + * @param roomPrice + * @param roomDiscount + * @param roomStatus + * @return + */ + @RequestMapping(value = "add") + public int addRoom(String roomNumber, int roomFloor, int roomType, String typeName, double roomPrice,double roomDiscount,String roomStatus){ + int result = 0; + Room room = new Room(roomNumber,roomFloor,roomType,typeName,roomPrice,roomDiscount,roomStatus); + try { + result = roomService.addRoom(room); + }catch (Exception e){ + result = -1; + } + return result; + } + + /** + * 根据房间id或者房间号码删除房间 + * @param roomId + * @param roomNumber + * @return + */ + @RequestMapping(value = "delete") + public int deleteRoom(int roomId,String roomNumber){ + int result = 0; + try { + if (roomNumber == null || "".equals(roomNumber)){ + result = roomService.deleteRoom(roomId); + }else { + result = roomService.deleteRoom(roomNumber); + } + }catch (Exception e){ + result = -1; + } + return result; + } + + /** + * 更改房间信息 + * @param roomId + * @param roomNumber + * @param roomFloor + * @param roomType + * @param typeName + * @param roomPrice + * @param roomDiscount + * @param roomStatus + * @return + */ + @RequestMapping(value = "update") + public int updateRoom(int roomId,String roomNumber, int roomFloor, int roomType, String typeName, double roomPrice,double roomDiscount,String roomStatus){ + int result = 0; + Room room = new Room(roomNumber,roomFloor,roomType,typeName,roomPrice,roomDiscount,roomStatus); + room.setRoomId(roomId); + try { + result = roomService.updateRoom(room); + }catch (Exception e){ + result = -1; + } + return result; + } + + /** + * 查询所有房间 + * @return + */ + @RequestMapping(value = "/all") + public List allRoom(){ + try { + return roomService.findAll(); + }catch (Exception e){ + return null; + } + } + + /** + * 根据状态查询房间信息 + * @param roomNumber + * @return + */ + @RequestMapping(value = "/withRoomNumber") + public Room findRoomByNumber(String roomNumber){ + try{ + return roomService.findByNumber(roomNumber); + }catch (Exception e){ + return null; + } + } + + /** + * 根据状态查询房间信息 + * @param roomStatus + * @return + */ + @RequestMapping(value = "/withStatus") + public List findRoomByStatus(String roomStatus){ + try{ + return roomService.findByStatus(roomStatus); + }catch (Exception e){ + return null; + } + } + + /** + * 根据类型查询房间信息 + * @param typeName + * @return + */ + @RequestMapping(value = "/withType") + public List findRoomByType(String typeName){ + try{ + return roomService.findByType(typeName); + }catch (Exception e){ + return null; + } + } +} diff --git a/src/main/java/cn/mafangui/hotel/controller/RoomTypeController.java b/src/main/java/cn/mafangui/hotel/controller/RoomTypeController.java index 1bdf6fc..13b67a7 100644 --- a/src/main/java/cn/mafangui/hotel/controller/RoomTypeController.java +++ b/src/main/java/cn/mafangui/hotel/controller/RoomTypeController.java @@ -16,12 +16,26 @@ public class RoomTypeController { @Autowired private RoomTypeService roomTypeService; + /** + * 添加房间类型 + * @param roomType + * @param typeName + * @param bookingPrice + * @param bookingDiscount + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/add") public int addNewType(int roomType,String typeName,double bookingPrice,double bookingDiscount){ RoomType rt = new RoomType(roomType,typeName,bookingPrice,bookingDiscount); return roomTypeService.addRoomType(rt); } + /** + * 删除房间类型 + * @param roomType + * @param typeName + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/del") public int delType(int roomType,String typeName){ RoomType rt = new RoomType(); @@ -30,12 +44,25 @@ public class RoomTypeController { return roomTypeService.delRoomType(rt); } + /** + * 更改房间类型 + * @param roomType + * @param typeName + * @param bookingPrice + * @param bookingDiscount + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/update") public int updateType(int roomType,String typeName,double bookingPrice,double bookingDiscount){ RoomType rt = new RoomType(roomType,typeName,bookingPrice,bookingDiscount); return roomTypeService.updateRoomType(rt); } + /** + * 查询房间类型 + * @param roomType + * @return + */ @RequestMapping(value = "/query") public RoomType findByRoomType(int roomType){ RoomType rt = new RoomType(); @@ -43,6 +70,10 @@ public class RoomTypeController { return roomTypeService.selectByName(rt); } + /** + * 查询所有房间类型 + * @return + */ @RequestMapping(value = "/all") public List findAllRoomType(){ return roomTypeService.findAllType(); diff --git a/src/main/java/cn/mafangui/hotel/controller/WorkerController.java b/src/main/java/cn/mafangui/hotel/controller/WorkerController.java index aec6d06..d5b29a0 100644 --- a/src/main/java/cn/mafangui/hotel/controller/WorkerController.java +++ b/src/main/java/cn/mafangui/hotel/controller/WorkerController.java @@ -14,6 +14,12 @@ public class WorkerController { @Autowired private WorkerService workerService; + /** + * 操作员登录 + * @param userName + * @param password + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/login") public int login(String userName,String password){ Worker worker = new Worker(userName,password); @@ -24,28 +30,62 @@ public class WorkerController { } } + /** + * 添加操作员 + * @param userName + * @param password + * @param workerName + * @param phone + * @param email + * @param address + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/add") public int addWorker(String userName,String password,String workerName,String phone,String email,String address){ Worker worker = new Worker(userName,password,workerName,phone,email,address); return workerService.addWorker(worker); } + /** + * 删除操作员 + * @param userName + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/del") public int delWorker(String userName){ return workerService.delWorker(userName); } + /** + * 更改操作员信息 + * @param userName + * @param password + * @param workerName + * @param phone + * @param email + * @param address + * @return + */ @RequestMapping(method = RequestMethod.POST,value = "/update") public int updateWorker(String userName,String password,String workerName,String phone,String email,String address){ Worker worker = new Worker(userName,password,workerName,phone,email,address); return workerService.updateWorker(worker); } + /** + * 查找操作员 + * @param userName + * @return + */ @RequestMapping(value = "/query") public Worker queryWorker(String userName){ return workerService.selectWorker(userName); } + /** + * 查找所有操作员 + * @return + */ @RequestMapping(value = "/all") public List findAllWorkers(){ return workerService.findAllWorker(); diff --git a/src/main/java/cn/mafangui/hotel/entity/Room.java b/src/main/java/cn/mafangui/hotel/entity/Room.java index ea475bd..d931a56 100644 --- a/src/main/java/cn/mafangui/hotel/entity/Room.java +++ b/src/main/java/cn/mafangui/hotel/entity/Room.java @@ -12,9 +12,11 @@ public class Room { private Integer roomType; - private BigDecimal roomPrice; + private String typeName; - private Float roomDiscount; + private Double roomPrice; + + private Double roomDiscount; private String roomStatus; @@ -54,19 +56,27 @@ public class Room { this.roomType = roomType; } - public BigDecimal getRoomPrice() { + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public Double getRoomPrice() { return roomPrice; } - public void setRoomPrice(BigDecimal roomPrice) { + public void setRoomPrice(Double roomPrice) { this.roomPrice = roomPrice; } - public Float getRoomDiscount() { + public Double getRoomDiscount() { return roomDiscount; } - public void setRoomDiscount(Float roomDiscount) { + public void setRoomDiscount(Double roomDiscount) { this.roomDiscount = roomDiscount; } @@ -93,4 +103,33 @@ public class Room { public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } + + public Room() { + } + + public Room(String roomNumber, Integer roomFloor, Integer roomType, String typeName, Double roomPrice, Double roomDiscount, String roomStatus) { + this.roomNumber = roomNumber; + this.roomFloor = roomFloor; + this.roomType = roomType; + this.typeName = typeName; + this.roomPrice = roomPrice; + this.roomDiscount = roomDiscount; + this.roomStatus = roomStatus; + } + + @Override + public String toString() { + return "Room{" + + "roomId=" + roomId + + ", roomNumber='" + roomNumber + '\'' + + ", roomFloor=" + roomFloor + + ", roomType=" + roomType + + ", typeName='" + typeName + '\'' + + ", roomPrice=" + roomPrice + + ", roomDiscount=" + roomDiscount + + ", roomStatus='" + roomStatus + '\'' + + ", createTime=" + createTime + + ", updateTime=" + updateTime + + '}'; + } } \ No newline at end of file diff --git a/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java b/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java index caed91f..da72c0e 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java @@ -1,17 +1,25 @@ package cn.mafangui.hotel.mapper; import cn.mafangui.hotel.entity.Room; +import org.springframework.stereotype.Component; +import java.util.List; + +@Component public interface RoomMapper { - int deleteByPrimaryKey(Integer roomId); - - int insert(Room record); int insertSelective(Room record); - Room selectByPrimaryKey(Integer roomId); - - int updateByPrimaryKeySelective(Room record); - int updateByPrimaryKey(Room record); + + int insert(Room record); + int deleteByPrimaryKey(Integer roomId); + int deleteByRoomNumber(String roomNumber); + int updateByPrimaryKeySelective(Room record); + Room selectByRoomId(Integer roomId); + Room selectByRoomNumber(String roomNumber); + List selectAllRoom(); + List selectByType(String typeName); + List selectByStatus(String status); + } \ No newline at end of file diff --git a/src/main/java/cn/mafangui/hotel/service/RoomService.java b/src/main/java/cn/mafangui/hotel/service/RoomService.java new file mode 100644 index 0000000..98b6e6e --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/service/RoomService.java @@ -0,0 +1,18 @@ +package cn.mafangui.hotel.service; + +import cn.mafangui.hotel.entity.Room; + +import java.util.List; + + +public interface RoomService { + int addRoom(Room room); + int deleteRoom(int roomId); + int deleteRoom(String roomNumber); + int updateRoom(Room room); + Room findById(int roomId); + Room findByNumber(String roomNumber); + List findByStatus(String status); + List findByType(String typeName); + List findAll(); +} diff --git a/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java b/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java new file mode 100644 index 0000000..c911b2a --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java @@ -0,0 +1,60 @@ +package cn.mafangui.hotel.service.impl; + +import cn.mafangui.hotel.entity.Room; +import cn.mafangui.hotel.mapper.RoomMapper; +import cn.mafangui.hotel.service.RoomService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class RoomServiceImpl implements RoomService { + @Autowired + private RoomMapper roomMapper; + + @Override + public int addRoom(Room room) { + return roomMapper.insert(room); + } + + @Override + public int deleteRoom(int roomId) { + return roomMapper.deleteByPrimaryKey(roomId); + } + + @Override + public int deleteRoom(String roomNumber) { + return roomMapper.deleteByRoomNumber(roomNumber); + } + + @Override + public int updateRoom(Room room) { + return roomMapper.updateByPrimaryKeySelective(room); + } + + @Override + public Room findById(int roomId) { + return roomMapper.selectByPrimaryKey(roomId); + } + + @Override + public Room findByNumber(String roomNumber) { + return roomMapper.selectByRoomNumber(roomNumber); + } + + @Override + public List findByStatus(String status) { + return roomMapper.selectByStatus(status); + } + + @Override + public List findByType(String typeName) { + return roomMapper.selectByType(typeName); + } + + @Override + public List findAll() { + return roomMapper.selectAllRoom(); + } +} diff --git a/src/main/java/cn/mafangui/hotel/utils/MyDateTimeFormat.java b/src/main/java/cn/mafangui/hotel/utils/MyDateTimeFormat.java new file mode 100644 index 0000000..d97f04a --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/utils/MyDateTimeFormat.java @@ -0,0 +1,103 @@ +package cn.mafangui.hotel.utils; + +import java.util.Calendar; +import java.util.Date; +import java.text.SimpleDateFormat; + +public class MyDateTimeFormat { +// SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat(); + Calendar calendar = Calendar.getInstance(); + String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; + + /** + * 获得年份 + * @param date + * @return + */ + public int getYear(Date date) { + simpleDateFormat.applyPattern("yyyy"); + return Integer.parseInt(simpleDateFormat.format(date)); + } + + /** + * 获得月份 + * @param date + * @return + */ + public int getMonth(Date date) { + simpleDateFormat.applyPattern("MM"); + return Integer.parseInt(simpleDateFormat.format(date)); + } + + /** + * 获得日子 + * @param date + * @return + */ + public int getDay(Date date){ + simpleDateFormat.applyPattern("dd"); + return Integer.parseInt(simpleDateFormat.format(date)); + } + + /** + * 返回某天是周几 + * @param date + * @return + */ + public String getWeek(Date date){ + simpleDateFormat.applyPattern("yyyy-MM-dd"); + calendar.setTime(date); + int w = calendar.get(Calendar.DAY_OF_WEEK) - 1; + if (w < 0) w = 0; + return weekDays[w]; + } + + + /** + * 格式化为年份 + * @param date + * @return + */ + public String formatYear(Date date){ + simpleDateFormat.applyPattern("yyyy"); + return simpleDateFormat.format(date); + } + + /** + * 格式化为年月 + * @param date + * @return + */ + public String formatMonth(Date date){ + simpleDateFormat.applyPattern("yyyy-MM"); + return simpleDateFormat.format(date); + } + /** + * 格式化为年月日 + * @param date + * @return + */ + public String formatDay(Date date){ + simpleDateFormat.applyPattern("yyyy-MM-dd"); + return simpleDateFormat.format(date); + } + /** + * 格式化为年月日时分 + * @param date + * @return + */ + public String formatMinute(Date date){ + simpleDateFormat.applyPattern("yyyy-MM-dd HH:mm"); + return simpleDateFormat.format(date); + } + /** + * 格式化为年月日时分秒 + * @param date + * @return + */ + public String formatSecond(Date date){ + simpleDateFormat.applyPattern("yyyy-MM-dd HH:mm:ss"); + return simpleDateFormat.format(date); + } +} diff --git a/src/main/resources/mybatis/mapper/RoomMapper.xml b/src/main/resources/mybatis/mapper/RoomMapper.xml index 2c4c18d..b307779 100644 --- a/src/main/resources/mybatis/mapper/RoomMapper.xml +++ b/src/main/resources/mybatis/mapper/RoomMapper.xml @@ -6,6 +6,7 @@ + @@ -13,7 +14,7 @@ - room_id, room_number, room_floor, room_type, room_price, room_discount, room_status, + room_id, room_number, room_floor, room_type, type_name, room_price, room_discount, room_status, create_time, update_time + select + + from room_info + where room_number = #{roomNumber,jdbcType=VARCHAR} + + + + \ No newline at end of file diff --git a/src/test/java/cn/mafangui/hotel/controller/RoomControllerTest.java b/src/test/java/cn/mafangui/hotel/controller/RoomControllerTest.java new file mode 100644 index 0000000..79c20fe --- /dev/null +++ b/src/test/java/cn/mafangui/hotel/controller/RoomControllerTest.java @@ -0,0 +1,54 @@ +package cn.mafangui.hotel.controller; + +import cn.mafangui.hotel.entity.Room; +import cn.mafangui.hotel.utils.MyDateTimeFormat; +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; + +@SpringBootTest +@RunWith(SpringJUnit4ClassRunner.class) +public class RoomControllerTest { + @Autowired + private RoomController roomController; + + MyDateTimeFormat df = new MyDateTimeFormat(); + + Room room = new Room(); + @Before + public void setUp() throws Exception { + room.setRoomNumber("502"); + } + + @Test + public void addRoom() { + } + + @Test + public void deleteRoom() { + } + + @Test + public void updateRoom() { + } + + @Test + public void allRoom() { + } + + @Test + public void findRoomByNumber() { + + } + + @Test + public void findRoomByStatus() { + } + + @Test + public void findRoomByType() { + } +} \ 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 new file mode 100644 index 0000000..dd99a50 --- /dev/null +++ b/src/test/java/cn/mafangui/hotel/service/impl/RoomServiceImplTest.java @@ -0,0 +1,77 @@ +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