From 4e36cb093fb7ce6e87b3be90bda4c6e26d7b19fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B2=E6=A0=91=E9=80=9A?= <1976590620@qq.com> Date: Wed, 29 Sep 2021 17:27:41 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=AF=E5=88=86=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epdc-commons-tools/pom.xml | 15 +++++ .../tools/constant/PointsConstant.java | 7 +++ .../commons/tools/enums/BehaviorEnum.java | 13 ++++- .../commons/tools/utils/QRCodeGenerator.java | 55 +++++++++++++++++++ 4 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/QRCodeGenerator.java diff --git a/epdc-commons-tools/pom.xml b/epdc-commons-tools/pom.xml index e0432e9..a41cf53 100644 --- a/epdc-commons-tools/pom.xml +++ b/epdc-commons-tools/pom.xml @@ -131,6 +131,21 @@ spring-boot-autoconfigure compile + + com.google.zxing + core + 3.3.0 + + + com.google.zxing + javase + 3.3.0 + + + org.apache.axis + axis + 1.4 + diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/PointsConstant.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/PointsConstant.java index 657bbcb..7e1dea7 100644 --- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/PointsConstant.java +++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/PointsConstant.java @@ -30,4 +30,11 @@ public interface PointsConstant { * 周期:0一次、1每天、2每月 */ String PERIOD= "period"; + + + /** + * 开始双倍次数 + */ + String DOUBLETIME= "double_time"; + } diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java index 278a9f6..cbcb5de 100644 --- a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java +++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java @@ -52,7 +52,16 @@ public enum BehaviorEnum { /** * 创建社群 */ - POINTS_PARTY_GROUP_RULES("points_party_group_rules"); + POINTS_PARTY_GROUP_RULES("points_party_group_rules"), + + /** + * 项目规则 + */ + POINTS_ITEM_RULES("points_item_rules"), + /** + * 签到 + */ + POINTS_SIGN_RULES("points_sign_rules"); private String value; @@ -66,4 +75,4 @@ public enum BehaviorEnum { } - } +} diff --git a/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/QRCodeGenerator.java b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/QRCodeGenerator.java new file mode 100644 index 0000000..4b29f7d --- /dev/null +++ b/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/QRCodeGenerator.java @@ -0,0 +1,55 @@ +package com.elink.esua.epdc.commons.tools.utils; + +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.util.Hashtable; +import org.apache.axis.encoding.Base64; + +import javax.imageio.ImageIO; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.MultiFormatWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; + +public class QRCodeGenerator { + + private static final String CHARSET = "utf-8"; + private static final String FORMAT_NAME = "JPG"; + // 二维码尺寸 + private static final int QRCODE_SIZE = 300; + // LOGO宽度 + private static final int WIDTH = 60; + // LOGO高度 + private static final int HEIGHT = 60; + + public static String createImage(String content) throws Exception { + Hashtable hints = new Hashtable(); + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); + hints.put(EncodeHintType.CHARACTER_SET, CHARSET); + hints.put(EncodeHintType.MARGIN, 1); + BitMatrix bitMatrix = new MultiFormatWriter().encode(content, + BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints); + int width = bitMatrix.getWidth(); + int height = bitMatrix.getHeight(); + BufferedImage image = new BufferedImage(width, height, + BufferedImage.TYPE_INT_RGB); + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 + : 0xFFFFFFFF); + } + } +// if (imgPath == null || "".equals(imgPath)) { +// return image; +// } + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + ImageIO.write(image, "png", stream); + String base64 = Base64.encode(stream.toByteArray()); + System.out.println(base64); + stream.flush(); + stream.close(); + return base64; + } +} \ No newline at end of file