From 2225e74650acf4ce092aa384c54fbb341f5b44f0 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Sun, 8 Nov 2026 00:01:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=85=92=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SmHotelMidServiceImpl.java | 4 +- .../service/impl/SmHotelOrderServiceImpl.java | 127 +++++++----------- 2 files changed, 51 insertions(+), 80 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelMidServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelMidServiceImpl.java index b8a99801..f618e892 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelMidServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelMidServiceImpl.java @@ -1736,8 +1736,8 @@ public class SmHotelMidServiceImpl implements SmHotelMidService { String productCode = e.getKey(); List> ranges = mergeDailyRanges(rows); for (List> batch : CollUtil.split(ranges, 50)) { - Map body = new LinkedHashMap<>(); - body.put("extHotelId", extHotelId); + Map body = new LinkedHashMap<>(); + body.put("extHotelId", extHotelId); body.put("extApartmentId", roomCode); body.put("extProductId", productCode); body.put("list", batch); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelOrderServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelOrderServiceImpl.java index 8e9c5fde..6d553bdc 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelOrderServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmHotelOrderServiceImpl.java @@ -3256,9 +3256,9 @@ public class SmHotelOrderServiceImpl extends ServiceImpl - * 字段名按官方文档:linkFirstName/linkMobile、guestInfoList、bookerPersonFirstName 等; + * 姓名用整字段 {@code linkName} / {@code bookerPersonName},不要拆 Last/First。 * dailyPriceList 必须覆盖入住夜(checkOut-checkIn),缺夜用产品底价补齐。 */ private com.alibaba.fastjson.JSONObject buildUpstreamOrderBody(SmHotelOrderEntity order, @@ -3274,11 +3274,17 @@ public class SmHotelOrderServiceImpl extends ServiceImpl contactMap) { + linkEmail = str(contactMap.get("email")); + } + if (StrUtil.isNotBlank(linkEmail)) { + req.put("linkEmail", linkEmail); + } boolean isGroup = resolveOrderIsGroup(downstreamBody); String guarantee = StrUtil.blankToDefault(str(downstreamBody.get("guaranteeMode")), @@ -3291,50 +3297,19 @@ public class SmHotelOrderServiceImpl extends ServiceImpl body) { Object v = body == null ? null : body.get("isGroup"); if (v instanceof Boolean) { @@ -3360,39 +3364,6 @@ public class SmHotelOrderServiceImpl extends ServiceImpl - *
  • 中文:首字为姓,其余为名(复姓未特殊处理;单字名时名为 "/")
  • - *
  • 英文空格分隔:取末段为姓、首段为名
  • - *
  • 英文/拼音单段:姓、名都用整段(勿填 "/",商游 order/add 易直接 500)
  • - * - */ - private static NameParts splitPersonName(String raw) { - String name = StrUtil.trim(raw); - if (StrUtil.isBlank(name)) { - return new NameParts("测", "试"); - } - // 去掉中间空格后的纯中文 - String compact = name.replace(" ", "").replace(" ", ""); - if (compact.chars().allMatch(ch -> Character.UnicodeScript.of(ch) == Character.UnicodeScript.HAN)) { - if (compact.length() == 1) { - return new NameParts(compact, "/"); - } - return new NameParts(compact.substring(0, 1), compact.substring(1)); - } - // 英文:含空格则拆成两段(名 姓 → first last;若多段取首为名、末为姓) - String[] parts = name.trim().split("\\s+"); - if (parts.length >= 2) { - return new NameParts(parts[parts.length - 1], parts[0]); - } - // 拼音/英文单段:避免 firstName="/" 被上游拒 - return new NameParts(name, name); - } - - private record NameParts(String lastName, String firstName) { - } - /** * 按住店夜补齐 dailyPriceList;本地日历缺夜则用产品底价兜底。 */