Quellcode durchsuchen

fix: 解析详情查询调整

chenjianhua vor 7 Monaten
Ursprung
Commit
ba2195e2c1

+ 6 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailFundAssetDO.java

@@ -98,6 +98,10 @@ public class EmailFundAssetDO {
 
     private String emailId;
 
+    private String targetFundName;
+
+    private String targetFundId;
+
     public EmailFundAssetVO toVo() {
         EmailFundAssetVO vo = new EmailFundAssetVO();
         vo.setId(this.id);
@@ -112,6 +116,8 @@ public class EmailFundAssetDO {
         vo.setAssetShare(this.assetShare);
         vo.setEmailTitle(this.emailTitle);
         vo.setEmailId(this.emailId);
+        vo.setTargetFundName(this.targetFundName);
+        vo.setTargetFundId(this.targetFundId);
         return vo;
     }
 }

+ 18 - 1
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailFundNavDO.java

@@ -90,11 +90,26 @@ public class EmailFundNavDO {
     @TableField(value = "updatetime")
     private Date updateTime;
 
+    /**
+     * 邮件标题
+     */
     private String emailTitle;
 
-
+    /**
+     * 邮件ID
+     */
     private String emailId;
 
+    /**
+     * 匹配名称
+     */
+    private String targetFundName;
+
+    /**
+     * 匹配基金ID
+     */
+    private String targetFundId;
+
     public EmailFundNavVO toVo() {
         EmailFundNavVO vo = new EmailFundNavVO();
         vo.setId(this.id);
@@ -107,6 +122,8 @@ public class EmailFundNavDO {
         vo.setCumulativeNavWithdrawal(this.cumulativeNavWithdrawal);
         vo.setNav(this.nav);
         vo.setEmailId(this.emailId);
+        vo.setTargetFundName(this.targetFundName);
+        vo.setTargetFundId(this.targetFundId);
         vo.setIsStored(this.isStored);
         vo.setExceptionStatus(this.exceptionStatus);
         vo.setUpdateTime(DateUtils.format(this.updateTime, DateUtils.YYYY_MM_DD_HH_MM_SS));

+ 22 - 1
service-base/src/main/resources/mapper/EmailFundAssetMapper.xml

@@ -19,6 +19,8 @@
         <result column="updatetime" property="updateTime"/>
         <result column="email_title" property="emailTitle"/>
         <result column="email_id" property="emailId"/>
+        <result column="target_fund_name" property="targetFundName"/>
+        <result column="target_fund_id" property="targetFundId"/>
     </resultMap>
 
     <insert id="batchInsert" parameterType="com.simuwang.base.pojo.dos.EmailFundAssetDO">
@@ -49,6 +51,8 @@
         select distinct asset.id,
                         asset.fund_id,
                         asset.fund_name,
+                        info.fund_id as target_fund_id,
+                        info.fund_name as target_fund_name,
                         asset.register_number,
                         asset.price_date,
                         asset.asset_net,
@@ -63,6 +67,8 @@
         on asset.file_id = file.id
         join PPW_EMAIL.email_parse_info parse
         on file.email_id = parse.id
+        left join PPW_EMAIL.pvn_fund_info info
+        on asset.fund_id=info.fund_id and info.isvalid=1
         where asset.isvalid=1 and file.isvalid=1 and parse.isvalid=1
         <if test="fundName != null and fundName !=''">
             and asset.fund_name like concat('%',#{fundName},'%')
@@ -100,12 +106,27 @@
     <select id="countAssetDetail" resultType="java.lang.Long"
             parameterType="com.simuwang.base.pojo.dto.query.ParseDetailPageQuery">
         select count(1) from (
-        select distinct asset.id
+        select distinct asset.id,
+            asset.fund_id,
+            asset.fund_name,
+            info.fund_id as target_fund_id,
+            info.fund_name as target_fund_name,
+            asset.register_number,
+            asset.price_date,
+            asset.asset_net,
+            asset.asset_share,
+            asset.is_stored,
+            asset.exception_status,
+            asset.updatetime,
+            parse.email_title,
+            parse.id as email_id
         from PPW_EMAIL.email_fund_asset asset
         join PPW_EMAIL.email_file_info file
         on asset.file_id = file.id
         join PPW_EMAIL.email_parse_info parse
         on file.email_id = parse.id
+        left join PPW_EMAIL.pvn_fund_info info
+        on asset.fund_id=info.fund_id and info.isvalid=1
         where asset.isvalid=1 and file.isvalid=1 and parse.isvalid=1
         <if test="fundName != null and fundName !=''">
             and asset.fund_name like concat('%',#{fundName},'%')

+ 10 - 0
service-base/src/main/resources/mapper/EmailFundNavMapper.xml

@@ -18,6 +18,8 @@
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
         <result column="email_title" property="emailTitle"/>
+        <result column="target_fund_name" property="targetFundName"/>
+        <result column="target_fund_id" property="targetFundId"/>
     </resultMap>
 
     <insert id="batchInsert" parameterType="com.simuwang.base.pojo.dos.EmailFundNavDO">
@@ -51,6 +53,8 @@
         SELECT distinct nav.id,nav.file_id,
             nav.fund_id,
             nav.fund_name,
+            info.fund_id as target_fund_id,
+            info.fund_name as target_fund_name,
             nav.register_number,
             nav.price_date,
             nav.nav,
@@ -66,6 +70,8 @@
                 on nav.file_id = file.id
             join PPW_EMAIL.email_parse_info parse
                 on file.email_id = parse.id
+            left join PPW_EMAIL.pvn_fund_info info
+                on nav.fund_id=info.fund_id and info.isvalid=1
         WHERE nav.isvalid = 1  and file.isvalid=1 and parse.isvalid=1
         <if test="fundName != null and fundName !=''">
             and nav.fund_name like concat('%',#{fundName},'%')
@@ -106,6 +112,8 @@
             SELECT distinct nav.id,nav.file_id,
             nav.fund_id,
             nav.fund_name,
+            info.fund_id as target_fund_id,
+            info.fund_name as target_fund_name,
             nav.register_number,
             nav.price_date,
             nav.nav,
@@ -119,6 +127,8 @@
         on nav.file_id = file.id
         join PPW_EMAIL.email_parse_info parse
         on file.email_id = parse.id
+        left join PPW_EMAIL.pvn_fund_info info
+        on nav.fund_id=info.fund_id and info.isvalid=1
         WHERE nav.isvalid = 1  and file.isvalid=1 and parse.isvalid=1
         <if test="fundName != null and fundName !=''">
             and nav.fund_name like concat('%',#{fundName},'%')

+ 0 - 19
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailDetailServiceImpl.java

@@ -30,13 +30,8 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
     private EmailFundNavMapper emailFundNavMapper;
 
     @Autowired
-    private FundInfoMapper fundInfoMapper;
-
-    @Autowired
     private EmailFundAssetMapper emailFundAssetMapper;
 
-    @Autowired
-    private EmailParseInfoMapper emailParseInfoMapper;
     @Override
     public MybatisPage<EmailFundNavVO> searchNavDetail(ParseDetailPageQuery parseDetailPageQuery) {
         if(StringUtil.isNotEmpty(parseDetailPageQuery.getUpdateEndDate())){
@@ -44,13 +39,6 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
         }
         List<EmailFundNavDO> dataList = emailFundNavMapper.searchNavDetail(parseDetailPageQuery);
         List<EmailFundNavVO> voList = dataList.stream().map(EmailFundNavDO::toVo).collect(Collectors.toList());
-        for(EmailFundNavVO vo : voList){
-            //查找匹配基金
-            if(vo.getFundId() != null){
-                vo.setTargetFundId(vo.getFundId());
-                vo.setTargetFundName(fundInfoMapper.getFundNameByFundId(vo.getFundId()));
-            }
-        }
         long total = emailFundNavMapper.countNavDetail(parseDetailPageQuery);
         return MybatisPage.of(total,voList);
     }
@@ -62,13 +50,6 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
         }
         List<EmailFundAssetDO> dataList = emailFundAssetMapper.searchAssetDetail(parseDetailPageQuery);
         List<EmailFundAssetVO> voList = dataList.stream().map(EmailFundAssetDO::toVo).collect(Collectors.toList());
-        for(EmailFundAssetVO vo : voList){
-            //查找匹配基金
-            if(vo.getFundId() != null){
-                vo.setTargetFundId(vo.getFundId());
-                vo.setTargetFundName(fundInfoMapper.getFundNameByFundId(vo.getFundId()));
-            }
-        }
         long total = emailFundAssetMapper.countAssetDetail(parseDetailPageQuery);
         return MybatisPage.of(total,voList);
     }