فهرست منبع

feat:邮件解析-修改匹配基金逻辑

mozuwen 7 ماه پیش
والد
کامیت
1874ebc705

+ 2 - 2
service-base/src/main/resources/mapper/FundAliasMapper.xml

@@ -37,14 +37,14 @@
         select target_fund_id, target_fund_name, target_register_number
         from PPW_EMAIL.fund_alias
         where isvalid = 1
-          and source_fund_name = #{fundName} and source_register_number is null
+          and source_fund_name = #{fundName}
     </select>
 
     <select id="queryFundByRegisterNumber" resultMap="BaseResultMap">
         select target_fund_id, target_fund_name, target_register_number
         from PPW_EMAIL.fund_alias
         where isvalid = 1
-          and source_register_number = #{registerNumber} and source_fund_name is null
+          and source_register_number = #{registerNumber}
     </select>
 
     <select id="searchFundAlias" resultMap="BaseResultMap"

+ 2 - 2
service-base/src/main/resources/mapper/FundInfoMapper.xml

@@ -94,7 +94,7 @@
                register_number as registerNumber
         from PPW_EMAIL.pvn_fund_info
         where isvalid = 1
-          and fund_name = #{fundName} and register_number is null
+          and fund_name = #{fundName}
     </select>
 
     <select id="queryFundByRegisterNumber" resultType="com.simuwang.base.pojo.dos.FundInfoDO">
@@ -103,7 +103,7 @@
                register_number as registerNumber
         from PPW_EMAIL.pvn_fund_info
         where isvalid = 1
-          and register_number = #{registerNumber} and fund_name is null
+          and register_number = #{registerNumber}
     </select>
     <select id="countFundInfoByKeyword" resultType="java.lang.Long"
             parameterType="com.simuwang.base.pojo.dto.query.FundInputPageQuery">

+ 18 - 16
service-daq/src/main/java/com/simuwang/daq/service/FundService.java

@@ -43,33 +43,35 @@ public class FundService {
      * @return 匹配上的基金信息(基金id, 基金名称, 备案编码)
      */
     public List<FundInfoDO> getFundInfoByNamesAndCode(String fundName, String registerNumber) {
-        // 1.基金名称 + 备案编码 一起进行匹配
-        List<FundInfoDO> fundInfoDOList = fundInfoMapper.queryFundByNameAndRegisterNumber(fundName, registerNumber);
-        if (CollUtil.isNotEmpty(fundInfoDOList)) {
-            return fundInfoDOList;
-        }
-        List<FundAliasDO> fundAliasDOList = fundAliasMapper.queryFundByNameAndRegisterNumber(fundName, registerNumber);
-        if (CollUtil.isNotEmpty(fundAliasDOList)) {
-            return fundAliasDOList.stream().map(this::convertToFundInfoDO).filter(Objects::nonNull).collect(Collectors.toList());
+        // 基金名称 + 备案编码
+        if (StrUtil.isNotBlank(registerNumber) && StrUtil.isNotBlank(fundName)) {
+            List<FundInfoDO> fundInfoDOList = fundInfoMapper.queryFundByNameAndRegisterNumber(fundName, registerNumber);
+            if (CollUtil.isNotEmpty(fundInfoDOList)) {
+                return fundInfoDOList;
+            }
+            List<FundAliasDO> fundAliasDOList = fundAliasMapper.queryFundByNameAndRegisterNumber(fundName, registerNumber);
+            if (CollUtil.isNotEmpty(fundAliasDOList)) {
+                return fundAliasDOList.stream().map(this::convertToFundInfoDO).filter(Objects::nonNull).collect(Collectors.toList());
+            }
         }
-        // 2.基金名称匹配
-        if (StrUtil.isNotBlank(fundName) && StrUtil.isBlank(registerNumber)) {
-            List<FundInfoDO> fundInfos = fundInfoMapper.queryFundByName(fundName);
+        // 备案编码匹配
+        if (StrUtil.isNotBlank(registerNumber)) {
+            List<FundInfoDO> fundInfos = fundInfoMapper.queryFundByRegisterNumber(registerNumber);
             if (CollUtil.isNotEmpty(fundInfos)) {
                 return fundInfos;
             }
-            List<FundAliasDO> fundAliasList = fundAliasMapper.queryFundByName(fundName);
+            List<FundAliasDO> fundAliasList = fundAliasMapper.queryFundByRegisterNumber(registerNumber);
             if (CollUtil.isNotEmpty(fundAliasList)) {
                 return fundAliasList.stream().map(this::convertToFundInfoDO).filter(Objects::nonNull).collect(Collectors.toList());
             }
         }
-        // 3.备案编码匹配
-        if (StrUtil.isBlank(fundName) && StrUtil.isNotBlank(registerNumber)) {
-            List<FundInfoDO> fundInfos = fundInfoMapper.queryFundByRegisterNumber(registerNumber);
+        // 基金名称匹配
+        if (StrUtil.isNotBlank(fundName)) {
+            List<FundInfoDO> fundInfos = fundInfoMapper.queryFundByName(fundName);
             if (CollUtil.isNotEmpty(fundInfos)) {
                 return fundInfos;
             }
-            List<FundAliasDO> fundAliasList = fundAliasMapper.queryFundByRegisterNumber(registerNumber);
+            List<FundAliasDO> fundAliasList = fundAliasMapper.queryFundByName(fundName);
             if (CollUtil.isNotEmpty(fundAliasList)) {
                 return fundAliasList.stream().map(this::convertToFundInfoDO).filter(Objects::nonNull).collect(Collectors.toList());
             }