Browse Source

feat: 基金管理详情接口开发

chenjianhua 6 months ago
parent
commit
b7c50949a8

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

@@ -47,4 +47,6 @@ public interface FundInfoMapper {
     List<String> getFundIdByCompanyId(@Param("companyId")String companyId);
 
     String getInceptionDateByFundId(@Param("fundId")String fundId);
+
+    FundInfoDO searchFundDetail(@Param("fundId")String fundId);
 }

+ 42 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/FundInfoDO.java

@@ -3,6 +3,9 @@ package com.simuwang.base.pojo.dos;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.simuwang.base.common.util.DateUtils;
+import com.simuwang.base.pojo.vo.FundInfoVO;
+import com.simuwang.base.pojo.vo.FundInformationVO;
 import lombok.Data;
 
 import java.util.Date;
@@ -141,4 +144,43 @@ public class FundInfoDO {
      */
     @TableField(value = "updatetime")
     private Date updateTime;
+
+    /**
+     * 投资顾问名称
+     */
+    private String advisorCompanyName;
+    /**
+     * 发行人名称
+     */
+    private String issuerCompanyName;
+
+    public FundInfoVO toVO() {
+        FundInfoVO vo = new FundInfoVO();
+        vo.setId(this.id);
+        vo.setFundId(this.fundId);
+        vo.setFundShortName(this.fundShortName);
+        vo.setInceptionDate(this.inceptionDate);
+        vo.setAdvisorId(this.advisorId);
+        vo.setIssuerId(this.issuerId);
+        vo.setIssuerCompanyName(this.issuerCompanyName);
+        vo.setBaseCurrency(this.baseCurrency);
+        vo.setFundName(this.fundName);
+        vo.setAdvisorCompanyName(this.advisorCompanyName);
+        vo.setFundStatus(this.fundStatus);
+        vo.setFundType(this.fundType);
+        vo.setRegisterNumber(this.registerNumber);
+        vo.setCreateTime(DateUtils.format(this.createTime,DateUtils.YYYY_MM_DD_HH_MM_SS));
+        vo.setCustodianId(this.custodianId);
+        vo.setAmacSourceType(this.amacSourceType);
+        vo.setPFundId(this.pFundId);
+        vo.setInvestmentType(this.investmentType);
+        vo.setIsAmacShow(this.isAmacShow);
+        vo.setPerformanceStartDate(this.performanceStartDate);
+        vo.setLiquidateDate(this.liquidateDate);
+        vo.setManagerType(this.managerType);
+        vo.setRegisterDate(this.registerDate);
+        vo.setIsShareclass(this.isShareclass);
+        vo.setTrustId(this.trustId);
+        return vo;
+    }
 }

+ 18 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FundIdVO.java

@@ -0,0 +1,18 @@
+package com.simuwang.base.pojo.vo;
+
+import lombok.Data;
+
+/**
+ * FileName: ComyanyEmailIdVO
+ * Author:   chenjianhua
+ * Date:     2024/9/12 17:20
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FundIdVO {
+
+    /**
+     * 基金ID
+     */
+    private String fundId;
+}

+ 118 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FundInfoVO.java

