diff --git a/src/main/java/com/tanpu/fund/api/ProductApi.java b/src/main/java/com/tanpu/fund/api/ProductApi.java
index a11b2bdff3b42ade0d87b19fe7ffb052d2b7328a..21522d9b9a47453f87bad685ab68d28d43fd1d72 100644
--- a/src/main/java/com/tanpu/fund/api/ProductApi.java
+++ b/src/main/java/com/tanpu/fund/api/ProductApi.java
@@ -9,8 +9,23 @@ import com.tanpu.common.model.privatefund.resp.FundNavMessage;
 import com.tanpu.common.model.product.req.NetReq;
 import com.tanpu.common.model.product.req.ProductInfoReq;
 import com.tanpu.common.model.product.req.ProductListReq;
-import com.tanpu.common.model.product.resp.*;
+import com.tanpu.common.model.product.resp.BonusRatioVO;
+import com.tanpu.common.model.product.resp.DynamicRetreatVO;
+import com.tanpu.common.model.product.resp.FundCompanyVO;
+import com.tanpu.common.model.product.resp.FundIndexBasicResp;
+import com.tanpu.common.model.product.resp.FundInfoSimpleListResp;
+import com.tanpu.common.model.product.resp.FundManagerVO;
+import com.tanpu.common.model.product.resp.FundNoticeVO;
+import com.tanpu.common.model.product.resp.FundRecordVO;
+import com.tanpu.common.model.product.resp.FundSameResp;
+import com.tanpu.common.model.product.resp.NetVO;
+import com.tanpu.common.model.product.resp.ProductInfoVO;
+import com.tanpu.common.model.product.resp.RiskRatingVO;
+import com.tanpu.common.model.product.resp.TrackNetVO;
+import com.tanpu.common.model.product.resp.TrackRecordVO;
+import com.tanpu.common.model.product.resp.UnitNetVO;
 import com.tanpu.common.model.tanpuroom.Type;
