From eecb1ce359254bcc038ab6b5f32be48b839664d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Wed, 16 Sep 2026 14:14:03 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E6=96=B0=E5=A2=9EBFI=E6=B1=87?= =?UTF-8?q?=E7=8E=87=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E5=B9=B6=E5=AE=8C?= =?UTF-8?q?=E5=96=84=E7=BB=93=E7=AE=97=E5=8D=95=E5=90=88=E5=90=8C=E5=B8=81?= =?UTF-8?q?=E7=A7=8D=E4=BC=A0=E9=80=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增BfiExchangeRateController: 提供/bfi/exchange-rate接口按币种和日期查询BFI汇率 - blade-transport/pom.xml: 添加blade-bfi-api依赖 - blade-transport/application.yml: 新建配置文件加载Nacos公共配置 - blade-transport/application-dev.yml: 简化配置,数据源等已在Nacos统一管理 - PreSettlementServiceImpl: contractOptions返回中增加settlementCurrency字段 --- blade-service/blade-transport/pom.xml | 4 + .../controller/BfiExchangeRateController.java | 76 +++++++++++++++++++ .../impl/PreSettlementServiceImpl.java | 1 + .../src/main/resources/application-dev.yml | 12 +-- .../src/main/resources/application.yml | 29 +++++++ 5 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 blade-service/blade-transport/src/main/java/org/springblade/transport/controller/BfiExchangeRateController.java create mode 100644 blade-service/blade-transport/src/main/resources/application.yml diff --git a/blade-service/blade-transport/pom.xml b/blade-service/blade-transport/pom.xml index 852de9a7..1a69b04b 100644 --- a/blade-service/blade-transport/pom.xml +++ b/blade-service/blade-transport/pom.xml @@ -39,6 +39,10 @@ org.springblade blade-system-api + + org.springblade + blade-bfi-api + org.springframework.boot spring-boot-starter-amqp diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/BfiExchangeRateController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/BfiExchangeRateController.java new file mode 100644 index 00000000..ebf87635 --- /dev/null +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/BfiExchangeRateController.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.transport.controller; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.thirdparty.bfi.pojo.vo.BfiExchangeRateVO; +import org.springblade.thirdparty.bfi.service.IBfiService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.time.LocalDate; +import java.util.List; + +/** + * 业财融合(BFI)汇率查询控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping("/bfi") +@Tag(name = "BFI汇率", description = "业财融合汇率查询接口") +public class BfiExchangeRateController extends BladeController { + + private final IBfiService bfiService; + + @GetMapping("/exchange-rate") + @Operation(summary = "BFI汇率查询", description = "根据结算币种编码和汇率日期查询BFI汇率") + public R getBfiExchangeRate( + @RequestParam String currencyCode, + @RequestParam(required = false) String effectdate) { + LocalDate date = StringUtil.isBlank(effectdate) ? LocalDate.now() : LocalDate.parse(effectdate); + List rates = bfiService.queryExchangeRate(date, date); + if (rates == null || rates.isEmpty()) { + return R.fail("未查询到该日期的BFI汇率数据"); + } + BfiExchangeRateVO matched = rates.stream() + .filter(r -> currencyCode.equalsIgnoreCase(r.getOrgcurNumber())) + .findFirst() + .orElse(null); + if (matched == null) { + return R.fail("未查询到币种 " + currencyCode + " 的汇率数据"); + } + return R.data(matched); + } +} diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java index 566cb67b..3f788052 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PreSettlementServiceImpl.java @@ -236,6 +236,7 @@ public class PreSettlementServiceImpl extends BaseServiceImpl