package com.gxwebsoft.common.core.utils;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;

/**
 * 常用工具方法
 *
 * @author WebSoft
 * @since 2017-06-10 10:10:22
 */
public class MyQrCodeUtil {
  private static final String logoUrl = "https://file.wsdns.cn/20230430/6fa31aca3b0d47af98a149cf2dd26a4f.jpeg";

  /**
   * 生成二维码
   * 用户ID
   */
  public static String getCode(Integer loginUserId) throws IOException {
    return createQrCode(loginUserId,loginUserId.toString());
  }

  /**
   * 生成二维码
   * 支持自定义类型和内容
   */
  public String getCode(Integer loginUserId,String content) throws IOException {
    return createQrCode(loginUserId,content);
  }

  /**
   * 生成带水印的二维码
   * @return https://file.gxwebsoft.com/qrcode/870.jpg?v=1682925307569
   */
  public static String createQrCode(Integer userId,String content) throws IOException {
    // 将URL转为BufferedImage
    BufferedImage bufferedImage = ImageIO.read(new URL(logoUrl));
    // 生成二维码
    QrConfig config = new QrConfig(300, 300);
    // 设置边距，既二维码和背景之间的边距
    config.setMargin(1);
    // 附带小logo
    config.setImg(bufferedImage);
    // 保存路径
//    String filePath = "/Users/gxwebsoft/Documents/uploads/" + "file/qrcode/" + userId + ".jpg";
    String filePath = "/www/wwwroot/file.ws/" + "file/qrcode/" + userId + ".jpg";
    String qrcodeUrl = "https://file.gxwebsoft.com/qrcode/" + userId + ".jpg" + "?v=" + DateUtil.current();
    // 生成二维码
    System.out.println("config = " + config);
    System.out.println("con = " + content);
    System.out.println("filePath = " + filePath);
    QrCodeUtil.generate(content, config, FileUtil.file(filePath));
    return qrcodeUrl;
  }
}