+import com.tanpu.common.model.tanpuroom.resp.SysConstantVO;
 import com.tanpu.common.resp.CommonResp;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -204,6 +219,10 @@ public interface ProductApi {
     CommonResp<List<Type>> getFundLikeShortNameInfo(@Valid @NotEmpty(message = "产品名称不能为空") @RequestParam("productName") String productName,
                                                     Pageable page);
 
+    @ApiOperation("私募子策略列表")
+    @GetMapping("/private/substrategyList")
+    CommonResp<List<SysConstantVO>> getSubstrategyList();
+
     //**********************************************************私有基金 end**********************************************************
     @ApiOperation("推荐基金 - 无净值基金")
     @GetMapping("/noNetfund/query/samefund")
diff --git a/src/main/java/com/tanpu/fund/controller/ProductController.java b/src/main/java/com/tanpu/fund/controller/ProductController.java
index 53158c9bfcac6470aa989e604963864dbf3ca31c..b8bdeaf3c01ac1af9f5eb56111cf53be3beca2c0 100644
--- a/src/main/java/com/tanpu/fund/controller/ProductController.java
+++ b/src/main/java/com/tanpu/fund/controller/ProductController.java
@@ -13,6 +13,7 @@ import com.tanpu.common.model.product.req.ProductInfoReq;
 import com.tanpu.common.model.product.req.ProductListReq;
 import com.tanpu.common.model.product.resp.*;
 import com.tanpu.common.model.tanpuroom.Type;
+import com.tanpu.common.model.tanpuroom.resp.SysConstantVO;
 import com.tanpu.common.resp.CommonResp;
 import com.tanpu.fund.api.ProductApi;
 import com.tanpu.fund.feign.publicfund.FeignClientForPublicfund;
@@ -255,6 +256,11 @@ public class ProductController implements ProductApi {
         return CommonResp.success(this.productService.getFundLikeShortName(productName, page));
     }
 
+    @Override
+    public CommonResp<List<SysConstantVO>> getSubstrategyList() {
+        return CommonResp.success(this.productPrivateService.getSubstrategyList());
+    }
+
     @TanpuInterfaceLoginAuth
     @Override
     public CommonResp<List<FundSameResp>> getNoNetfund(String fundId) {
diff --git a/src/main/java/com/tanpu/fund/service/ProductPrivateService.java b/src/main/java/com/tanpu/fund/service/ProductPrivateService.java
index 40679b0546f8d2902049dbb94b3f020303d95763..664b3521277837471f5abf6e67013d21935cfa89 100644
--- a/src/main/java/com/tanpu/fund/service/ProductPrivateService.java
+++ b/src/main/java/com/tanpu/fund/service/ProductPrivateService.java
@@ -7,6 +7,8 @@ import com.tanpu.common.model.product.req.ProductInfoReq;
 import com.tanpu.common.model.product.req.ProductListReq;
 import com.tanpu.common.model.product.resp.*;
 import com.tanpu.common.model.tanpuroom.Type;
+import com.tanpu.common.model.tanpuroom.resp.SysConstantVO;
+import com.tanpu.common.resp.CommonResp;
 
 import java.util.List;
 
@@ -37,7 +39,7 @@ public interface ProductPrivateService {
 
     List<RiskRatingVO> getRiskRating(String id);
 
-    List<FundManagerVO> getFundManager(String id,String ifaId);
+    List<FundManagerVO> getFundManager(String id, String ifaId);
 
     FundRecordVO getFundRecord(String id);
 
@@ -70,4 +72,6 @@ public interface ProductPrivateService {
     List<FundSameResp> getRemmendPrivateFundList();
 
     List<Type> getSimplePrivateFundList(List<String> list);
+
+    List<SysConstantVO> getSubstrategyList();
 }
diff --git a/src/main/java/com/tanpu/fund/service/impl/ProductPrivateServiceImpl.java b/src/main/java/com/tanpu/fund/service/impl/ProductPrivateServiceImpl.java
index fe3375821437fea06742a84166bd214e68be70ed..3251cb5fc5cf16297f07de80f00acd439053404a 100644
--- a/src/main/java/com/tanpu/fund/service/impl/ProductPrivateServiceImpl.java
+++ b/src/main/java/com/tanpu/fund/service/impl/ProductPrivateServiceImpl.java
@@ -15,10 +15,14 @@ import com.tanpu.common.model.product.req.ProductInfoReq;
 import com.tanpu.common.model.product.req.ProductListReq;
 import com.tanpu.common.model.product.resp.*;
 import com.tanpu.common.model.tanpuroom.Type;
+import com.tanpu.common.model.tanpuroom.resp.SysConstantVO;
+import com.tanpu.common.model.user.resp.SysConstantResp;
+import com.tanpu.common.resp.CommonResp;
 import com.tanpu.common.utils.BigDecimalUtil;
 import com.tanpu.fund.entity.generator.*;
 import com.tanpu.fund.enums.ProTypeEnums;
 import com.tanpu.fund.feign.diagnose.FeignClientForDiagnose;
+import com.tanpu.fund.feign.user.FeignClientForFatools;
 import com.tanpu.fund.mapper.generator.*;
 import com.tanpu.fund.mapper.generator.custom.FundInfoCustomMapper;
 import com.tanpu.fund.service.ProductPrivateService;
@@ -90,6 +94,9 @@ public class ProductPrivateServiceImpl implements ProductPrivateService, Constan
     @Resource
     private FundInfoCustomMapper fundInfoCustomMapper;
 
+    @Resource
+    private FeignClientForFatools feignClientForFatools;
+
     @Override
     public Page<ProductInfoVO> getProductList(ProductInfoReq req) {
         return null;
@@ -528,4 +535,22 @@ public class ProductPrivateServiceImpl implements ProductPrivateService, Constan
     public List<Type> getSimplePrivateFundList(List<String> list) {
         return fundInfoCustomMapper.getSimplePrivateFundList(list.stream().collect(Collectors.joining("','", "'", "'")));
     }
+
+    @Override
+    public List<SysConstantVO> getSubstrategyList() {
+        // tampsubstrategy 私募基金子策略
+        CommonResp<List<SysConstantResp>> resp = feignClientForFatools.queryLabels("tampsubstrategy");
+        if (!resp.isSuccess() || CollectionUtils.isEmpty(resp.getAttributes())) {
+            return Lists.newArrayList();
+        }
+        // 排除不需要的策略(白名单产品策略)
+        List<String> excludeCodes = Lists.newArrayList("9010", "9020", "9030", "9040", "9050", "7030");
+        return resp.attributes.stream().filter(v -> !excludeCodes.contains(v)).map(item -> {
+            SysConstantVO vo = new SysConstantVO();
+            vo.setConstantCode(item.getConstantCode());
+            vo.setConstantName(item.getConstantName());
+            vo.setConstantValue(item.getConstantValue());
+            return vo;
+        }).collect(Collectors.toList());
+    }
 }