| | |
| | | |
| | | import cn.dev33.satoken.annotation.SaCheckPermission; |
| | | import cn.dev33.satoken.annotation.SaIgnore; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.fasterxml.jackson.databind.SerializationFeature; |
| | | import jakarta.validation.constraints.NotEmpty; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.dromara.common.core.domain.R; |
| | | import org.dromara.common.core.utils.DateUtils; |
| | | import org.dromara.common.core.utils.MapstructUtils; |
| | | import org.dromara.common.core.utils.StringUtils; |
| | | import org.dromara.common.log.annotation.Log; |
| | | import org.dromara.common.log.enums.BusinessType; |
| | | import org.dromara.common.oss.core.OssClient; |
| | | import org.dromara.common.oss.entity.SynchronousRequest; |
| | | import org.dromara.common.redis.utils.QueueUtils; |
| | | import org.dromara.common.oss.entity.SynchronousRequest2; |
| | | import org.dromara.common.oss.entity.UploadResult; |
| | | import org.dromara.common.oss.entity.VideoRequest; |
| | | import org.dromara.common.oss.factory.OssFactory; |
| | | import org.dromara.system.domain.SysOss; |
| | | import org.dromara.system.domain.properties.Boundary; |
| | | import org.dromara.system.domain.properties.FtpConfig; |
| | | import org.dromara.system.domain.vo.SysOssUploadVo; |
| | | import org.dromara.system.domain.vo.SysOssVo; |
| | | import org.dromara.system.mapper.SysOssMapper; |
| | | import org.dromara.system.service.ISysOssService; |
| | | import org.dromara.system.uitil.FtpApche; |
| | | import org.dromara.system.uitil.HttpUtils; |
| | | import org.dromara.system.uitil.PasswordUtil; |
| | | import org.jetbrains.annotations.NotNull; |
| | | 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.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | |
| | | @RequestMapping("/resource/synchronization") |
| | | public class SynchronizationController { |
| | | |
| | | private final FtpConfig ftpConfig; |
| | | private final ISysOssService ossService; |
| | | private final SysOssMapper baseMapper; |
| | | |
| | | |
| | | /** |
| | | * 上传同步 |
| | | * 上传同步 视频专网 |
| | | * |
| | | * @param |
| | | * @return |
| | | */ |
| | | @PostMapping(value = "/upload") |
| | | public R synchronization(SynchronousRequest request) { |
| | | public R synchronization(SynchronousRequest request) throws IOException, ParseException { |
| | | if (ObjectUtil.isNull(request.getFile())) { |
| | | return R.fail("上传文件不能为空"); |
| | | } |
| | | log.info("ossId:{},path:{}",request.getOssId(),request.getPath()); |
| | | SysOssVo oss = ossService.upload2(request); |
| | | |
| | | //添加队列数据 |
| | | QueueUtils.addDelayedQueueObject("OSS", oss.getOssId().toString(), 1, TimeUnit.HOURS); |
| | | log.info("通道: {} , 发送数据: {}", "OSS", oss.getOssId()); |
| | | ossService.upload2(request); |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping(value = "/uploadTwo") |
| | | public R uploadTwo(VideoRequest request1) throws IOException { |
| | | if (ObjectUtil.isNull(request1.getFile())) { |
| | | return R.fail("上传文件不能为空"); |
| | | } |
| | | SysOssVo oss = ossService.upload3(request1); |
| | | //添加队列数据 |
| | | // QueueUtils.addDelayedQueueObject("OSS", oss.getOssId().toString(), 1, TimeUnit.DAYS); |
| | | log.info("通道: {} , 发送数据: {}", "OSS", oss.getOssId()); |
| | | SysOssUploadVo uploadVo = new SysOssUploadVo(); |
| | | uploadVo.setUrl(oss.getUrl()); |
| | | uploadVo.setFileName(oss.getOriginalName()); |
| | | uploadVo.setOssId(oss.getOssId().toString()); |
| | | uploadVo.setPassword(oss.getPassword()); |
| | | return R.ok(uploadVo); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @PostMapping(value = "/delete") |
| | | public R<Void> remove(String ossId) throws Exception { |
| | | return ossService.deleteWithValidByIds(List.of(convert(ossId)), true,"000000") ? R.ok() : R.fail("提取码错误!"); |
| | | return ossService.deleteWithValidByIds(List.of(convert(ossId)), true, "000000") ? R.ok() : R.fail("提取码错误!"); |
| | | } |
| | | |
| | | /** |
| | | * 上传同步 公安内网 |
| | | * |
| | | * @param request |
| | | */ |
| | | @PostMapping(value = "/uploadByFileName") |
| | | public R<Void> uploadByFileName(VideoRequest request) throws Exception { |
| | | if (ObjectUtil.isNull(request.getFile())) { |
| | | return R.fail("上传文件不能为空"); |
| | | } |
| | | SysOssVo oss = ossService.upload3(request); |
| | | |
| | | InputStream input = request.getFile().getInputStream(); |
| | | String fileName = request.getFileName(); |
| | | OssClient storage = OssFactory.instance(); |
| | | UploadResult uploadResult = storage.upload(input,getPath(fileName), |
| | | fileName.substring(14,fileName.length())); |
| | | buildResultEntity1(fileName, fileName.substring(14,fileName.length()), "minio", uploadResult); |
| | | return R.ok(); |
| | | } |
| | | |
| | | public String getPath(String suffix) { |
| | | return DateUtils.datePath() + "/" + suffix; |
| | | } |
| | | |
| | | @NotNull |
| | | private void buildResultEntity1(String originalfileName, String suffix, String configKey, UploadResult uploadResult) { |
| | | SysOss oss = new SysOss(); |
| | | oss.setUrl(uploadResult.getUrl()); |
| | | oss.setFileSuffix(suffix); |
| | | oss.setFileName(uploadResult.getFilename()); |
| | | oss.setOriginalName(originalfileName); |
| | | oss.setService(configKey); |
| | | oss.setPassword(PasswordUtil.randomPassword(6)); |
| | | baseMapper.insert(oss); |
| | | } |
| | | |
| | | @NotNull |
| | | private void buildResultEntity(String originalfileName, String suffix, String configKey, UploadResult uploadResult |
| | | ,MultipartFile file) { |
| | | SysOss oss = new SysOss(); |
| | | oss.setUrl(uploadResult.getUrl()); |
| | | oss.setFileSuffix(suffix); |
| | | oss.setFileName(uploadResult.getFilename()); |
| | | oss.setOriginalName(originalfileName); |
| | | oss.setService(configKey); |
| | | oss.setPassword(PasswordUtil.randomPassword(6)); |
| | | baseMapper.insert(oss); |
| | | |
| | | //拼接同步信息 |
| | | |
| | | |
| | | // SynchronousRequest request = new SynchronousRequest(); |
| | | // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | // request.setFile(file); |
| | | // request.setFileName(oss.getOriginalName()+"1"); |
| | | // request.setPath(uploadResult.getFilename()); |
| | | // request.setCreateTime(format.format(oss.getCreateTime())); |
| | | // request.setPassword(oss.getPassword()); |
| | | // request.setCreateBy("1731588854831022081"); |
| | | // request.setOssId(String.valueOf(oss.getOssId())); |
| | | // request.setOssId("123890"); |
| | | // post(request); |
| | | } |
| | | |
| | | |
| | | public static Long[] convert(String input) { |
| | | String[] stringArray = input.split(","); |
| | |
| | | |
| | | return longArray; |
| | | } |
| | | |
| | | @NotNull |
| | | private void buildResultEntity2(String originalfileName, String suffix, String configKey, UploadResult uploadResult |
| | | , String password) throws IOException { |
| | | SysOss oss = new SysOss(); |
| | | oss.setUrl(uploadResult.getUrl()); |
| | | oss.setFileSuffix(suffix); |
| | | oss.setFileName(uploadResult.getFilename()); |
| | | oss.setOriginalName(originalfileName); |
| | | oss.setService(configKey); |
| | | oss.setPassword(password); |
| | | baseMapper.insert(oss); |
| | | } |
| | | } |