| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- package com.inspur.source.controller;
- import cn.dev33.satoken.annotation.SaCheckPermission;
- import cn.hutool.core.util.ObjectUtil;
- import com.inspur.device.domain.vo.DeviceAlarmNumTopVo;
- import com.inspur.source.domain.bo.SmsbMinioDataBo;
- import com.inspur.source.domain.vo.DashBoardPlayVo;
- import com.inspur.source.domain.vo.DiskUseVo;
- import com.inspur.source.domain.vo.FileStatisticsVo;
- import com.inspur.source.domain.vo.SmsbMinioDataVo;
- import com.inspur.source.service.ISmsbMinioDataService;
- import jakarta.servlet.http.HttpServletResponse;
- import jakarta.validation.constraints.NotEmpty;
- import jakarta.validation.constraints.NotNull;
- import lombok.RequiredArgsConstructor;
- import org.dromara.common.core.domain.R;
- import org.dromara.common.core.validate.AddGroup;
- import org.dromara.common.core.validate.EditGroup;
- import org.dromara.common.excel.utils.ExcelUtil;
- import org.dromara.common.idempotent.annotation.RepeatSubmit;
- import org.dromara.common.log.annotation.Log;
- import org.dromara.common.log.enums.BusinessType;
- import org.dromara.common.mybatis.core.page.PageQuery;
- import org.dromara.common.mybatis.core.page.TableDataInfo;
- import org.dromara.common.web.core.BaseController;
- import org.dromara.system.domain.vo.SysOssUploadVo;
- import org.dromara.system.domain.vo.SysOssVo;
- import org.springframework.http.MediaType;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import java.util.List;
- /**
- * 文件资源
- *
- * @author Hao Li
- * @date 2025-02-07
- */
- @Validated
- @RequiredArgsConstructor
- @RestController
- @RequestMapping("/source/minioData")
- public class SmsbMinioDataController extends BaseController {
- private final ISmsbMinioDataService smsbMinioDataService;
- /**
- * 查询文件资源列表
- */
- @SaCheckPermission("source:minioData:list")
- @GetMapping("/list")
- public TableDataInfo<SmsbMinioDataVo> list(SmsbMinioDataBo bo, PageQuery pageQuery) {
- return smsbMinioDataService.queryPageList(bo, pageQuery);
- }
- /**
- * 导出文件资源列表
- */
- @SaCheckPermission("source:minioData:export")
- @Log(title = "文件资源", businessType = BusinessType.EXPORT)
- @PostMapping("/export")
- public void export(SmsbMinioDataBo bo, HttpServletResponse response) {
- List<SmsbMinioDataVo> list = smsbMinioDataService.queryList(bo);
- ExcelUtil.exportExcel(list, "文件资源", SmsbMinioDataVo.class, response);
- }
- /**
- * 获取文件资源详细信息
- *
- * @param id 主键
- */
- @SaCheckPermission("source:minioData:query")
- @GetMapping("/{id}")
- public R<SmsbMinioDataVo> getInfo(@NotNull(message = "主键不能为空")
- @PathVariable Long id) {
- return R.ok(smsbMinioDataService.queryById(id));
- }
- /**
- * 上传OSS对象存储
- *
- * @param file 文件
- */
- @Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
- @PostMapping(value = "/upload/smsb", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
- public R<SysOssUploadVo> uploadSmsb(@RequestPart("file") MultipartFile file) {
- if (ObjectUtil.isNull(file)) {
- return R.fail("上传文件不能为空");
- }
- SysOssVo oss = smsbMinioDataService.uploadSmsb(file);
- if (null == oss) {
- return R.fail("上传失败,已存在相同文件");
- }
- SysOssUploadVo uploadVo = new SysOssUploadVo();
- uploadVo.setUrl(oss.getUrl());
- uploadVo.setFileName(oss.getOriginalName());
- uploadVo.setOssId(oss.getOssId().toString());
- return R.ok(uploadVo);
- }
- /**
- * 新增文件资源
- */
- @SaCheckPermission("source:minioData:add")
- @Log(title = "文件资源", businessType = BusinessType.INSERT)
- @RepeatSubmit()
- @PostMapping()
- public R<Void> add(@Validated(AddGroup.class) @RequestBody SmsbMinioDataBo bo) {
- return toAjax(smsbMinioDataService.insertByBo(bo));
- }
- /**
- * 修改文件资源
- */
- @SaCheckPermission("source:minioData:edit")
- @Log(title = "文件资源", businessType = BusinessType.UPDATE)
- @RepeatSubmit()
- @PutMapping()
- public R<Void> edit(@Validated(EditGroup.class) @RequestBody SmsbMinioDataBo bo) {
- return toAjax(smsbMinioDataService.updateByBo(bo));
- }
- /**
- * 删除文件资源
- *
- * @param ids 主键串
- */
- @SaCheckPermission("source:minioData:remove")
- @Log(title = "文件资源", businessType = BusinessType.DELETE)
- @DeleteMapping("/{ids}")
- public R<Void> remove(@NotEmpty(message = "主键不能为空")
- @PathVariable Long[] ids) {
- return toAjax(smsbMinioDataService.deleteWithValidByIds(List.of(ids), true));
- }
- /**
- * 获取文件资源数量统计 by type
- *
- */
- @GetMapping("/statistics")
- public R<FileStatisticsVo> fileStatistics() {
- return R.ok(smsbMinioDataService.fileStatistics());
- }
- /**
- * 播放统计 资源数量统计 by tag
- *
- */
- @GetMapping("/statistics/byTag")
- public R<FileStatisticsVo> fileStatisticsByTag() {
- return R.ok(smsbMinioDataService.fileStatisticsByTag());
- }
- /**
- *播放统计 资源数量统计 by type and tag
- *
- */
- @GetMapping("/statistics/byTypeAndTag")
- public R<FileStatisticsVo> fileStatisticsByTypeAndTag() {
- return R.ok(smsbMinioDataService.fileStatisticsByTypeAndTag());
- }
- /**
- * 播放统计-内容新增折线图
- * @param startTime
- * @param endTime
- * @return
- */
- @GetMapping("/dashboard/play/numLine")
- public R<DashBoardPlayVo> numLine(@RequestParam String startTime, @RequestParam String endTime) {
- return R.ok(smsbMinioDataService.numLine(startTime, endTime));
- }
- /**
- * 播放统计-存储空间使用情况
- * @return
- */
- @GetMapping("/dashboard/disk/use")
- public R<DiskUseVo> diskUse() {
- return R.ok(smsbMinioDataService.diskUse());
- }
- }
|