feat:web模块包名调整

This commit is contained in:
曾文豪
2024-06-26 10:13:42 +08:00
parent c0ded4356f
commit 093d39a108
60 changed files with 149 additions and 162 deletions

View File

@@ -0,0 +1,163 @@
package com.tiesheng.web.controller;
import cn.hutool.captcha.LineCaptcha;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import com.tiesheng.annotation.token.TokenIgnore;
import com.tiesheng.web.config.template.ToolTemplateHandler;
import com.tiesheng.web.pojos.dto.*;
import com.tiesheng.web.pojos.vo.TemplateInfoVO;
import com.tiesheng.web.pojos.vo.PicVerifyVo;
import com.tiesheng.web.service.FileUploadService;
import com.tiesheng.web.service.TimedCacheService;
import com.tiesheng.util.exception.ApiException;
import com.tiesheng.util.pojos.ApiResp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 工具类
*
* @author hao
*/
@RestController
@RequestMapping("/tool")
public class ToolController {
@Autowired
TimedCacheService timedCacheService;
@Autowired
FileUploadService fileUploadService;
@Autowired
List<ToolTemplateHandler> templateHandlerList;
/**
* 图片验证码
*
* @return
*/
@TokenIgnore
@GetMapping("/code/image")
public ApiResp<PicVerifyVo> picVerifyV2(ImageCodeDTO dto) {
LineCaptcha lineCaptcha = dto.lineCaptcha();
PicVerifyVo vo = new PicVerifyVo();
vo.setBase64(lineCaptcha.getImageBase64Data());
vo.setKey(IdUtil.simpleUUID());
timedCacheService.setImageCode(vo.getKey(), lineCaptcha.getCode());
return ApiResp.respOK(vo);
}
/**
* 上传整个文件
*
* @param file
* @return
*/
@TokenIgnore
@PostMapping("/file/whole_upload")
public ApiResp<String> fileWholeUpload(@RequestParam("file") MultipartFile file) {
String filePath = fileUploadService.saveMultipartFile(file);
return ApiResp.respOK(filePath);
}
/**
* 上传超大文件建议超过20M的使用这个方法
*
* @return
*/
@TokenIgnore
@PostMapping(value = "/file/chunk_start")
public ApiResp<String> fileChunkStart(@RequestBody ChunkStartDTO dto) {
fileUploadService.chunkStart(dto.getFileExt());
return ApiResp.respOK("");
}
/**
* 校验文件块
*
* @return
*/
@TokenIgnore
@PostMapping("/file/chunk_check")
public ApiResp<Boolean> fileChunkCheck(@RequestBody ChunkCheckDTO dto) {
boolean exist = fileUploadService.chunkCheck(dto.getFileMd5(), dto.getChunk());
return ApiResp.respOK(exist);
}
/**
* 上传文件块
*
* @return
*/
@TokenIgnore
@PostMapping("/file/chunk_upload")
public ApiResp<String> fileChunkUpload(@RequestParam("file") MultipartFile file, String fileMd5, Integer chunk) {
fileUploadService.chunkUpload(file, fileMd5, chunk);
return ApiResp.respOK("");
}
/**
* 合并文件
*
* @param fileMd5
* @return
*/
@TokenIgnore
@PostMapping("/file/chunk_merge")
public ApiResp<String> fileChunkMerge(@RequestBody ChunkMergeDTO dto) {
String path = fileUploadService.chunkMerge(dto.getFileMd5(), dto.getFileExt());
return ApiResp.respOK(path);
}
@TokenIgnore
@GetMapping("/template/info")
public ApiResp<TemplateInfoVO> templateInfo(TemplateInfoDTO dto) {
List<ToolTemplateHandler> collect = templateHandlerList.stream()
.filter(it -> Objects.equals(it.getAction(), dto.getAction()))
.sorted((it, it2) -> it2.getSort() - it.getSort())
.collect(Collectors.toList());
if (CollUtil.isEmpty(collect)) {
throw new ApiException("没有找到对应的模版");
}
ToolTemplateHandler toolTemplateHandler = collect.get(0);
TemplateInfoVO template = new TemplateInfoVO();
template.setTemplateUrl(toolTemplateHandler.getTemplateUrl());
template.setParams(toolTemplateHandler.getParms(dto.getParams()));
template.setTemplateId(toolTemplateHandler.getTeamplateId());
return ApiResp.respOK(template);
}
@TokenIgnore
@PostMapping("/template/deal")
public ApiResp<String> templateDeal(@RequestBody TemplateDealDTO dto) {
List<ToolTemplateHandler> collect = templateHandlerList.stream().
filter(it -> Objects.equals(it.getTeamplateId(), dto.getTemplateId()))
.collect(Collectors.toList());
if (CollUtil.isEmpty(collect)) {
throw new ApiException("模版ID不存在");
}
return ApiResp.respOK(collect.get(0).handler(dto));
}
}