diff --git a/src/main/java/cn/mafangui/hotel/controller/CheckInController.java b/src/main/java/cn/mafangui/hotel/controller/CheckInController.java index dfb636e..4f9a359 100644 --- a/src/main/java/cn/mafangui/hotel/controller/CheckInController.java +++ b/src/main/java/cn/mafangui/hotel/controller/CheckInController.java @@ -22,21 +22,33 @@ public class CheckInController { /** * 入住登记 - * @param peo_count + * @param peoCount * @param persons * @param ids * @return */ @RequestMapping(value = "/in") - public int addCheckIn(int orderId, int peo_count, String persons, String ids){ + public int addCheckIn(int orderId, int peoCount, String persons, String ids){ CheckIn checkIn = new CheckIn(); checkIn.setOrderId(orderId); - checkIn.setPeoCount(peo_count); + checkIn.setPeoCount(peoCount); checkIn.setPersons(persons); checkIn.setIds(ids); - return checkInService.insert(checkIn); + return checkInService.checkIn(checkIn); } + /** + * 退房登记 + * + * @param roomNumber + * @return + */ + @RequestMapping(value = "/out") + public int checkOut(String roomNumber){ + return checkInService.updateByRoomNumber(roomNumber); + } + + @RequestMapping(value = "/delete") public int deleteCheckIn(int checkId){ return checkInService.delete(checkId); @@ -50,10 +62,7 @@ public class CheckInController { return checkInService.update(checkIn); } - @RequestMapping(value = "/out") - public int checkOut(String roomNumber){ - return checkInService.updateByRoomNumber(roomNumber); - } + @RequestMapping(value = "/withId") public CheckIn getById(int checkId){ diff --git a/src/main/java/cn/mafangui/hotel/controller/OrderController.java b/src/main/java/cn/mafangui/hotel/controller/OrderController.java index cb7ba76..5fc1fb8 100644 --- a/src/main/java/cn/mafangui/hotel/controller/OrderController.java +++ b/src/main/java/cn/mafangui/hotel/controller/OrderController.java @@ -159,4 +159,15 @@ public class OrderController { return orderService.selectById(orderId); } + /** + * 根据姓名、预留手机号查找订单 + * 主要用于客户入住 + * @param name + * @param phone + * @return + */ + @RequestMapping(value = "/withNameAndPhone") + public Order getByNameAndPhone(String name,String phone){ + return orderService.selectByNameAndPhone(name,phone); + } } diff --git a/src/main/java/cn/mafangui/hotel/entity/CheckIn.java b/src/main/java/cn/mafangui/hotel/entity/CheckIn.java index 526de12..46cc3a0 100644 --- a/src/main/java/cn/mafangui/hotel/entity/CheckIn.java +++ b/src/main/java/cn/mafangui/hotel/entity/CheckIn.java @@ -7,6 +7,8 @@ public class CheckIn { private Integer orderId; + private Integer roomId; + private String roomNumber; private Integer peoCount; @@ -55,6 +57,13 @@ public class CheckIn { this.roomNumber = roomNumber == null ? null : roomNumber.trim(); } + public Integer getRoomId() { + return roomId; + } + + public void setRoomId(Integer roomId) { + this.roomId = roomId; + } public Integer getPeoCount() { return peoCount; @@ -107,7 +116,8 @@ public class CheckIn { public CheckIn() { } - public CheckIn(String roomNumber, String roomType, Integer peoCount, String persons, String ids, Date checkInTime) { + public CheckIn(Integer roomId,String roomNumber, Integer peoCount, String persons, String ids, Date checkInTime) { + this.roomId = roomId; this.roomNumber = roomNumber; this.peoCount = peoCount; this.persons = persons; @@ -130,4 +140,4 @@ public class CheckIn { ", updateTime=" + updateTime + '}'; } -} \ No newline at end of file +} diff --git a/src/main/java/cn/mafangui/hotel/mapper/CheckInMapper.java b/src/main/java/cn/mafangui/hotel/mapper/CheckInMapper.java index 76690da..8c6800f 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/CheckInMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/CheckInMapper.java @@ -15,6 +15,8 @@ public interface CheckInMapper { CheckIn selectByPrimaryKey(Integer checkInId); + CheckIn selectByRoomNumber(String roomNumber); + int updateByRoomNumber(String roomNumber); int updateByPrimaryKeySelective(CheckIn record); @@ -23,4 +25,4 @@ public interface CheckInMapper { List selectAll(); -} \ No newline at end of file +} diff --git a/src/main/java/cn/mafangui/hotel/mapper/OrderMapper.java b/src/main/java/cn/mafangui/hotel/mapper/OrderMapper.java index 6748993..be31601 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/OrderMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/OrderMapper.java @@ -16,6 +16,8 @@ public interface OrderMapper { Order selectByPrimaryKey(Integer orderId); + Order selectByNameAndPhone(Order record); + int updateByPrimaryKeySelective(Order record); int updateByPrimaryKey(Order record); diff --git a/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java b/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java index 48a1bba..dc67273 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java @@ -15,6 +15,8 @@ public interface RoomMapper { Room selectByPrimaryKey(Integer roomId); + Room selectByNumber(String roomNumber); + int updateByPrimaryKeySelective(Room record); int updateByPrimaryKey(Room record); diff --git a/src/main/java/cn/mafangui/hotel/service/CheckInService.java b/src/main/java/cn/mafangui/hotel/service/CheckInService.java index c2b4e5d..dab606d 100644 --- a/src/main/java/cn/mafangui/hotel/service/CheckInService.java +++ b/src/main/java/cn/mafangui/hotel/service/CheckInService.java @@ -8,6 +8,8 @@ public interface CheckInService { int insert(CheckIn checkIn); + int checkIn(CheckIn checkIn); + int delete(int checkInId); int update(CheckIn checkIn); diff --git a/src/main/java/cn/mafangui/hotel/service/OrderService.java b/src/main/java/cn/mafangui/hotel/service/OrderService.java index 338e5ca..07cb3e2 100644 --- a/src/main/java/cn/mafangui/hotel/service/OrderService.java +++ b/src/main/java/cn/mafangui/hotel/service/OrderService.java @@ -14,6 +14,8 @@ public interface OrderService { Order selectById(Integer orderId); + Order selectByNameAndPhone(String name,String phone); + int update(Order record); int payOrder(int orderId); diff --git a/src/main/java/cn/mafangui/hotel/service/RoomService.java b/src/main/java/cn/mafangui/hotel/service/RoomService.java index 25f9bed..c7f346f 100644 --- a/src/main/java/cn/mafangui/hotel/service/RoomService.java +++ b/src/main/java/cn/mafangui/hotel/service/RoomService.java @@ -10,6 +10,7 @@ public interface RoomService { int delete(int roomId); int update(Room room); Room selectById(int roomId); + Room selectByNumber(String roomNumber); List selectByStatus(int roomStatus); List selectByType(int typeId); List selectAll(); diff --git a/src/main/java/cn/mafangui/hotel/service/impl/CheckInServiceImpl.java b/src/main/java/cn/mafangui/hotel/service/impl/CheckInServiceImpl.java index 587bc0d..ba60e22 100644 --- a/src/main/java/cn/mafangui/hotel/service/impl/CheckInServiceImpl.java +++ b/src/main/java/cn/mafangui/hotel/service/impl/CheckInServiceImpl.java @@ -1,11 +1,18 @@ package cn.mafangui.hotel.service.impl; import cn.mafangui.hotel.entity.CheckIn; +import cn.mafangui.hotel.entity.Order; import cn.mafangui.hotel.entity.Room; +import cn.mafangui.hotel.entity.RoomType; +import cn.mafangui.hotel.enums.OrderStatus; import cn.mafangui.hotel.mapper.CheckInMapper; import cn.mafangui.hotel.service.CheckInService; +import cn.mafangui.hotel.service.OrderService; +import cn.mafangui.hotel.service.RoomService; +import cn.mafangui.hotel.service.RoomTypeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -13,13 +20,57 @@ import java.util.List; public class CheckInServiceImpl implements CheckInService { @Autowired private CheckInMapper checkInMapper; - + @Autowired + private OrderService orderService; + @Autowired + private RoomTypeService roomTypeService; + @Autowired + private RoomService roomService; @Override public int insert(CheckIn checkIn) { return checkInMapper.insert(checkIn); } + /** + * 入住登记 + * @param checkIn + * 1.获取订单 + * 2.获取房间类型 + * 3.获取房间 + * @return + */ + @Override + @Transactional + public int checkIn(CheckIn checkIn) { + Order order = orderService.selectById(checkIn.getOrderId()); + RoomType rt = roomTypeService.selectById(order.getRoomTypeId()); + Room r=roomService.selectById(roomService.inRoom(order.getRoomTypeId())); + if (r == null) return -3; + checkIn.setRoomId(r.getRoomId()); + checkIn.setRoomNumber(r.getRoomNumber()); + if (roomTypeService.updateRest(rt.getTypeId(),-1) <= 0) return -2; + order.setOrderStatus(OrderStatus.CHECK_IN.getCode()); + if (orderService.update(order) <=0 ) return -1; + return checkInMapper.insert(checkIn); + } + + /** + * 退房登记 + * 1.获取房间 + * 2.获取房型 + * 3.获取checkIn + * @param roomNumber + * @return + */ + @Override + public int checkOut(String roomNumber) { + Room r = roomService.selectByNumber(roomNumber); + RoomType ty = roomTypeService.selectById(r.getTypeId()); + CheckIn checkIn = checkInMapper.selectByPrimaryKey(1); + return 0; + } + @Override public int delete(int checkInId) { return checkInMapper.deleteByPrimaryKey(checkInId); @@ -30,10 +81,7 @@ public class CheckInServiceImpl implements CheckInService { return checkInMapper.updateByPrimaryKeySelective(checkIn); } - @Override - public int checkOut(String roomNumber) { - return 0; - } + @Override public int updateByRoomNumber(String roomNumber) { diff --git a/src/main/java/cn/mafangui/hotel/service/impl/OrderServiceImpl.java b/src/main/java/cn/mafangui/hotel/service/impl/OrderServiceImpl.java index 8d708b8..01797c9 100644 --- a/src/main/java/cn/mafangui/hotel/service/impl/OrderServiceImpl.java +++ b/src/main/java/cn/mafangui/hotel/service/impl/OrderServiceImpl.java @@ -47,6 +47,14 @@ public class OrderServiceImpl implements OrderService { return orderMapper.selectByPrimaryKey(orderId); } + @Override + public Order selectByNameAndPhone(String name, String phone) { + Order order = new Order(); + order.setName(name); + order.setPhone(phone); + return orderMapper.selectByNameAndPhone(order); + } + @Override public int update(Order order) { return orderMapper.updateByPrimaryKeySelective(order); diff --git a/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java b/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java index 3ce4fbe..b564f89 100644 --- a/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java +++ b/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java @@ -35,6 +35,11 @@ public class RoomServiceImpl implements RoomService { return roomMapper.selectByPrimaryKey(roomId); } + @Override + public Room selectByNumber(String roomNumber) { + return roomMapper.selectByNumber(roomNumber); + } + @Override public List selectByStatus(int roomStatus) { return roomMapper.selectByStatus(roomStatus); @@ -59,12 +64,19 @@ public class RoomServiceImpl implements RoomService { return roomMapper.updateByPrimaryKeySelective(room); } + /** + * 房间入住 + * @param typeId + * @return + */ @Override public int inRoom(int typeId) { - Room room = roomMapper.randomSelectByTypeAndStatus(typeId,RoomStatus.ORDERED.getCode()); - if (room == null) return -1; + Room room = roomMapper.randomSelectByTypeAndStatus(typeId,RoomStatus.AVAILABLE.getCode()); + System.out.println(room); room.setRoomStatus(RoomStatus.IN_USE.getCode()); - return roomMapper.updateByPrimaryKeySelective(room); + if (roomMapper.updateByPrimaryKeySelective(room) <= 0) + return -1; + else return room.getRoomId(); } @Override diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000..8bcf8a6 --- /dev/null +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,24 @@ +Manifest-Version: 1.0 +Class-Path: jackson-datatype-jdk8-2.9.6.jar spring-boot-2.0.5.RELEASE. + jar spring-tx-5.0.9.RELEASE.jar mybatis-spring-boot-starter-1.3.2.jar + logback-core-1.2.3.jar jackson-annotations-2.9.0.jar spring-web-5.0. + 9.RELEASE.jar slf4j-api-1.7.25.jar log4j-api-2.10.0.jar jboss-logging + -3.3.2.Final.jar snakeyaml-1.19.jar tomcat-embed-core-8.5.34.jar spri + ng-boot-starter-2.0.5.RELEASE.jar log4j-to-slf4j-2.10.0.jar mysql-con + nector-java-5.1.47.jar spring-boot-starter-web-2.0.5.RELEASE.jar tomc + at-embed-websocket-8.5.34.jar spring-boot-starter-json-2.0.5.RELEASE. + jar jul-to-slf4j-1.7.25.jar logback-classic-1.2.3.jar jackson-module- + parameter-names-2.9.6.jar hibernate-validator-6.0.12.Final.jar jackso + n-datatype-jsr310-2.9.6.jar spring-beans-5.0.9.RELEASE.jar spring-web + mvc-5.0.9.RELEASE.jar tomcat-embed-el-8.5.34.jar spring-expression-5. + 0.9.RELEASE.jar spring-jdbc-5.0.9.RELEASE.jar spring-boot-starter-jdb + c-2.0.5.RELEASE.jar spring-context-5.0.9.RELEASE.jar HikariCP-2.7.9.j + ar spring-boot-starter-logging-2.0.5.RELEASE.jar spring-jcl-5.0.9.REL + EASE.jar jackson-core-2.9.6.jar spring-boot-autoconfigure-2.0.5.RELEA + SE.jar spring-boot-starter-tomcat-2.0.5.RELEASE.jar mybatis-spring-bo + ot-autoconfigure-1.3.2.jar jackson-databind-2.9.6.jar javax.annotatio + n-api-1.3.2.jar spring-core-5.0.9.RELEASE.jar validation-api-2.0.1.Fi + nal.jar mybatis-spring-1.3.2.jar mybatis-3.4.6.jar spring-aop-5.0.9.R + ELEASE.jar classmate-1.3.4.jar +Main-Class: cn.mafangui.hotel.HotelApplication + diff --git a/src/main/resources/mafangui.cn.jks b/src/main/resources/mafangui.cn.jks new file mode 100644 index 0000000..4f0b8e3 Binary files /dev/null and b/src/main/resources/mafangui.cn.jks differ diff --git a/src/main/resources/mybatis/mapper/CheckInMapper.xml b/src/main/resources/mybatis/mapper/CheckInMapper.xml index 13b5ab0..86e31de 100644 --- a/src/main/resources/mybatis/mapper/CheckInMapper.xml +++ b/src/main/resources/mybatis/mapper/CheckInMapper.xml @@ -18,11 +18,17 @@ create_time, update_time + + + - select + select from worker_info where worker_id = #{workerId,jdbcType=INTEGER} @@ -47,14 +46,14 @@ where worker_id = #{workerId,jdbcType=INTEGER} - insert into worker_info (worker_id, role, username, - password, name, gender, - phone, department, email, + insert into worker_info (worker_id, role, username, + password, name, gender, + phone,, email, address, create_time, update_time ) - values (#{workerId,jdbcType=INTEGER}, #{role,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, - #{password,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{gender,jdbcType=CHAR}, - #{phone,jdbcType=VARCHAR}, #{department,jdbcType=INTEGER}, #{email,jdbcType=VARCHAR}, + values (#{workerId,jdbcType=INTEGER}, #{role,jdbcType=VARCHAR}, #{username,jdbcType=VARCHAR}, + #{password,jdbcType=VARCHAR}, #{name,jdbcType=VARCHAR}, #{gender,jdbcType=CHAR}, + #{phone,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR}, #{address,jdbcType=VARCHAR}, now(),now() ) @@ -82,9 +81,6 @@ phone, - - department, - email, @@ -116,9 +112,6 @@ #{phone,jdbcType=VARCHAR}, - - #{department,jdbcType=INTEGER}, - #{email,jdbcType=VARCHAR}, @@ -150,9 +143,6 @@ phone = #{phone,jdbcType=VARCHAR}, - - department = #{department,jdbcType=INTEGER}, - email = #{email,jdbcType=VARCHAR}, @@ -170,10 +160,9 @@ name = #{name,jdbcType=VARCHAR}, gender = #{gender,jdbcType=CHAR}, phone = #{phone,jdbcType=VARCHAR}, - department = #{department,jdbcType=INTEGER}, email = #{email,jdbcType=VARCHAR}, address = #{address,jdbcType=VARCHAR}, where worker_id = #{workerId,jdbcType=INTEGER} - \ No newline at end of file +