This commit is contained in:
hy001 2026-06-25 22:52:50 +08:00
parent 18b49c9db4
commit 9de0155d7e

View File

@ -69,33 +69,38 @@ public class PayWebApplicationCommodityV2QueryExe {
.toPayApplicationCO(payApplicationService.getById(cmd.getApplicationId()));
ResponseAssert.notNull(CommonErrorCode.NOT_FOUND_RECORD_INFO, application);
List<PayApplicationCommodity> payApplicationCommodities = getPayApplicationCommodities(cmd);
if (CollectionUtils.isEmpty(payApplicationCommodities)) {
return new ApplicationCommodityCardV2CO()
.setApplication(application);
}
// 所有支持的渠道
List<PayCountryChannelDetails> countryChannelDetails = payCountryChannelDetailsService
.listChannelCode(cmd.getPayCountryId());
List<PayApplicationCommodity> payApplicationCommodities = getPayApplicationCommodities(cmd);
if (CollectionUtils.isEmpty(payApplicationCommodities)) {
return new ApplicationCommodityCardV2CO()
.setApplication(application);
}
// LIKEI/Yumi H5 支付方式由本地 JSON 控制商品接口只负责按后台商品配置返回商品
// 如果这里继续依赖支付国家渠道详情JSON 已配置但后端渠道未上架时会把商品误过滤为空
List<PayApplicationCommodityCO> commodity = toCommodityCO(payCountry,
payApplicationCommodities);
if (CollectionUtils.isEmpty(commodity)) {
return new ApplicationCommodityCardV2CO()
.setApplication(application);
}
if (isJsonControlledPayment(cmd)) {
return new ApplicationCommodityCardV2CO()
.setApplication(application)
.setCommodity(commodity);
}
// 所有支持的渠道
List<PayCountryChannelDetails> countryChannelDetails = payCountryChannelDetailsService
.listChannelCode(cmd.getPayCountryId());
if (CollectionUtils.isEmpty(countryChannelDetails)) {
return new ApplicationCommodityCardV2CO()
.setApplication(application);
}
// 商品
List<PayApplicationCommodityCO> commodity = toCommodityCO(payCountry,
payApplicationCommodities);
if (CollectionUtils.isEmpty(commodity)) {
return new ApplicationCommodityCardV2CO()
.setApplication(application);
}
// 过滤渠道限额范围
countryChannelDetails = filterCountryChannelLimit(countryChannelDetails, commodity);
// 过滤渠道限额范围
countryChannelDetails = filterCountryChannelLimit(countryChannelDetails, commodity);
if (CollectionUtils.isEmpty(countryChannelDetails)) {
return new ApplicationCommodityCardV2CO()
@ -117,8 +122,8 @@ public class PayWebApplicationCommodityV2QueryExe {
.setChannels(getPayChannels(payChannels, countryChannelDetails));
}
private List<PayApplicationCommodity> getPayApplicationCommodities(
PayWebApplicationCommodityCmd cmd) {
private List<PayApplicationCommodity> getPayApplicationCommodities(
PayWebApplicationCommodityCmd cmd) {
// Yumi/LIKEI H5 已经先按用户资料拿到国家商品应按国家查regionId 只保留给旧的区域商品链路.
if (Objects.equals(cmd.requireReqSysOriginChildEnum(), SysOriginPlatformEnum.YOLO)
@ -133,12 +138,16 @@ public class PayWebApplicationCommodityV2QueryExe {
cmd.getType(), cmd.getRegionId());
}
return payApplicationCommodityService
.listCommodityByApplicationCountry(cmd.getApplicationId(), cmd.getPayCountryId(),
cmd.getType(), null);
}
private List<PayCountryChannelDetails> filterCountryChannelLimit(
return payApplicationCommodityService
.listCommodityByApplicationCountry(cmd.getApplicationId(), cmd.getPayCountryId(),
cmd.getType(), null);
}
private boolean isJsonControlledPayment(PayWebApplicationCommodityCmd cmd) {
return Objects.equals(cmd.requireReqSysOriginChildEnum(), SysOriginPlatformEnum.LIKEI);
}
private List<PayCountryChannelDetails> filterCountryChannelLimit(
List<PayCountryChannelDetails> countryChannelDetails,
List<PayApplicationCommodityCO> commodity) {
Map<Long, PayCountryChannelDetails> countryChannelMaps = Maps.newHashMap();