酒店管理系统总结

基于SSM做的酒店管理系统,个人总结

退房业务逻辑

package com.sam.service.impl;

import com.sam.dao.*;
import com.sam.entity.*;
import com.sam.service.CheckoutService;
import com.sam.utils.UUIDUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;

/**
 * Description :
 *
 * @author : Sam
 * @created : 2021/5/9
 */
@Service
@Transactional
public class CheckoutServiceImpl implements CheckoutService {

    @Autowired
    private CheckoutMapper checkoutMapper;

    @Autowired
    private CheckinMapper checkinMapper;

    @Autowired
    private RoomTypeMapper roomTypeMapper;

    @Autowired
    private RoomMapper roomMapper;

    @Autowired
    private OrdersMapper ordersMapper;

    /**
     * 添加退房记录
     * @param checkout
     * @return
     */
    @Override
    @Transactional
    public int addCheckout(Checkout checkout) {
        //1.设置退房信息
        checkout.setCreateDate(new Date());//设置创建时间
        checkout.setCheckOutNumber(UUIDUtil.randomUUID());//设置退房单号
        int count = checkoutMapper.insertCheckout(checkout);// 执行添加退房的方法

        //2.如果退房成功
        if(count>0){
            //2.1入住管理中,入住状态从入住中改为已离店
            Checkin currentCheckin = checkinMapper.selectCheckinByCheckinId(checkout.getCheckInId());//获取当前的入住对象
            currentCheckin.setStatus(2);//设置状态为已离店
            checkinMapper.updateCheckin(currentCheckin);//调用修改方法

            //2.2房型管理中,已入住人数-1,可入住人数+1
            RoomType roomType = roomTypeMapper.selectRoomTypeByRoomTypeId(currentCheckin.getRoomTypeId());//查询当前入住信息所属房型对象
            roomType.setLivedNum(roomType.getLivedNum()-1);//已入住人数-1
            roomType.setAvilableNum(roomType.getAvilableNum()+1);//可入住房间数+1
            roomTypeMapper.updateRoomType(roomType);//修改房型

            //2.3房间管理中,房间状态从入住中改为可预订
            Room room = new Room();
            room.setId(currentCheckin.getRoomId().intValue());//设置房间主键
            room.setStatus(1);//房间状态设置为可入住
            roomMapper.updateRoom(room);//修改房间

            //2.4预定管理中,房间状态修改为已离店
            Orders orders =  ordersMapper.selectOrdersByOrdersId(currentCheckin.getOrdersId());//获取orders对象
            orders.setStatus(3);//设置状态为已离店
            ordersMapper.updateOrders(orders);//修改预定信息

        }
        //返回数据
        return count;
    }
}

办理入住业务逻辑

package com.sam.service.impl;

import com.sam.dao.CheckinMapper;
import com.sam.dao.OrdersMapper;
import com.sam.dao.RoomMapper;
import com.sam.dao.RoomTypeMapper;
import com.sam.entity.Checkin;
import com.sam.entity.Orders;
import com.sam.entity.Room;
import com.sam.entity.RoomType;
import com.sam.service.CheckinService;
import com.sam.vo.CheckinVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Date;
import java.util.List;

/**
 * Description :
 *
 * @author : Sam
 * @created : 2021/5/9
 */
@Service
@Transactional
public class CheckinServiceImpl implements CheckinService {

    @Autowired
    private CheckinMapper checkinMapper;

    @Autowired
    private OrdersMapper ordersMapper;

    @Autowired
    private RoomTypeMapper roomTypeMapper;

    @Autowired
    private RoomMapper roomMapper;

    /**
     * 查询入住列表
     * @param checkinVo
     * @return
     */
    @Override
    public List<Checkin> findCheckinList(CheckinVo checkinVo) {
        return checkinMapper.selectCheckinList(checkinVo);
    }

    /**
     * 添加入住
     * @param checkin
     * @return
     */
    @Override
    @Transactional(rollbackFor = RuntimeException.class)
    public int addCheckin(Checkin checkin) {
        //1.设置入住信息
        checkin.setStatus(1);//设置入住状态1,表示入住中
        checkin.setCreateDate(new Date());//设置创建时间
        //调用添加入住的方法
        int count = checkinMapper.insertCheckin(checkin);
        //2.若入住成功
        if(count>0){
            //2.1在预定管理中,
            Orders orders = new Orders();
            orders.setStatus(3);//修改订单状态为入住中
            orders.setId(checkin.getOrdersId());//设置订单主键
            ordersMapper.updateOrders(orders);//调用修改方法
            //2.2在房型管理
            RoomType roomType = roomTypeMapper.selectRoomTypeByRoomTypeId(checkin.getRoomTypeId()); //获取需要办理入住的房型
            roomType.setLivedNum(roomType.getLivedNum()+1);//将该房型的已入住人数在原有入住人数基础上+1
            roomTypeMapper.updateRoomType(roomType); //调用修改房型信息的方法
            //2.3在房间管理中
            Room room = new Room();
            room.setStatus(3);//设置房间状态为入住中
            room.setId(checkin.getRoomId().intValue());//设置房间主键
            roomMapper.updateRoom(room);//修改房间状态

        }
       return count;

    }
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值