推广海报程序优化日志输出

This commit is contained in:
Jack 2025-08-19 11:32:31 +08:00
parent aa7253d71e
commit 195a1d6735
4 changed files with 379 additions and 247 deletions

View File

@ -30,6 +30,78 @@ public class OssUtils {
@Autowired @Autowired
private OssService ossService; private OssService ossService;
/**
* 网络图片转输入流改进版
*
* @param fileUrl 网络文件URL
* @return InputStream 输入流如果失败返回null
*/
public static InputStream urlToInputSteam(String fileUrl) {
if (fileUrl == null || fileUrl.trim().isEmpty()) {
System.err.println("文件URL为空");
return null;
}
try {
URL url = new URL(fileUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(10 * 1000);
connection.setReadTimeout(10 * 1000);
connection.setRequestProperty("User-Agent", "Mozilla/5.0");
int responseCode = connection.getResponseCode();
if (responseCode != HttpURLConnection.HTTP_OK) {
System.err.println("HTTP响应码错误: " + responseCode);
return null;
}
// 直接返回连接的输入流由调用者负责关闭
return connection.getInputStream();
} catch (IOException e) {
System.err.println("网络图片转输入流失败: " + e.getMessage());
e.printStackTrace();
return null;
}
}
/**
* 缓冲图像转输入流
*
* @param bufferedImage
* @Return Map
*/
public static Map toStreamMap(BufferedImage bufferedImage) {
InputStream stream = null;
ByteArrayOutputStream arrayOutputStream = null;
try {
arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", arrayOutputStream);
int file_size = arrayOutputStream.size();
byte[] result = arrayOutputStream.toByteArray();
stream = new ByteArrayInputStream(result);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("stream", stream);
resultMap.put("file_size", Convert.toLong(file_size));
return resultMap;
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放连接
try {
arrayOutputStream.close();
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/** /**
* oos直传,本地不存储图片 * oos直传,本地不存储图片
* *
@ -79,83 +151,4 @@ public class OssUtils {
return ossFilePath; return ossFilePath;
} }
/**
* 网络图片转输入流
*
* @param fileUrl
* @return
*/
public static InputStream urlToInputSteam(String fileUrl) {
HttpURLConnection connection = null;
InputStream is = null;
InputStream stream = null;
try {
// 打开服务器图片路径
URL url = new URL(fileUrl);
//创建连接
connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET"); // 提交模式
connection.setConnectTimeout(10 * 1000); //连接超时5秒
connection.setReadTimeout(10 * 1000); //读取超时10秒
is = connection.getInputStream();
int file_size = connection.getContentLength(); //文件大小
byte[] result = new byte[file_size];
int readCount = 0;
while (readCount < file_size) {
readCount += is.read(result, readCount, file_size - readCount);
}
stream = new ByteArrayInputStream(result);
return stream;
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
connection.disconnect();
is.close();
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* 缓冲图像转输入流
*
* @param bufferedImage
* @Return Map
*/
public static Map toStreamMap(BufferedImage bufferedImage) {
InputStream stream = null;
ByteArrayOutputStream arrayOutputStream = null;
try {
arrayOutputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage, "png", arrayOutputStream);
int file_size = arrayOutputStream.size();
byte[] result = arrayOutputStream.toByteArray();
stream = new ByteArrayInputStream(result);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("stream", stream);
resultMap.put("file_size", Convert.toLong(file_size));
return resultMap;
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放连接
try {
arrayOutputStream.close();
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
} }

View File

@ -669,30 +669,67 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
*/ */
@Override @Override
public CommonResult poster(PosterDTO posterDTO) { public CommonResult poster(PosterDTO posterDTO) {
UserDto user = getCurrentUser(); UserDto user = getCurrentUser();
if (user == null) { if (user == null) {
logger.warn("用户未登录,无法生成海报");
throw new ApiException(ResultCode.NEED_LOGIN); throw new ApiException(ResultCode.NEED_LOGIN);
} }
// 参数校验
if (posterDTO == null) {
logger.warn("海报参数为空用户ID: {}", user.getId());
return CommonResult.failed("参数不能为空");
}
String cacheKey = RedisConstant.Poster_NameSpace + Md5Utils.getMD5(JSONUtil.toJsonStr(posterDTO).getBytes()); String cacheKey = RedisConstant.Poster_NameSpace + Md5Utils.getMD5(JSONUtil.toJsonStr(posterDTO).getBytes());
try {
if (redisService.hasKey(cacheKey)) { if (redisService.hasKey(cacheKey)) {
return CommonResult.success(redisService.get(cacheKey)); Object cachedData = redisService.get(cacheKey);
if (cachedData != null) {
logger.debug("从缓存中获取海报数据用户ID: {}", user.getId());
return CommonResult.success(cachedData);
}
}
} catch (Exception e) {
logger.warn("读取海报缓存失败用户ID: {}: {}", user.getId(), e.getMessage());
} }
Integer poster_type = posterDTO.getPoster_type(); // 海报类型:1-H5;2-小程序 Integer poster_type = posterDTO.getPoster_type(); // 海报类型:1-H5;2-小程序
String poster_name = Optional.ofNullable(posterDTO.getMainTitle()).orElse(Optional.ofNullable(posterDTO.getMainTitle()).orElse(accountBaseConfigService.getConfig("site_name"))); if (poster_type == null || (poster_type != 1 && poster_type != 2)) {
logger.warn("无效的海报类型: {}, 用户ID: {}", poster_type, user.getId());
return CommonResult.failed("无效的海报类型");
}
String poster_name = Optional.ofNullable(posterDTO.getMainTitle())
.orElse(accountBaseConfigService.getConfig("site_name"));
// 防止poster_name为null
if (poster_name == null) {
poster_name = "默认海报";
}
String main_price = posterDTO.getMainPrice(); String main_price = posterDTO.getMainPrice();
String main_img = posterDTO.getMainImg(); String main_img = posterDTO.getMainImg();
// 获取存文本 // 获取存文本
if (poster_name != null) {
Document post_name_doc = Jsoup.parse(poster_name); Document post_name_doc = Jsoup.parse(poster_name);
poster_name = post_name_doc.text(); poster_name = post_name_doc.text();
}
if (StrUtil.isBlank(main_img)) { if (StrUtil.isBlank(main_img)) {
try {
AccountUserInfo userInfo = accountService.getUserInfo(user.getId()); AccountUserInfo userInfo = accountService.getUserInfo(user.getId());
if (userInfo != null) {
String user_avatar = userInfo.getUser_avatar(); String user_avatar = userInfo.getUser_avatar();
main_img = ObjectUtil.defaultIfBlank(user_avatar, accountBaseConfigService.getConfig("user_no_avatar")); main_img = ObjectUtil.defaultIfBlank(user_avatar, accountBaseConfigService.getConfig("user_no_avatar"));
} else {
main_img = accountBaseConfigService.getConfig("user_no_avatar");
}
} catch (Exception e) {
logger.warn("获取用户信息失败使用默认头像用户ID: {}: {}", user.getId(), e.getMessage());
main_img = accountBaseConfigService.getConfig("user_no_avatar");
}
} }
// 图像是否输出价格字样 // 图像是否输出价格字样
@ -706,10 +743,12 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
String wap_url = ""; String wap_url = "";
String qrcode = ""; String qrcode = "";
Map data = new HashMap(); Map<String, Object> data = new HashMap<>();
wap_url = Optional.ofNullable(posterDTO.getPath()).orElse(base_ip + "/pages/index/index?uid=" + user_id);
Map params = new HashMap(); wap_url = Optional.ofNullable(posterDTO.getPath())
.orElse(base_ip + "/pages/index/index?uid=" + user_id);
Map<String, Object> params = new HashMap<>();
params.put("user_id", user_id); params.put("user_id", user_id);
params.put("poster_type", poster_type); params.put("poster_type", poster_type);
params.put("poster_name", poster_name); params.put("poster_name", poster_name);
@ -723,9 +762,15 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
File qrcode_file = null; File qrcode_file = null;
InputStream qrcode_stream = null; InputStream qrcode_stream = null;
try {
if (poster_type == 1) { if (poster_type == 1) {
// 生成新版本H5 URL // 生成新版本H5 URL
try {
qrcode = accountBaseConfigService.qrcode(wap_url, 300, 300); qrcode = accountBaseConfigService.qrcode(wap_url, 300, 300);
} catch (Exception e) {
logger.error("生成H5二维码失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成二维码失败"));
}
// 移动端H5 // 移动端H5
data.put("invite_url", wap_url); data.put("invite_url", wap_url);
@ -734,21 +779,30 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
} else if (poster_type == 2) { } else if (poster_type == 2) {
// 生成小程序 URL // 生成小程序 URL
try {
Map unlimitedMap = wxQrCodeService.genUnlimitedWxQrCode(wap_url, params); Map unlimitedMap = wxQrCodeService.genUnlimitedWxQrCode(wap_url, params);
if (unlimitedMap != null) {
qrcode = Convert.toStr(unlimitedMap.get("floder")); qrcode = Convert.toStr(unlimitedMap.get("floder"));
if (!ConfigConstant.FILE_STORAGE_DISK) { if (!ConfigConstant.FILE_STORAGE_DISK) {
String qr_filename = (String) unlimitedMap.get("qr_filename"); String qr_filename = (String) unlimitedMap.get("qr_filename");
if (StrUtil.isNotBlank(qrcode)) {
// 这里不能使用微信返回的流 // 这里不能使用微信返回的流
qrcode_stream = OssUtils.urlToInputSteam(qrcode); qrcode_stream = OssUtils.urlToInputSteam(qrcode);
filename = qr_filename; }
filename = qr_filename != null ? qr_filename : filename;
} }
if (null != qrcode) { if (StrUtil.isNotBlank(qrcode)) {
data.put("qrcode", qrcode); data.put("qrcode", qrcode);
} }
}
} catch (Exception e) {
logger.error("生成小程序二维码失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成小程序二维码失败"));
}
data.put("invite_url", wap_url); data.put("invite_url", wap_url);
data.put("download_url", qrcode + "&d=1"); data.put("download_url", qrcode != null ? qrcode + "&d=1" : "");
} }
FileUtil.mkParentDirs(poster_path); FileUtil.mkParentDirs(poster_path);
@ -775,14 +829,15 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
// oss 服务 // oss 服务
try { try {
Map streamMap = OssUtils.toStreamMap(image); Map streamMap = OssUtils.toStreamMap(image);
if (streamMap != null) {
InputStream stream = (InputStream) streamMap.get("stream"); InputStream stream = (InputStream) streamMap.get("stream");
Long file_size = (Long) streamMap.get("file_size"); Long file_size = (Long) streamMap.get("file_size");
String floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/1/"; String floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/1/";
url = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size); url = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); logger.error("OSS上传二维码失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
logger.error("文件上传失败!", e); throw new ApiException(I18nUtil._("二维码上传失败"));
return null;
} }
} else if (uploadType.equals(4)) { } else if (uploadType.equals(4)) {
try { try {
@ -790,34 +845,52 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
qrcode_file = FileUtil.file(qrcode_path); qrcode_file = FileUtil.file(qrcode_path);
ImageIO.write(image, "png", qrcode_file); ImageIO.write(image, "png", qrcode_file);
} catch (IOException e) { } catch (IOException e) {
logger.error("生成二维码文件失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成二维码失败!")); throw new ApiException(I18nUtil._("生成二维码失败!"));
} }
try {
url = ossService.uploadObject4OSS(qrcode_file, TENGXUN_DEFAULT_DIR.concat("/").concat(dir).concat("/").concat(filename)); url = ossService.uploadObject4OSS(qrcode_file, TENGXUN_DEFAULT_DIR.concat("/").concat(dir).concat("/").concat(filename));
} catch (Exception e) {
logger.error("腾讯云上传二维码失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("二维码上传失败"));
}
} }
qrcode_stream = OssUtils.urlToInputSteam(url);
if (url != null) {
qrcode_stream = OssUtils.urlToInputSteam(url);
data.put("qrcode", url); data.put("qrcode", url);
}
} else { } else {
try { try {
FileUtil.mkParentDirs(qrcode_path); FileUtil.mkParentDirs(qrcode_path);
qrcode_file = FileUtil.file(qrcode_path); qrcode_file = FileUtil.file(qrcode_path);
ImageIO.write(image, "png", qrcode_file); ImageIO.write(image, "png", qrcode_file);
} catch (IOException e) { } catch (IOException e) {
logger.error("生成二维码文件失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成二维码失败!")); throw new ApiException(I18nUtil._("生成二维码失败!"));
} }
} }
} else if (poster_type == 2) { } else if (poster_type == 2) {
if (StrUtil.isNotBlank(qrcode)) {
qrcode_file = new File(qrcode); qrcode_file = new File(qrcode);
data.put("qrcode", qrcode); data.put("qrcode", qrcode);
} }
}
// 生成产品图片 // 生成产品图片
File main_file = null; File main_file = null;
if (StrUtil.isNotBlank(main_img)) {
try { try {
main_file = getFile(main_img); main_file = getFile(main_img);
} catch (Exception e) { if (main_file == null || !main_file.exists()) {
logger.warn("获取主图文件失败用户ID: {}, 图片URL: {}", user.getId(), main_img);
throw new ApiException(I18nUtil._("图片不存在!")); throw new ApiException(I18nUtil._("图片不存在!"));
} }
} catch (Exception e) {
logger.error("获取主图文件失败用户ID: {}, 图片URL: {}: {}", user.getId(), main_img, e.getMessage(), e);
throw new ApiException(I18nUtil._("图片不存在!"));
}
}
String plantform_poster_bg = ""; String plantform_poster_bg = "";
if (StrUtil.isNotBlank(main_price)) { if (StrUtil.isNotBlank(main_price)) {
@ -830,31 +903,67 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
// 绘制海报图 // 绘制海报图
try { try {
BufferedImage background = ImageIO.read(OssUtils.urlToInputSteam(plantform_poster_bg)); InputStream backgroundStream = OssUtils.urlToInputSteam(plantform_poster_bg);
if (backgroundStream == null) {
logger.error("获取海报背景图失败用户ID: {}, 背景图URL: {}", user.getId(), plantform_poster_bg);
throw new ApiException(I18nUtil._("获取背景图失败"));
}
BufferedImage background = ImageIO.read(backgroundStream);
BufferedImage qrcodeImage = null; BufferedImage qrcodeImage = null;
if (!ConfigConstant.FILE_STORAGE_DISK) { if (!ConfigConstant.FILE_STORAGE_DISK) {
if (qrcode_stream != null) {
qrcodeImage = ImageIO.read(qrcode_stream); qrcodeImage = ImageIO.read(qrcode_stream);
}
} else { } else {
if (qrcode_file != null && qrcode_file.exists()) {
qrcodeImage = ImageIO.read(qrcode_file); qrcodeImage = ImageIO.read(qrcode_file);
} }
BufferedImage productImage = ImageIO.read(main_file); }
PromotePoster poster = PromotePoster.builder()
.backgroundImage(background) BufferedImage productImage = null;
.qrcodeImage(qrcodeImage) if (main_file != null && main_file.exists()) {
.productName(poster_name) productImage = ImageIO.read(main_file);
.productPrice(main_price) }
.build();
if (background == null) {
logger.error("读取背景图失败用户ID: {}", user.getId());
throw new ApiException(I18nUtil._("读取背景图失败"));
}
PromotePoster poster = new PromotePoster();
poster.setBackgroundImage(background);
poster.setProductName(poster_name);
if (qrcodeImage != null) {
poster.setQrcodeImage(qrcodeImage);
}
if (main_price != null) {
poster.setProductPrice(main_price);
}
if (StrUtil.isNotBlank(main_price)) { if (StrUtil.isNotBlank(main_price)) {
// 产品海报 // 产品海报
if (productImage != null) {
poster.setProductImage(productImage); poster.setProductImage(productImage);
}
} else { } else {
// 推广海报 // 推广海报
if (productImage != null) {
poster.setPlantformImage(productImage); poster.setPlantformImage(productImage);
} }
}
PosterDefaultImpl<PromotePoster> impl = new PosterDefaultImpl<>(); PosterDefaultImpl<PromotePoster> impl = new PosterDefaultImpl<>();
BufferedImage bufferedImage = impl.annotationDrawPoster(poster).draw(null); BufferedImage bufferedImage = impl.annotationDrawPoster(poster).draw(null);
if (bufferedImage == null) {
logger.error("绘制海报失败用户ID: {}", user.getId());
throw new ApiException(I18nUtil._("绘制海报失败"));
}
if (!ConfigConstant.FILE_STORAGE_DISK) { if (!ConfigConstant.FILE_STORAGE_DISK) {
filename = filename.replace("-qrcode", ""); filename = filename.replace("-qrcode", "");
@ -867,6 +976,7 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
// oss 服务 // oss 服务
try { try {
Map streamMap = OssUtils.toStreamMap(bufferedImage); Map streamMap = OssUtils.toStreamMap(bufferedImage);
if (streamMap != null) {
InputStream stream = (InputStream) streamMap.get("stream"); InputStream stream = (InputStream) streamMap.get("stream");
Long file_size = (Long) streamMap.get("file_size"); Long file_size = (Long) streamMap.get("file_size");
String floder = null; String floder = null;
@ -876,26 +986,35 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/2/"; floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/2/";
} }
postUrl = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size); postUrl = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size);
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); logger.error("OSS上传海报失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
logger.error("文件上传失败!", e); throw new ApiException(I18nUtil._("海报上传失败"));
return null;
} }
} else if (uploadType.equals(4)) { } else if (uploadType.equals(4)) {
try { try {
ImageIO.write(bufferedImage, "png", poster_file); ImageIO.write(bufferedImage, "png", poster_file);
} catch (IOException e) { } catch (IOException e) {
logger.error("生成海报文件失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成海报失败!")); throw new ApiException(I18nUtil._("生成海报失败!"));
} }
try {
postUrl = ossService.uploadObject4OSS(poster_file, TENGXUN_DEFAULT_DIR.concat("/").concat(dir).concat("/").concat(filename)); postUrl = ossService.uploadObject4OSS(poster_file, TENGXUN_DEFAULT_DIR.concat("/").concat(dir).concat("/").concat(filename));
} catch (Exception e) {
logger.error("腾讯云上传海报失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("海报上传失败"));
}
} }
if (postUrl != null) {
data.put("poster_url", String.format("%s?rand=%s", postUrl, RandomUtil.randomString(13))); data.put("poster_url", String.format("%s?rand=%s", postUrl, RandomUtil.randomString(13)));
}
} else { } else {
ImageIO.write(bufferedImage, "png", poster_file); ImageIO.write(bufferedImage, "png", poster_file);
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("生成海报失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成海报失败!")); throw new ApiException(I18nUtil._("生成海报失败!"));
} }
@ -907,9 +1026,24 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
data.put("plantform_fx_cps_rate_2", plantform_fx_cps_rate_2); data.put("plantform_fx_cps_rate_2", plantform_fx_cps_rate_2);
data.put("plantform_fx_cps_rate_3", plantform_fx_cps_rate_3); data.put("plantform_fx_cps_rate_3", plantform_fx_cps_rate_3);
try {
redisService.set(cacheKey, data); redisService.set(cacheKey, data);
} catch (Exception e) {
logger.warn("海报数据缓存失败用户ID: {}: {}", user.getId(), e.getMessage());
}
return CommonResult.success(data); return CommonResult.success(data);
} finally {
// 确保资源被正确关闭
if (qrcode_stream != null) {
try {
qrcode_stream.close();
} catch (IOException e) {
logger.warn("关闭二维码输入流失败用户ID: {}: {}", user.getId(), e.getMessage());
}
}
}
} }
/** /**

View File

@ -550,7 +550,6 @@ public class LakalaApiServiceImpl implements LakalaApiService {
payload.put("category", CommonConstant.PUSH_MSG_CATE_EC); payload.put("category", CommonConstant.PUSH_MSG_CATE_EC);
pushMessageService.noticeMerchantSignEcContract(shopMchEntry.getCreated_by(), payload); pushMessageService.noticeMerchantSignEcContract(shopMchEntry.getCreated_by(), payload);
return Pair.of(true, "商家入网申请电子合同成功"); return Pair.of(true, "商家入网申请电子合同成功");
} }

View File

@ -695,7 +695,6 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
if (approvalStatus.equals(CommonConstant.MCH_APPR_STA_LKL_PADDING)) { if (approvalStatus.equals(CommonConstant.MCH_APPR_STA_LKL_PADDING)) {
approvalRemark = "初审通过,等待进一步审核。"; approvalRemark = "初审通过,等待进一步审核。";
// updateWrapper.set("signed_status", CommonConstant.CONTRACT_SIGN_STA_ING); // 合同签署中
approvalInvalidCol = "[]"; approvalInvalidCol = "[]";
} }
@ -753,6 +752,13 @@ public class ShopMchEntryServiceImpl extends BaseServiceImpl<ShopMchEntryMapper,
return CommonResult.failed(resultPair.getSecond()); return CommonResult.failed(resultPair.getSecond());
} }
record.setApproval_remark("入网申请已成功提交!");
// 执行更新操作
if (!updateById(record)) {
log.error("系统处理审批出错请联系管理员当前记录ID: {}", id);
return CommonResult.failed("系统处理审批出错,请联系管理员!");
}
// E签宝暂时停止使用 // E签宝暂时停止使用
// if (approvalStatus.equals(CommonConstant.Enable)) { // if (approvalStatus.equals(CommonConstant.Enable)) {