SmsbFrontController.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. package com.inspur.source.controller;
  2. import cn.dev33.satoken.annotation.SaIgnore;
  3. import com.inspur.device.domain.SmsbDeviceTask;
  4. import com.inspur.device.domain.bo.HttpHeartbeatReq;
  5. import com.inspur.device.domain.constants.DeviceTaskConstants;
  6. import com.inspur.device.domain.vo.*;
  7. import com.inspur.device.mapper.SmsbDeviceTaskMapper;
  8. import com.inspur.device.service.*;
  9. import com.inspur.source.domain.vo.FrontItemSourceVO;
  10. import com.inspur.source.domain.vo.FrontPushInfoVo;
  11. import com.inspur.source.service.ISmsbItemPushDeviceService;
  12. import com.inspur.source.service.ISmsbItemPushService;
  13. import jakarta.validation.constraints.NotNull;
  14. import lombok.RequiredArgsConstructor;
  15. import org.dromara.common.core.domain.R;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.validation.annotation.Validated;
  18. import org.springframework.web.bind.annotation.*;
  19. import org.springframework.web.multipart.MultipartFile;
  20. import java.util.List;
  21. /**
  22. * 前端设备接口
  23. *
  24. * @author lihao16
  25. */
  26. @Validated
  27. @RequiredArgsConstructor
  28. @RestController
  29. @RequestMapping("/front")
  30. public class SmsbFrontController {
  31. private final ISmsbItemPushService smsbItemPushService;
  32. private final SmsbDeviceTaskMapper smsbDeviceTaskMapper;
  33. private final ISmsbItemPushDeviceService smsbItemPushDeviceService;
  34. @Autowired
  35. private ISmsbOtaRecordService iSmsbOtaRecordService;
  36. @Autowired
  37. private ISmsbDeviceService smsbDeviceService;
  38. @Autowired
  39. private ISmsbDeviceLoginService smsbDeviceLoginService;
  40. @Autowired
  41. private ISmsbDeviceAuthService smsbDeviceAuthService;
  42. @Autowired
  43. private ISmsbDeviceTaskService smsbDeviceTaskService;
  44. /**
  45. * 根据设备identifier 获取该设备最新内容下发记录
  46. *
  47. * @param identifier 主键
  48. */
  49. @SaIgnore
  50. @GetMapping("/push/{identifier}")
  51. public R<List<FrontPushInfoVo>> getItemPushInfo(@NotNull(message = "identifier不能为空") @PathVariable String identifier) {
  52. return smsbItemPushService.getItemPushInfo(identifier);
  53. }
  54. @SaIgnore
  55. @GetMapping("/itemSource/{itemId}")
  56. public R<List<FrontItemSourceVO>> getItemSourceList(@NotNull(message = "identifier不能为空") @PathVariable Long itemId) {
  57. return smsbItemPushService.getItemSourceList(itemId);
  58. }
  59. /**
  60. * 根据设备identifier 获取该设备最新内容下发记录
  61. *
  62. * @param pushId
  63. * @param identifier 主键
  64. */
  65. @SaIgnore
  66. @GetMapping("/push/update/end/{identifier}/{pushId}")
  67. public R<Void> itemUpdateEnd(@NotNull(message = "identifier不能为空") @PathVariable String identifier,
  68. @NotNull(message = "pushId不能为空") @PathVariable Long pushId) {
  69. return smsbItemPushService.itemUpdateEnd(identifier,pushId);
  70. }
  71. /**
  72. * 根据设备identifier 获取OTA 信息
  73. *
  74. * @param identifier 主键
  75. */
  76. @SaIgnore
  77. @GetMapping("/ota/check/{identifier}")
  78. public R<SmsbOtaRecordVo> deviceCheckOta(@NotNull(message = "identifier不能为空") @PathVariable String identifier) {
  79. return iSmsbOtaRecordService.deviceCheckOta(identifier);
  80. }
  81. /**
  82. * 前端设备上传截图
  83. *
  84. * @param identifier 主键
  85. */
  86. @SaIgnore
  87. @PostMapping("/screenshot/upload")
  88. public R<Void> screenshotUpload(@RequestParam("identifier") String identifier,@RequestParam("timestamp") Long timestamp,
  89. @RequestBody MultipartFile file) {
  90. return smsbDeviceService.screenshotUpload(identifier,timestamp, file);
  91. }
  92. /**
  93. * 前端设备心跳接口
  94. *
  95. * @param requestParam 主键
  96. */
  97. @SaIgnore
  98. @PostMapping("/heartbeat")
  99. public R<HttpHeartbeatRspVo> heartbeat(@RequestBody HttpHeartbeatReq requestParam) {
  100. return smsbDeviceService.heartbeat(requestParam);
  101. }
  102. /**
  103. * 前端设备登录接口
  104. *
  105. * @param requestParam 主键
  106. */
  107. @SaIgnore
  108. @PostMapping("/login")
  109. public R<String> deviceLogin(@RequestBody HttpHeartbeatReq requestParam) {
  110. return smsbDeviceLoginService.deviceLogin(requestParam);
  111. }
  112. /**
  113. * 前端设备登录接口
  114. *
  115. * @param requestParam 主键
  116. */
  117. @SaIgnore
  118. @PostMapping("/auth")
  119. public R<String> deviceAuth(@RequestBody HttpHeartbeatReq requestParam) {
  120. return smsbDeviceAuthService.deviceAuth(requestParam);
  121. }
  122. /**
  123. * 前端设备登录接口
  124. *
  125. * @param identifier
  126. * @param taskType
  127. */
  128. @SaIgnore
  129. @GetMapping("/task")
  130. public R<SmsbDeviceTaskVo> getDeviceTask(@RequestParam("identifier") String identifier,@RequestParam("taskType") Integer taskType) {
  131. return smsbDeviceTaskService.getDeviceTask(identifier,taskType);
  132. }
  133. /**
  134. * 前端设备上报任务状态接口
  135. *
  136. * @param taskId
  137. * @param taskStatus
  138. */
  139. @SaIgnore
  140. @GetMapping("/task/status")
  141. public R<Void> uploadTaskStatus(@RequestParam("taskId") Long taskId,@RequestParam("taskStatus") Integer taskStatus) {
  142. SmsbDeviceTask smsbDeviceTask = smsbDeviceTaskMapper.selectById(taskId);
  143. // 如果是任务完成且为时间线更新任务
  144. if (taskStatus.equals(DeviceTaskConstants.DEVICE_TASK_STATUS_END)
  145. && smsbDeviceTask.getTaskType().equals(DeviceTaskConstants.DEVICE_TASK_PLAY_LINE_UPDATE)) {
  146. smsbItemPushDeviceService.updateDevicePushStatus(3,smsbDeviceTask);
  147. }
  148. return smsbDeviceTaskService.uploadTaskStatus(taskId,taskStatus,smsbDeviceTask);
  149. }
  150. /**
  151. * 前端设备多功能卡上报
  152. *
  153. * @param frontMultiCardUploadVo
  154. */
  155. @SaIgnore
  156. @PostMapping("/multiCard")
  157. public R<Void> uploadTaskStatus(@RequestBody FrontMultiCardUploadVo frontMultiCardUploadVo) {
  158. return smsbDeviceService.uploadMultiCard(frontMultiCardUploadVo);
  159. }
  160. }