diff --git a/src/main/java/cn/mafangui/hotel/GlobalCrosConfig.java b/src/main/java/cn/mafangui/hotel/GlobalCrosConfig.java index e8fa82c..693655a 100644 --- a/src/main/java/cn/mafangui/hotel/GlobalCrosConfig.java +++ b/src/main/java/cn/mafangui/hotel/GlobalCrosConfig.java @@ -5,6 +5,9 @@ import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +/** + * 跨域 + */ @Configuration public class GlobalCrosConfig { @Bean @@ -28,4 +31,4 @@ public class GlobalCrosConfig { } }; } -} \ No newline at end of file +} diff --git a/src/main/java/cn/mafangui/hotel/HotelApplication.java b/src/main/java/cn/mafangui/hotel/HotelApplication.java index 223ccc4..98dc642 100644 --- a/src/main/java/cn/mafangui/hotel/HotelApplication.java +++ b/src/main/java/cn/mafangui/hotel/HotelApplication.java @@ -3,8 +3,10 @@ package cn.mafangui.hotel; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.transaction.annotation.EnableTransactionManagement; @SpringBootApplication +@EnableTransactionManagement @MapperScan(basePackages = "cn.mafangui.hotel.mapper") public class HotelApplication { diff --git a/src/main/java/cn/mafangui/hotel/controller/OrderController.java b/src/main/java/cn/mafangui/hotel/controller/OrderController.java index eaacd0a..a8bb466 100644 --- a/src/main/java/cn/mafangui/hotel/controller/OrderController.java +++ b/src/main/java/cn/mafangui/hotel/controller/OrderController.java @@ -6,6 +6,7 @@ import cn.mafangui.hotel.service.OrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import java.util.Date; @@ -87,6 +88,16 @@ public class OrderController { return orderService.update(order); } + /** + * 订单支付 + * @param orderId + * @return + */ + @RequestMapping(method = RequestMethod.POST,value = "/pay") + public int payOrder(int orderId){ + return orderService.payOrder(orderId); + } + /** * 取消订单 * @param orderId diff --git a/src/main/java/cn/mafangui/hotel/entity/Department.java b/src/main/java/cn/mafangui/hotel/entity/Department.java deleted file mode 100644 index 0f9759e..0000000 --- a/src/main/java/cn/mafangui/hotel/entity/Department.java +++ /dev/null @@ -1,55 +0,0 @@ -package cn.mafangui.hotel.entity; - -import java.util.Date; - -public class Department { - private Integer departmentId; - - private String departmentName; - - private String remark; - - private Date createTime; - - private Date updateTime; - - public Integer getDepartmentId() { - return departmentId; - } - - public void setDepartmentId(Integer departmentId) { - this.departmentId = departmentId; - } - - public String getDepartmentName() { - return departmentName; - } - - public void setDepartmentName(String departmentName) { - this.departmentName = departmentName == null ? null : departmentName.trim(); - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark == null ? null : remark.trim(); - } - - public Date getCreateTime() { - return createTime; - } - - public void setCreateTime(Date createTime) { - this.createTime = createTime; - } - - public Date getUpdateTime() { - return updateTime; - } - - public void setUpdateTime(Date updateTime) { - this.updateTime = updateTime; - } -} \ No newline at end of file diff --git a/src/main/java/cn/mafangui/hotel/enums/OrderError.java b/src/main/java/cn/mafangui/hotel/enums/OrderError.java new file mode 100644 index 0000000..5a01a2e --- /dev/null +++ b/src/main/java/cn/mafangui/hotel/enums/OrderError.java @@ -0,0 +1,9 @@ +package cn.mafangui.hotel.enums; + +public enum OrderError { + NONE(0,"没有空房"), + ; + + OrderError(int code,String status) { + } +} diff --git a/src/main/java/cn/mafangui/hotel/mapper/DepartmentMapper.java b/src/main/java/cn/mafangui/hotel/mapper/DepartmentMapper.java deleted file mode 100644 index acf3348..0000000 --- a/src/main/java/cn/mafangui/hotel/mapper/DepartmentMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package cn.mafangui.hotel.mapper; - -import cn.mafangui.hotel.entity.Department; - -public interface DepartmentMapper { - int deleteByPrimaryKey(Integer departmentId); - - int insert(Department record); - - int insertSelective(Department record); - - Department selectByPrimaryKey(Integer departmentId); - - int updateByPrimaryKeySelective(Department record); - - int updateByPrimaryKey(Department record); -} \ 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 d0999b4..a6a3429 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/OrderMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/OrderMapper.java @@ -1,7 +1,11 @@ package cn.mafangui.hotel.mapper; import cn.mafangui.hotel.entity.Order; +import org.springframework.stereotype.Component; +import java.util.List; + +@Component public interface OrderMapper { int deleteByPrimaryKey(Integer orderId); @@ -14,4 +18,12 @@ public interface OrderMapper { int updateByPrimaryKeySelective(Order record); int updateByPrimaryKey(Order record); -} \ No newline at end of file + + List selectAll(); + + List selectByUserId(Integer userId); + + List selectAllByUser(Integer userId,Integer orderStatus); + + +} diff --git a/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java b/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java index 3706533..5bdf991 100644 --- a/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java +++ b/src/main/java/cn/mafangui/hotel/mapper/RoomMapper.java @@ -23,4 +23,6 @@ public interface RoomMapper { List selectByStatus(Integer roomStatus); List selectAll(); -} \ No newline at end of file + + Room randomSelectByTypeAndStatus(Integer typeId,Integer roomStatus); +} diff --git a/src/main/java/cn/mafangui/hotel/service/OrderService.java b/src/main/java/cn/mafangui/hotel/service/OrderService.java index 81f4ea8..18af609 100644 --- a/src/main/java/cn/mafangui/hotel/service/OrderService.java +++ b/src/main/java/cn/mafangui/hotel/service/OrderService.java @@ -16,6 +16,8 @@ public interface OrderService { int update(Order record); + int payOrder(int orderId); + List selectByUserId(int userId); List AllOrders(); diff --git a/src/main/java/cn/mafangui/hotel/service/RoomService.java b/src/main/java/cn/mafangui/hotel/service/RoomService.java index 0886741..25f9bed 100644 --- a/src/main/java/cn/mafangui/hotel/service/RoomService.java +++ b/src/main/java/cn/mafangui/hotel/service/RoomService.java @@ -13,4 +13,8 @@ public interface RoomService { List selectByStatus(int roomStatus); List selectByType(int typeId); List selectAll(); + + int orderRoom(int typeId); + int inRoom(int typeId); + int outRoom(int typeId); } diff --git a/src/main/java/cn/mafangui/hotel/service/RoomTypeService.java b/src/main/java/cn/mafangui/hotel/service/RoomTypeService.java index f5e9bac..91a164e 100644 --- a/src/main/java/cn/mafangui/hotel/service/RoomTypeService.java +++ b/src/main/java/cn/mafangui/hotel/service/RoomTypeService.java @@ -19,4 +19,10 @@ public interface RoomTypeService { RoomType selectById(int typeId); List findAllType(); + + int updateRest(int typeId,int num); + + int addRest(int typeId); + + int minusRest(int typeId); } 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 2107c12..d0b2552 100644 --- a/src/main/java/cn/mafangui/hotel/service/impl/OrderServiceImpl.java +++ b/src/main/java/cn/mafangui/hotel/service/impl/OrderServiceImpl.java @@ -1,10 +1,18 @@ package cn.mafangui.hotel.service.impl; 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.OrderMapper; +import cn.mafangui.hotel.mapper.RoomMapper; +import cn.mafangui.hotel.mapper.RoomTypeMapper; 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,9 +21,18 @@ public class OrderServiceImpl implements OrderService { @Autowired private OrderMapper orderMapper; + @Autowired + private RoomTypeService roomTypeService; + @Autowired + private RoomService roomService; @Override public int insert(Order order) { + return orderMapper.insert(order); + } + + @Override + public int addOrder(Order order) { return orderMapper.insertSelective(order); } @@ -34,18 +51,37 @@ public class OrderServiceImpl implements OrderService { return orderMapper.updateByPrimaryKeySelective(order); } + /** + * 订单支付 + * 1.更改订单状态 + * 2.修改房型余量 + * 3.修改房间状态 + * @param orderId + * @return + */ + @Override + @Transactional + public int payOrder(int orderId) { + Order order = orderMapper.selectByPrimaryKey(orderId); + if (order == null | order.getOrderStatus() != OrderStatus.UNPAID.getCode()) return -1; + if (roomTypeService.updateRest(order.getRoomTypeId(),-1) != 1) return -1; + return roomService.orderRoom(order.getRoomTypeId()); + } + @Override public List selectByUserId(int userId) { return orderMapper.selectByUserId(userId); } @Override - public List selectAll() { + public List AllOrders() { return orderMapper.selectAll(); } @Override - public List userSelectAll(int userId) { - return orderMapper.userSelectAll(userId); + public List UsersAllOrders(int userId) { + return orderMapper.selectAllByUser(userId, OrderStatus.WAS_DELETED.getCode()); } + + } 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 cb249f2..3ce4fbe 100644 --- a/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java +++ b/src/main/java/cn/mafangui/hotel/service/impl/RoomServiceImpl.java @@ -1,10 +1,12 @@ package cn.mafangui.hotel.service.impl; import cn.mafangui.hotel.entity.Room; +import cn.mafangui.hotel.enums.RoomStatus; 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 org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -47,4 +49,30 @@ public class RoomServiceImpl implements RoomService { public List selectAll() { return roomMapper.selectAll(); } + + @Override + @Transactional + public int orderRoom(int typeId) { + Room room = roomMapper.randomSelectByTypeAndStatus(typeId,RoomStatus.AVAILABLE.getCode()); + if (room == null) return -1; + room.setRoomStatus(RoomStatus.ORDERED.getCode()); + return roomMapper.updateByPrimaryKeySelective(room); + } + + @Override + public int inRoom(int typeId) { + Room room = roomMapper.randomSelectByTypeAndStatus(typeId,RoomStatus.ORDERED.getCode()); + if (room == null) return -1; + room.setRoomStatus(RoomStatus.IN_USE.getCode()); + return roomMapper.updateByPrimaryKeySelective(room); + } + + @Override + public int outRoom(int typeId) { + Room room = roomMapper.randomSelectByTypeAndStatus(typeId,RoomStatus.IN_USE.getCode()); + if (room == null) return -1; + room.setRoomStatus(RoomStatus.AVAILABLE.getCode()); + return roomMapper.updateByPrimaryKeySelective(room); + } + } diff --git a/src/main/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImpl.java b/src/main/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImpl.java index 6d669a7..eb59dc9 100644 --- a/src/main/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImpl.java +++ b/src/main/java/cn/mafangui/hotel/service/impl/RoomTypeServiceImpl.java @@ -43,4 +43,25 @@ public class RoomTypeServiceImpl implements RoomTypeService { public List findAllType() { return roomTypeMapper.selectAll(); } + + @Override + public int updateRest(int typeId, int num) { + RoomType rt =roomTypeMapper.selectByPrimaryKey(typeId); + rt.setTypeId(rt.getRest() + num); + return roomTypeMapper.updateByPrimaryKeySelective(rt); + } + + @Override + public int addRest(int typeId) { + RoomType rt =roomTypeMapper.selectByPrimaryKey(typeId); + rt.setTypeId(rt.getRest() +1); + return roomTypeMapper.updateByPrimaryKeySelective(rt); + } + + @Override + public int minusRest(int typeId) { + RoomType rt =roomTypeMapper.selectByPrimaryKey(typeId); + rt.setTypeId(rt.getRest() -1); + return roomTypeMapper.updateByPrimaryKeySelective(rt); + } } diff --git a/src/main/resources/generatorConfig.xml b/src/main/resources/generatorConfig.xml index 687e872..ec62b5e 100644 --- a/src/main/resources/generatorConfig.xml +++ b/src/main/resources/generatorConfig.xml @@ -94,11 +94,6 @@ - - - - - diff --git a/src/main/resources/mybatis/mapper/DepartmentMapper.xml b/src/main/resources/mybatis/mapper/DepartmentMapper.xml deleted file mode 100644 index a460d84..0000000 --- a/src/main/resources/mybatis/mapper/DepartmentMapper.xml +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - - - - - - department_id, department_name, remark, create_time, update_time - - - - delete from department_info - where department_id = #{departmentId,jdbcType=INTEGER} - - - insert into department_info (department_id, department_name, remark, - create_time, update_time) - values (#{departmentId,jdbcType=INTEGER}, #{departmentName,jdbcType=VARCHAR}, #{remark,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) - - - insert into department_info - - - department_id, - - - department_name, - - - remark, - - - create_time, - - - update_time, - - - - - #{departmentId,jdbcType=INTEGER}, - - - #{departmentName,jdbcType=VARCHAR}, - - - #{remark,jdbcType=VARCHAR}, - - - #{createTime,jdbcType=TIMESTAMP}, - - - #{updateTime,jdbcType=TIMESTAMP}, - - - - - update department_info - - - department_name = #{departmentName,jdbcType=VARCHAR}, - - - remark = #{remark,jdbcType=VARCHAR}, - - - create_time = #{createTime,jdbcType=TIMESTAMP}, - - - update_time = #{updateTime,jdbcType=TIMESTAMP}, - - - where department_id = #{departmentId,jdbcType=INTEGER} - - - update department_info - set department_name = #{departmentName,jdbcType=VARCHAR}, - remark = #{remark,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - update_time = #{updateTime,jdbcType=TIMESTAMP} - where department_id = #{departmentId,jdbcType=INTEGER} - - \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/OrderMapper.xml b/src/main/resources/mybatis/mapper/OrderMapper.xml index 1c8b782..baf1ff6 100644 --- a/src/main/resources/mybatis/mapper/OrderMapper.xml +++ b/src/main/resources/mybatis/mapper/OrderMapper.xml @@ -18,29 +18,41 @@ - order_id, order_type_id, order_type, user_id, name, phone, room_type_id, room_type, + order_id, order_type_id, order_type, user_id, name, phone, room_type_id, room_type, order_date, order_days, order_status, order_cost, create_time, update_time + + delete from order_info where order_id = #{orderId,jdbcType=INTEGER} - insert into order_info (order_id, order_type_id, order_type, - user_id, name, phone, - room_type_id, room_type, order_date, - order_days, order_status, order_cost, + insert into order_info (order_id, order_type_id, order_type, + user_id, name, phone, + room_type_id, room_type, order_date, + order_days, order_status, order_cost, create_time, update_time) - values (#{orderId,jdbcType=INTEGER}, #{orderTypeId,jdbcType=INTEGER}, #{orderType,jdbcType=VARCHAR}, - #{userId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, - #{roomTypeId,jdbcType=INTEGER}, #{roomType,jdbcType=VARCHAR}, #{orderDate,jdbcType=DATE}, - #{orderDays,jdbcType=INTEGER}, #{orderStatus,jdbcType=INTEGER}, #{orderCost,jdbcType=DOUBLE}, + values (#{orderId,jdbcType=INTEGER}, #{orderTypeId,jdbcType=INTEGER}, #{orderType,jdbcType=VARCHAR}, + #{userId,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, + #{roomTypeId,jdbcType=INTEGER}, #{roomType,jdbcType=VARCHAR}, #{orderDate,jdbcType=DATE}, + #{orderDays,jdbcType=INTEGER}, #{orderStatus,jdbcType=INTEGER}, #{orderCost,jdbcType=DOUBLE}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}) @@ -367,4 +379,4 @@ update_time = now() where order_id = #{orderId,jdbcType=INTEGER} - \ No newline at end of file + diff --git a/src/main/resources/mybatis/mapper/RoomMapper.xml b/src/main/resources/mybatis/mapper/RoomMapper.xml index 6ff2d14..fb89799 100644 --- a/src/main/resources/mybatis/mapper/RoomMapper.xml +++ b/src/main/resources/mybatis/mapper/RoomMapper.xml @@ -14,37 +14,50 @@ - room_id, room_number, type_id, room_type, room_price, room_discount, room_status, + room_id, room_number, type_id, room_type, room_price, room_discount, room_status, remark, create_time, update_time + delete from room_info where room_id = #{roomId,jdbcType=INTEGER} - insert into room_info (room_id, room_number, type_id, - room_type, room_price, room_discount, - room_status, remark, create_time, + insert into room_info (room_id, room_number, type_id, + room_type, room_price, room_discount, + room_status, remark, create_time, update_time) - values (#{roomId,jdbcType=INTEGER}, #{roomNumber,jdbcType=VARCHAR}, #{typeId,jdbcType=INTEGER}, - #{roomType,jdbcType=VARCHAR}, #{roomPrice,jdbcType=DOUBLE}, #{roomDiscount,jdbcType=DOUBLE}, + values (#{roomId,jdbcType=INTEGER}, #{roomNumber,jdbcType=VARCHAR}, #{typeId,jdbcType=INTEGER}, + #{roomType,jdbcType=VARCHAR}, #{roomPrice,jdbcType=DOUBLE}, #{roomDiscount,jdbcType=DOUBLE}, #{roomStatus,jdbcType=INTEGER}, #{remark,jdbcType=VARCHAR}, now(), now()) @@ -147,4 +160,4 @@ update_time = now() where room_id = #{roomId,jdbcType=INTEGER} - \ No newline at end of file +