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

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());
if (redisService.hasKey(cacheKey)) { try {
return CommonResult.success(redisService.get(cacheKey)); if (redisService.hasKey(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();
// 获取存文本 // 获取存文本
Document post_name_doc = Jsoup.parse(poster_name); if (poster_name != null) {
poster_name = post_name_doc.text(); Document post_name_doc = Jsoup.parse(poster_name);
poster_name = post_name_doc.text();
}
if (StrUtil.isBlank(main_img)) { if (StrUtil.isBlank(main_img)) {
AccountUserInfo userInfo = accountService.getUserInfo(user.getId()); try {
String user_avatar = userInfo.getUser_avatar(); AccountUserInfo userInfo = accountService.getUserInfo(user.getId());
main_img = ObjectUtil.defaultIfBlank(user_avatar, accountBaseConfigService.getConfig("user_no_avatar")); if (userInfo != null) {
String user_avatar = userInfo.getUser_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,193 +762,288 @@ public class ShopDistributionUserServiceImpl extends BaseServiceImpl<ShopDistrib
File qrcode_file = null; File qrcode_file = null;
InputStream qrcode_stream = null; InputStream qrcode_stream = null;
if (poster_type == 1) { try {
// 生成新版本H5 URL if (poster_type == 1) {
qrcode = accountBaseConfigService.qrcode(wap_url, 300, 300); // 生成新版本H5 URL
try {
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);
data.put("qrcode", qrcode);
data.put("download_url", qrcode + "&d=1");
} else if (poster_type == 2) {
// 生成小程序 URL
Map unlimitedMap = wxQrCodeService.genUnlimitedWxQrCode(wap_url, params);
qrcode = Convert.toStr(unlimitedMap.get("floder"));
if (!ConfigConstant.FILE_STORAGE_DISK) {
String qr_filename = (String) unlimitedMap.get("qr_filename");
// 这里不能使用微信返回的流
qrcode_stream = OssUtils.urlToInputSteam(qrcode);
filename = qr_filename;
}
if (null != qrcode) {
data.put("qrcode", qrcode); data.put("qrcode", qrcode);
data.put("download_url", qrcode + "&d=1");
} else if (poster_type == 2) {
// 生成小程序 URL
try {
Map unlimitedMap = wxQrCodeService.genUnlimitedWxQrCode(wap_url, params);
if (unlimitedMap != null) {
qrcode = Convert.toStr(unlimitedMap.get("floder"));
if (!ConfigConstant.FILE_STORAGE_DISK) {
String qr_filename = (String) unlimitedMap.get("qr_filename");
if (StrUtil.isNotBlank(qrcode)) {
// 这里不能使用微信返回的流
qrcode_stream = OssUtils.urlToInputSteam(qrcode);
}
filename = qr_filename != null ? qr_filename : filename;
}
if (StrUtil.isNotBlank(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("download_url", qrcode != null ? qrcode + "&d=1" : "");
} }
data.put("invite_url", wap_url); FileUtil.mkParentDirs(poster_path);
data.put("download_url", qrcode + "&d=1"); File poster_file = FileUtil.file(poster_path);
}
FileUtil.mkParentDirs(poster_path); String qrcode_url = String.format("%s/media/plantform/poster/%s/%s-qrcode.png", static_file_url, poster_type, filename);
File poster_file = FileUtil.file(poster_path); String qrcode_path = String.format("%s/media/plantform/poster/%s/%s-qrcode.png", static_file_path, poster_type, filename);
String qrcode_url = String.format("%s/media/plantform/poster/%s/%s-qrcode.png", static_file_url, poster_type, filename); // todo 暂时写死
String qrcode_path = String.format("%s/media/plantform/poster/%s/%s-qrcode.png", static_file_path, poster_type, filename); String dir = "media/plantform/";
filename = filename + "-qrcode.png";
// todo 暂时写死 // 判断H5与小程序环境
String dir = "media/plantform/"; if (poster_type == 1) {
filename = filename + "-qrcode.png"; BufferedImage image = QrCodeUtil.generate(wap_url, 300, 300);
// 生成二维码
if (!ConfigConstant.FILE_STORAGE_DISK) {
String url = null;
Integer uploadType = accountBaseConfigService.getConfig("upload", 1);
// 判断H5与小程序环境 if (uploadType.equals(1)) {
if (poster_type == 1) { url = ConfigConstant.URL_BASE + "/admin/oss/upload/" + dir + "/" + filename; // 文件本地路径
BufferedImage image = QrCodeUtil.generate(wap_url, 300, 300); } else if (uploadType.equals(2)) {
// 生成二维码 // oss 服务
if (!ConfigConstant.FILE_STORAGE_DISK) { try {
String url = null; Map streamMap = OssUtils.toStreamMap(image);
Integer uploadType = accountBaseConfigService.getConfig("upload", 1); if (streamMap != null) {
InputStream stream = (InputStream) streamMap.get("stream");
if (uploadType.equals(1)) { Long file_size = (Long) streamMap.get("file_size");
url = ConfigConstant.URL_BASE + "/admin/oss/upload/" + dir + "/" + filename; // 文件本地路径 String floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/1/";
} else if (uploadType.equals(2)) { url = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size);
// oss 服务 }
try { } catch (Exception e) {
Map streamMap = OssUtils.toStreamMap(image); logger.error("OSS上传二维码失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
InputStream stream = (InputStream) streamMap.get("stream"); throw new ApiException(I18nUtil._("二维码上传失败"));
Long file_size = (Long) streamMap.get("file_size"); }
String floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/1/"; } else if (uploadType.equals(4)) {
url = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size); try {
} catch (Exception e) { FileUtil.mkParentDirs(qrcode_path);
e.printStackTrace(); qrcode_file = FileUtil.file(qrcode_path);
logger.error("文件上传失败!", e); ImageIO.write(image, "png", qrcode_file);
return null; } catch (IOException e) {
logger.error("生成二维码文件失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成二维码失败!"));
}
try {
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._("二维码上传失败"));
}
} }
} else if (uploadType.equals(4)) {
if (url != null) {
qrcode_stream = OssUtils.urlToInputSteam(url);
data.put("qrcode", url);
}
} 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._("生成二维码失败!"));
} }
url = ossService.uploadObject4OSS(qrcode_file, TENGXUN_DEFAULT_DIR.concat("/").concat(dir).concat("/").concat(filename));
} }
qrcode_stream = OssUtils.urlToInputSteam(url); } else if (poster_type == 2) {
if (StrUtil.isNotBlank(qrcode)) {
qrcode_file = new File(qrcode);
data.put("qrcode", qrcode);
}
}
data.put("qrcode", url); // 生成产品图片
} else { File main_file = null;
if (StrUtil.isNotBlank(main_img)) {
try { try {
FileUtil.mkParentDirs(qrcode_path); main_file = getFile(main_img);
qrcode_file = FileUtil.file(qrcode_path); if (main_file == null || !main_file.exists()) {
ImageIO.write(image, "png", qrcode_file); logger.warn("获取主图文件失败用户ID: {}, 图片URL: {}", user.getId(), main_img);
} catch (IOException e) { 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._("图片不存在!"));
} }
} }
} else if (poster_type == 2) {
qrcode_file = new File(qrcode);
data.put("qrcode", qrcode);
}
// 生成产品图片
File main_file = null;
try {
main_file = getFile(main_img);
} catch (Exception e) {
throw new ApiException(I18nUtil._("图片不存在!"));
}
String plantform_poster_bg = "";
if (StrUtil.isNotBlank(main_price)) {
// 产品海报
plantform_poster_bg = accountBaseConfigService.getConfig("product_poster_bg");
} else {
// 推广海报
plantform_poster_bg = accountBaseConfigService.getConfig("plantform_poster_bg");
}
// 绘制海报图
try {
BufferedImage background = ImageIO.read(OssUtils.urlToInputSteam(plantform_poster_bg));
BufferedImage qrcodeImage = null;
if (!ConfigConstant.FILE_STORAGE_DISK) {
qrcodeImage = ImageIO.read(qrcode_stream);
} else {
qrcodeImage = ImageIO.read(qrcode_file);
}
BufferedImage productImage = ImageIO.read(main_file);
PromotePoster poster = PromotePoster.builder()
.backgroundImage(background)
.qrcodeImage(qrcodeImage)
.productName(poster_name)
.productPrice(main_price)
.build();
String plantform_poster_bg = "";
if (StrUtil.isNotBlank(main_price)) { if (StrUtil.isNotBlank(main_price)) {
// 产品海报 // 产品海报
poster.setProductImage(productImage); plantform_poster_bg = accountBaseConfigService.getConfig("product_poster_bg");
} else { } else {
// 推广海报 // 推广海报
poster.setPlantformImage(productImage); plantform_poster_bg = accountBaseConfigService.getConfig("plantform_poster_bg");
} }
PosterDefaultImpl<PromotePoster> impl = new PosterDefaultImpl<>(); // 绘制海报图
BufferedImage bufferedImage = impl.annotationDrawPoster(poster).draw(null); try {
if (!ConfigConstant.FILE_STORAGE_DISK) { InputStream backgroundStream = OssUtils.urlToInputSteam(plantform_poster_bg);
filename = filename.replace("-qrcode", ""); if (backgroundStream == null) {
logger.error("获取海报背景图失败用户ID: {}, 背景图URL: {}", user.getId(), plantform_poster_bg);
String postUrl = null; throw new ApiException(I18nUtil._("获取背景图失败"));
Integer uploadType = accountBaseConfigService.getConfig("upload", 1);
if (uploadType.equals(1)) {
postUrl = ConfigConstant.URL_BASE + "/admin/oss/upload/" + dir + "/" + filename; // 文件本地路径
} else if (uploadType.equals(2)) {
// oss 服务
try {
Map streamMap = OssUtils.toStreamMap(bufferedImage);
InputStream stream = (InputStream) streamMap.get("stream");
Long file_size = (Long) streamMap.get("file_size");
String floder = null;
if (poster_type == 1) {
floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/1/";
} else if (poster_type == 2) {
floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/2/";
}
postUrl = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size);
} catch (Exception e) {
e.printStackTrace();
logger.error("文件上传失败!", e);
return null;
}
} else if (uploadType.equals(4)) {
try {
ImageIO.write(bufferedImage, "png", poster_file);
} catch (IOException e) {
throw new ApiException(I18nUtil._("生成海报失败!"));
}
postUrl = ossService.uploadObject4OSS(poster_file, TENGXUN_DEFAULT_DIR.concat("/").concat(dir).concat("/").concat(filename));
} }
data.put("poster_url", String.format("%s?rand=%s", postUrl, RandomUtil.randomString(13))); BufferedImage background = ImageIO.read(backgroundStream);
BufferedImage qrcodeImage = null;
} else { if (!ConfigConstant.FILE_STORAGE_DISK) {
ImageIO.write(bufferedImage, "png", poster_file); if (qrcode_stream != null) {
qrcodeImage = ImageIO.read(qrcode_stream);
}
} else {
if (qrcode_file != null && qrcode_file.exists()) {
qrcodeImage = ImageIO.read(qrcode_file);
}
}
BufferedImage productImage = null;
if (main_file != null && main_file.exists()) {
productImage = ImageIO.read(main_file);
}
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 (productImage != null) {
poster.setProductImage(productImage);
}
} else {
// 推广海报
if (productImage != null) {
poster.setPlantformImage(productImage);
}
}
PosterDefaultImpl<PromotePoster> impl = new PosterDefaultImpl<>();
BufferedImage bufferedImage = impl.annotationDrawPoster(poster).draw(null);
if (bufferedImage == null) {
logger.error("绘制海报失败用户ID: {}", user.getId());
throw new ApiException(I18nUtil._("绘制海报失败"));
}
if (!ConfigConstant.FILE_STORAGE_DISK) {
filename = filename.replace("-qrcode", "");
String postUrl = null;
Integer uploadType = accountBaseConfigService.getConfig("upload", 1);
if (uploadType.equals(1)) {
postUrl = ConfigConstant.URL_BASE + "/admin/oss/upload/" + dir + "/" + filename; // 文件本地路径
} else if (uploadType.equals(2)) {
// oss 服务
try {
Map streamMap = OssUtils.toStreamMap(bufferedImage);
if (streamMap != null) {
InputStream stream = (InputStream) streamMap.get("stream");
Long file_size = (Long) streamMap.get("file_size");
String floder = null;
if (poster_type == 1) {
floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/1/";
} else if (poster_type == 2) {
floder = ALIYUN_OSS_DIR_PREFIX.concat("/") + dir + "poster/2/";
}
postUrl = ossService.uploadObject2OSS(null, floder + filename, stream, filename, file_size);
}
} catch (Exception e) {
logger.error("OSS上传海报失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("海报上传失败"));
}
} else if (uploadType.equals(4)) {
try {
ImageIO.write(bufferedImage, "png", poster_file);
} catch (IOException e) {
logger.error("生成海报文件失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成海报失败!"));
}
try {
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)));
}
} else {
ImageIO.write(bufferedImage, "png", poster_file);
}
} catch (Exception e) {
logger.error("生成海报失败用户ID: {}: {}", user.getId(), e.getMessage(), e);
throw new ApiException(I18nUtil._("生成海报失败!"));
}
Float plantform_fx_cps_rate_1 = accountBaseConfigService.getConfig("plantform_fx_cps_rate_1", 0f);
Float plantform_fx_cps_rate_2 = accountBaseConfigService.getConfig("plantform_fx_cps_rate_2", 0f);
Float plantform_fx_cps_rate_3 = accountBaseConfigService.getConfig("plantform_fx_cps_rate_3", 0f);
data.put("plantform_fx_cps_rate_1", plantform_fx_cps_rate_1);
data.put("plantform_fx_cps_rate_2", plantform_fx_cps_rate_2);
data.put("plantform_fx_cps_rate_3", plantform_fx_cps_rate_3);
try {
redisService.set(cacheKey, data);
} catch (Exception e) {
logger.warn("海报数据缓存失败用户ID: {}: {}", user.getId(), e.getMessage());
}
return CommonResult.success(data);
} finally {
// 确保资源被正确关闭
if (qrcode_stream != null) {
try {
qrcode_stream.close();
} catch (IOException e) {
logger.warn("关闭二维码输入流失败用户ID: {}: {}", user.getId(), e.getMessage());
}
} }
} catch (Exception e) {
throw new ApiException(I18nUtil._("生成海报失败!"));
} }
Float plantform_fx_cps_rate_1 = accountBaseConfigService.getConfig("plantform_fx_cps_rate_1", 0f);
Float plantform_fx_cps_rate_2 = accountBaseConfigService.getConfig("plantform_fx_cps_rate_2", 0f);
Float plantform_fx_cps_rate_3 = accountBaseConfigService.getConfig("plantform_fx_cps_rate_3", 0f);
data.put("plantform_fx_cps_rate_1", plantform_fx_cps_rate_1);
data.put("plantform_fx_cps_rate_2", plantform_fx_cps_rate_2);
data.put("plantform_fx_cps_rate_3", plantform_fx_cps_rate_3);
redisService.set(cacheKey, data);
return CommonResult.success(data);
} }
/** /**

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)) {