2018-11-29 11:51:42 +08:00

88 lines
2.4 KiB
Java

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;
@Service
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);
}
@Override
public int delete(Integer orderId) {
return orderMapper.deleteByPrimaryKey(orderId);
}
@Override
public Order selectById(Integer orderId) {
return orderMapper.selectByPrimaryKey(orderId);
}
@Override
public int update(Order order) {
return orderMapper.updateByPrimaryKeySelective(order);
}
/**
* 订单支付
* 1.更改订单状态 -3
* 2.修改房型余量 -2
* 3.修改房间状态 -1
* @param orderId
* @return
*/
@Override
@Transactional
public int payOrder(int orderId) {
Order order = orderMapper.selectByPrimaryKey(orderId);
if (order == null | order.getOrderStatus() != OrderStatus.UNPAID.getCode()) return -3;
if (roomTypeService.updateRest(order.getRoomTypeId(),-1) != 1) return -2;
return roomService.orderRoom(order.getRoomTypeId());
}
@Override
public List<Order> selectByUserId(int userId) {
return orderMapper.selectByUserId(userId);
}
@Override
public List<Order> AllOrders() {
return orderMapper.selectAll();
}
@Override
public List<Order> UsersAllOrders(int userId) {
return orderMapper.selectAllByUser(userId, OrderStatus.WAS_DELETED.getCode());
}
}