@@ -0,0 +1,118 @@
+package com.simuwang.base.pojo.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * FileName: FundInformation
+ * Author:   chenjianhua
+ * Date:     2024/9/6 11:34
+ * Description: ${DESCRIPTION}
+ */
+@Data
+public class FundInfoVO {
+    /**
+     * 主键Id
+     */
+    private Integer id;
+    /**
+     * 父级产品ID
+     */
+    private String pFundId;
+    /**
+     * 基金ID
+     */
+    private String fundId;
+    /**
+     * 基金全称
+     */
+    private String fundName;
+    /**
+     * 基金简称
+     */
+    private String fundShortName;
+    /**
+     * 基金类型:1-信托计划,2-有限合伙(已废弃),3-券商资管,4-公募专户,5-单账户,6-证券投资基金,7-海外基金,8-期货资管,9-保险资管、10-创业投资基金、11-股权投资基金、12-银行理财、13-类固收信托(已废弃) 、 14-私募资产配置基金 15公募基金 -1其他投资基金
+     */
+    private Integer fundType;
+    /**
+     * 管理类型:1-顾问管理,2-受托管理,3-自我管理
+     */
+    private Integer managerType;
+    /**
+     * 基础货币,1-人民币,2-港币,3-美元,4-份,-1-其他
+     */
+    private Integer baseCurrency;
+    /**
+     * 成立日期
+     */
+    private String inceptionDate;
+    /**
+     * 投资顾问Id
+     */
+    private String advisorId;
+    /**
+     * 发行人id
+     */
+    private String issuerId;
+    /**
+     * 投资顾问名称
+     */
+    private String advisorCompanyName;
+    /**
+     * 发行人名称
+     */
+    private String issuerCompanyName;
+    /**
+     * 托管机构Id
+     */
+    private String custodianId;
+    /**
+     * 基金管理公司Id
+     */
+    private String trustId;
+    /**
+     * 备案编码
+     */
+    private String registerNumber;
+    /**
+     * 当前是否备案展示:1-是 0-否 -1-不详
+     */
+    private Integer isAmacShow;
+    /**
+     * 基金运行状态:1-募集中、2-开放运行、3-封闭运行(已废弃)、4-提前清算、5-到期清算、6-发行失败、7-投顾协议已终止、 8-延期清算 -1-其他 9-非正常清算 10-已终止 11-已作废
+     */
+    private Integer fundStatus;
+    /**
+     * 中基协基金类型:1-私募基金(自主备案),2-期货资管,3-券商资管,4-公募专户 5-证券公司直投基金  6-证券公司私募投资基金 7-基金公司私募投资基金 8-资产支持专项计划 -1-不详
+     */
+    private Integer amacSourceType;
+    /**
+     * 监管公示投资类型:1-混合类,2-固定收益类,3-商品及金融衍生品类,4-权益类,5-其他类产品,6-非标类产品,-1-监管未公示
+     */
+    private Integer investmentType;
+    /**
+     * 备案日期
+     */
+    private String registerDate;
+    /**
+     * 清算日期
+     */
+    private String liquidateDate;
+    /**
+     * 开始运作日期
+     */
+    private String performanceStartDate;
+    /**
+     * 是否份额基金:1-是 0-否
+     */
+    private Integer isShareclass;
+    /**
+     * 创建时间
+     */
+    private String createTime;
+}

+ 4 - 0
service-base/src/main/java/com/simuwang/base/pojo/vo/FundInformationVO.java

