Commit 40b95287 authored by 张亚辉's avatar 张亚辉

Merge branch 'v2.0.0' into dev

parents 5422f046 846b8ad4
......@@ -185,7 +185,7 @@ public interface ProductApi {
CommonResp<Long> getFundRankCountInfo(@RequestBody FundRankReq req);
@ApiOperation("公募基金模糊匹配")
@GetMapping("/public/like")
@GetMapping("/private/like")
CommonResp<List<Type>> getFundLikeShortNameInfo(@Valid @NotEmpty(message = "产品名称不能为空") @RequestParam("productName") String productName,
Pageable page);
}
......@@ -55,6 +55,6 @@ public interface FundInfoCustomMapper {
@Select("select t.id as id, t.fund_name as `value` from ifa_imported_fund_info t where t.id in(${list})")
List<Type> getSimplePrivateFundList(@Param("list") String list);
@Select("select t.id as id,t.fund_short_name as value from tx_fund_info t where t.fund_short_name like #{productName}")
@Select("select t.id as id,t.fund_short_name as value from fund_info t where t.fund_short_name like #{productName}")
List<Type> getFundInfoLikeName(@Param("productName") String productName);
}
......@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.github.pagehelper.page.PageMethod;
......@@ -1873,102 +1872,59 @@ public class ProductServiceImpl implements ProductService, Constant {
beginTime = DateUtil.offset(endTime, DateField.YEAR, -5);
} else if (req.getInceptionDate() == 5) {
endTime = DateUtil.offset(DateUtil.beginOfYear(beginYear), DateField.YEAR, -2);
beginTime = DateUtil.offset(endTime, DateField.YEAR, -5);
beginTime = DateUtil.offset(beginYear, DateField.YEAR, -5);
} else {
endTime = DateUtil.endOfDay(new Date());
beginTime = beginYear;
}
criteria.andInceptionDateBetween(beginTime, endTime);
if (req.getInceptionDate() != 5) {
criteria.andInceptionDateBetween(beginTime, endTime);
} else {
criteria.andInceptionDateLessThanOrEqualTo(beginTime);
}
}
}
private void filterSort(FundRankReq req, FundCountExample example) {
if (StringUtils.isNotEmpty(req.getRank())) {
String sort = null;
switch (req.getRank()) {
case "day":
sort = "ret_1day ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "week":
sort = "ret_1w ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "month":
sort = "ret_1m ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "season":
sort = "ret_3m ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "halfAYear":
sort = "ret_6m ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "year":
sort = "ret_1y ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "twoYear":
sort = "ret_2y ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "threeYear":
sort = "ret_3y ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "fiveYear":
sort = "ret_5y ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
case "retIncep":
sort = "ret_incep ";
if (StringUtils.isNotEmpty(req.getRankSort())) {
sort = sort + req.getNetSort();
} else {
sort = sort + "desc,";
}
break;
if (StringUtils.isNotEmpty(req.getRankSort())) {
switch (req.getRank()) {
case "day":
sort = " ret_1day " + req.getRankSort() + " , ";
break;
case "week":
sort = " ret_1w " + req.getRankSort() + " , ";
break;
case "month":
sort = " ret_1m " + req.getRankSort() + " , ";
break;
case "season":
sort = " ret_3m " + req.getRankSort() + " , ";
break;
case "halfAYear":
sort = " ret_6m " + req.getRankSort() + " , ";
break;
case "year":
sort = " ret_1y " + req.getRankSort() + " , ";
break;
case "twoYear":
sort = " ret_2y " + req.getRankSort() + " , ";
break;
case "threeYear":
sort = " ret_3y " + req.getRankSort() + " , ";
break;
case "fiveYear":
sort = " ret_5y " + req.getRankSort() + " , ";
break;
case "retIncep":
sort = " ret_incep " + req.getRankSort() + " , ";
break;
}
}
sort = sort + "net_nav ";
sort = (StringUtils.isEmpty(sort) ? "" : sort) + " net_nav ";
if (StringUtils.isNotEmpty(req.getNetSort())) {
sort = sort + req.getNetSort();
} else {
......@@ -1984,28 +1940,60 @@ public class ProductServiceImpl implements ProductService, Constant {
if (req.getRet1y() != null) {
switch (req.getRet1y().getYear()) {
case "1m":
criteria.andRet1mBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if ("+".equals(req.getRet1y().getEnd())) {
criteria.andRet1mGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet1mBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "3m":
criteria.andRet3mBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if ("+".equals(req.getRet1y().getEnd())) {
criteria.andRet3mGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet3mBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "6m":
criteria.andRet6mBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if ("+".equals(req.getRet1y().getEnd())) {
criteria.andRet6mGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet6mBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "1y":
criteria.andRet1yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if ("+".equals(req.getRet1y().getEnd())) {
criteria.andRet1yGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet1yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "thisY":
criteria.andRetYtdBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if ("+".equals(req.getRet1y().getEnd())) {
criteria.andRetYtdGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRetYtdBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "2y":
criteria.andRet2yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if (req.getRet1y().getEnd().equals("+")) {
criteria.andRet2yGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet2yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "3y":
criteria.andRet3yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if (req.getRet1y().getEnd().equals("+")) {
criteria.andRet3yGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet3yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
case "5y":
criteria.andRet5yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
if (req.getRet1y().getEnd().equals("+")) {
criteria.andRet5yGreaterThanOrEqualTo(new BigDecimal(req.getRet1y().getBegin()));
} else {
criteria.andRet5yBetween(new BigDecimal(req.getRet1y().getBegin()), new BigDecimal(req.getRet1y().getEnd()));
}
break;
}
}
......@@ -2015,25 +2003,53 @@ public class ProductServiceImpl implements ProductService, Constant {
if (req.getMaxdrawdown1y() != null) {
switch (req.getMaxdrawdown1y().getYear()) {
case "1y":
criteria.andMaxdrawdown1yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdown1yLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdown1yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
case "2y":
criteria.andMaxdrawdown2yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdown2yLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdown2yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
case "3y":
criteria.andMaxdrawdown3yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdown3yLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdown3yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
case "4y":
criteria.andMaxdrawdown4yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdown4yLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdown4yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
case "5y":
criteria.andMaxdrawdown5yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdown5yLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdown5yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
case "10y":
criteria.andMaxdrawdown10yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdown10yLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdown10yBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
case "incepY":
criteria.andMaxdrawdownIncepBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
if (("-").equals(req.getMaxdrawdown1y().getBegin())) {
criteria.andMaxdrawdownIncepLessThanOrEqualTo(new BigDecimal(req.getMaxdrawdown1y().getEnd()));
} else {
criteria.andMaxdrawdownIncepBetween(new BigDecimal(req.getMaxdrawdown1y().getBegin()), new BigDecimal(req.getMaxdrawdown1y().getEnd()));
}
break;
}
}
......@@ -2043,25 +2059,53 @@ public class ProductServiceImpl implements ProductService, Constant {
if (req.getStddev1y() != null) {
switch (req.getStddev1y().getYear()) {
case "1y":
criteria.andStddev1yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddev1yGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddev1yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
case "2y":
criteria.andStddev2yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddev2yGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddev2yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
case "3y":
criteria.andStddev3yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddev3yGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddev3yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
case "4y":
criteria.andStddev4yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddev4yGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddev4yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
case "5y":
criteria.andStddev5yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddev5yGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddev5yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
case "10y":
criteria.andStddev10yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddev10yGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddev10yBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
case "incepY":
criteria.andStddevIncepBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
if ("+".equals(req.getStddev1y().getEnd())) {
criteria.andStddevIncepGreaterThanOrEqualTo(new BigDecimal(req.getStddev1y().getBegin()));
} else {
criteria.andStddevIncepBetween(new BigDecimal(req.getStddev1y().getBegin()), new BigDecimal(req.getStddev1y().getEnd()));
}
break;
}
}
......@@ -2069,24 +2113,48 @@ public class ProductServiceImpl implements ProductService, Constant {
private void filterSharpertio(FundRankReq req, FundCountExample.Criteria criteria) {
if (req.getSharperatio1y() != null) {
switch (req.getStddev1y().getYear()) {
switch (req.getSharperatio1y().getYear()) {
case "1y":
criteria.andSharperatio1yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
if ("+".equals(req.getSharperatio1y().getEnd())) {
criteria.andSharperatio1yGreaterThanOrEqualTo(new BigDecimal(req.getSharperatio1y().getBegin()));
} else {
criteria.andSharperatio1yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
}
break;
case "2y":
criteria.andSharperatio2yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
if ("+".equals(req.getSharperatio1y().getEnd())) {
criteria.andSharperatio2yGreaterThanOrEqualTo(new BigDecimal(req.getSharperatio1y().getBegin()));
} else {
criteria.andSharperatio2yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
}
break;
case "3y":
criteria.andSharperatio3yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
if ("+".equals(req.getSharperatio1y().getEnd())) {
criteria.andSharperatio3yGreaterThanOrEqualTo(new BigDecimal(req.getSharperatio1y().getBegin()));
} else {
criteria.andSharperatio3yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
}
break;
case "4y":
criteria.andSharperatio4yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
if ("+".equals(req.getSharperatio1y().getEnd())) {
criteria.andSharperatio4yGreaterThanOrEqualTo(new BigDecimal(req.getSharperatio1y().getBegin()));
} else {
criteria.andSharperatio4yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
}
break;
case "5y":
criteria.andSharperatio5yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
if ("+".equals(req.getSharperatio1y().getEnd())) {
criteria.andSharperatio5yGreaterThanOrEqualTo(new BigDecimal(req.getSharperatio1y().getBegin()));
} else {
criteria.andSharperatio5yBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
}
break;
case "incepY":
criteria.andSharperatioIncepBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
if ("+".equals(req.getSharperatio1y().getEnd())) {
criteria.andSharperatioIncepGreaterThanOrEqualTo(new BigDecimal(req.getSharperatio1y().getBegin()));
} else {
criteria.andSharperatioIncepBetween(new BigDecimal(req.getSharperatio1y().getBegin()), new BigDecimal(req.getSharperatio1y().getEnd()));
}
break;
}
}
......
......@@ -10,8 +10,8 @@ management.endpoints.web.base-path = /myhealth
management.endpoint.health.enabled=true
management.endpoint.health.show-details=always
spring.datasource.url=jdbc:mysql://118.190.63.109:3306/tamp_fund?autoReconnect=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://rm-uf6r22t3d798q4kmkao.mysql.rds.aliyuncs.com:3306/tamp_fund?autoReconnect=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=tamp_admin
spring.datasource.password= @imeng123
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
......
......@@ -41,12 +41,11 @@
res.ishigh_or_low as ishighOrLow,
res.tohigh_nav_ratio as tohighNavRatio
from
(SELECT * FROM fund_nav WHERE fund_id in
(SELECT fund_id, max(price_date) as price_date FROM fund_nav WHERE fund_id in
<foreach close=")" collection="list" item="fundId" open="(" separator=",">
#{fundId}
</foreach>
order BY price_date desc) res
GROUP BY res.fund_id
</foreach> GROUP by fund_id) t
left join fund_nav res on t.fund_id = res.fund_id and t.price_date = res.price_date
</select>
<select id="getPrivateFundInfoNewNet" parameterType="java.lang.String" resultType="com.tanpu.fund.entity.generator.FundNav">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment