luodangjia
2025-01-14 fbb35a6b9ed181fa7e5d7bc1fb0c3318a1d18db1
12.18
5个文件已修改
1个文件已添加
71 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/pom.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
@@ -89,4 +89,7 @@
    @ApiModelProperty(value = "预约单id")
    private String technicianSubscribeId;
    @ApiModelProperty("核销码BASE64")
    private String writeOffCode;
}
ruoyi-common/pom.xml
@@ -31,6 +31,17 @@
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.4.1</version>
        </dependency>
    </dependencies>
</project>
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/uuid/QRCodeGenerator.java
New file
@@ -0,0 +1,44 @@
package com.ruoyi.common.core.utils.uuid;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.WriterException;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Base64;
public class QRCodeGenerator {
    /**
     * 生成二维码图片的base64编码
     * @param text
     * @param width
     * @param height
     * @return
     * @throws WriterException
     * @throws IOException
     */
    public static String generateQRCodeBase64(String text, int width, int height) throws WriterException, IOException {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
        ByteArrayOutputStream pngOutputStream = new ByteArrayOutputStream();
        MatrixToImageWriter.writeToStream(bitMatrix, "PNG", pngOutputStream);
        byte[] pngData = pngOutputStream.toByteArray();
        return Base64.getEncoder().encodeToString(pngData);
    }
    public static void main(String[] args) {
        try {
            String text = "Hello, World!";
            String base64QRCode = generateQRCodeBase64(text, 200, 200);
            System.out.println("Base64 QR Code: " + base64QRCode);
        } catch (WriterException | IOException e) {
            e.printStackTrace();
        }
    }
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -897,6 +897,7 @@
                .collect(Collectors.toList());
    }
    
    
    /**
     * 上传图片
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.QRCodeGenerator;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.enums.OrderStatus;
@@ -41,6 +42,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
@@ -216,6 +218,14 @@
                orderDetailVO.setTechnicianSubscribeId(id.toString());
            }
        }
        // 生成核销码BASE64
        try {
            String base64 = QRCodeGenerator.generateQRCodeBase64(order.getOrderNumber(), 124, 124);
            orderDetailVO.setWriteOffCode(base64);
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServiceException("生成核销码失败");
        }
        return orderDetailVO;
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java
@@ -71,5 +71,7 @@
    private String afterSaleTime;
    @ApiModelProperty("活动名称")
    private String activityName;
    @ApiModelProperty("核销码BASE64")
    private String writeOffCode;
    
}