java通过hutool工具生成二维码实现扫码跳转功能

实现:

首先引入zxing和hutool工具依赖

java 复制代码
          <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>${hutool.version}</version>
        </dependency>
<hutool.version>5.8.11</hutool.version>

因为当前业务是根据微脑设备生成的二维码,通过扫描该二维码可以跳转到对应的页面查看微脑详细信息,所以这里是传递的微脑设备的id到后端,后端在根据id生成对应的内容以及存储二维码路径到数据库中

java 复制代码
    
        //先看是否有二维码,如果有直接拿着二维码返回没如果没有二维码就调用方法生成一个二维码并存到数据库
        if (StringUtils.isEmpty(wn.getQrCode())) {
            String url = qrcode(id);
            wn.setQrCode(url);
            wnMapper.updateWn(wn);
        }

public  String qrcode(Long id) {
        try {
            String dateStr = DateUtils.parseDateToStr("yyyyMMdd", new Date());
            String basePath = profilePath+"/avatar/" + dateStr + "/" + id;
            String basepathtourl= "/profile/avatar/"+ dateStr + "/" + id+ "/qrcode.png";
            // 创建目录(如果不存在)
            File dir = new File(basePath);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            String qrCodePath = basePath + "/qrcode.png";
            String URL = "192.168.0.43/wn/WnDetail?WnId=" + id;
            // 使用 Hutool 生成二维码
            QrCodeUtil.generate(URL, 300, 300, FileUtil.file(qrCodePath));
            return basepathtourl;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

前端页面根据返回的路径,进行拼接显示

java 复制代码
<el-form-item label="二维码">
                <img :src="imgurl"  class="qr-code" />
              </el-form-item>