Bläddra i källkod

API返回结构调整

chenjianhua 7 månader sedan
förälder
incheckning
b4ee994fa4

+ 2 - 0
service-base/src/main/java/com/simuwang/base/mapper/EmailFundNavMapper.java

@@ -1,6 +1,7 @@
 package com.simuwang.base.mapper;
 
 import com.simuwang.base.pojo.dos.EmailFundNavDO;
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -11,4 +12,5 @@ public interface EmailFundNavMapper {
 
     void batchInsert(@Param("itemDoList") List<EmailFundNavDO> emailFundNavDOList);
 
+    List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
 }

+ 1 - 1
service-base/src/main/java/com/simuwang/base/mapper/EmailParseInfoMapper.java

@@ -14,7 +14,7 @@ public interface EmailParseInfoMapper {
 
     void updateParseStatus(@Param("id") Integer id, @Param("parseStatus") int parseStatus);
 
-    List<EmailParseInfoVO> searchEmailList(@Param("emailTitle") String emailTitle, @Param("emailType") Integer emailType, @Param("parseStatus")  Integer parseStatus);
+    List<EmailParseInfoVO> searchEmailList(@Param("emailTitle") String emailTitle, @Param("emailType") Integer emailType, @Param("parseStatus")  Integer parseStatus,@Param("startDate")String startDate,@Param("endDate")String endDate);
 
     EmailParseInfoVO searchEmailById(@Param("id") Integer id);
 

+ 74 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/EmailFundNavAssetVO.java

@@ -0,0 +1,74 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class EmailFundNavAssetVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 基金id
+     */
+    private String fundId;
+    /**
+     * 邮件解析的基金名称
+     */
+    private String fundName;
+    /**
+     * 邮件解析的备案编码
+     */
+    private String registerNumber;
+    /**
+     * 净值日期
+     */
+    private String priceDate;
+    /**
+     * 单位净值
+     */
+    private BigDecimal nav;
+    /**
+     * 累计单位净值
+     */
+    private BigDecimal cumulativeNavWithdrawal;
+    /**
+     * 是否入库 0-没有,1-有
+     */
+    private Integer isStored;
+    /**
+     * 异常情况:1-无异常,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
+     */
+    private Integer exceptionStatus;
+    /**
+     * 资产份额
+     */
+    private BigDecimal assetShare;
+    /**
+     * 资产净值(基金规模)
+     */
+    private BigDecimal assetNet;
+
+    /**
+     * 匹配的基金ID
+     */
+    private String targetFundId;
+
+    /**
+     * 匹配的基金名称
+     */
+    private String targetFundName;
+
+    /**
+     *  邮件主题
+     */
+    private String emailTitle;
+
+    /**
+     *  更新日期
+     */
+    private String upateTime;
+}

+ 17 - 1
service-base/src/main/resources/mapper/EmailFundNavMapper.xml

@@ -29,8 +29,24 @@
              #{itemDo.nav},#{itemDo.cumulativeNavWithdrawal},#{itemDo.isStored},#{itemDo.exceptionStatus},
             #{itemDo.isvalid}, #{itemDo.creatorId}, #{itemDo.createTime}, #{itemDo.updaterId}, #{itemDo.updateTime})
         </foreach>
-
     </insert>
+    <resultMap id="BaseSearchMap" type="com.simuwang.base.pojo.vo.EmailFundNavAssetVO">
+        <id column="id" property="id"/>
+        <result column="fund_id" property="fundId"/>
+        <result column="fund_name" property="fundName"/>
+        <result column="register_number" property="registerNumber"/>
+        <result column="price_date" property="priceDate"/>
+        <result column="nav" property="nav"/>
+        <result column="cumulative_nav_withdrawal" property="cumulativeNavWithdrawal"/>
+        <result column="asset_net" property="assetNet"/>
+        <result column="asset_share" property="assetShare"/>
+        <result column="is_stored" property="isStored"/>
+        <result column="exception_status" property="exceptionStatus"/>
+        <result column="target_fund_id" property="targetFundId"/>
+    </resultMap>
+    <select id="searchNavDetail" resultType="com.simuwang.base.pojo.vo.EmailFundNavAssetVO">
+
+    </select>
 
 
 </mapper>

+ 6 - 0
service-base/src/main/resources/mapper/EmailParseInfoMapper.xml

@@ -77,6 +77,12 @@
             <if test="parseStatus !=null and parseStatus != ''">
                 and epi.parse_status = #{parseStatus}
             </if>