@@ -12,6 +12,10 @@ import lombok.Data;
 public class FundInformationVO {
 
     /**
+     * ID
+     */
+    private Integer id;
+    /**
      * 基金ID
      */
     private String fundId;

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

@@ -12,6 +12,8 @@
         <result column="inception_date" property="inceptionDate"/>
         <result column="advisor_id" property="advisorId"/>
         <result column="issuer_id" property="issuerId"/>
+        <result column="advisor_company_name" property="advisorCompanyName"/>
+        <result column="issuer_company_name" property="issuerCompanyName"/>
         <result column="custodian_id" property="custodianId"/>
         <result column="register_number" property="registerNumber"/>
         <result column="register_date" property="registerDate"/>
@@ -192,4 +194,21 @@
           and t.register_number = #{registerNumber}
         limit 1
     </select>
+    <select id="searchFundDetail" resultMap="BaseResultMap"
+            parameterType="java.lang.String">
+        select info.id,info.p_fund_id,info.fund_id,info.fund_name,
+               info.fund_short_name,info.fund_type,info.manager_type,
+               info.base_currency,info.inception_date,info.advisor_id,a.company_name as advisor_company_name,
+               info.issuer_id,t.company_name as issuer_company_name,info.custodian_id,info.trust_id,
+               info.register_number,info.register_date,info.createtime,
+               info.is_amac_show,info.fund_status,info.amac_source_type,
+               info.investment_type,info.liquidate_date,info.performance_start_date,
+               info.is_shareclass,info.amac_url
+        from PPW_EMAIL.pvn_fund_info info
+        left join PPW_EMAIL.pvn_company_info a
+        on info.advisor_id = a.company_id and a.isvalid=1
+        left join PPW_EMAIL.pvn_company_info t
+                  on info.issuer_id = t.company_id and t.isvalid=1
+        where info.isvalid=1 and info.fund_id=#{fundId}
+    </select>
 </mapper>

+ 14 - 7
service-manage/src/main/java/com/simuwang/manage/api/fund/FundInformationController.java

@@ -4,22 +4,17 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.pojo.dto.query.FundFilePageQuery;
 import com.simuwang.base.pojo.dto.query.FundInfoPageQuery;
 import com.simuwang.base.pojo.dto.query.FundInputPageQuery;
-import com.simuwang.base.pojo.vo.FundFileInfoVO;
-import com.simuwang.base.pojo.vo.FundInfoSearchVO;
-import com.simuwang.base.pojo.vo.FundInformationVO;
-import com.simuwang.base.pojo.vo.FundReportFrequencyVO;
+import com.simuwang.base.pojo.vo.*;
 import com.simuwang.logging.SystemLog;
 import com.simuwang.manage.service.EmailFundInfoService;
 import com.simuwang.manage.service.FundInformationService;
 import com.simuwang.manage.service.FundReportFrequencyService;
+import com.smppw.common.pojo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
-import java.util.Map;
-
 /**
  * 基金管理
  * Author:   chenjianhua
@@ -64,6 +59,18 @@ public class FundInformationController{
     }
 
     /**
+     *  页面展示查询
+     * @param fundIdVO
+     * @return
+     */
+    @SystemLog(value = "基金详情展示查询")
+    @RequestMapping("search-fund-detail")
+    public ResultVo<FundInfoVO> searchFundDetail(FundIdVO fundIdVO){
+        ResultVo<FundInfoVO> result = fundInformationService.searchFundDetail(fundIdVO.getFundId());
+        return result;
+    }
+
+    /**
      * 保存基金报送频率
      * @param fundReportFrequency
      * @return

+ 4 - 0
service-manage/src/main/java/com/simuwang/manage/service/FundInformationService.java

@@ -4,7 +4,9 @@ import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.pojo.dto.query.FundInfoPageQuery;
 import com.simuwang.base.pojo.dto.query.FundInputPageQuery;
 import com.simuwang.base.pojo.vo.FundInfoSearchVO;
+import com.simuwang.base.pojo.vo.FundInfoVO;
 import com.simuwang.base.pojo.vo.FundInformationVO;
+import com.smppw.common.pojo.ResultVo;
 
 import java.util.List;
 import java.util.Map;
@@ -19,4 +21,6 @@ public interface FundInformationService {
     MybatisPage<FundInfoSearchVO> searchFundInfo(FundInputPageQuery fundInputPageQuery);
 
     MybatisPage<FundInformationVO> searchFundInfoList(FundInfoPageQuery fundInfoPageQuery);
+
+    ResultVo<FundInfoVO> searchFundDetail(String fundId);
 }

+ 10 - 0
service-manage/src/main/java/com/simuwang/manage/service/impl/FundInformationServiceImpl.java

@@ -2,12 +2,15 @@ package com.simuwang.manage.service.impl;
 
 import com.simuwang.base.common.support.MybatisPage;
 import com.simuwang.base.mapper.FundInfoMapper;
+import com.simuwang.base.pojo.dos.FundInfoDO;
 import com.simuwang.base.pojo.dos.FundInformationDO;
 import com.simuwang.base.pojo.dto.query.FundInfoPageQuery;
 import com.simuwang.base.pojo.dto.query.FundInputPageQuery;
 import com.simuwang.base.pojo.vo.FundInfoSearchVO;
+import com.simuwang.base.pojo.vo.FundInfoVO;
 import com.simuwang.base.pojo.vo.FundInformationVO;
 import com.simuwang.manage.service.FundInformationService;
+import com.smppw.common.pojo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -48,4 +51,11 @@ public class FundInformationServiceImpl implements FundInformationService {
         long total = fundInfoMapper.countFundInfo(fundInfoPageQuery);
         return MybatisPage.of(total,fundInformationVOList);
     }
+
+    @Override
+    public ResultVo<FundInfoVO> searchFundDetail(String fundId) {
+        FundInfoDO fundInfoDO = fundInfoMapper.searchFundDetail(fundId);
+        FundInfoVO fundInfoVO = fundInfoDO.toVO();
+        return ResultVo.ok(fundInfoVO);
+    }
 }