package com.doumee.service.business; import com.baomidou.mybatisplus.core.metadata.IPage; import com.doumee.service.business.third.model.LoginUserInfo; import com.doumee.service.business.third.model.PageData; import com.doumee.service.business.third.model.PageWrap; import com.doumee.dao.admin.request.BusinessOverDTO; 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.UserResponse; 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.request.UserPageRequest; import com.doumee.dao.web.response.DateTimeResourceDate; import com.doumee.dao.web.response.MeetingDetailResponse; import com.doumee.dao.web.response.MeetingListResponse; import com.doumee.dao.web.response.RoomDetailResponse; import java.time.LocalDateTime; 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 ids, LoginUserInfo user); /** * 主键更新 * * @param bookings 实体对象 */ void updateById(Bookings bookings); void cancelById(Bookings bookings); /** * 批量主键更新 * * @param bookingss 实体集 */ void updateByIdInBatch(List bookingss); /** * 主键查询 * * @param id 主键 * @return Bookings */ Bookings findById(Integer id); /** * 条件查询单条记录 * * @param bookings 实体对象 * @return Bookings */ Bookings findOne(Bookings bookings); /** * 条件查询 * * @param bookings 实体对象 * @return List */ List findList(Bookings bookings); Bookings findJoinOne( Bookings queryParam); /** * 分页查询 * * @param pageWrap 分页对象 * @return PageData */ PageData findPage(PageWrap pageWrap); /** * 条件统计 * * @param bookings 实体对象 * @return long */ long count(Bookings bookings); void openRoomDoor(DevWgResponseParam json) throws Exception; /****************************************移动端接口开始********************************************************************/ /** * 我的会议日期信息 * @param userId * @param dateMsg * @return */ List getMyBookings(Integer userId,String dateMsg,Integer queryType); /** * 我的预约/我的会议 * @param pageWrap * @return */ IPage getMyMeetingPage(PageWrap pageWrap); /** * 会议详情 * @param id * @return */ MeetingDetailResponse getMeetingDetail(Integer id,Integer sysUserId); /** * 根据日期和会议室主键查询占用信息 * @param bean * @return */ MeetingDetailResponse getMeetingDetailByDate(Bookings bean); /** * 获取会议二维码 * @param id * @param userId * @return */ String getQrCode(Integer id,Integer userId); /** * 会议室预约记录新增/修改 * @param bookingsRequest */ Integer reservationMeeting(BookingsRequest bookingsRequest); /** * 会议预约记录取消 */ void reservationCancel(BusinessOverDTO businessOverDTO); /** * 参与的预约会议 * @param userId * @param startTime * @param endTime * @return */ List getMyJoinBookingMeet(Integer userId, Integer roomId,LocalDateTime startTime, LocalDateTime endTime); /** * 获取用户当当月预约会议情况 * @param userId * @return */ List findMothBookingMeet(Integer userId,Integer roomId,String dateMonth); /** * 会议室使用时长统计 * @param yearNum * @return */ List getRoomStatistics(Integer yearNum); /** * 人员参加会议时常 * @param pageWrap * @return */ PageData getUserStatistics(PageWrap pageWrap); void sendBookingsNotice(); IPage getUserPage(PageWrap pageWrap); void reservationOver(BusinessOverDTO businessOverDTO); void start(BusinessOverDTO businessOverDTO); void startEarly(BusinessOverDTO businessOverDTO); RoomDetailResponse getRoomDetail(Integer roomId); }