TaskService.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.fdkankan.tk.task;
  2. import com.fdkankan.redis.util.RedisUtil;
  3. import com.fdkankan.tk.entity.Room;
  4. import com.fdkankan.tk.entity.RoomUser;
  5. import com.fdkankan.tk.service.IRoomService;
  6. import com.fdkankan.tk.service.IRoomUserService;
  7. import com.fdkankan.tk.util.DateUtil;
  8. import com.sun.deploy.panel.ITreeNode;
  9. import lombok.extern.slf4j.Slf4j;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.scheduling.annotation.Scheduled;
  12. import org.springframework.stereotype.Service;
  13. import java.io.File;
  14. import java.util.ArrayList;
  15. import java.util.Date;
  16. import java.util.List;
  17. @Service
  18. @Slf4j
  19. public class TaskService {
  20. @Autowired
  21. RedisUtil redisUtil;
  22. @Autowired
  23. IRoomService roomService;
  24. @Autowired
  25. IRoomUserService roomUserService;
  26. /**
  27. * 每分钟检测开启中的房间是否到期关闭房间
  28. */
  29. @Scheduled(cron = "0 */1 * * * ?}")
  30. public void roomStop(){
  31. try {
  32. List<Room> roomList = roomService.getRunningRoom();
  33. List<String> stopRoomIds = new ArrayList<>();
  34. for (Room room : roomList) {
  35. String useEndTime = room.getUseEndTime();
  36. if(useEndTime == null){
  37. continue;
  38. }
  39. int comp = DateUtil.compDateStr(useEndTime, new Date());
  40. if(comp < 0){ //房间已过期关闭
  41. roomService.stopRoom(room);
  42. stopRoomIds.add(room.getRoomId());
  43. }
  44. }
  45. List<RoomUser> roomUserList = roomUserService.getRunningRoom();
  46. for (RoomUser roomUser : roomUserList) {
  47. if(stopRoomIds.contains(roomUser.getRoomId())){
  48. continue;
  49. }
  50. String useEndTime2 = roomUser.getUseEndTime();
  51. if(useEndTime2 == null){
  52. continue;
  53. }
  54. int comp2 = DateUtil.compDateStr(useEndTime2, new Date());
  55. if(comp2 < 0){ //房间已过期关闭
  56. roomUserService.stopRoom(roomUser);
  57. }
  58. }
  59. }catch (Exception e){
  60. }
  61. }
  62. }