diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/exception/ErrorCodes.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/exception/ErrorCodes.java index bd4b94a99..b8889a508 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/exception/ErrorCodes.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/exception/ErrorCodes.java @@ -345,6 +345,12 @@ public interface ErrorCodes { /** 钱包类型id不能为空 */ String WALLET_TYPE_ID_EMPTY = "wallet.type.id.empty"; + /** 饭卡钱包(展示名) */ + String WALLET_TYPE_NAME_EAT = "wallet.type.name.eat"; + + /** 消费钱包(展示名) */ + String WALLET_TYPE_NAME_PAY = "wallet.type.name.pay"; + /** 备注不能为空 */ String WALLET_REMARK_EMPTY = "wallet.remark.empty"; diff --git a/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_en.properties b/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_en.properties index 50ae65a20..9f07d6bfd 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_en.properties +++ b/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_en.properties @@ -98,6 +98,8 @@ delivery.mch.schedule.title=Scheduled delivery reminder delivery.mch.schedule.body=A scheduled delivery is entering prep time. Please check it. delivery.rider.building.bound=Buildings under this unit already have riders. Unbind first. wallet.type.id.empty=Wallet type ID is required +wallet.type.name.eat=Meal Card Wallet +wallet.type.name.pay=Spending Wallet wallet.remark.empty=Remark is required wallet.not.found=Wallet not found wallet.freeze.dup=Request already submitted diff --git a/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_CN.properties b/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_CN.properties index 9f1c975f7..f6b8a84c2 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_CN.properties +++ b/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_CN.properties @@ -98,6 +98,8 @@ delivery.mch.schedule.title=预约外送提醒 delivery.mch.schedule.body=您有一单预约外送即将进入备餐时段,请及时查看 delivery.rider.building.bound=该单位下楼栋已绑定骑手,请先解绑 wallet.type.id.empty=钱包类型id不能为空 +wallet.type.name.eat=饭卡钱包 +wallet.type.name.pay=消费钱包 wallet.remark.empty=备注不能为空 wallet.not.found=钱包不存在 wallet.freeze.dup=已提交申请,请勿重复提交 diff --git a/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_HK.properties b/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_HK.properties index 878cbb305..0ff970060 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_HK.properties +++ b/pjcloud-common/pjcloud-common-core/src/main/resources/i18n/messages_zh_HK.properties @@ -98,6 +98,8 @@ delivery.mch.schedule.title=預約外送提醒 delivery.mch.schedule.body=您有一單預約外送即將進入備餐時段,請及時查看 delivery.rider.building.bound=該單位下樓棟已綁定騎手,請先解綁 wallet.type.id.empty=錢包類型id不能為空 +wallet.type.name.eat=飯卡錢包 +wallet.type.name.pay=消費錢包 wallet.remark.empty=備註不能為空 wallet.not.found=錢包不存在 wallet.freeze.dup=已提交申請,請勿重複提交 diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java index d8ac80645..3d1d13061 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java @@ -1,7 +1,10 @@ package com.bsd.pjcloud.wallet.api.utils; import cn.hutool.core.util.ObjectUtil; +import com.bsd.pjcloud.common.core.exception.ErrorCodes; import com.bsd.pjcloud.common.core.util.CollectionUtils; +import com.bsd.pjcloud.common.core.util.MsgUtils; +import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; @@ -35,13 +38,42 @@ public class WalletDataUtil { public T convertWalletType(T v, WalletTypeEntity vo) { if (ObjectUtil.isEmpty(vo)) return v; v.setWalletTypeId(vo.getId()); - v.setWalletTypeName(vo.getName()); v.setWalletTypeUniqueCode(vo.getUniqueCode()); + v.setWalletTypeName(resolveWalletTypeName(vo.getUniqueCode(), vo.getName())); v.setWalletTypeIcon(vo.getIcon()); v.setIsRule(vo.getIsRule()); return v; } + /** + * 按钱包类型唯一编码返回当前语言的展示名;未知类型回退库表名称。 + */ + public String resolveWalletTypeName(String uniqueCode, String fallbackName) { + WalletTypeEnum type = WalletTypeEnum.valueOfByCode(uniqueCode); + if (type == WalletTypeEnum.EAT) { + return MsgUtils.getMessage(ErrorCodes.WALLET_TYPE_NAME_EAT); + } + if (type == WalletTypeEnum.PAY) { + return MsgUtils.getMessage(ErrorCodes.WALLET_TYPE_NAME_PAY); + } + return fallbackName; + } + + /** + * 对已带 uniqueCode 的列表原地刷新 walletTypeName(覆盖 SQL join 的中文名)。 + */ + public void localizeWalletTypeNames(List list) { + if (ObjectUtil.isEmpty(list)) { + return; + } + for (T item : list) { + if (item == null) { + continue; + } + item.setWalletTypeName(resolveWalletTypeName(item.getWalletTypeUniqueCode(), item.getWalletTypeName())); + } + } + public List convertWalletList(List list, Map map) { return CollectionUtils.convertList(list, v -> convertWallet(v, map.get(v.getWalletId()))); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index 630730a4c..2df6ac4c3 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java @@ -683,6 +683,8 @@ public class WalletManageServiceImpl extends ServiceImpl