package com.zt.life.modules.mainPart.sysPictureBase.controller; import com.zt.common.annotation.LogOperation; import com.zt.common.constant.Constant; import com.zt.common.annotation.QueryParam; import com.zt.common.db.query.QueryFilter; import com.zt.common.servlet.Result; import com.zt.common.validator.AssertUtils; import com.zt.life.modules.mainPart.sysPictureBase.model.SysPictureBase; import com.zt.life.modules.mainPart.sysPictureBase.service.SysPictureBaseService; import com.zt.life.sys.service.SysOssConfigService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.*; import java.util.List; /** * sys_picture_base * * @author zt generator * @since 1.0.0 2024-02-27 */ @RestController @RequestMapping("/sysPictureBase/") @Api(tags = "sys_picture_base") public class SysPictureBaseController { @Autowired private SysPictureBaseService sysPictureBaseService; @Autowired private SysOssConfigService sysOssConfigService; @Value("${zt.oss.local-path}") private String localPath; @GetMapping("page") @ApiOperation("分页") @ApiImplicitParams({ @ApiImplicitParam(name = Constant.Q.ORDER_FIELD, value = Constant.QV.ORDER_FIELD, dataType = Constant.QT.STRING), @ApiImplicitParam(name = Constant.Q.ORDER, value = Constant.QV.ORDER, dataType = Constant.QT.STRING), @ApiImplicitParam(name = "productType", value = "检索关键字", dataType = Constant.QT.STRING, format = "PRODUCT_TYPE^EQ"), @ApiImplicitParam(name = "systemMark", value = "系统标识", dataType = Constant.QT.STRING, format = "SYSTEM_MARK^LK")}) public Result> page(@ApiIgnore @QueryParam QueryFilter queryFilter) { return Result.ok(sysPictureBaseService.page(queryFilter)); } @GetMapping("{id}") @ApiOperation("信息") public Result get(@PathVariable("id") Long id) { SysPictureBase data = sysPictureBaseService.get(id); return Result.ok(data); } @PostMapping("save") @ApiOperation("保存") @LogOperation("保存") public Result save(@RequestBody SysPictureBase sysPictureBase) { if (sysPictureBase.getId() != null) { sysPictureBaseService.update(sysPictureBase); } else { sysPictureBaseService.insert(sysPictureBase); } if (sysPictureBase.getIsDefault() == 1 && sysPictureBase.getProductType()!=20) { sysPictureBaseService.updateByDefault(sysPictureBase.getId(), sysPictureBase.getProductType()); sysPictureBaseService.updateProdeuctImg(sysPictureBase.getId(), sysPictureBase.getProductType(), null); } return Result.ok(); } @RequestMapping("/getProductImg") public void getProductImg(HttpServletResponse response, Long id) { try { String tempUploadDir = localPath + "/product_img/" + id; File file = new File(tempUploadDir); //读取指定路径下面的文件 InputStream in = new FileInputStream(file); OutputStream outputStream = new BufferedOutputStream(response.getOutputStream()); //创建存放文件内容的数组 byte[] buff = new byte[1024]; //所读取的内容使用n来接收 int n; //当没有读 //取完时,继续读取,循环 while ((n = in.read(buff)) != -1) { //将字节数组的数据全部写入到输出流中 outputStream.write(buff, 0, n); } //强制将缓存区的数据进行输出 outputStream.flush(); //关流 outputStream.close(); in.close(); } catch (IOException e) { e.printStackTrace(); } } @RequestMapping("/getSvgImage") public void getSvgImage(HttpServletResponse response, Long id) { sysPictureBaseService.getSvgImage(response,id); } @GetMapping("/getDefaultImg") public Result getDefaultImg(Integer productType) { SysPictureBase data = sysPictureBaseService.getDefaultImg(productType); return Result.ok(data); } @DeleteMapping @ApiOperation("删除") @LogOperation("删除") public Result delete(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); sysPictureBaseService.delete(ids); return Result.ok(); } }