SmsbMinioDataController.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package com.inspur.source.controller;
  2. import cn.dev33.satoken.annotation.SaCheckPermission;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import com.inspur.device.domain.vo.DeviceAlarmNumTopVo;
  5. import com.inspur.source.domain.bo.SmsbMinioDataBo;
  6. import com.inspur.source.domain.vo.DashBoardPlayVo;
  7. import com.inspur.source.domain.vo.DiskUseVo;
  8. import com.inspur.source.domain.vo.FileStatisticsVo;
  9. import com.inspur.source.domain.vo.SmsbMinioDataVo;
  10. import com.inspur.source.service.ISmsbMinioDataService;
  11. import jakarta.servlet.http.HttpServletResponse;
  12. import jakarta.validation.constraints.NotEmpty;
  13. import jakarta.validation.constraints.NotNull;
  14. import lombok.RequiredArgsConstructor;
  15. import org.dromara.common.core.domain.R;
  16. import org.dromara.common.core.validate.AddGroup;
  17. import org.dromara.common.core.validate.EditGroup;
  18. import org.dromara.common.excel.utils.ExcelUtil;
  19. import org.dromara.common.idempotent.annotation.RepeatSubmit;
  20. import org.dromara.common.log.annotation.Log;
  21. import org.dromara.common.log.enums.BusinessType;
  22. import org.dromara.common.mybatis.core.page.PageQuery;
  23. import org.dromara.common.mybatis.core.page.TableDataInfo;
  24. import org.dromara.common.web.core.BaseController;
  25. import org.dromara.system.domain.vo.SysOssUploadVo;
  26. import org.dromara.system.domain.vo.SysOssVo;
  27. import org.springframework.http.MediaType;
  28. import org.springframework.validation.annotation.Validated;
  29. import org.springframework.web.bind.annotation.*;
  30. import org.springframework.web.multipart.MultipartFile;
  31. import java.util.List;
  32. /**
  33. * 文件资源
  34. *
  35. * @author Hao Li
  36. * @date 2025-02-07
  37. */
  38. @Validated
  39. @RequiredArgsConstructor
  40. @RestController
  41. @RequestMapping("/source/minioData")
  42. public class SmsbMinioDataController extends BaseController {
  43. private final ISmsbMinioDataService smsbMinioDataService;
  44. /**
  45. * 查询文件资源列表
  46. */
  47. @SaCheckPermission("source:minioData:list")
  48. @GetMapping("/list")
  49. public TableDataInfo<SmsbMinioDataVo> list(SmsbMinioDataBo bo, PageQuery pageQuery) {
  50. return smsbMinioDataService.queryPageList(bo, pageQuery);
  51. }
  52. /**
  53. * 导出文件资源列表
  54. */
  55. @SaCheckPermission("source:minioData:export")
  56. @Log(title = "文件资源", businessType = BusinessType.EXPORT)
  57. @PostMapping("/export")
  58. public void export(SmsbMinioDataBo bo, HttpServletResponse response) {
  59. List<SmsbMinioDataVo> list = smsbMinioDataService.queryList(bo);
  60. ExcelUtil.exportExcel(list, "文件资源", SmsbMinioDataVo.class, response);
  61. }
  62. /**
  63. * 获取文件资源详细信息
  64. *
  65. * @param id 主键
  66. */
  67. @SaCheckPermission("source:minioData:query")
  68. @GetMapping("/{id}")
  69. public R<SmsbMinioDataVo> getInfo(@NotNull(message = "主键不能为空")
  70. @PathVariable Long id) {
  71. return R.ok(smsbMinioDataService.queryById(id));
  72. }
  73. /**
  74. * 上传OSS对象存储
  75. *
  76. * @param file 文件
  77. */
  78. @Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
  79. @PostMapping(value = "/upload/smsb", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
  80. public R<SysOssUploadVo> uploadSmsb(@RequestPart("file") MultipartFile file) {
  81. if (ObjectUtil.isNull(file)) {
  82. return R.fail("上传文件不能为空");
  83. }
  84. SysOssVo oss = smsbMinioDataService.uploadSmsb(file);
  85. if (null == oss) {
  86. return R.fail("上传失败,已存在相同文件");
  87. }
  88. SysOssUploadVo uploadVo = new SysOssUploadVo();
  89. uploadVo.setUrl(oss.getUrl());
  90. uploadVo.setFileName(oss.getOriginalName());
  91. uploadVo.setOssId(oss.getOssId().toString());
  92. return R.ok(uploadVo);
  93. }
  94. /**
  95. * 新增文件资源
  96. */
  97. @SaCheckPermission("source:minioData:add")
  98. @Log(title = "文件资源", businessType = BusinessType.INSERT)
  99. @RepeatSubmit()
  100. @PostMapping()
  101. public R<Void> add(@Validated(AddGroup.class) @RequestBody SmsbMinioDataBo bo) {
  102. return toAjax(smsbMinioDataService.insertByBo(bo));
  103. }
  104. /**
  105. * 修改文件资源
  106. */
  107. @SaCheckPermission("source:minioData:edit")
  108. @Log(title = "文件资源", businessType = BusinessType.UPDATE)
  109. @RepeatSubmit()
  110. @PutMapping()
  111. public R<Void> edit(@Validated(EditGroup.class) @RequestBody SmsbMinioDataBo bo) {
  112. return toAjax(smsbMinioDataService.updateByBo(bo));
  113. }
  114. /**
  115. * 删除文件资源
  116. *
  117. * @param ids 主键串
  118. */
  119. @SaCheckPermission("source:minioData:remove")
  120. @Log(title = "文件资源", businessType = BusinessType.DELETE)
  121. @DeleteMapping("/{ids}")
  122. public R<Void> remove(@NotEmpty(message = "主键不能为空")
  123. @PathVariable Long[] ids) {
  124. return toAjax(smsbMinioDataService.deleteWithValidByIds(List.of(ids), true));
  125. }
  126. /**
  127. * 获取文件资源数量统计 by type
  128. *
  129. */
  130. @GetMapping("/statistics")
  131. public R<FileStatisticsVo> fileStatistics() {
  132. return R.ok(smsbMinioDataService.fileStatistics());
  133. }
  134. /**
  135. * 播放统计 资源数量统计 by tag
  136. *
  137. */
  138. @GetMapping("/statistics/byTag")
  139. public R<FileStatisticsVo> fileStatisticsByTag() {
  140. return R.ok(smsbMinioDataService.fileStatisticsByTag());
  141. }
  142. /**
  143. *播放统计 资源数量统计 by type and tag
  144. *
  145. */
  146. @GetMapping("/statistics/byTypeAndTag")
  147. public R<FileStatisticsVo> fileStatisticsByTypeAndTag() {
  148. return R.ok(smsbMinioDataService.fileStatisticsByTypeAndTag());
  149. }
  150. /**
  151. * 播放统计-内容新增折线图
  152. * @param startTime
  153. * @param endTime
  154. * @return
  155. */
  156. @GetMapping("/dashboard/play/numLine")
  157. public R<DashBoardPlayVo> numLine(@RequestParam String startTime, @RequestParam String endTime) {
  158. return R.ok(smsbMinioDataService.numLine(startTime, endTime));
  159. }
  160. /**
  161. * 播放统计-存储空间使用情况
  162. * @return
  163. */
  164. @GetMapping("/dashboard/disk/use")
  165. public R<DiskUseVo> diskUse() {
  166. return R.ok(smsbMinioDataService.diskUse());
  167. }
  168. }