+            <if test="startDate !=null and startDate != ''">
+                and epi.parse_date <![CDATA[ >= ]]> #{startDate}
+            </if>
+            <if test="endDate !=null and endDate != ''">
+                and epi.parse_date <![CDATA[ <= ]]> #{endDate}
+            </if>
         </where>
     </sql>
     <select id="searchEmailList" resultMap="TableResultMap">

+ 13 - 5
service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailController.java

@@ -10,6 +10,7 @@ import com.simuwang.daq.service.EmailParseApiService;
 import com.simuwang.manage.api.base.BaseController;
 import com.simuwang.manage.service.ParseEmailService;
 import com.smppw.common.pojo.ResultVo;
+import com.smppw.common.pojo.enums.TimeRange;
 import com.smppw.common.pojo.enums.status.ResultCode;
 import jakarta.servlet.ServletOutputStream;
 import jakarta.servlet.http.HttpServletRequest;
@@ -74,13 +75,20 @@ public class ParseEmailController extends BaseController {
      * @param emailTitle -邮件标题
      * @param emailType -邮件类型
      * @param parseStatus 解析状态:1-成功,2-净值缺失,3-未匹配基金,4-净值<=0,5-资产净值<=0
+     * @param emailType -邮件类型
+     * @param timeRange Last1Week-近一周,Last1Month-近一个月,Last3Months-近三月,LastHalfYear-近半年,Last1Year-近一年,FromSetup-全部,Custom-自定义
+     * @param startDate -开始时间,timeRange。Custom才有数据
+     * @param endDate -结束时间,timeRange。Custom才有数据
      * @return
      */
     @GetMapping("/search-email-list")
     public TableDataInfo searchEmailList(@RequestParam(value = "emailTitle",required = false)String emailTitle,
                                          @RequestParam(value = "emailType",required = false)Integer emailType,
-                                         @RequestParam(value = "parseStatus",required = false)Integer parseStatus){
-        List<EmailParseInfoVO> result = parseEmailService.searchEmailList(emailTitle,emailType,parseStatus);
+                                         @RequestParam(value = "parseStatus",required = false)Integer parseStatus,
+                                         @RequestParam(value = "timeRange",required = false)TimeRange timeRange,
+                                         @RequestParam(value = "startDate",required = false)String startDate,
+                                         @RequestParam(value = "endDate",required = false)String endDate){
+        List<EmailParseInfoVO> result = parseEmailService.searchEmailList(emailTitle,emailType,parseStatus,timeRange,startDate,endDate);
         return getDataTable(result);
     }
 
@@ -97,12 +105,12 @@ public class ParseEmailController extends BaseController {
 
     /**
      * 解析邮件数据统计
-     * @param parseDate
+     * @param timeRange Last1Week-近一周,Last1Month-近一个月,Last3Months-近三月,LastHalfYear-近半年,Last1Year-近一年,FromSetup-全部,Custom-自定义
      * @return
      */
     @GetMapping("/search-email-count")
-    public ResultVo searchEmailCount(@RequestParam("parseDate") String parseDate){
-        Map<String,Integer> result = parseEmailService.searchEmailCount(parseDate);
+    public ResultVo searchEmailCount(TimeRange timeRange){
+        Map<String,Integer> result = parseEmailService.searchEmailCount(timeRange);
         return ResultVo.ok(result);
     }
 

+ 0 - 2
service-manage/src/main/java/com/simuwang/manage/api/email/ParseEmailDetailController.java

@@ -3,7 +3,6 @@ package com.simuwang.manage.api.email;
 import com.simuwang.base.common.page.TableDataInfo;
 import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
 import com.simuwang.manage.api.base.BaseController;
-import com.simuwang.manage.service.EmailFundInfoService;
 import com.simuwang.manage.service.ParseEmailDetailService;
 import com.smppw.common.pojo.enums.TimeRange;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +21,6 @@ public class ParseEmailDetailController extends BaseController {
 
     @Autowired
     private ParseEmailDetailService parseEmailDetailService;
-
     /**
      * 数据详情页面展示查询接口
      * @param fundName

+ 15 - 0
service-manage/src/main/java/com/simuwang/manage/service/ParseEmailDetailService.java

@@ -0,0 +1,15 @@
+package com.simuwang.manage.service;
+
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
+
+import java.util.List;
+
+/**
+ * FileName: ParseEmailDetailService
+ * Author:   chenjianhua
+ * Date:     2024/9/12 23:08
+ * Description: ${DESCRIPTION}
+ */
+public interface ParseEmailDetailService {
+    List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate);
+}

+ 3 - 2
service-manage/src/main/java/com/simuwang/manage/service/ParseEmailService.java

@@ -3,6 +3,7 @@ package com.simuwang.manage.service;
 import com.simuwang.base.pojo.vo.EmailFileInfoVO;
 import com.simuwang.base.pojo.vo.EmailParseInfoVO;
 import com.simuwang.base.pojo.vo.EmailTypeRuleVO;
+import com.smppw.common.pojo.enums.TimeRange;
 
 import java.util.List;
 import java.util.Map;
@@ -19,11 +20,11 @@ public interface ParseEmailService {
 
     EmailTypeRuleVO searchEmailType();
 
-    List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus);
+    List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus,TimeRange timeRange,String startDate,String endDate);
 
     EmailParseInfoVO searchEmailById(Integer id);
 
-    Map<String, Integer> searchEmailCount(String parseDate);
+    Map<String, Integer> searchEmailCount(TimeRange timeRange);
 
     EmailFileInfoVO getEmailFileById(Integer fileId);
 }

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

@@ -0,0 +1,26 @@
+package com.simuwang.manage.service.impl;
+
+import com.simuwang.base.mapper.EmailFundNavMapper;
+import com.simuwang.base.pojo.vo.EmailFundNavAssetVO;
+import com.simuwang.manage.service.ParseEmailDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * FileName: ParseEmailDetailServiceImpl
+ * Author:   chenjianhua
+ * Date:     2024/9/12 23:08
+ * Description: ${DESCRIPTION}
+ */
+@Service
+public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
+
+    @Autowired
+    private EmailFundNavMapper emailFundNavMapper;
+    @Override
+    public List<EmailFundNavAssetVO> searchNavDetail(String fundName, String emailTitle, Integer exceptionStatus, String priceStartDate, String priceEndDate, String updateStartDate, String updateEndDate) {
+        return emailFundNavMapper.searchNavDetail(fundName,emailTitle,exceptionStatus,priceStartDate,priceEndDate,updateStartDate,updateEndDate);
+    }
+}

