144 lines
6.6 KiB
Java
144 lines
6.6 KiB
Java
package com.ai.da.controller;
|
|
|
|
import com.ai.da.common.config.exception.BusinessException;
|
|
import com.ai.da.common.response.Response;
|
|
import com.ai.da.common.utils.MD5Utils;
|
|
import com.ai.da.model.dto.*;
|
|
import com.ai.da.model.vo.*;
|
|
import com.ai.da.service.CollectionElementService;
|
|
import com.ai.da.service.PanToneService;
|
|
import com.ai.da.service.SysFileService;
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiParam;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.util.StringUtils;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.validation.Valid;
|
|
import javax.validation.constraints.Pattern;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@Api(tags = "collection模块")
|
|
@Slf4j
|
|
@RestController
|
|
@RequestMapping("/api/element")
|
|
public class ElementController {
|
|
|
|
@Resource
|
|
private CollectionElementService collectionElementService;
|
|
@Resource
|
|
private PanToneService panToneService;
|
|
@Resource
|
|
private SysFileService sysFileService;
|
|
|
|
@ApiOperation(value = "初始化系统文件")
|
|
@PostMapping("/initDefaultSysFile")
|
|
public Response<Boolean> initDefaultSysFile(@RequestParam("validate") String validateUse) {
|
|
if (validateUse.equals("da_fl_mm_dad88888")) {
|
|
//防止被调用
|
|
sysFileService.initDefaultSysFile();
|
|
}
|
|
return Response.success();
|
|
}
|
|
|
|
@ApiOperation(value = "element文件上传")
|
|
@PostMapping("/upload")
|
|
public Response<CollectionElementVO> upload(@RequestParam("file") MultipartFile file,
|
|
@ApiParam("一级类型 Moodboard Printboard Sketchboard MarketingSketch Colorboard")
|
|
@RequestParam(value = "level1Type") String level1Type,
|
|
@RequestParam(name = "gender", required = false) String gender,
|
|
@RequestParam(name = "level2Type", required = false) String level2Type,
|
|
@RequestParam(name = "projectId", required = false) Long projectId,
|
|
@ApiParam("本地时区,比如 'Asia/Tokyo' 东京时间 , 'Asia/Shanghai' 北京时间 由js本地获取")
|
|
@RequestParam(value = "timeZone") String timeZone) {
|
|
if (null == file || StringUtils.isEmpty(file.getOriginalFilename())) {
|
|
throw new BusinessException("file.cannot.be.empty");
|
|
}
|
|
return Response.success(collectionElementService.upload(
|
|
new CollectionElementUploadDTO(file, projectId, level1Type, level2Type, gender, timeZone, MD5Utils.encryptFile(file))));
|
|
}
|
|
|
|
@ApiOperation(value = "element文件删除")
|
|
@PostMapping("/delete")
|
|
public Response<Boolean> delete(@Valid @RequestBody CollectionDeleteFileDTO deleteFileDTO) {
|
|
collectionElementService.delete(deleteFileDTO.getId());
|
|
return Response.success();
|
|
}
|
|
|
|
/** 该功能已删除 */
|
|
@Deprecated
|
|
@ApiOperation(value = "生成印花")
|
|
@PostMapping("/generatePrint")
|
|
public Response<GenerateCollectionItemVO> generatePrint(@Valid @RequestBody CollectionGeneratePrintDTO generatePrintDTO) {
|
|
return Response.success(collectionElementService.generatePrint(generatePrintDTO));
|
|
}
|
|
|
|
@ApiOperation(value = "保存印花")
|
|
@PostMapping("/savePrint")
|
|
public Response<Boolean> savePrint(@Valid @RequestBody CollectionSavePrintDTO savePrintDTO) {
|
|
return Response.success(collectionElementService.savePrint(savePrintDTO));
|
|
}
|
|
|
|
@ApiOperation(value = "通过tcx值获取潘通信息")
|
|
@GetMapping("/getRgbByTcx")
|
|
public Response<PantoneVO> getRgbByHsv(@ApiParam("tcx") @RequestParam("tcx") String tcx) {
|
|
return Response.success(panToneService.getByTCX(tcx));
|
|
}
|
|
|
|
@ApiOperation(value = "通过hsv值获取潘通信息")
|
|
@GetMapping("/getRgbByHsv")
|
|
public Response<PantoneVO> getRgbByHsv(@RequestParam("h") Integer h,
|
|
@RequestParam("s") Integer s, @RequestParam("v") Integer v) {
|
|
return Response.success(panToneService.getByHSV(h, s, v));
|
|
}
|
|
|
|
@ApiOperation(value = "通过hsv值数组批量获取潘通信息")
|
|
@PostMapping("/getRgbByHsvBatch")
|
|
public Response<List<PantoneVO>> getRgbByHsvBatch(@RequestBody @Valid List<GetRgbByHsvBatchDTO> rgbByHsvBatch) {
|
|
return Response.success(panToneService.getRgbByHsvBatch(rgbByHsvBatch));
|
|
}
|
|
|
|
@ApiOperation(value = "刷新历史数据")
|
|
@PostMapping("/refreshHistoryData")
|
|
public Response<Boolean> refreshHistoryData() {
|
|
collectionElementService.refreshHistoryData();
|
|
return Response.success();
|
|
}
|
|
|
|
@ApiOperation(value = "图片分割")
|
|
@PostMapping("/imageSegmentation")
|
|
public Response<List<CollectionElementVO>> selectedImageSeg(
|
|
@RequestPart(value = "file", required = false) MultipartFile[] file,
|
|
@RequestParam(value = "type", required = false) @Pattern(regexp = "sketch|product", message = "Please choose the image type") String type,
|
|
@RequestParam(value = "id", required = false) Long id,
|
|
@RequestParam(value = "sourceType", required = false) @Pattern(regexp = "Library|Upload", message = "Select an image from the library or upload one.") String sourceType) {
|
|
// 过滤空文件
|
|
List<MultipartFile> nonEmptyFiles = Arrays.stream(file)
|
|
.filter(item -> !item.isEmpty())
|
|
.collect(Collectors.toList());
|
|
// 参数校验
|
|
if ((nonEmptyFiles.isEmpty()) && id == null) {
|
|
throw new BusinessException("必须提供文件上传或ID");
|
|
}
|
|
if (!nonEmptyFiles.isEmpty() && id != null) {
|
|
throw new BusinessException("不能同时提供文件上传和ID");
|
|
}
|
|
|
|
return Response.success(collectionElementService.selectedImageSeg(nonEmptyFiles, id, type, sourceType));
|
|
}
|
|
|
|
@ApiOperation(value = "更新element level2type")
|
|
@GetMapping("/updateElementLevel2Type")
|
|
public Response<String> updateLibraryLevel2Type(@RequestParam(value = "elementId") Long elementId, @RequestParam(value = "level2Type") String level2Type) {
|
|
collectionElementService.updateElementLevel2Type(elementId, level2Type);
|
|
return Response.success("success");
|
|
}
|
|
|
|
}
|