@ -5,10 +5,13 @@ import java.text.SimpleDateFormat;
import java.util.* ;
import java.util.* ;
import javax.servlet.http.HttpServletResponse ;
import javax.servlet.http.HttpServletResponse ;
import com.ruoyi.common.core.redis.RedisCache ;
import com.ruoyi.common.utils.StringUtils ;
import com.ruoyi.stocksystem.domain.* ;
import com.ruoyi.stocksystem.domain.* ;
import com.ruoyi.stocksystem.domain.service.IStocksInTrendService ;
import com.ruoyi.stocksystem.domain.service.IStocksInTrendService ;
import com.ruoyi.stocksystem.domain.service.IStocksService ;
import com.ruoyi.stocksystem.domain.service.IStocksService ;
import com.ruoyi.stocksystem.domain.service.ITradeDatesService ;
import com.ruoyi.stocksystem.domain.service.ITradeDatesService ;
import com.ruoyi.stocksystem.service.IStockIndexService ;
import org.springframework.security.access.prepost.PreAuthorize ;
import org.springframework.security.access.prepost.PreAuthorize ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.beans.factory.annotation.Autowired ;
import org.springframework.web.bind.annotation.GetMapping ;
import org.springframework.web.bind.annotation.GetMapping ;
@ -27,6 +30,8 @@ import com.ruoyi.stocksystem.domain.service.ITrendsService;
import com.ruoyi.common.utils.poi.ExcelUtil ;
import com.ruoyi.common.utils.poi.ExcelUtil ;
import com.ruoyi.common.core.page.TableDataInfo ;
import com.ruoyi.common.core.page.TableDataInfo ;
import static com.ruoyi.common.constant.Constants.* ;
/ * *
/ * *
* 动 量 结 果 Controller
* 动 量 结 果 Controller
*
*
@ -49,6 +54,11 @@ public class TrendsController extends BaseController
@Autowired
@Autowired
private IStocksService stocksService ;
private IStocksService stocksService ;
@Autowired
private IStockIndexService stockIndexService ;
@Autowired
private RedisCache redisCache ;
/ * *
/ * *
* 查 询 动 量 结 果 列 表
* 查 询 动 量 结 果 列 表
* /
* /
@ -56,9 +66,18 @@ public class TrendsController extends BaseController
@GetMapping ( "/list" )
@GetMapping ( "/list" )
public TableDataInfo list ( Trends trends )
public TableDataInfo list ( Trends trends )
{
{
// List<Trends> list = redisCache.getCacheList(STOCK_TRENDS + trends.getTradeDay().toString() + "_" + trends.getType());
// System.out.println("redisKey: " + STOCK_TRENDS + trends.getTradeDay().toString() + "_" + trends.getType());
// if(list.isEmpty()) {
// System.out.println("redisKey is Empty.");
// startPage();
//// System.out.println("trendList tradeDay : " + trends.getTradeDay().toString());
//// List<Trends> list = trendsService.selectTrendsList(trends);
// list = trendsService.selectTrendsList(trends);
// redisCache.setCacheList(STOCK_TRENDS + trends.getTradeDay().toString() + "_" + trends.getType(), list);
// }
startPage ( ) ;
startPage ( ) ;
// System.out.println("trendList tradeDay : " + trends.getTradeDay().toString());
List < Trends > list = trendsService . selectTrendsList ( trends ) ;
List < Trends > list = trendsService . selectTrendsList ( trends ) ;
return getDataTable ( list ) ;
return getDataTable ( list ) ;
}
}
@ -77,103 +96,101 @@ public class TrendsController extends BaseController
@GetMapping ( "/querytrendstockslist" )
@GetMapping ( "/querytrendstockslist" )
public TableDataInfo querytrendstockslist ( Trends trends )
public TableDataInfo querytrendstockslist ( Trends trends )
{
{
List < StocksInTrend > result = redisCache . getCacheList ( getHomeTrendsStocks ( trends ) ) ;
if ( result . isEmpty ( ) ) {
// startPage();
// startPage();
System . out . println ( "querytrendstockslist type : " + trends . getType ( ) ) ;
System . out . println ( "querytrendstockslist type : " + trends . getType ( ) ) ;
System . out . println ( "querytrendstockslist tradeDay : " + trends . getTradeDay ( ) . toString ( ) ) ;
System . out . println ( "querytrendstockslist tradeDay : " + trends . getTradeDay ( ) . toString ( ) ) ;
List < Trends > list = trendsService . selectTrendsList ( trends ) ;
List < Trends > list = trendsService . selectTrendsList ( trends ) ;
System . out . println ( "querytrendstockslist : get trends list size : " + list . size ( ) ) ;
System . out . println ( "querytrendstockslist : get trends list size : " + list . size ( ) ) ;
List < StocksInTrend > stocksInTrendList = new ArrayList < StocksInTrend > ( ) ;
List < StocksInTrend > stocksInTrendList = new ArrayList < StocksInTrend > ( ) ;
StocksInTrend stocksInTrend = new StocksInTrend ( ) ;
StocksInTrend stocksInTrend = new StocksInTrend ( ) ;
//获取10日、20日、60日的日期
//获取10日、20日、60日的日期
TradeDates tradeDates = new TradeDates ( ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( trends . getTradeDay ( ) ) ;
tradeDates . setDate ( trends . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 60l ) ;
tradeDates . setLimitCount ( 60l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
boolean has10 = tradeDatesList . size ( ) > = 10 ;
boolean has10 = tradeDatesList . size ( ) > = 10 ;
boolean has20 = tradeDatesList . size ( ) > = 10 ;
boolean has20 = tradeDatesList . size ( ) > = 10 ;
boolean has60 = tradeDatesList . size ( ) > = 10 ;
boolean has60 = tradeDatesList . size ( ) > = 10 ;
Date tradeDay10 ;
Date tradeDay10 ;
if ( has10 )
if ( has10 )
tradeDay10 = tradeDatesList . get ( 9 ) . getDate ( ) ;
tradeDay10 = tradeDatesList . get ( 9 ) . getDate ( ) ;
else
tradeDay10 = tradeDatesList . get ( tradeDatesList . size ( ) - 1 ) . getDate ( ) ;
Date tradeDay20 ;
if ( has20 )
tradeDay20 = tradeDatesList . get ( 19 ) . getDate ( ) ;
else
tradeDay20 = tradeDatesList . get ( tradeDatesList . size ( ) - 1 ) . getDate ( ) ;
Date tradeDay60 ;
if ( has60 )
tradeDay60 = tradeDatesList . get ( 59 ) . getDate ( ) ;
else
tradeDay60 = tradeDatesList . get ( tradeDatesList . size ( ) - 1 ) . getDate ( ) ;
//获取动量板块内的个股
stocksInTrend . setType ( trends . getType ( ) ) ;
stocksInTrend . setTradeDay ( trends . getTradeDay ( ) ) ;
List < StocksInTrend > stocksInTrendList1 = stocksInTrendService . selectStocksInTrendList ( stocksInTrend ) ;
int trendCount = 0 ;
for ( Trends trends1 : list )
{
if ( trendCount > = 20 )
break ;
int trendStockLimit = 5 ;
if ( trendCount < = 9 )
trendStockLimit = 5 ;
else
else
trendStockLimit = 3 ;
tradeDay10 = tradeDatesList . get ( tradeDatesList . size ( ) - 1 ) . getDate ( ) ;
trendCount + + ;
Date tradeDay20 ;
for ( StocksInTrend stocksInTrend1 : stocksInTrendList1 )
if ( has20 )
{
tradeDay20 = tradeDatesList . get ( 19 ) . getDate ( ) ;
if ( trendStockLimit < = 0 )
else
tradeDay20 = tradeDatesList . get ( tradeDatesList . size ( ) - 1 ) . getDate ( ) ;
Date tradeDay60 ;
if ( has60 )
tradeDay60 = tradeDatesList . get ( 59 ) . getDate ( ) ;
else
tradeDay60 = tradeDatesList . get ( tradeDatesList . size ( ) - 1 ) . getDate ( ) ;
//获取动量板块内的个股
stocksInTrend . setType ( trends . getType ( ) ) ;
stocksInTrend . setTradeDay ( trends . getTradeDay ( ) ) ;
List < StocksInTrend > stocksInTrendList1 = stocksInTrendService . selectStocksInTrendList ( stocksInTrend ) ;
int trendCount = 0 ;
for ( Trends trends1 : list ) {
if ( trendCount > = 20 )
break ;
break ;
if ( trends1 . getBlemind2 ( ) . equals ( stocksInTrend1 . getBlemind2 ( ) ) )
int trendStockLimit = 5 ;
{
if ( trendCount < = 9 )
stocksInTrendList . add ( stocksInTrend1 ) ;
trendStockLimit = 5 ;
trendStockLimit - - ;
else
trendStockLimit = 3 ;
trendCount + + ;
for ( StocksInTrend stocksInTrend1 : stocksInTrendList1 ) {
if ( trendStockLimit < = 0 )
break ;
if ( trends1 . getBlemind2 ( ) . equals ( stocksInTrend1 . getBlemind2 ( ) ) ) {
stocksInTrendList . add ( stocksInTrend1 ) ;
trendStockLimit - - ;
}
}
}
}
}
}
Stocks stocks = new Stocks ( ) ;
Stocks stocks = new Stocks ( ) ;
stocks . setTradeDay ( trends . getTradeDay ( ) ) ;
stocks . setTradeDay ( trends . getTradeDay ( ) ) ;
stocks . setStradeDay ( tradeDay20 ) ;
stocks . setStradeDay ( tradeDay20 ) ;
List < Stocks > stocksList = stocksService . selectStocksForHigh ( stocks ) ;
List < Stocks > stocksList = stocksService . selectStocksForHigh ( stocks ) ;
stocks . setStradeDay ( tradeDay10 ) ;
stocks . setStradeDay ( tradeDay10 ) ;
List < Stocks > stocksList10 = stocksService . selectStocksForHigh ( stocks ) ;
List < Stocks > stocksList10 = stocksService . selectStocksForHigh ( stocks ) ;
// List<StocksInTrend> result = new ArrayList<StocksInTrend>();
List < StocksInTrend > result = new ArrayList < StocksInTrend > ( ) ;
for ( StocksInTrend stocksInTrend1 : stocksInTrendList ) {
for ( StocksInTrend stocksInTrend1 : stocksInTrendList )
for ( Stocks stocks1 : stocksList ) {
{
if ( stocks1 . getCode ( ) . equals ( stocksInTrend1 . getCode ( ) ) ) {
for ( Stocks stocks1 : stocksList )
//计算
{
BigDecimal current = stocksInTrend1 . getClose ( ) ;
if ( stocks1 . getCode ( ) . equals ( stocksInTrend1 . getCode ( ) ) )
BigDecimal high = stocks1 . getClose ( ) ;
{
BigDecimal diff = current . subtract ( high ) ;
//计算
BigDecimal hresult = diff . divide ( high , 2 , BigDecimal . ROUND_HALF_UP ) . multiply ( new BigDecimal ( "100" ) ) ;
BigDecimal current = stocksInTrend1 . getClose ( ) ;
System . out . println ( "20 code : " + stocksInTrend1 . getCode ( ) + " currentClose: " + current + " highClose: " + high + " diff: " + diff + " res: " + hresult ) ;
BigDecimal high = stocks1 . getClose ( ) ;
stocksInTrend1 . setBackDifferrange20 ( hresult ) ;
BigDecimal diff = current . subtract ( high ) ;
BigDecimal hresult = diff . divide ( high , 2 , BigDecimal . ROUND_HALF_UP ) . multiply ( new BigDecimal ( "100" ) ) ;
System . out . println ( "20 code : " + stocksInTrend1 . getCode ( ) + " currentClose: " + current + " highClose: " + high + " diff: " + diff + " res: " + hresult ) ;
stocksInTrend1 . setBackDifferrange20 ( hresult ) ;
// result.add(stocksInTrend1);
// result.add(stocksInTrend1);
break ;
break ;
}
}
}
}
for ( Stocks stocks2 : stocksList10 )
for ( Stocks stocks2 : stocksList10 ) {
{
if ( stocks2 . getCode ( ) . equals ( stocksInTrend1 . getCode ( ) ) ) {
if ( stocks2 . getCode ( ) . equals ( stocksInTrend1 . getCode ( ) ) )
//计算
{
BigDecimal current = stocksInTrend1 . getClose ( ) ;
//计算
BigDecimal high = stocks2 . getClose ( ) ;
BigDecimal current = stocksInTrend1 . getClose ( ) ;
BigDecimal diff = current . subtract ( high ) ;
BigDecimal high = stocks2 . getClose ( ) ;
BigDecimal hresult = diff . divide ( high , 2 , BigDecimal . ROUND_HALF_UP ) . multiply ( new BigDecimal ( "100" ) ) ;
BigDecimal diff = current . subtract ( high ) ;
System . out . println ( "10 code : " + stocksInTrend1 . getCode ( ) + " currentClose: " + current + " highClose: " + high + " diff: " + diff + " res: " + hresult ) ;
BigDecimal hresult = diff . divide ( high , 2 , BigDecimal . ROUND_HALF_UP ) . multiply ( new BigDecimal ( "100" ) ) ;
stocksInTrend1 . setBackDifferrange10 ( hresult ) ;
System . out . println ( "10 code : " + stocksInTrend1 . getCode ( ) + " currentClose: " + current + " highClose: " + high + " diff: " + diff + " res: " + hresult ) ;
break ;
stocksInTrend1 . setBackDifferrange10 ( hresult ) ;
}
break ;
}
}
result . add ( stocksInTrend1 ) ;
}
if ( ! result . isEmpty ( ) ) {
redisCache . setCacheList ( getHomeTrendsStocks ( trends ) , result ) ;
redisCache . expire ( getHomeTrendsStocks ( trends ) , EXPIRED_TIME ) ;
}
}
result . add ( stocksInTrend1 ) ;
}
// //遍历获取板块内个股
// //遍历获取板块内个股
// int trendsCount = 0;
// int trendsCount = 0;
@ -232,6 +249,7 @@ public class TrendsController extends BaseController
// stocksInTrendList.add(sit);
// stocksInTrendList.add(sit);
// }
// }
// }
// }
}
System . out . println ( "querytrendstockslist count : " + result . size ( ) ) ;
System . out . println ( "querytrendstockslist count : " + result . size ( ) ) ;
return getDataTable ( result ) ;
return getDataTable ( result ) ;
}
}
@ -242,137 +260,552 @@ public class TrendsController extends BaseController
@GetMapping ( "/listSection" )
@GetMapping ( "/listSection" )
public TableDataInfo listSection ( Trends trends )
public TableDataInfo listSection ( Trends trends )
{
{
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
// startPage();
// startPage();
List < TrendForVue > resultDataList ;
//如果存在搜索条件时, 不走redis, 也不缓存
if ( ! StringUtils . isEmpty ( trends . getBlemind2 ( ) ) )
resultDataList = new ArrayList < > ( ) ;
else
resultDataList = redisCache . getCacheList ( getTrendsRedisKey ( trends ) ) ;
System . out . println ( "redisKey: " + getTrendsRedisKey ( trends ) ) ;
//查询可交易日期
// SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
if ( resultDataList . isEmpty ( ) ) {
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( trends . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 10l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
trends . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
List < Trends > currentTradeDayTrendslist = trendsService . selectTrendsList ( trends ) ;
// List<TrendForVue> resultDataList = new ArrayList<TrendForVue>();
TrendForVue tfv = new TrendForVue ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
for ( Trends ct : currentTradeDayTrendslist ) {
blemind2List . add ( ct . getBlemind2 ( ) ) ;
}
tfv . setDataList ( currentTradeDayTrendslist ) ;
tfv . setTitle ( "2级行业" ) ;
tfv . setIsBlemind2 ( true ) ;
tfv . setSortDataList ( blemind2List ) ;
resultDataList . add ( tfv ) ;
//初始化列表
for ( TradeDates day : tradeDatesList ) {
List < String > sortDataList = new ArrayList < String > ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setIsBlemind2 ( false ) ;
;
tf . setSortDataList ( sortDataList ) ;
resultDataList . add ( tf ) ;
}
for ( Trends trend : currentTradeDayTrendslist ) {
Trends t = new Trends ( ) ;
t . setType ( trends . getType ( ) ) ;
t . setBlemind2 ( trend . getBlemind2 ( ) ) ;
t . setTradeDay ( trends . getTradeDay ( ) ) ;
List < Trends > list = trendsService . selectTrendList ( t ) ;
for ( int i = 1 ; i < resultDataList . size ( ) ; i + + ) {
boolean isHasSort = false ;
for ( Trends ttrend : list ) {
if ( formatter . format ( ttrend . getTradeDay ( ) ) . equals ( resultDataList . get ( i ) . getTitle ( ) ) ) {
resultDataList . get ( i ) . getSortDataList ( ) . add ( ttrend . getSort ( ) . toString ( ) ) ;
isHasSort = true ;
break ;
}
}
if ( ! isHasSort ) {
resultDataList . get ( i ) . getSortDataList ( ) . add ( "-1" ) ;
}
}
}
if ( StringUtils . isEmpty ( trends . getBlemind2 ( ) ) ) {
if ( ! resultDataList . isEmpty ( ) ) {
redisCache . setCacheList ( getTrendsRedisKey ( trends ) , resultDataList ) ;
redisCache . expire ( getTrendsRedisKey ( trends ) , EXPIRED_TIME ) ; //单位秒
}
}
System . out . println ( "redisKey: list is empty." ) ;
}
return getDataTable ( resultDataList ) ;
// //当天的数据在第一列,后面都是以这个为顺序
// List<Trends> currentTradeDayTrendslist = trendsService.selectTrendsList(trends);
// List<List<Trends> > resultDataList = new ArrayList<List<Trends> >();
// resultDataList.add(currentTradeDayTrendslist);
//
// for(Trends trend : currentTradeDayTrendslist)
// {
// Trends t = new Trends();
// t.setType(trends.getType());
// t.setBlemind2(trend.getBlemind2());
// t.setTradeDay(trends.getTradeDay());
// List<Trends> list = trendsService.selectTrendList(t);
// resultDataList.add(list);
// }
//
// return getDataTable(resultDataList);
}
/ * *
* 查 询 行 情 数 据 列 表 含 基 础 数 据
* /
@GetMapping ( "/listTradeVolume" )
public TableDataInfo listTradeVolume ( StockIndex stockIndex )
{
//查询可交易日期
//查询可交易日期
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
// String dateString = formatter.format(currentTime);
TradeDates tradeDates = new TradeDates ( ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( trends . getTradeDay ( ) ) ;
tradeDates . setDate ( stockIndex . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 10l ) ;
tradeDates . setLimitCount ( 10l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
trends . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
stockIndex . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
List < Trends > currentTradeDayTrendslist = trendsService . selectTrendsList ( trends ) ;
List < StockIndex> currentTradeDayStockIndexlist = stockIndexService . selectStockIndexTradeVolumeList ( stockIndex ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
for ( Trends ct : currentTradeDayTrendslist )
for ( StockIndex ct : currentTradeDayStockIndex list)
{
{
blemind2List . add ( ct . getBlemind2 ( ) ) ;
blemind2List . add ( ct . get Name ( ) ) ;
}
}
tfv . setDataList ( currentTradeDayTrendslist ) ;
// tfv.setDataList(currentTradeDayTrendslist);
tfv . setTitle ( "2级行业" ) ;
tfv . setTitle ( "2级行业" ) ;
tfv . setIsBlemind2 ( true ) ;
tfv . setIsBlemind2 ( true ) ;
tfv . setSortDataList ( blemind2List ) ;
tfv . setSortDataList ( blemind2List ) ;
tfv . setRawDataList ( blemind2List ) ;
resultDataList . add ( tfv ) ;
resultDataList . add ( tfv ) ;
//初始化列表
//初始化列表
StockIndex stockIndex1 = new StockIndex ( ) ;
for ( TradeDates day : tradeDatesList )
for ( TradeDates day : tradeDatesList )
{
{
stockIndex1 . setTradeDay ( day . getDate ( ) ) ;
List < StockIndex > trradeDayStockIndexlist = stockIndexService . selectStockIndexTradeVolumeList ( stockIndex1 ) ;
List < String > sortDataList = new ArrayList < String > ( ) ;
List < String > sortDataList = new ArrayList < String > ( ) ;
List < String > amoutsDataList = new ArrayList < String > ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setIsBlemind2 ( false ) ; ;
tf . setIsBlemind2 ( false ) ;
for ( StockIndex stockIndexTmp : currentTradeDayStockIndexlist )
{
boolean isHasSort = false ;
int currentSort = 1 ;
for ( StockIndex stockIndex2 : trradeDayStockIndexlist )
{
if ( stockIndex2 . getCode ( ) . equals ( stockIndexTmp . getCode ( ) ) )
{
// sortDataList.add(stockIndex2.Amountliqmv().toString());
sortDataList . add ( String . valueOf ( currentSort ) ) ; //传输的是排名
amoutsDataList . add ( stockIndex2 . getAmountliqmv ( ) . setScale ( 2 , BigDecimal . ROUND_UP ) . toString ( ) ) ;
currentSort + + ;
isHasSort = true ;
break ;
}
else
{
currentSort + + ;
}
}
if ( ! isHasSort )
{
sortDataList . add ( "-1" ) ;
amoutsDataList . add ( "-1" ) ;
}
}
tf . setSortDataList ( sortDataList ) ;
tf . setSortDataList ( sortDataList ) ;
tf . setRawDataList ( amoutsDataList ) ;
resultDataList . add ( tf ) ;
resultDataList . add ( tf ) ;
}
}
return getDataTable ( resultDataList ) ;
}
for ( Trends trend : currentTradeDayTrendslist )
/ * *
* 查 询 行 情 数 据 列 表 含 基 础 数 据
* /
@GetMapping ( "/listStockIndexLimitUp" )
public TableDataInfo listStockIndexLimitUp ( StockIndex stockIndex )
{
//查询可交易日期
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( stockIndex . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 10l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
stockIndex . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
stockIndex . setOrderParam ( "limitupnum" ) ;
List < StockIndex > currentTradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
for ( StockIndex ct : currentTradeDayStockIndexlist )
{
{
Trends t = new Trends ( ) ;
blemind2List . add ( ct . getName ( ) ) ;
t . setType ( trends . getType ( ) ) ;
}
t . setBlemind2 ( trend . getBlemind2 ( ) ) ;
// tfv.setDataList(currentTradeDayTrendslist);
t . setTradeDay ( trends . getTradeDay ( ) ) ;
tfv . setTitle ( "2级行业" ) ;
List < Trends > list = trendsService . selectTrendList ( t ) ;
tfv . setIsBlemind2 ( true ) ;
for ( int i = 1 ; i < resultDataList . size ( ) ; i + + )
tfv . setSortDataList ( blemind2List ) ;
resultDataList . add ( tfv ) ;
//初始化列表
StockIndex stockIndex1 = new StockIndex ( ) ;
for ( TradeDates day : tradeDatesList )
{
stockIndex1 . setTradeDay ( day . getDate ( ) ) ;
stockIndex1 . setOrderParam ( "limitupnum" ) ;
List < StockIndex > trradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex1 ) ;
List < String > sortDataList = new ArrayList < String > ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setIsBlemind2 ( false ) ;
for ( StockIndex stockIndexTmp : currentTradeDayStockIndexlist )
{
{
boolean isHasSort = false ;
boolean isHasSort = false ;
for ( Trends ttrend : list )
for ( StockIndex stockIndex2 : trradeDayStockIndex list)
{
{
if ( formatter . format ( ttrend . getTradeDay ( ) ) . equals ( resultDataList . get ( i ) . getTitle ( ) ) )
if ( stockIndex2. getCode ( ) . equals ( stockIndexTmp . getCod e( ) ) )
{
{
resultDataList . get ( i ) . getSortDataList ( ) . add ( ttrend . getSort ( ) . toString ( ) ) ;
sortDataList. add ( stockIndex2 . getLimitupnum ( ) . setScale ( 0 , BigDecimal . ROUND_UP ) . toString ( ) ) ;
isHasSort = true ;
isHasSort = true ;
break ;
break ;
}
}
}
}
if ( ! isHasSort )
if ( ! isHasSort )
{
{
resultDataList . get ( i ) . getSortDataList ( ) . add ( "-1" ) ;
sortDataList. add ( "-1" ) ;
}
}
}
}
tf . setSortDataList ( sortDataList ) ;
resultDataList . add ( tf ) ;
}
}
return getDataTable ( resultDataList ) ;
return getDataTable ( resultDataList ) ;
}
// //当天的数据在第一列,后面都是以这个为顺序
/ * *
// List<Trends> currentTradeDayTrendslist = trendsService.selectTrendsList(trends);
* 查 询 行 情 数 据 列 表 含 基 础 数 据
// List<List<Trends> > resultDataList = new ArrayList<List<Trends> >();
* /
// resultDataList.add(currentTradeDayTrendslist);
@GetMapping ( "/listStockIndexLimitDown" )
public TableDataInfo listStockIndexLimitDown ( StockIndex stockIndex )
{
//查询可交易日期
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( stockIndex . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 10l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
stockIndex . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
stockIndex . setOrderParam ( "limitdownnum" ) ;
List < StockIndex > currentTradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
for ( StockIndex ct : currentTradeDayStockIndexlist )
{
blemind2List . add ( ct . getName ( ) ) ;
}
// tfv.setDataList(currentTradeDayTrendslist);
tfv . setTitle ( "2级行业" ) ;
tfv . setIsBlemind2 ( true ) ;
tfv . setSortDataList ( blemind2List ) ;
resultDataList . add ( tfv ) ;
//初始化列表
StockIndex stockIndex1 = new StockIndex ( ) ;
for ( TradeDates day : tradeDatesList )
{
stockIndex1 . setTradeDay ( day . getDate ( ) ) ;
stockIndex1 . setOrderParam ( "limitdownnum" ) ;
List < StockIndex > trradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex1 ) ;
List < String > sortDataList = new ArrayList < String > ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setIsBlemind2 ( false ) ;
for ( StockIndex stockIndexTmp : currentTradeDayStockIndexlist )
{
boolean isHasSort = false ;
for ( StockIndex stockIndex2 : trradeDayStockIndexlist )
{
if ( stockIndex2 . getCode ( ) . equals ( stockIndexTmp . getCode ( ) ) )
{
sortDataList . add ( stockIndex2 . getLimitdownnum ( ) . toString ( ) ) ;
isHasSort = true ;
break ;
}
}
if ( ! isHasSort )
{
sortDataList . add ( "-1" ) ;
}
}
tf . setSortDataList ( sortDataList ) ;
resultDataList . add ( tf ) ;
}
return getDataTable ( resultDataList ) ;
}
/ * *
* 查 询 行 情 数 据 列 表 含 基 础 数 据
* /
@GetMapping ( "/listStockIndexHighRocord" )
public TableDataInfo listStockIndexHighRocord ( StockIndex stockIndex )
{
//查询可交易日期
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( stockIndex . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 10l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
stockIndex . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
stockIndex . setOrderParam ( "rcnthigh" ) ;
List < StockIndex > currentTradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
for ( StockIndex ct : currentTradeDayStockIndexlist )
{
blemind2List . add ( ct . getName ( ) ) ;
}
// tfv.setDataList(currentTradeDayTrendslist);
tfv . setTitle ( "2级行业" ) ;
tfv . setIsBlemind2 ( true ) ;
tfv . setSortDataList ( blemind2List ) ;
resultDataList . add ( tfv ) ;
//初始化列表
StockIndex stockIndex1 = new StockIndex ( ) ;
for ( TradeDates day : tradeDatesList )
{
stockIndex1 . setTradeDay ( day . getDate ( ) ) ;
stockIndex1 . setOrderParam ( "rcnthigh" ) ;
List < StockIndex > trradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex1 ) ;
List < String > sortDataList = new ArrayList < String > ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setIsBlemind2 ( false ) ;
for ( StockIndex stockIndexTmp : currentTradeDayStockIndexlist )
{
boolean isHasSort = false ;
for ( StockIndex stockIndex2 : trradeDayStockIndexlist )
{
if ( stockIndex2 . getCode ( ) . equals ( stockIndexTmp . getCode ( ) ) )
{
sortDataList . add ( stockIndex2 . getRcnthigh ( ) . equals ( "是" ) ? "1" : "-1" ) ;
isHasSort = true ;
break ;
}
}
if ( ! isHasSort )
{
sortDataList . add ( "-1" ) ;
}
}
tf . setSortDataList ( sortDataList ) ;
resultDataList . add ( tf ) ;
}
return getDataTable ( resultDataList ) ;
}
/ * *
* 查 询 行 情 数 据 列 表 含 基 础 数 据
* /
@GetMapping ( "/listStockIndexLowRocord" )
public TableDataInfo listStockIndexLowRocord ( StockIndex stockIndex )
{
//查询可交易日期
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( stockIndex . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 10l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
stockIndex . setTradeDay ( tradeDatesList . get ( 0 ) . getDate ( ) ) ;
stockIndex . setOrderParam ( "rcntlow" ) ;
List < StockIndex > currentTradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
List < String > blemind2List = new ArrayList < String > ( ) ;
for ( StockIndex ct : currentTradeDayStockIndexlist )
{
blemind2List . add ( ct . getName ( ) ) ;
}
// tfv.setDataList(currentTradeDayTrendslist);
tfv . setTitle ( "2级行业" ) ;
tfv . setIsBlemind2 ( true ) ;
tfv . setSortDataList ( blemind2List ) ;
resultDataList . add ( tfv ) ;
//初始化列表
StockIndex stockIndex1 = new StockIndex ( ) ;
for ( TradeDates day : tradeDatesList )
{
stockIndex1 . setTradeDay ( day . getDate ( ) ) ;
stockIndex1 . setOrderParam ( "rcntlow" ) ;
List < StockIndex > trradeDayStockIndexlist = stockIndexService . selectStockIndexRecordsList ( stockIndex1 ) ;
List < String > sortDataList = new ArrayList < String > ( ) ;
TrendForVue tf = new TrendForVue ( ) ;
tf . setTitle ( formatter . format ( day . getDate ( ) ) ) ;
tf . setIsBlemind2 ( false ) ;
for ( StockIndex stockIndexTmp : currentTradeDayStockIndexlist )
{
boolean isHasSort = false ;
for ( StockIndex stockIndex2 : trradeDayStockIndexlist )
{
if ( stockIndex2 . getCode ( ) . equals ( stockIndexTmp . getCode ( ) ) )
{
sortDataList . add ( stockIndex2 . getRcntlow ( ) . equals ( "是" ) ? "1" : "-1" ) ;
isHasSort = true ;
break ;
}
}
if ( ! isHasSort )
{
sortDataList . add ( "-1" ) ;
}
}
tf . setSortDataList ( sortDataList ) ;
resultDataList . add ( tf ) ;
}
return getDataTable ( resultDataList ) ;
}
// /**
// * 查询行情数据列表含基础数据 2022-08-13原实现
// */
// @GetMapping("/listSectionByBlemind")
// public TableDataInfo listSectionByBlemind(Trends trends)
// {
// SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
//
//
// for(Trends trend : currentTradeDayTrendslist)
// TradeDates tradeDates = new TradeDates();
// tradeDates.setDate(trends.getTradeDay());
// tradeDates.setLimitCount(90l);
// List<TradeDates> tradeDatesList = tradeDatesService.selectTradeDatesListB(tradeDates);
//
// List<TrendForVue> resultDataList = new ArrayList<TrendForVue>();
// TrendForVue tfv = new TrendForVue();
// List<String> xAxisDataList = new ArrayList<String>();
// List<String> seriesDataList = new ArrayList<String>();
// for(TradeDates tradeDates1 : tradeDatesList)
// {
// {
// xAxisDataList.add(formatter.format(tradeDates1.getDate()));
// Trends t = new Trends();
// Trends t = new Trends();
// t.setType(trends.getType());
// t.setType(trends.getType());
// t.setBlemind2(trend.getBlemind2());
// t.setBlemind2(trends.getBlemind2());
// t.setTradeDay(trends.getTradeDay());
// t.setTradeDay(tradeDates1.getDate());
// t.setLimitCount(1l);
// List<Trends> list = trendsService.selectTrendList(t);
// List<Trends> list = trendsService.selectTrendList(t);
// resultDataList.add(list);
// if(list.size() <= 0)
// {
// seriesDataList.add("100");
// }
// else {
// for (Trends ttrend : list) {
// if (formatter.format(ttrend.getTradeDay()).equals(formatter.format(tradeDates1.getDate()))) {
// seriesDataList.add(ttrend.getSort().toString());
// } else {
// seriesDataList.add("100");
// }
// }
// }
//
// }
// }
// tfv.setTitle("交易日期");
// tfv.setSortDataList(xAxisDataList);
// resultDataList.add(tfv);
//
//
// TrendForVue tfvSeries = new TrendForVue();
// tfvSeries.setTitle("Series");
// tfvSeries.setSortDataList(seriesDataList);
// resultDataList.add(tfvSeries);
// return getDataTable(resultDataList);
// return getDataTable(resultDataList);
}
// }
/ * *
/ * *
* 查 询 行 情 数 据 列 表 含 基 础 数 据
* 查 询 板块 动 量 值
* /
* /
@GetMapping ( "/listSectionByBlemind" )
@GetMapping ( "/listSectionByBlemind" )
public TableDataInfo listSectionByBlemind ( Trends trends )
public TableDataInfo listSectionByBlemind ( Trends trends )
{
{
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
String redisKey = getSectionByBlemindRedisKey ( trends ) ;
List < TrendForVue > resultDataList = redisCache . getCacheList ( redisKey ) ;
if ( resultDataList . isEmpty ( ) ) {
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
TradeDates tradeDates = new TradeDates ( ) ;
TradeDates tradeDates = new TradeDates ( ) ;
tradeDates . setDate ( trends . getTradeDay ( ) ) ;
tradeDates . setDate ( trends . getTradeDay ( ) ) ;
tradeDates . setLimitCount ( 90l ) ;
tradeDates . setLimitCount ( 90l ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
List < TradeDates > tradeDatesList = tradeDatesService . selectTradeDatesListB ( tradeDates ) ;
List < TrendForVue > resultDataList = new ArrayList < TrendForVue > ( ) ;
TrendForVue tfv = new TrendForVue ( ) ;
List < String > xAxisDataList = new ArrayList < String > ( ) ;
List < String > seriesDataList = new ArrayList < String > ( ) ;
for ( TradeDates tradeDates1 : tradeDatesList )
{
xAxisDataList . add ( formatter . format ( tradeDates1 . getDate ( ) ) ) ;
Trends t = new Trends ( ) ;
Trends t = new Trends ( ) ;
t . setType ( trends . getType ( ) ) ;
t . setType ( trends . getType ( ) ) ;
t . setBlemind2 ( trends . getBlemind2 ( ) ) ;
t . setBlemind2 ( trends . getBlemind2 ( ) ) ;
t . setTradeDay ( tradeDates1 . getDate ( ) ) ;
t . setTradeDay ( trends . getTradeDay ( ) ) ;
t . setLimitCount ( 1l ) ;
t . setLimitCount ( 90l ) ;
List < Trends > list = trendsService . selectTrendList ( t ) ;
List < Trends > tradeDatesTrendsList = trendsService . selectTrendList ( t ) ;
if ( list . size ( ) < = 0 )
{
// List<TrendForVue> resultDataList = new ArrayList<TrendForVue>();
seriesDataList . add ( "100" ) ;
TrendForVue tfv = new TrendForVue ( ) ;
}
List < String > xAxisDataList = new ArrayList < String > ( ) ;
else {
List < String > seriesDataList = new ArrayList < String > ( ) ;
for ( Trends ttrend : list ) {
List < String > rawDataList = new ArrayList < String > ( ) ;
if ( formatter . format ( ttrend . getTradeDay ( ) ) . equals ( formatter . format ( tradeDates1 . getDate ( ) ) ) ) {
int trendsCount = tradeDatesTrendsList . size ( ) ;
seriesDataList . add ( ttrend . getSort ( ) . toString ( ) ) ;
int tradeDatesCount = tradeDatesList . size ( ) ;
} else {
for ( int i = 0 ; i < tradeDatesCount ; i + + ) {
xAxisDataList . add ( formatter . format ( tradeDatesList . get ( i ) . getDate ( ) ) ) ;
if ( i < trendsCount ) {
boolean isFound = false ;
for ( Trends ttrend : tradeDatesTrendsList ) {
if ( formatter . format ( ttrend . getTradeDay ( ) ) . equals ( formatter . format ( tradeDatesList . get ( i ) . getDate ( ) ) ) ) {
seriesDataList . add ( ttrend . getSort ( ) . toString ( ) ) ;
rawDataList . add ( ttrend . getTrendValue ( ) . toString ( ) ) ;
isFound = true ;
break ;
}
}
if ( ! isFound ) {
seriesDataList . add ( "100" ) ;
seriesDataList . add ( "100" ) ;
rawDataList . add ( "0" ) ;
}
}
} else {
seriesDataList . add ( "100" ) ;
rawDataList . add ( "0" ) ;
}
}
}
}
}
tfv . setTitle ( "交易日期" ) ;
tfv . setTitle ( "交易日期" ) ;
tfv . setSortDataList ( xAxisDataList ) ;
tfv . setSortDataList ( xAxisDataList ) ;
resultDataList . add ( tfv ) ;
resultDataList . add ( tfv ) ;
TrendForVue tfvSeries = new TrendForVue ( ) ;
tfvSeries . setTitle ( "Series" ) ;
tfvSeries . setSortDataList ( seriesDataList ) ;
tfvSeries . setRawDataList ( rawDataList ) ;
resultDataList . add ( tfvSeries ) ;
TrendForVue tfvSeries = new TrendForVue ( ) ;
if ( ! resultDataList . isEmpty ( ) ) {
tfvSeries . setTitle ( "Series" ) ;
redisCache . setCacheList ( redisKey , resultDataList ) ;
tfvSeries . setSortDataList ( seriesDataList ) ;
redisCache . expire ( redisKey , EXPIRED_TIME ) ;
resultDataList . add ( tfvSeries ) ;
}
}
return getDataTable ( resultDataList ) ;
return getDataTable ( resultDataList ) ;
}
}
@ -431,4 +864,22 @@ public class TrendsController extends BaseController
{
{
return toAjax ( trendsService . deleteTrendsByIds ( ids ) ) ;
return toAjax ( trendsService . deleteTrendsByIds ( ids ) ) ;
}
}
private String getTrendsRedisKey ( Trends trends )
{
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
return TRENDS + formatter . format ( trends . getTradeDay ( ) ) + "_" + trends . getType ( ) ;
}
private String getHomeTrendsStocks ( Trends trends )
{
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
return HOME_TRENDS_STOCKS + formatter . format ( trends . getTradeDay ( ) ) + "_" + trends . getType ( ) ;
}
private String getSectionByBlemindRedisKey ( Trends trends )
{
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
return TRENDS_SECTION_BLEMIND + formatter . format ( trends . getTradeDay ( ) ) + "_" + trends . getBlemind2 ( ) + "_" + trends . getType ( ) ;
}
}
}