package com.doumee.service.business; 
 | 
  
 | 
import com.baomidou.mybatisplus.core.metadata.IPage; 
 | 
import com.doumee.core.model.LoginUserInfo; 
 | 
import com.doumee.core.model.PageData; 
 | 
import com.doumee.core.model.PageWrap; 
 | 
import com.doumee.dao.admin.response.DevWgResponseParam; 
 | 
import com.doumee.dao.business.model.Bookings; 
 | 
import com.doumee.dao.business.vo.RoomStatisticsVo; 
 | 
import com.doumee.dao.system.dto.UserStatisticsDTO; 
 | 
import com.doumee.dao.system.vo.UserStatisticsVo; 
 | 
import com.doumee.dao.web.request.BookingsRequest; 
 | 
import com.doumee.dao.web.request.MeetingPageRequest; 
 | 
import com.doumee.dao.web.response.DateTimeResourceDate; 
 | 
import com.doumee.dao.web.response.MeetingDetailResponse; 
 | 
import com.doumee.dao.web.response.MeetingListResponse; 
 | 
import org.apache.ibatis.annotations.Param; 
 | 
  
 | 
import java.time.LocalDateTime; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 会议室预定信息表Service定义 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2023/05/04 18:18 
 | 
 */ 
 | 
public interface BookingsService { 
 | 
  
 | 
    /** 
 | 
     * 创建 
 | 
     *  
 | 
     * @param bookings 实体对象 
 | 
     * @return Integer 
 | 
     */ 
 | 
    Integer create(Bookings bookings); 
 | 
  
 | 
    /** 
 | 
     * 主键删除 
 | 
     * 
 | 
     * @param id 主键 
 | 
     */ 
 | 
    void deleteById(Integer id,LoginUserInfo user); 
 | 
  
 | 
    /** 
 | 
     * 删除 
 | 
     * 
 | 
     * @param bookings 实体对象 
 | 
     */ 
 | 
    void delete(Bookings bookings,LoginUserInfo user); 
 | 
  
 | 
    /** 
 | 
     * 批量主键删除 
 | 
     * 
 | 
     * @param ids 主键集 
 | 
     */ 
 | 
    void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user); 
 | 
  
 | 
    /** 
 | 
     * 主键更新 
 | 
     * 
 | 
     * @param bookings 实体对象 
 | 
     */ 
 | 
    void updateById(Bookings bookings); 
 | 
  
 | 
    void cancelById(Bookings bookings); 
 | 
  
 | 
    /** 
 | 
     * 批量主键更新 
 | 
     * 
 | 
     * @param bookingss 实体集 
 | 
     */ 
 | 
    void updateByIdInBatch(List<Bookings> bookingss); 
 | 
  
 | 
    /** 
 | 
     * 主键查询 
 | 
     * 
 | 
     * @param id 主键 
 | 
     * @return Bookings 
 | 
     */ 
 | 
    Bookings findById(Integer id); 
 | 
  
 | 
    /** 
 | 
     * 条件查询单条记录 
 | 
     * 
 | 
     * @param bookings 实体对象 
 | 
     * @return Bookings 
 | 
     */ 
 | 
    Bookings findOne(Bookings bookings); 
 | 
  
 | 
    /** 
 | 
     * 条件查询 
 | 
     * 
 | 
     * @param bookings 实体对象 
 | 
     * @return List<Bookings> 
 | 
     */ 
 | 
    List<Bookings> findList(Bookings bookings); 
 | 
    Bookings  findJoinOne( Bookings  queryParam); 
 | 
    /** 
 | 
     * 分页查询 
 | 
     * 
 | 
     * @param pageWrap 分页对象 
 | 
     * @return PageData<Bookings> 
 | 
     */ 
 | 
    PageData<Bookings> findPage(PageWrap<Bookings> pageWrap); 
 | 
  
 | 
    /** 
 | 
     * 条件统计 
 | 
     * 
 | 
     * @param bookings 实体对象 
 | 
     * @return long 
 | 
     */ 
 | 
    long count(Bookings bookings); 
 | 
    void openRoomDoor(DevWgResponseParam json) throws Exception; 
 | 
  
 | 
  
 | 
  
 | 
    /****************************************移动端接口开始********************************************************************/ 
 | 
  
 | 
    /** 
 | 
     * 我的会议日期信息 
 | 
     * @param userId 
 | 
     * @param dateMsg 
 | 
     * @return 
 | 
     */ 
 | 
    List<Bookings> getMyBookings(Integer userId,String dateMsg); 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 我的预约/我的会议 
 | 
     * @param pageWrap 
 | 
     * @return 
 | 
     */ 
 | 
    IPage<MeetingListResponse> getMyMeetingPage(PageWrap<MeetingPageRequest> pageWrap); 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 会议详情 
 | 
     * @param id 
 | 
     * @return 
 | 
     */ 
 | 
    MeetingDetailResponse getMeetingDetail(Integer id); 
 | 
  
 | 
    /** 
 | 
     * 获取会议二维码 
 | 
     * @param id 
 | 
     * @param userId 
 | 
     * @return 
 | 
     */ 
 | 
    String getQrCode(Integer id,Integer userId); 
 | 
  
 | 
    /** 
 | 
     * 会议室预约记录新增/修改 
 | 
     * @param bookingsRequest 
 | 
     */ 
 | 
    Integer reservationMeeting(BookingsRequest bookingsRequest); 
 | 
  
 | 
    /** 
 | 
     * 会议预约记录取消 
 | 
     * @param id 
 | 
     * @param userId 
 | 
     */ 
 | 
    void reservationCancel(Integer id,Integer userId); 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 参与的预约会议 
 | 
     * @param userId 
 | 
     * @param startTime 
 | 
     * @param endTime 
 | 
     * @return 
 | 
     */ 
 | 
    List<Bookings> getMyJoinBookingMeet(Integer userId, Integer roomId,LocalDateTime startTime, LocalDateTime endTime); 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 获取用户当当月预约会议情况 
 | 
     * @param userId 
 | 
     * @return 
 | 
     */ 
 | 
    List<DateTimeResourceDate> findMothBookingMeet(Integer userId,Integer roomId,String dateMonth); 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 会议室使用时长统计 
 | 
     * @param yearNum 
 | 
     * @return 
 | 
     */ 
 | 
    List<RoomStatisticsVo> getRoomStatistics(Integer yearNum); 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 人员参加会议时常 
 | 
     * @param pageWrap 
 | 
     * @return 
 | 
     */ 
 | 
    PageData<UserStatisticsVo> getUserStatistics(PageWrap<UserStatisticsDTO> pageWrap); 
 | 
  
 | 
    void sendBookingsNotice(); 
 | 
} 
 |