ScreenController.java 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.welampiot.controller;
  2. import com.welampiot.common.BaseResult;
  3. import com.welampiot.common.InterfaceResultEnum;
  4. import com.welampiot.dto.*;
  5. import com.welampiot.service.*;
  6. import com.welampiot.utils.SHH2Util;
  7. import com.welampiot.utils.ToolUtils;
  8. import com.welampiot.vo.ProgramVO;
  9. import com.welampiot.vo.ScreenVO;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.web.bind.annotation.CrossOrigin;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestMethod;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import javax.servlet.http.HttpServletRequest;
  16. import java.io.IOException;
  17. import java.lang.reflect.Field;
  18. import java.util.ArrayList;
  19. import java.util.List;
  20. /**
  21. * ClassName: ScreenController
  22. * Package: com.welampiot.controller
  23. * Description:
  24. *
  25. * @Author: zhj_Start
  26. * @Create: 2023/4/14 - 12:54
  27. * @Version: v1.0
  28. */
  29. @RestController
  30. @CrossOrigin
  31. @RequestMapping("/screen")
  32. public class ScreenController {
  33. @Autowired
  34. private ScreenService screenService;
  35. @Autowired
  36. private ToolUtils toolUtils;
  37. @Autowired
  38. private ProgramService programService;
  39. @Autowired
  40. private ProgramInfoService programInfoService;
  41. @Autowired
  42. private ProgramInfoItemService programInfoItemService;
  43. @Autowired
  44. private UserService userService;
  45. /**
  46. * 获取屏幕下拉列表
  47. * @param request
  48. * @return
  49. */
  50. @RequestMapping(value = "/screenNav", method = RequestMethod.POST)
  51. public BaseResult<ScreenDTO> screenNav(HttpServletRequest request){
  52. ScreenDTO dto = new ScreenDTO();
  53. dto.setSectionList(toolUtils.getSectionList(request));
  54. ScreenVO vo = screenService.getScreenNavByDTO(dto);
  55. return BaseResult.success(vo);
  56. }
  57. /**
  58. * 节目列表
  59. * @param request username
  60. * @return 节目列表
  61. */
  62. @RequestMapping(value = "/programList", method = RequestMethod.POST)
  63. public BaseResult<?> programList(HttpServletRequest request)
  64. throws NoSuchFieldException, IllegalAccessException, IOException {
  65. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  66. String username = (String) toolUtils.getRequestContent(request,"username",2);
  67. UserDTO userDTO = userService.queryUserIdByUsername(username);
  68. if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  69. List<ProgramDTO> programList = programService.getProgramListByUserid(userDTO.getId());
  70. List<ProgramDTO> list = new ArrayList<>();
  71. for (ProgramDTO programDTO : programList) {
  72. if (userDTO.getId() != null && userDTO.getId() != 0) {
  73. programDTO.setCreator(username);
  74. }
  75. /*if (programDTO.getFileType() != null && (programDTO.getFileType() == 2 || programDTO.getFileType() == 1)) {
  76. if (programDTO.getPath() != null && !programDTO.getPath().equals("")) {
  77. String fileSize = toolUtils.getFileSize(programDTO.getPath());
  78. if (fileSize != null) {
  79. programDTO.setFileSize(fileSize + "M");
  80. } else {
  81. programDTO.setFileSize("0M");
  82. }
  83. }
  84. }*/
  85. if (programDTO.getFileType() != null && programDTO.getFileType() == 3) {
  86. programDTO.setFileTypeStr("液位监测");
  87. } else if (programDTO.getFileType() != null && programDTO.getFileType() == 2) {
  88. programDTO.setFileTypeStr("视屏");
  89. } else if (programDTO.getFileType() != null && programDTO.getFileType() == 1) {
  90. programDTO.setFileTypeStr("图片");
  91. } else {
  92. programDTO.setFileTypeStr("压缩文件");
  93. }
  94. if (programDTO.getType() != null && programDTO.getType() == 2) {
  95. ProgramInfoDTO programInfoDTO = programInfoService.getProgramInfoByProgramId(programDTO.getId());
  96. if (programInfoDTO == null) {
  97. list.add(programDTO);
  98. continue;
  99. }
  100. if (programInfoDTO.getType() != null && programInfoDTO.getType() == 1) {
  101. programDTO.setProgramType(1);
  102. } else {
  103. programDTO.setProgramType(0);
  104. }
  105. if (programInfoDTO.getBeginDate() != null && !programInfoDTO.getBeginDate().equals("")) {
  106. programDTO.setBeginDate(programInfoDTO.getBeginDate());
  107. } else {
  108. programDTO.setBeginDate("");
  109. }
  110. if (programInfoDTO.getEndDate() != null && !programInfoDTO.getEndDate().equals("")) {
  111. programDTO.setEndDate(programInfoDTO.getEndDate());
  112. } else {
  113. programDTO.setEndDate("");
  114. }
  115. List<ProgramTimeDTO> timeList = new ArrayList<>();
  116. for (int i = 1; i <= 10; i++) {
  117. Field beginTimeField = programInfoDTO.getClass().getDeclaredField("beginTime" + i); // 获取time属性的值
  118. Field endTimeField = programInfoDTO.getClass().getDeclaredField("endTime" + i);
  119. beginTimeField.setAccessible(true); // 设置可以访问
  120. endTimeField.setAccessible(true);
  121. String beginTime = (String) beginTimeField.get(programInfoDTO);
  122. String endTime = (String) endTimeField.get(programInfoDTO);
  123. if (beginTime != null && !beginTime.equals("") && endTime != null && !endTime.equals("")) {
  124. timeList.add(new ProgramTimeDTO(beginTime,endTime));
  125. }
  126. }
  127. programDTO.setTimeList(timeList);
  128. List<ProgramInfoItemDTO> programItemList = programInfoItemService.getProgramItemListByInfoId(programInfoDTO.getId());
  129. List<ProgramInfoItemDTO> sourceList = new ArrayList<>();
  130. for (ProgramInfoItemDTO dto : programItemList) {
  131. if (dto != null) {
  132. if (dto.getSourceId() != null && dto.getTime() != null && dto.getType() != null) {
  133. sourceList.add(new ProgramInfoItemDTO(dto.getSourceId(),dto.getTime(),dto.getType()));
  134. }
  135. }
  136. }
  137. programDTO.setSourceList(sourceList);
  138. }
  139. list.add(programDTO);
  140. }
  141. ProgramVO programVO = new ProgramVO();
  142. programVO.setDataList(list);
  143. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,programVO);
  144. }
  145. /**
  146. * 删除节目
  147. * @param request programId
  148. * @return 删除数据及文件
  149. */
  150. @RequestMapping(value = "/del", method = RequestMethod.POST)
  151. public BaseResult<?> del(HttpServletRequest request) {
  152. Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
  153. Integer programId = (Integer) toolUtils.getRequestContent(request,"programId",1);
  154. if (programId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
  155. ProgramDTO programDTO = programService.getProgramDTOById(programId);
  156. if (programDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
  157. programService.deleteProgramDataById(programId);
  158. if (programDTO.getPath() != null && !programDTO.getPath().equals("")) {
  159. SHH2Util.removeSipFile(programDTO.getPath());
  160. }
  161. if (programDTO.getType() != null && programDTO.getType() == 2) {
  162. ProgramInfoDTO programInfo = programInfoService.getProgramInfoByProgramId(programId);
  163. if (programInfo != null && programInfo.getId() != null && programInfo.getId() != 0) {
  164. programInfoService.deleteProgramInfoDataById(programInfo.getId());
  165. programInfoItemService.deleteProgramInfoItemDataById(programInfo.getId());
  166. }
  167. }
  168. return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
  169. }
  170. }