From d2d27bea854a5d0b48869b8bd87e6202c28f4cd2 Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期四, 17 九月 2026 16:03:26 +0800
Subject: [PATCH] 更新....
---
talent-card-server/src/main/java/com/talentcard/server/business/portal/ChildrenEntrustmentPortalService.java | 24 ++++++++++++++++++++++--
1 files changed, 22 insertions(+), 2 deletions(-)
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/portal/ChildrenEntrustmentPortalService.java b/talent-card-server/src/main/java/com/talentcard/server/business/portal/ChildrenEntrustmentPortalService.java
index 6601611..8b83889 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/portal/ChildrenEntrustmentPortalService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/portal/ChildrenEntrustmentPortalService.java
@@ -32,7 +32,10 @@
result.put("serviceId", serviceId);
result.put("title", benefit.get("title"));
result.put("applicableCards", text(matchedRight.get("tag"), ""));
- result.put("heroImage", benefit.get("heroImage"));
+ // 详情页图优先用该商家自己配置的轮播图,没配时回落商家封面图,最后才是服务权益里的全局图。
+ result.put("heroImage", merchantHeroImage(serviceId,
+ text(merchant.get("coverUrl"), text(benefit.get("heroImage"), ""))));
+ result.put("heroImages", merchantHeroImages(serviceId));
result.put("rightsText", text(matchedRight.get("detail"), text(benefit.get("rightsText"), "暂无使用说明")));
result.put("available", available);
result.put("unavailableReason", available ? "" : text(benefit.get("unavailableReason"), "该权益暂未开放"));
@@ -61,6 +64,23 @@
school.put("detailAvailable", number(row.get("detailAvailable")) == 1);
return school;
}).toList();
+ }
+
+ private List<String> merchantHeroImages(Long merchantId) {
+ return query("""
+ select image_url
+ from merchant_hero_image
+ where merchant_id = ? and deleted = 0 and enabled = 1
+ order by sort_no asc, id asc
+ """, merchantId).stream()
+ .map(row -> text(row.get("imageUrl"), ""))
+ .filter(url -> !url.isBlank())
+ .toList();
+ }
+
+ private String merchantHeroImage(Long merchantId, String fallback) {
+ List<String> images = merchantHeroImages(merchantId);
+ return images.isEmpty() ? fallback : images.get(0);
}
private List<Map<String, Object>> configuredSchools(Object value) {
@@ -150,7 +170,7 @@
private Map<String, Object> approvalService(Long serviceId) {
if (serviceId == null || serviceId <= 0) throw new BusinessException(ErrorCode.BAD_REQUEST, "学生托付服务信息不能为空");
List<Map<String, Object>> rows = query("""
- select m.id, m.merchant_rights_config, m.usage_instructions
+ select m.id, m.cover_url, m.merchant_rights_config, m.usage_instructions
from merchant m
where m.id = ? and m.deleted = 0 and m.merchant_type_code = 'children'
""", serviceId);
--
Gitblit v1.7.1