Explorar o código

fix: 数据详情增加邮件标题展示和查询

chenjianhua hai 7 meses
pai
achega
cddc1edcb4

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

@@ -94,6 +94,8 @@ public class EmailFundAssetDO {
     @TableField(value = "updatetime")
     private Date updateTime;
 
+    private String emailTitle;
+
     public EmailFundAssetVO toVo() {
         EmailFundAssetVO vo = new EmailFundAssetVO();
         vo.setId(this.id);
@@ -106,6 +108,7 @@ public class EmailFundAssetDO {
         vo.setUpdateTime(DateUtils.format(this.updateTime, DateUtils.YYYY_MM_DD_HH_MM_SS));
         vo.setAssetNet(this.assetNet);
         vo.setAssetShare(this.assetShare);
+        vo.setEmailTitle(this.emailTitle);
         return vo;
     }
 }

+ 4 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/EmailFundNavDO.java

@@ -90,11 +90,15 @@ public class EmailFundNavDO {
     @TableField(value = "updatetime")
     private Date updateTime;
 
+    private String emailTitle;
+
     public EmailFundNavVO toVo() {
         EmailFundNavVO vo = new EmailFundNavVO();
         vo.setId(this.id);
         vo.setFundId(this.fundId);
         vo.setFundName(this.fundName);
+        vo.setFileId(this.fileId);
+        vo.setEmailTitle(this.emailTitle);
         vo.setRegisterNumber(this.registerNumber);
         vo.setPriceDate(this.priceDate==null?null:DateUtils.format(this.priceDate, DateUtils.YYYY_MM_DD));
         vo.setCumulativeNavWithdrawal(this.cumulativeNavWithdrawal);

+ 29 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/query/ParseDetailPageQuery.java

@@ -39,6 +39,11 @@ public class ParseDetailPageQuery extends PageQuery {
      */
     private Integer isStore;
 
+    /**
+     * 邮件标题
+     */
+    private String emailTitle;
+
     public String getFundName() {
         return fundName;
     }
@@ -78,4 +83,28 @@ public class ParseDetailPageQuery extends PageQuery {
     public void setIsStore(Integer isStore) {
         this.isStore = isStore;
     }
+
+    public String getUpdateStartDate() {
+        return updateStartDate;
+    }
+
+    public void setUpdateStartDate(String updateStartDate) {
+        this.updateStartDate = updateStartDate;
+    }
+
+    public String getUpdateEndDate() {
+        return updateEndDate;
+    }
+
+    public void setUpdateEndDate(String updateEndDate) {
+        this.updateEndDate = updateEndDate;
+    }
+
+    public String getEmailTitle() {
+        return emailTitle;
+    }
+
+    public void setEmailTitle(String emailTitle) {
+        this.emailTitle = emailTitle;
+    }
 }

+ 5 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailFundAssetVO.java

@@ -60,4 +60,9 @@ public class EmailFundAssetVO {
      * 匹配的基金名称
      */
     private String targetFundName;
+
+    /**
+     * 邮件标题
+     */
+    private String emailTitle;
 }

+ 9 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailFundNavVO.java

@@ -15,6 +15,10 @@ public class EmailFundNavVO {
      */
     private String fundId;
     /**
+     * 文件id
+     */
+    private Integer fileId;
+    /**
      * 邮件解析的基金名称
      */
     private String fundName;
@@ -57,4 +61,9 @@ public class EmailFundNavVO {
      *  更新日期
      */
     private String upateTime;
+
+    /**
+     * 邮件标题
+     */
+    private String emailTitle;
 }

+ 21 - 5
service-base/src/main/resources/mapper/EmailFundAssetMapper.xml

@@ -17,6 +17,7 @@
         <result column="createtime" property="createTime"/>
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
+        <result column="email_title" property="emailTitle"/>
     </resultMap>
 
     <insert id="batchInsert" parameterType="com.simuwang.base.pojo.dos.EmailFundAssetDO">
@@ -41,8 +42,13 @@
     </update>
     <select id="searchAssetDetail" resultMap="BaseResultMap"
             parameterType="com.simuwang.base.pojo.dto.query.ParseDetailPageQuery">
-        select distinct id,fund_id, fund_name,register_number,price_date,asset_net,asset_share,is_stored,exception_status,updatetime
-        from PPW_EMAIL.email_fund_asset asset where isvalid=1
+        select distinct asset.id,asset.fund_id, asset.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
+        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
+        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},'%')
         </if>
@@ -64,15 +70,22 @@
         <if test="isStore != null">
             and asset.is_stored = #{isStore}
         </if>
+        <if test="emailTitle != null and emailTitle != ''">
+            and parse.email_title like concat('%',#{emailTitle},'%')
+        </if>
         order by asset.fund_name desc,asset.price_date desc
         limit #{offset},#{pageSize}
     </select>
     <select id="countAssetDetail" resultType="java.lang.Long"
             parameterType="com.simuwang.base.pojo.dto.query.ParseDetailPageQuery">
         select count(1) from (
-        select distinct id,fund_id, fund_name,register_number,price_date,asset_net,asset_share,is_stored,exception_status,
-         updatetime
-        from PPW_EMAIL.email_fund_asset asset where isvalid=1
+        select distinct asset.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
+        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},'%')
         </if>
@@ -94,6 +107,9 @@
         <if test="isStore != null">
             and asset.is_stored = #{isStore}
         </if>
+        <if test="emailTitle != null and emailTitle != ''">
+            and parse.email_title like concat('%',#{emailTitle},'%')
+        </if>
         )a
     </select>
     <select id="countNoStoreAsset" resultType="java.lang.Integer" parameterType="java.lang.String">

+ 44 - 28
service-base/src/main/resources/mapper/EmailFundNavMapper.xml

@@ -17,6 +17,7 @@
         <result column="createtime" property="createTime"/>
         <result column="updaterid" property="updaterId"/>
         <result column="updatetime" property="updateTime"/>
+        <result column="email_title" property="emailTitle"/>
     </resultMap>
 
     <insert id="batchInsert" parameterType="com.simuwang.base.pojo.dos.EmailFundNavDO">
@@ -46,7 +47,7 @@
         update PPW_EMAIL.email_fund_nav nav set isvalid = 0,updatetime=sysdate() where file_id=#{fileId}
     </delete>
     <select id="searchNavDetail" resultMap="BaseResultMap">
-        SELECT distinct nav.id,
+        SELECT distinct nav.id,nav.file_id,
             nav.fund_id,
             nav.fund_name,
             nav.register_number,
@@ -55,10 +56,15 @@
             nav.cumulative_nav_withdrawal,
             nav.exception_status,
             nav.is_stored,
-            nav.updatetime
+            nav.updatetime,
+            parse.email_title
         FROM
             PPW_EMAIL.email_fund_nav nav
-        WHERE nav.isvalid = 1
+            join PPW_EMAIL.email_file_info file
+                on nav.file_id = file.id
+            join PPW_EMAIL.email_parse_info parse
+                on file.email_id = parse.id
+        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},'%')
         </if>
@@ -80,13 +86,16 @@
         <if test="isStore != null">
             and nav.is_stored = #{isStore}
         </if>
+        <if test="emailTitle != null and emailTitle != ''">
+            and parse.email_title like concat('%',#{emailTitle},'%')
+        </if>
         order by nav.fund_name desc,nav.price_date desc
         limit #{offset},#{pageSize}
     </select>
     <select id="countNavDetail" resultType="java.lang.Long"
             parameterType="com.simuwang.base.pojo.dto.query.ParseDetailPageQuery">
         select count(1) from (
-            SELECT distinct nav.id,
+            SELECT distinct nav.id,nav.file_id,
             nav.fund_id,
             nav.fund_name,
             nav.register_number,
@@ -96,30 +105,37 @@
             nav.exception_status,
             nav.is_stored,
             nav.updatetime
-            FROM
-            PPW_EMAIL.email_fund_nav nav
-            WHERE nav.isvalid = 1
-            <if test="fundName != null and fundName !=''">
-                and nav.fund_name like concat('%',#{fundName},'%')
-            </if>
-            <if test="priceStartDate != null and priceStartDate !=''">
-                and nav.price_date >= #{priceStartDate}
-            </if>
-            <if test="priceEndDate != null and priceEndDate !=''">
-                and nav.price_date  <![CDATA[ <= ]]> #{priceEndDate}
-            </if>
-            <if test="exceptionStatus != null">
-                and nav.exception_status = #{exceptionStatus}
-            </if>
-            <if test="updateStartDate != null and updateStartDate !=''">
-                and nav.updatetime  <![CDATA[ >= ]]> #{updateStartDate}
-            </if>
-            <if test="updateEndDate != null and updateEndDate !=''">
-                and nav.updatetime  <![CDATA[ <= ]]> #{updateEndDate}
-            </if>
-            <if test="isStore != null">
-                and nav.is_stored = #{isStore}
-            </if>
+        FROM
+        PPW_EMAIL.email_fund_nav nav
+        join PPW_EMAIL.email_file_info file
+        on nav.file_id = file.id
+        join PPW_EMAIL.email_parse_info parse
+        on file.email_id = parse.id
+        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},'%')
+        </if>
+        <if test="priceStartDate != null and priceStartDate !=''">
+            and nav.price_date >= #{priceStartDate}
+        </if>
+        <if test="priceEndDate != null and priceEndDate !=''">
+            and nav.price_date  <![CDATA[ <= ]]> #{priceEndDate}
+        </if>
+        <if test="exceptionStatus != null">
+            and nav.exception_status = #{exceptionStatus}
+        </if>
+        <if test="updateStartDate != null and updateStartDate !=''">
+            and nav.updatetime  <![CDATA[ >= ]]> #{updateStartDate}
+        </if>
+        <if test="updateEndDate != null and updateEndDate !=''">
+            and nav.updatetime  <![CDATA[ <= ]]> #{updateEndDate}
+        </if>
+        <if test="isStore != null">
+            and nav.is_stored = #{isStore}
+        </if>
+        <if test="emailTitle != null and emailTitle != ''">
+            and parse.email_title like concat('%',#{emailTitle},'%')
+        </if>
         ) a
     </select>
     <select id="countNoStoreNav" resultType="java.lang.Integer" parameterType="java.lang.String">

+ 3 - 4
service-manage/src/main/java/com/simuwang/manage/api/distribution/DistributionController.java

@@ -61,12 +61,11 @@ public class DistributionController {
     /**
      * 上传分红信息
      * @param file
-     * @param response
-     * @param request
      * @return
      */
-    @RequestMapping("upload-distribution")
-    public ResultVo uploadDistribution(@RequestParam(value = "file",required = false) MultipartFile file, HttpServletResponse response, HttpServletRequest request){
+    @PostMapping(value = "upload-distribution", consumes = "multipart/form-data")
+    @ResponseBody
+    public ResultVo uploadDistribution(@RequestParam(name = "file", required = true) MultipartFile file){
         ResultVo vo = distributionService.uploadDistribution(file);
         return vo;
     }

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

@@ -33,6 +33,9 @@ public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
 
     @Autowired
     private EmailFundAssetMapper emailFundAssetMapper;
+
+    @Autowired
+    private EmailParseInfoMapper emailParseInfoMapper;
     @Override
     public MybatisPage<EmailFundNavVO> searchNavDetail(ParseDetailPageQuery parseDetailPageQuery) {
         List<EmailFundNavDO> dataList = emailFundNavMapper.searchNavDetail(parseDetailPageQuery);