package org.springblade.modules.qrcode; import com.google.zxing.WriterException; import lombok.AllArgsConstructor; import org.springblade.common.utils.QRCodeUtil; import org.springblade.modules.system.service.IUserService; import org.springblade.modules.system.vo.UserVO; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import sun.misc.BASE64Encoder; import java.io.FileOutputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; /** * @author zhongrj * @date 2021-08-24 * 二维码生成 */ @RestController @RequestMapping("/qrCode") @AllArgsConstructor public class QrCodeController { private final IUserService userService; /** * 二维码生成-字节流 * @param securityNumber 保安证编号 * @return */ @GetMapping("/getQrCode") public ResponseEntity getQrCode(String securityNumber) throws UnsupportedEncodingException { String url = "http://223.82.109.183:2080/securityInfo.html"; if (null!=securityNumber) { String encoded = URLEncoder.encode(securityNumber,"UTF-8"); System.out.println("encoded = " + encoded); String content = url + "?securityNumber=" + encoded; ResponseEntity aEntity = null; try { URLEncoder.encode(content,"utf-8"); byte[] qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350); // Set headers final HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_PNG); aEntity = new ResponseEntity(qrCodeImage, headers, HttpStatus.CREATED); } catch (WriterException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return aEntity; } return null; } /** * 二维码生成base64 * @param securityNumber 保安证编号 * @return */ @GetMapping("/getQrCodeBase64") public String getQrCodeBase64(String securityNumber) throws Exception{ String url = "http://223.82.109.183:2080/securityInfo.html"; if (null!=securityNumber) { String content = url + "?securityNumber=" + securityNumber; byte[] qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350); String encode = new BASE64Encoder().encode(qrCodeImage); return "data:image/png;base64,"+encode; } return null; } /** * 二维码生成base64 * @param securityNumber 保安证编号 * @return */ @GetMapping("/getQrCodeDown") public String getQrCodeDown(String securityNumber) throws Exception{ String url = "http://223.82.109.183:2080/securityInfo.html"; if (null!=securityNumber) { String content = url + "?securityNumber=" + securityNumber; byte[] qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350); String path = "D:\\QrCode\\"; FileOutputStream fileOutputStream = new FileOutputStream(path+securityNumber+".png"); fileOutputStream.write(qrCodeImage,0,qrCodeImage.length); fileOutputStream.flush(); fileOutputStream.close(); return securityNumber; } return null; } }