package com.fdkankan.tk.task; import com.fdkankan.redis.util.RedisUtil; import com.fdkankan.tk.entity.Room; import com.fdkankan.tk.entity.RoomUser; import com.fdkankan.tk.service.IRoomService; import com.fdkankan.tk.service.IRoomUserService; import com.fdkankan.tk.util.DateUtil; import com.sun.deploy.panel.ITreeNode; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; @Service @Slf4j public class TaskService { @Autowired RedisUtil redisUtil; @Autowired IRoomService roomService; @Autowired IRoomUserService roomUserService; /** * 每分钟检测开启中的房间是否到期关闭房间 */ @Scheduled(cron = "0 */1 * * * ?}") public void roomStop(){ try { List roomList = roomService.getRunningRoom(); List stopRoomIds = new ArrayList<>(); for (Room room : roomList) { String useEndTime = room.getUseEndTime(); if(useEndTime == null){ continue; } int comp = DateUtil.compDateStr(useEndTime, new Date()); if(comp < 0){ //房间已过期关闭 roomService.stopRoom(room); stopRoomIds.add(room.getRoomId()); } } List roomUserList = roomUserService.getRunningRoom(); for (RoomUser roomUser : roomUserList) { if(stopRoomIds.contains(roomUser.getRoomId())){ continue; } String useEndTime2 = roomUser.getUseEndTime(); if(useEndTime2 == null){ continue; } int comp2 = DateUtil.compDateStr(useEndTime2, new Date()); if(comp2 < 0){ //房间已过期关闭 roomUserService.stopRoom(roomUser); } } }catch (Exception e){ } } }