From d6ee0e1e4a5d0c61565b2af954a1845f2022d85f Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 26 Aug 2021 09:08:37 +0800
Subject: [PATCH] 二维码接口修改(中文不识别),保安员查询新增帅选条件

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml |    5 ++++-
 src/main/java/org/springblade/common/utils/QRCodeUtil.java         |   11 ++++++++---
 src/main/java/org/springblade/modules/qrcode/QrCodeController.java |   21 +++++++++++++++++++++
 3 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/springblade/common/utils/QRCodeUtil.java b/src/main/java/org/springblade/common/utils/QRCodeUtil.java
index f7cdd3a..df6c82c 100644
--- a/src/main/java/org/springblade/common/utils/QRCodeUtil.java
+++ b/src/main/java/org/springblade/common/utils/QRCodeUtil.java
@@ -221,12 +221,17 @@
 	 */
 	public static byte[] getQRCodeImage(String text, int width, int height) throws WriterException, IOException {
 		QRCodeWriter qrCodeWriter = new QRCodeWriter();
-		BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
+
+		HashMap<EncodeHintType, Object> hints = new HashMap<>();
+		hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
+
+		BitMatrix bitMatrix =qrCodeWriter.encode(text,BarcodeFormat.QR_CODE, width, height,hints);
+		//BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
 
 		ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
 		MatrixToImageWriter.writeToStream(bitMatrix, "JPG", pngOutputStream);
-		byte[] pngData = pngOutputStream.toByteArray();
-		return pngData;
+		//返回
+		return pngOutputStream.toByteArray();
 	}
 
 }
diff --git a/src/main/java/org/springblade/modules/qrcode/QrCodeController.java b/src/main/java/org/springblade/modules/qrcode/QrCodeController.java
index c93a5fb..69106b6 100644
--- a/src/main/java/org/springblade/modules/qrcode/QrCodeController.java
+++ b/src/main/java/org/springblade/modules/qrcode/QrCodeController.java
@@ -15,10 +15,12 @@
 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.IOException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
+import java.util.Base64;
 
 /**
  * @author zhongrj
@@ -51,6 +53,7 @@
 
 			ResponseEntity<byte[]> aEntity = null;
 			try {
+				URLEncoder.encode(content,"utf-8");
 				byte[] qrCodeImage = QRCodeUtil.getQRCodeImage(content, 350, 350);
 				// Set headers
 				final HttpHeaders headers = new HttpHeaders();
@@ -66,6 +69,24 @@
 		return null;
 	}
 
+
+	/**
+	 * 二维码生成
+	 * @param securityNumber 保安证编号
+	 * @return
+	 */
+	@GetMapping("/getQrCodeBase64")
+	public String getQrCodeBase64(String securityNumber) throws Exception{
+		String url = "http://s16s652780.51mypc.cn/securityInfo/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;
+	}
+
 	/**
 	 * 根据保安员编码查询保安员信息
 	 * @param securityNumber
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 7a4439a..0d34e68 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -106,7 +106,10 @@
             and bu.user_type = #{user.userType}
         </if>
         <if test="user.securitynumber!=null and user.securitynumber != ''">
-            and bu.securitynumber = #{user.securitynumber}
+            and bu.securitynumber like concat('%', #{user.securitynumber},'%')
+        </if>
+        <if test="user.cardid!=null and user.cardid != ''">
+            and bu.cardid like concat('%', #{user.cardid},'%')
         </if>
         <if test="user.examinationType!=null and user.examinationType != ''">
             and bu.examination_type = #{user.examinationType}

--
Gitblit v1.9.3