package com.ydtech.modules.order.controller; import com.ydtech.core.page.BaseController; import com.ydtech.core.page.HttpResult; import com.ydtech.exception.SystemException; import com.ydtech.modules.esm.model.InsTaskImage; import com.ydtech.modules.esm.service.InsTaskImageService; import com.ydtech.modules.order.convert.InsTaskImageConvert; import com.ydtech.modules.order.entity.po.InsUploadFiles; import com.ydtech.modules.order.entity.vo.InsTaskImageVo; import com.ydtech.modules.order.entity.vo.InsTaskImagesVo; import com.ydtech.modules.order.service.InsTaskImagesService; import com.ydtech.modules.order.service.InsUploadFilesService; import com.ydtech.utils.ImageCompressionUtils; import com.ydtech.utils.StringUtils; import com.ydtech.utils.idgen.IdGenerate; import com.ydtech.validation.annotation.CheckObjectNotNull; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.validation.constraints.NotBlank; import java.io.IOException; import java.util.Base64; import java.util.Date; import java.util.List; @Api(tags = "影像") @RequestMapping("/ins/taskImage") @RestController public class OrderTaskImageController extends BaseController { private final InsTaskImageService insTaskImageService; private final InsUploadFilesService insUploadFilesService; @Autowired private InsTaskImagesService insTaskImagesService; public OrderTaskImageController(InsTaskImageService insTaskImageService, InsUploadFilesService insUploadFilesService) { this.insTaskImageService = insTaskImageService; this.insUploadFilesService = insUploadFilesService; } @PostMapping(value = "/uploadImage") @ApiOperation(value = "上传影像") public HttpResult uploadImage(@RequestBody InsTaskImageVo insTaskImageVo) { InsTaskImage record = InsTaskImageConvert.INSTANCE.toInsTaskImage(insTaskImageVo); // 将数据存入数据库 if (record.getTaskid() == null || record.getTaskid().equalsIgnoreCase("")) { throw new SystemException("任务号taskid不能为空"); } if (record.getImgtype() == null || record.getImgtype().equalsIgnoreCase("")) { throw new SystemException("图片类型imgtype不能为空"); } if (record.getImgList() == null || record.getImgList().isEmpty()) { throw new SystemException("图片列表imgList不能为空"); } this.insTaskImageService.delete(record.getTaskid(), record.getImgtype()); for (int i = 1; i <= record.getImgList().size(); i++) { String image = record.getImgList().get(i - 1); // 空文件不上传 if (StringUtils.isNullOrEmpty(image)) { continue; } record.setId(IdGenerate.nextId()); record.setCreator(getUserName()); record.setCreatetime(new Date()); record.setImage(image); this.insTaskImageService.insert(record); } return HttpResult.ok(); } @PostMapping(value = "/uploadImages") @ApiOperation(value = "新上传影像") public HttpResult uploadImages(@RequestBody InsTaskImagesVo insTaskImagesVo, HttpServletRequest request) { return insTaskImagesService.uploadImages(insTaskImagesVo, getJwtUserName(request)); } @GetMapping(value = "/findById") @ApiOperation(value = "根据任务号查询") public HttpResult findById(@RequestParam String taskid, String imgtype) { if (taskid == null || taskid.equalsIgnoreCase("")) { return HttpResult.ok("任务号taskid不能为空"); } if (imgtype == null || imgtype.equalsIgnoreCase("")) { return HttpResult.ok("图片类型imgtype不能为空"); } List selectList = this.insTaskImageService.selectList(" where taskid=? and imgtype=?", new Object[]{taskid, imgtype}); return HttpResult.ok(selectList); } @GetMapping(value = "/findByQuoteNo") @ApiOperation(value = "根据报价号查询") public HttpResult findByQuoteNo(@RequestParam @NotBlank(message = "报价号ID不能为空") String quoteNo) { return this.insTaskImagesService.findByQuoteNo(quoteNo); } @PostMapping("/imageCompression") @ApiOperation(value = "图片压缩") public HttpResult imageCompression(@RequestParam(value = "file") MultipartFile file) { try { // 转换后的图片 byte[] bytes_bytes = ImageCompressionUtils.compressPicForScale(file.getBytes(), 100); String s = Base64.getEncoder().encodeToString(bytes_bytes); return HttpResult.ok("转换成功", s); } catch (Exception e) { e.printStackTrace(); throw new SystemException("图片压缩失败"); } } @PostMapping("/uploadFile") @ApiOperation(value = "文件上传") public HttpResult uploadFile(@CheckObjectNotNull(message = "上传文件不能为空") MultipartFile multipartFile, String type, HttpServletRequest request) throws IOException { InsUploadFiles insUploadFiles = insUploadFilesService.uploadFile(multipartFile, getJwtUserName(request), type); return HttpResult.ok(insUploadFiles); } }