+ 16 - 3
service-manage/src/main/java/com/simuwang/manage/service/impl/ParseEmailServiceImpl.java

@@ -1,6 +1,7 @@
 package com.simuwang.manage.service.impl;
 
 import com.simuwang.base.common.enums.ParseStatus;
+import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.mapper.EmailFileInfoMapper;
 import com.simuwang.base.mapper.EmailParseInfoMapper;
 import com.simuwang.base.mapper.EmailTypeRuleMapper;
@@ -11,6 +12,8 @@ import com.simuwang.base.pojo.vo.EmailFileInfoVO;
 import com.simuwang.base.pojo.vo.EmailParseInfoVO;
 import com.simuwang.base.pojo.vo.EmailTypeRuleVO;
 import com.simuwang.manage.service.ParseEmailService;
+import com.smppw.common.pojo.enums.TimeRange;
+import com.smppw.utils.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -67,8 +70,12 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     }
 
     @Override
-    public List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus) {
-        List<EmailParseInfoVO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailTitle,emailType,parseStatus);
+    public List<EmailParseInfoVO> searchEmailList(String emailTitle, Integer emailType, Integer parseStatus,TimeRange timeRange,String startDate,String endDate) {
+        if(!timeRange.equals(TimeRange.Custom)){
+            endDate = DateUtil.getTodayDate();
+            startDate = DateUtil.RangeTime(timeRange.getFloatDateSymbel(),endDate);
+        }
+        List<EmailParseInfoVO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailTitle,emailType,parseStatus,startDate,endDate);
         return emailParseInfoDOList;
     }
 
@@ -78,8 +85,9 @@ public class ParseEmailServiceImpl implements ParseEmailService {
     }
 
     @Override
-    public Map<String, Integer> searchEmailCount(String parseDate) {
+    public Map<String, Integer> searchEmailCount(TimeRange timeRange) {
         Map<String, Integer> result = new HashMap<>();
+        String parseDate = getParseDate(timeRange, DateUtils.getDate());
         Integer parseTotal = emailParseInfoMapper.searchEmailCount(parseDate,null);
         result.put("parseTotal",parseTotal);
         Integer parseSuccess = emailParseInfoMapper.searchEmailCount(parseDate, ParseStatus.Success.getCode());
@@ -89,6 +97,11 @@ public class ParseEmailServiceImpl implements ParseEmailService {
         return result;
     }
 
+    private String getParseDate(TimeRange timeRange, String date) {
+        String preDate =DateUtil.RangeTime(timeRange.getFloatDateSymbel(),date);
+        return preDate;
+    }
+
     @Override
     public EmailFileInfoVO getEmailFileById(Integer fileId) {
         EmailFileInfoDO emailFileInfoDO = emailFileInfoMapper.getEmailFileById(fileId);