package com.dy.pmsBase.MarkQrCode; 
 | 
  
 | 
  
 | 
import cn.hutool.core.codec.Base64; 
 | 
import com.alibaba.excel.converters.Converter; 
 | 
import com.dy.common.aop.SsoPowerAop; 
 | 
import com.dy.common.webUtil.BaseResponse; 
 | 
import com.dy.common.webUtil.BaseResponseUtils; 
 | 
import com.dy.pmsGlobal.aop.Log; 
 | 
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.web.bind.annotation.GetMapping; 
 | 
import org.springframework.web.bind.annotation.RequestMapping; 
 | 
import org.springframework.web.bind.annotation.RestController; 
 | 
  
 | 
import java.util.ArrayList; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 生成标识类二维码 
 | 
 */ 
 | 
@Slf4j 
 | 
@RestController 
 | 
@RequestMapping(path = "markQrCode") 
 | 
@SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") 
 | 
public class MarkQrCodeCtrl { 
 | 
  
 | 
    private static final String fileName = "标识类二维码" ; 
 | 
    private static final String sheetName = "标识类二维码" ; 
 | 
  
 | 
    /** 
 | 
     * 客户端请求得到标识类二维码 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path = "show") 
 | 
    @SsoPowerAop(power = "10100007") 
 | 
    @Log("查询编码信息") 
 | 
    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); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 客户端请求下载标识类二维码的excel文件 
 | 
     * @return 
 | 
     */ 
 | 
    @GetMapping(path = "download") 
 | 
    @SsoPowerAop(power = "10100008") 
 | 
    @Log("导出编码信息") 
 | 
    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); 
 | 
    } 
 | 
} 
 |