package com.qianwen.smartman.modules.sync.util;
|
|
import cn.hutool.core.codec.Base64Encoder;
|
import cn.hutool.core.io.FileUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
import cn.hutool.extra.qrcode.QrConfig;
|
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
import java.io.File;
|
import java.util.Objects;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import com.qianwen.core.redis.cache.BladeRedis;
|
import com.qianwen.core.tool.utils.SpringUtil;
|
import com.qianwen.smartman.modules.sync.constant.QyWechatConstant;
|
|
|
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/sync/util/CodeUtil.class */
|
public class CodeUtil {
|
private static final Logger log = LoggerFactory.getLogger(CodeUtil.class);
|
|
public static File generateCode(String url, String fileName) {
|
QrConfig config = new QrConfig();
|
config.setErrorCorrection(ErrorCorrectionLevel.Q);
|
config.setHeight(300);
|
config.setWidth(300);
|
return QrCodeUtil.generate(url, config, new File(fileName));
|
}
|
|
private static Boolean verifyCodeExpire(String cacheKey) {
|
BladeRedis bladeRedis = (BladeRedis) SpringUtil.getBean(BladeRedis.class);
|
Object codeFile = bladeRedis.get(cacheKey);
|
return Boolean.valueOf(Objects.isNull(codeFile));
|
}
|
|
public static Boolean verifyLoginCodeExpire(String clientId) {
|
String cacheKey = getLoginCodeCacheKey(clientId);
|
return verifyCodeExpire(cacheKey);
|
}
|
|
public static Boolean verifyBindCodeExpire(String clientId, Long empId) {
|
String cacheKey = getBindCodeCacheKey(clientId, empId);
|
return verifyCodeExpire(cacheKey);
|
}
|
|
public static void failureCode(String cacheKey) {
|
BladeRedis bladeRedis = (BladeRedis) SpringUtil.getBean(BladeRedis.class);
|
Object fileObj = bladeRedis.get(cacheKey);
|
if (!Objects.isNull(fileObj)) {
|
bladeRedis.del(cacheKey);
|
log.info("[企业微信二维码].[二维码被使用或过期,删除缓存:cacheKey={}]", cacheKey);
|
}
|
}
|
|
public static String getCodeLocalFilePath(String fileName) {
|
return QyWechatConstant.TEMP_PATH + fileName + QyWechatConstant.FILE_SUB;
|
}
|
|
public static String getLoginCodeCacheKey(String fileName) {
|
return QyWechatConstant.CODE_KEY + QyWechatConstant.QY_CODE_LOGIN_TYPE + SystemPropertyUtils.VALUE_SEPARATOR + fileName;
|
}
|
|
public static String getBindCodeCacheKey(String fileName, Long empId) {
|
return QyWechatConstant.CODE_KEY + QyWechatConstant.QY_CODE_BIND_TYPE + SystemPropertyUtils.VALUE_SEPARATOR + fileName + SystemPropertyUtils.VALUE_SEPARATOR + empId;
|
}
|
|
public static String codeFileToBase64(File codeFile) {
|
byte[] fileBytes = FileUtil.readBytes(codeFile);
|
String encode = Base64Encoder.encode(fileBytes);
|
return StrUtil.isEmpty(encode) ? "" : encode;
|
}
|
}
|