SmsbFrontController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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. @Autowired
  45. private ISmsbDeviceChatKeyService smsbDeviceChatKeyService;
  46. /**
  47. * 根据设备identifier 获取该设备最新内容下发记录
  48. *
  49. * @param identifier 主键
  50. */
  51. @SaIgnore
  52. @GetMapping("/push/{identifier}")
  53. public R<List<FrontPushInfoVo>> getItemPushInfo(@NotNull(message = "identifier不能为空") @PathVariable String identifier) {
  54. return smsbItemPushService.getItemPushInfo(identifier);
  55. }
  56. @SaIgnore
  57. @GetMapping("/itemSource/{itemId}")
  58. public R<List<FrontItemSourceVO>> getItemSourceList(@NotNull(message = "identifier不能为空") @PathVariable Long itemId) {
  59. return smsbItemPushService.getItemSourceList(itemId);
  60. }
  61. /**
  62. * 根据设备identifier 获取该设备最新内容下发记录
  63. *
  64. * @param pushId
  65. * @param identifier 主键
  66. */
  67. @SaIgnore
  68. @GetMapping("/push/update/end/{identifier}/{pushId}")
  69. public R<Void> itemUpdateEnd(@NotNull(message = "identifier不能为空") @PathVariable String identifier,
  70. @NotNull(message = "pushId不能为空") @PathVariable Long pushId) {
  71. return smsbItemPushService.itemUpdateEnd(identifier,pushId);
  72. }
  73. /**
  74. * 根据设备identifier 获取OTA 信息
  75. *
  76. * @param identifier 主键
  77. */
  78. @SaIgnore
  79. @GetMapping("/ota/check/{identifier}")
  80. public R<SmsbOtaRecordVo> deviceCheckOta(@NotNull(message = "identifier不能为空") @PathVariable String identifier) {
  81. return iSmsbOtaRecordService.deviceCheckOta(identifier);
  82. }
  83. /**
  84. * 前端设备上传截图
  85. *
  86. * @param identifier 主键
  87. */
  88. @SaIgnore
  89. @PostMapping("/screenshot/upload")
  90. public R<Void> screenshotUpload(@RequestParam("identifier") String identifier,@RequestParam("timestamp") Long timestamp,
  91. @RequestBody MultipartFile file) {
  92. return smsbDeviceService.screenshotUpload(identifier,timestamp, file);
  93. }
  94. /**
  95. * 前端设备心跳接口
  96. *
  97. * @param requestParam 主键
  98. */
  99. @SaIgnore
  100. @PostMapping("/heartbeat")
  101. public R<HttpHeartbeatRspVo> heartbeat(@RequestBody HttpHeartbeatReq requestParam) {
  102. return smsbDeviceService.heartbeat(requestParam);
  103. }
  104. /**
  105. * 前端设备登录接口
  106. *
  107. * @param requestParam 主键
  108. */
  109. @SaIgnore
  110. @PostMapping("/login")
  111. public R<String> deviceLogin(@RequestBody HttpHeartbeatReq requestParam) {
  112. return smsbDeviceLoginService.deviceLogin(requestParam);
  113. }
  114. /**
  115. * 前端设备登录接口
  116. *
  117. * @param requestParam 主键
  118. */
  119. @SaIgnore
  120. @PostMapping("/auth")
  121. public R<String> deviceAuth(@RequestBody HttpHeartbeatReq requestParam) {
  122. return smsbDeviceAuthService.deviceAuth(requestParam);
  123. }
  124. /**
  125. * 前端设备登录接口
  126. *
  127. * @param identifier
  128. * @param taskType
  129. */
  130. @SaIgnore
  131. @GetMapping("/task")
  132. public R<SmsbDeviceTaskVo> getDeviceTask(@RequestParam("identifier") String identifier,@RequestParam("taskType") Integer taskType) {
  133. return smsbDeviceTaskService.getDeviceTask(identifier,taskType);
  134. }
  135. /**
  136. * 前端设备上报任务状态接口
  137. *
  138. * @param taskId
  139. * @param taskStatus
  140. */
  141. @SaIgnore
  142. @GetMapping("/task/status")
  143. public R<Void> uploadTaskStatus(@RequestParam("taskId") Long taskId,@RequestParam("taskStatus") Integer taskStatus) {
  144. SmsbDeviceTask smsbDeviceTask = smsbDeviceTaskMapper.selectById(taskId);
  145. // 如果是任务完成且为时间线更新任务
  146. if (taskStatus.equals(DeviceTaskConstants.DEVICE_TASK_STATUS_END)
  147. && smsbDeviceTask.getTaskType().equals(DeviceTaskConstants.DEVICE_TASK_PLAY_LINE_UPDATE)) {
  148. smsbItemPushDeviceService.updateDevicePushStatus(3,smsbDeviceTask);
  149. }
  150. // 任务类型为OTA升级
  151. if (smsbDeviceTask.getTaskType().equals(DeviceTaskConstants.DEVICE_TASK_OTA)) {
  152. iSmsbOtaRecordService.updateOtaStatus(smsbDeviceTask,taskStatus);
  153. }
  154. return smsbDeviceTaskService.uploadTaskStatus(taskId,taskStatus,smsbDeviceTask);
  155. }
  156. /**
  157. * 前端设备多功能卡上报
  158. *
  159. * @param frontMultiCardUploadVo
  160. */
  161. @SaIgnore
  162. @PostMapping("/multiCard")
  163. public R<Void> uploadTaskStatus(@RequestBody FrontMultiCardUploadVo frontMultiCardUploadVo) {
  164. return smsbDeviceService.uploadMultiCard(frontMultiCardUploadVo);
  165. }
  166. /**
  167. * 前端设备获取AI对话API key
  168. *
  169. * @param identifier
  170. */
  171. @SaIgnore
  172. @PostMapping("/chat/config/{identifier}")
  173. public R<SmsbDeviceChatKeyVo> getChatConfig(@PathVariable("identifier")String identifier) {
  174. return smsbDeviceChatKeyService.getChatConfig(identifier);
  175. }
  176. }