From f823fa4a9283debfa7cb6d79fc1f3c7099f9b3ae Mon Sep 17 00:00:00 2001 From: liuxm <liuxm_a@163.com> Date: 星期四, 13 六月 2024 14:22:55 +0800 Subject: [PATCH] 去掉原controller中的try catch 和BindingResult --- pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java | 81 +++++++++++----------------------------- 1 files changed, 23 insertions(+), 58 deletions(-) diff --git a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java index ddbd240..2998548 100644 --- a/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java +++ b/pms-parent/pms-web-base/src/main/java/com/dy/pmsBase/MarkQrCode/MarkQrCodeCtrl.java @@ -2,22 +2,17 @@ import cn.hutool.core.codec.Base64; -import com.alibaba.excel.EasyExcel; -import com.dy.common.util.QrCodeGenerator; +import com.alibaba.excel.converters.Converter; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.pmsGlobal.util.QrCodeConstant; +import com.dy.pmsGlobal.util.QrCodeUtil; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.awt.image.BufferedImage; -import java.io.File; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -38,31 +33,18 @@ * @return */ @GetMapping(path = "show") - public BaseResponse<List<ResultVo>> show() { - try{ - List<ResultVo> list = new ArrayList<>() ; - Resource resource = new ClassPathResource("/images/logo.png"); - File logoPngFile = resource.getFile() ; - String[][] marks = QrCodeConstant.Marks() ; - for(String[] mark : marks){ - ResultVo vo = new ResultVo() ; - vo.code = mark[0] ; - vo.name = mark[1] ; - //vo.code = "1234567890123456789012" ; - //BufferedImage bufferedImage = QrCodeGenerator.toBufferedImage(QrCodeGenerator.createBitMatrix(vo.code, 30, 30)); - BufferedImage bufferedImage = QrCodeGenerator.toBufferedImage(QrCodeGenerator.createBitMatrix(vo.code, QrCodeConstant.MarkQrCodeWidth, QrCodeConstant.MarkQrCodeHeight)); - if(logoPngFile != null && logoPngFile.exists()){ - bufferedImage = QrCodeGenerator.addQrCodeLogo(bufferedImage, logoPngFile); - } - byte[] codes = QrCodeGenerator.bufferedImageToByteArray(bufferedImage, "JPG"); - vo.imgBase64 = "data:image/jpeg;base64," + Base64.encode(codes); - list.add(vo) ; - } - return BaseResponseUtils.buildSuccess(list); - }catch (Exception e){ - log.error("鐢熸垚鏍囪瘑绫讳簩缁寸爜鏃跺紓甯�", e); - return BaseResponseUtils.buildException(e.getMessage()); + public BaseResponse<List<ResultVo>> show() throws Exception{ + List<ResultVo> list = new ArrayList<>() ; + String[][] marks = QrCodeConstant.Marks() ; + for(String[] mark : marks){ + ResultVo vo = new ResultVo() ; + vo.code = mark[0] ; + vo.name = mark[1] ; + byte[] codes = QrCodeUtil.genQrCode(vo.code); + vo.imgBase64 = "data:image/jpeg;base64," + Base64.encode(codes); + list.add(vo) ; } + return BaseResponseUtils.buildSuccess(list); } /** @@ -70,33 +52,16 @@ * @return */ @GetMapping(path = "download") - public void download(HttpServletResponse response){ - try{ - // 杩欓噷娉ㄦ剰 鏈夊悓瀛﹀弽搴斾娇鐢╯wagger 浼氬鑷村悇绉嶉棶棰橈紝璇风洿鎺ョ敤娴忚鍣ㄦ垨鑰呯敤postman - response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); - response.setCharacterEncoding("utf-8"); - // 杩欓噷URLEncoder.encode鍙互闃叉涓枃涔辩爜 褰撶劧鍜宔asyexcel娌℃湁鍏崇郴 - String fileName = URLEncoder.encode(MarkQrCodeCtrl.fileName, "UTF-8").replaceAll("\\+", "%20"); - response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); - - List<ExcelVo> list = new ArrayList<>() ; - Resource resource = new ClassPathResource("/images/logo.png"); - File logoPngFile = resource.getFile() ; - String[][] marks = QrCodeConstant.Marks() ; - for(String[] mark : marks){ - ExcelVo vo = new ExcelVo() ; - vo.code = mark[0] ; - vo.name = mark[1] ; - BufferedImage bufferedImage = QrCodeGenerator.toBufferedImage(QrCodeGenerator.createBitMatrix(vo.code, QrCodeConstant.MarkQrCodeWidth, QrCodeConstant.MarkQrCodeHeight)); - if(logoPngFile != null && logoPngFile.exists()){ - bufferedImage = QrCodeGenerator.addQrCodeLogo(bufferedImage, logoPngFile); - } - vo.image = QrCodeGenerator.bufferedImageToByteArray(bufferedImage, "JPG"); - list.add(vo) ; - } - EasyExcel.write(response.getOutputStream(), ExcelVo.class).sheet(MarkQrCodeCtrl.sheetName).doWrite(list); - }catch (Exception e){ - log.error("涓嬭浇鏍囪瘑绫讳簩缁寸爜鏃跺紓甯�", e); + public void download(HttpServletResponse response) throws Exception{ + List<Converter> list = new ArrayList<>() ; + String[][] marks = QrCodeConstant.Marks() ; + for(String[] mark : marks){ + ExcelVo vo = new ExcelVo() ; + vo.code = mark[0] ; + vo.name = mark[1] ; + vo.image = QrCodeUtil.genQrCode(vo.code); + list.add(vo) ; } + QrCodeUtil.downloadExcel(response, fileName, sheetName, list); } } -- Gitblit v1.8.0