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