|  |  | 
 |  |  | import com.doumee.dao.system.dto.UserStatisticsDTO; | 
 |  |  | import com.doumee.dao.system.join.NoticesJoinMapper; | 
 |  |  | import com.doumee.dao.system.model.*; | 
 |  |  | 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.*; | 
 |  |  | import com.doumee.service.business.BookingsService; | 
 |  |  | import com.doumee.service.business.DevicesService; | 
 |  |  | 
 |  |  | import org.springframework.transaction.annotation.Transactional; | 
 |  |  | import org.springframework.util.CollectionUtils; | 
 |  |  |  | 
 |  |  | import java.awt.print.Book; | 
 |  |  | import java.text.SimpleDateFormat; | 
 |  |  | import java.time.LocalDate; | 
 |  |  | import java.time.LocalDateTime; | 
 |  |  | 
 |  |  |     private SystemUserMapper systemUserMapper; | 
 |  |  |     @Autowired | 
 |  |  |     private RoomRecordMapper roomRecordMapper; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private BookingsJoinMapper bookingsJoinMapper; | 
 |  |  | 
 |  |  |     @Transactional(rollbackFor = {BusinessException.class, Exception.class}) | 
 |  |  |     public Integer create(Bookings bookings) { | 
 |  |  |         LoginUserInfo user = bookings.getLoginUserInfo(); | 
 |  |  |         user.setId(bookings.getCreator()); | 
 |  |  |         isCreateParamValid(bookings, user); | 
 |  |  |         bookings.setCreateDate(new Date()); | 
 |  |  |         bookings.setCreator(user.getId()); | 
 |  |  | 
 |  |  |         for (int i = 0; i < bookings.getBookingTimeList().size(); i++) { | 
 |  |  |             BookingTime s = bookings.getBookingTimeList().get(i); | 
 |  |  |             if (!Objects.isNull(bookList) && bookList.size() > MeetConstants.ZERO) { | 
 |  |  |  | 
 |  |  |                 List<Bookings> detailDataDtoStream = | 
 |  |  |                         bookList.stream().filter(a -> MeetConstants.equalsInteger(s.getTimeId(), a.getRoomTimeId()) | 
 |  |  |                         ).collect(Collectors.toList()); | 
 |  |  | 
 |  |  |             List<Multifile> filelist = multifileJoinMapper.selectList(bookquery); | 
 |  |  |             filelist.stream().forEach(a -> { | 
 |  |  |                 if (StringUtils.isNotBlank(a.getFileurl())) { | 
 |  |  |                     a.setFileFullUrl(path + a.getFileurl()); | 
 |  |  |                     a.setFileurlFull(path + a.getFileurl()); | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |             s.setFileList(filelist); | 
 |  |  | 
 |  |  |             List<Multifile> filelist = multifileJoinMapper.selectList(bookquery); | 
 |  |  |             filelist.stream().forEach(a -> { | 
 |  |  |                 if (StringUtils.isNotBlank(a.getFileurl())) { | 
 |  |  |                     a.setFileFullUrl(path + a.getFileurl()); | 
 |  |  |                     a.setFileurlFull(path + a.getFileurl()); | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |             result.setFileList(filelist); | 
 |  |  | 
 |  |  |                 .apply(" id in ( select u.OBJ_ID from meeting_user_rel u where u.USER_ID = '" + userId + "' and u.ISDELETED = 0 and OBJ_TYPE = 1  ) ") | 
 |  |  |                 .eq("ISDELETED",MeetConstants.ZERO) | 
 |  |  | //                .eq("STATUS",MeetConstants.ZERO) | 
 |  |  |                 .apply(" ROOM_ID in ( select r.id from rooms r where r.ISDELETED = 0 and r.STATUS = 0  )") | 
 |  |  |                 .apply(" ROOM_ID in ( select r.id from meeting_rooms r where r.ISDELETED = 0 and r.STATUS = 0  )") | 
 |  |  |                 .like(StringUtils.isNotBlank(dateMsg), "START_TIME", dateMsg)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |         return page; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public MeetingDetailResponse getMeetingDetailByDate(Bookings bean){ | 
 |  |  |         try { | 
 |  |  |             if(Objects.isNull(bean) | 
 |  |  |             || Objects.isNull(bean.getRoomId()) | 
 |  |  |                     || Objects.isNull(bean.getStartTime()) | 
 |  |  |                     || Objects.isNull(bean.getEndTime())){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
 |  |  |             } | 
 |  |  |             Bookings bookings = bookingsMapper.selectOne(new QueryWrapper<Bookings>().lambda() | 
 |  |  |                     .eq(Bookings::getRoomId,bean.getRoomId()) | 
 |  |  |                     .ge(Bookings::getEndTime,DateUtil.getPlusTime(bean.getEndTime())) | 
 |  |  |                     .le(Bookings::getStartTime,DateUtil.getPlusTime(bean.getStartTime())) | 
 |  |  |             ); | 
 |  |  |             if(Objects.isNull(bookings)){ | 
 |  |  |                 throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
 |  |  |             } | 
 |  |  |             return getMeetingDetail(bookings.getId()); | 
 |  |  |         }catch (Exception e){ | 
 |  |  |             e.printStackTrace(); | 
 |  |  |         } | 
 |  |  |         return null; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 会议详情 | 
 |  |  |      * | 
 |  |  | 
 |  |  |         )); | 
 |  |  |  | 
 |  |  |         //参会人员列表 | 
 |  |  |         SystemUser param = new SystemUser(); | 
 |  |  |         List<SystemUser> userResponseList = systemUserService.findList(param); | 
 |  |  |         String avatarPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.MEMBER_IMG).getCode(); | 
 |  |  |  | 
 |  |  |         List<UserResponse> userResponseList = systemUserService.getUserList(id); | 
 |  |  |         String avatarPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() | 
 |  |  |                 +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); | 
 |  |  |         userResponseList.forEach(i -> { | 
 |  |  |             if(StringUtils.isNotBlank(i.getAvatar())){ | 
 |  |  |                 i.setAvatar(avatarPath+i.getAvatar()); | 
 |  |  | 
 |  |  |         }); | 
 |  |  |         meetingDetailResponse.setUserResponseList(userResponseList); | 
 |  |  |         //服务项 | 
 |  |  |         String projectsPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); | 
 |  |  |         String projectsPath = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() | 
 |  |  |                 + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode(); | 
 |  |  |         List<ProjectsResponse> projectsResponseList = projectsService.getProjectsList(id, MeetConstants.ONE); | 
 |  |  |         projectsResponseList.forEach(i -> { | 
 |  |  |             i.setPrefixUrl(projectsPath); | 
 |  |  | 
 |  |  |                 .eq("OBJ_TYPE", MeetConstants.ZERO) | 
 |  |  |         ); | 
 |  |  |         multiFileList.forEach(i -> { | 
 |  |  |             i.setFileFullUrl(projectsPath); | 
 |  |  |             i.setFileurlFull(projectsPath); | 
 |  |  |         }); | 
 |  |  |         //附件信息 | 
 |  |  |         meetingDetailResponse.setMultiFileList(multiFileList); | 
 |  |  | 
 |  |  |      * @param userId | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
 |  |  |     public void reservationCancel(Integer id, Integer userId) { | 
 |  |  |         Bookings bookings = bookingsMapper.selectById(id); | 
 |  |  |         if (Objects.isNull(bookings)) { | 
 |  |  | 
 |  |  |         return PageData.from(userStatistics); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 查询参会人员分页 | 
 |  |  |      * @param pageWrap | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @Override | 
 |  |  |     public IPage<UserResponse> getUserPage(PageWrap<UserPageRequest> pageWrap) { | 
 |  |  |         IPage<UserResponse> page = systemUserMapper.getUserPage(pageWrap.toPage(),new QueryWrapper<UserResponse>() | 
 |  |  |                 .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()), i -> i.like("c.realName", pageWrap.getModel().getKeyword()) | 
 |  |  |                         .or().like("e.name", pageWrap.getModel().getKeyword()) | 
 |  |  |                 ) | 
 |  |  |                 .eq("c.DELETED",0) | 
 |  |  |                 .eq("c.status",0) | 
 |  |  |                 .orderByAsc("c.id") | 
 |  |  |         ); | 
 |  |  |         String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() | 
 |  |  |                 +systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); | 
 |  |  |         //查询是否处于会议中 | 
 |  |  |         page.getRecords().forEach(j->{ | 
 |  |  |             j.setPrefixUrl(path); | 
 |  |  |             if(bookingsMapper.selectCount(new QueryWrapper<Bookings>() | 
 |  |  |                     .exists(" select 1 from meeting_user_rel u where u.OBJ_ID = meeting_book.id and  u.USER_ID = '"+j.getId()+"' and u.OBJ_TYPE = 1    ") | 
 |  |  |                     .and(i -> i.between("START_TIME", pageWrap.getModel().getStartTime()+":00",pageWrap.getModel().getEndTime()+":00") | 
 |  |  |                             .or().between("END_TIME", pageWrap.getModel().getStartTime()+":00",pageWrap.getModel().getEndTime()+":00") | 
 |  |  |                     ) | 
 |  |  |             )>Constants.ZERO){ | 
 |  |  |                 j.setStatus(Constants.ONE); | 
 |  |  |             }else{ | 
 |  |  |                 j.setStatus(Constants.ZERO); | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |         return page; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |