From e5c6b415449d0b7a5e9027dba009e46543004dc0 Mon Sep 17 00:00:00 2001
From: shinnosuke <tantao@1hoper.com>
Date: 星期四, 06 八月 2026 16:24:24 +0800
Subject: [PATCH] feat(admin): 新增协议设置和商户进件详情功能
---
talent-card-server/src/main/java/com/talentcard/server/business/order/OrderService.java | 23 ++++++++++++++++++-----
1 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/talent-card-server/src/main/java/com/talentcard/server/business/order/OrderService.java b/talent-card-server/src/main/java/com/talentcard/server/business/order/OrderService.java
index ac62b49..05c682f 100644
--- a/talent-card-server/src/main/java/com/talentcard/server/business/order/OrderService.java
+++ b/talent-card-server/src/main/java/com/talentcard/server/business/order/OrderService.java
@@ -110,15 +110,20 @@
public Map<String, Object> detail(String orderNo) {
List<Map<String, Object>> rows = query("""
select o.id, o.order_no, o.talent_id, tu.name as talent_name, tu.mobile as talent_mobile,
- o.card_id, tc.card_no, tc.card_level, o.benefit_id, b.benefit_name,
+ o.card_id, tc.card_no, coalesce(tc.card_level, tu.talent_level) as talent_level, o.benefit_id, b.benefit_name,
+ o.product_id, o.product_name_snapshot, o.product_cover_url_snapshot,
+ p.product_name, p.cover_url as product_cover_url,
o.merchant_id, m.merchant_name, m.merchant_type, m.contact_mobile,
m.cover_url as merchant_cover_url, o.store_id, o.order_type,
- o.order_amount, o.subsidy_amount, o.pay_amount, o.order_status,
+ o.order_amount, o.subsidy_amount, o.base_pay_amount, o.pay_amount, o.coupon_id, o.coupon_amount,
+ mc.coupon_name, o.order_status,
o.verify_status, o.created_at, o.updated_at
from benefit_order o
left join talent_user tu on tu.id = o.talent_id
left join talent_card tc on tc.id = o.card_id
left join benefit b on b.id = o.benefit_id
+ left join merchant_product p on p.id = o.product_id and p.deleted = 0
+ left join merchant_coupon mc on mc.id = o.coupon_id and mc.deleted = 0
left join merchant m on m.id = o.merchant_id
where o.deleted = 0 and o.order_no = ?
""", orderNo);
@@ -133,10 +138,13 @@
order by id desc limit 1
""", detail.get("id"));
detail.put("verifyTime", verificationRows.isEmpty() ? null : verificationRows.get(0).get("verifyTime"));
+ Object itemId = detail.get("productId") == null ? detail.get("benefitId") : detail.get("productId");
+ Object itemName = firstNonNull(detail.get("productNameSnapshot"), detail.get("productName"), detail.get("benefitName"));
+ Object itemCover = firstNonNull(detail.get("productCoverUrlSnapshot"), detail.get("productCoverUrl"), detail.get("merchantCoverUrl"));
detail.put("items", List.of(Map.of(
- "id", detail.get("benefitId") == null ? "-" : String.valueOf(detail.get("benefitId")),
- "name", detail.get("benefitName") == null ? "-" : detail.get("benefitName"),
- "coverUrl", detail.get("merchantCoverUrl") == null ? "" : detail.get("merchantCoverUrl"),
+ "id", itemId == null ? "-" : String.valueOf(itemId),
+ "name", itemName == null ? "-" : itemName,
+ "coverUrl", itemCover == null ? "" : itemCover,
"amount", detail.get("orderAmount") == null ? 0 : detail.get("orderAmount")
)));
detail.put("payments", query("""
@@ -155,6 +163,11 @@
return detail;
}
+ private Object firstNonNull(Object... values) {
+ for (Object value : values) if (value != null && !String.valueOf(value).isBlank()) return value;
+ return null;
+ }
+
@Transactional(readOnly = true)
public PageResult<Map<String, Object>> refunds(
String orderType,
--
Gitblit v1.7.1