package com.ruoyi.web.controller.archive; import java.awt.image.BufferedImage; import java.util.List; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.domain.DocumentMaterials; import com.ruoyi.framework.config.ServerConfig; import com.ruoyi.service.IDocumentMaterialsService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; import static com.ruoyi.common.core.page.TableSupport.PAGE_NUM; import static com.ruoyi.common.core.page.TableSupport.PAGE_SIZE; /** * 【请填写功能名称】Controller * * @author ruoyi * @date 2025-07-28 */ @RestController @RequestMapping("/system/materials") public class DocumentMaterialsController extends BaseController { @Autowired private ServerConfig serverConfig; @Autowired private IDocumentMaterialsService documentMaterialsService; /** * 查询【请填写功能名称】列表 */ @PreAuthorize("@ss.hasPermi('system:materials:list')") @GetMapping("/list") public AjaxResult list(DocumentMaterials documentMaterials) { Integer pageNum = Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1); Integer pageSize = Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10); return documentMaterialsService.selectDataList(documentMaterials, pageNum, pageSize); } /** * 导出【请填写功能名称】列表 */ @PreAuthorize("@ss.hasPermi('system:materials:export')") @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, DocumentMaterials documentMaterials) { List list = documentMaterialsService.selectDocumentMaterialsList(documentMaterials); ExcelUtil util = new ExcelUtil(DocumentMaterials.class); util.exportExcel(response, list, "【请填写功能名称】数据"); } /** * 获取【请填写功能名称】详细信息 */ @PreAuthorize("@ss.hasPermi('system:materials:query')") @GetMapping(value = "/{materialId}") public AjaxResult getInfo(@PathVariable("materialId") String materialId) { return success(documentMaterialsService.selectDocumentMaterialsByMaterialId(materialId)); } /** * 新增【请填写功能名称】 */ @PreAuthorize("@ss.hasPermi('system:materials:add')") @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody DocumentMaterials documentMaterials) { int res = documentMaterialsService.insertDocumentMaterials(documentMaterials); System.out.println(res+"][[[[[[[[[[[[[[[[[["); return toAjax(res); } /** * 修改【请填写功能名称】 * * system:materials:edit */ @PreAuthorize("@ss.hasPermi('system:materials:edit')") @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody DocumentMaterials documentMaterials) { return toAjax(documentMaterialsService.updateDocumentMaterials(documentMaterials)); } /** * 删除【请填写功能名称】 */ @PreAuthorize("@ss.hasPermi('system:materials:remove')") @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE) @DeleteMapping("/{materialIds}") public AjaxResult remove(@PathVariable String[] materialIds) { return toAjax(documentMaterialsService.deleteDocumentMaterialsByMaterialIds(materialIds)); } @PostMapping("/upload") public AjaxResult uploadFile(MultipartFile file) throws Exception { // System.out.println("sdfd9999999999999999999999999999999"); try { //根据文件名称,然后修改对应数据的url String fname = file.getOriginalFilename(); // System.out.println(fname); // 上传文件路径 String filePath = RuoYiConfig.getUploadPath(); // System.out.println(filePath); // 上传并返回新文件名称 String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; AjaxResult ajax = AjaxResult.success(); //分割文件名 String [] nams = fname.split("\\."); Long nam = Long.parseLong(nams[0]); //文件名称 String pname = nams[1]; ajax.put("url", url); //拿到图像属性 BufferedImage bufferedImage = ImageIO.read(file.getInputStream()); int wid = bufferedImage.getWidth(); int hei = bufferedImage.getHeight(); double sz = Double.parseDouble(String.format("%.2f", file.getSize()*1.0/1024)); System.out.println(wid+":"+hei+":"+sz); //计算fileNumber Long fileNumber = documentMaterialsService.getFiNum(nam); //插入数据库对应的url当中 documentMaterialsService.updateByPageNumber(nam, fileNumber,wid, hei, sz, fileName, pname); // System.out.println(url); // System.out.println(fileName); ajax.put("fileName", fileName); // System.out.println(FileUtils.getName(fileName)); ajax.put("newFileName", FileUtils.getName(fileName)); ajax.put("originalFilename", file.getOriginalFilename()); return ajax; } catch (Exception e) { System.out.println(e); return AjaxResult.error(e.getMessage()); } } }