Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
stockPriceTack
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘长帅
stockPriceTack
Commits
3e08bcd1
Commit
3e08bcd1
authored
Dec 22, 2022
by
刘长帅
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
股票年限-980
parent
e1f5d8cd
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
241 additions
and
1 deletion
+241
-1
RedisKeyBeanForTask.java
...market/common/bean/followAccount/RedisKeyBeanForTask.java
+8
-1
CodeYearData.java
.../com/zfxftech/telmarket/common/pojo/dao/CodeYearData.java
+49
-0
CodeYearDataMapper.java
...fxftech/telmarket/mapper/business/CodeYearDataMapper.java
+18
-0
CodeYearDataService.java
...ftech/telmarket/service/business/CodeYearDataService.java
+11
-0
CodeYearDataServiceImpl.java
...market/service/impl/business/CodeYearDataServiceImpl.java
+27
-0
CodeYearDataTask.java
...va/com/zfxftech/telmarket/task/code/CodeYearDataTask.java
+128
-0
No files found.
src/main/java/com/zfxftech/telmarket/common/bean/followAccount/RedisKeyBeanForTask.java
View file @
3e08bcd1
...
@@ -145,6 +145,13 @@ public class RedisKeyBeanForTask {
...
@@ -145,6 +145,13 @@ public class RedisKeyBeanForTask {
return
stockYearDataKey
+
code
+
":"
+
year
+
"-"
+
month
+
day
;
return
stockYearDataKey
+
code
+
":"
+
year
+
"-"
+
month
+
day
;
}
}
//每天下午进行推送数据获取数据时取值为昨天时间
public
static
String
getStockYearDataYesterday
(
String
code
){
Calendar
cal
=
Calendar
.
getInstance
();
int
day
=
cal
.
get
(
Calendar
.
DATE
)-
1
;
int
month
=
cal
.
get
(
Calendar
.
MONTH
)
+
1
;
int
year
=
cal
.
get
(
Calendar
.
YEAR
);
return
stockYearDataKey
+
code
+
":"
+
year
+
"-"
+
month
+
day
;
}
}
}
src/main/java/com/zfxftech/telmarket/common/pojo/dao/CodeYearData.java
0 → 100644
View file @
3e08bcd1
package
com
.
zfxftech
.
telmarket
.
common
.
pojo
.
dao
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
/**
* @Description TODO
* @Author Dell
* @Date 2021/10/26 14:25
*
* 示范盘数据
*/
@Data
@TableName
(
value
=
"code_year_data"
)
public
class
CodeYearData
{
/**
* 唯一标记
*/
@TableId
(
type
=
IdType
.
INPUT
)
private
Long
id
;
/**
* redis缓存时间
*/
private
String
code
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 年线状态
*/
private
Integer
yearStater
;
/**
* 年线价格
*/
private
BigDecimal
yearPrice
;
/**
* 股票价格
*/
private
BigDecimal
codePrice
;
}
\ No newline at end of file
src/main/java/com/zfxftech/telmarket/mapper/business/CodeYearDataMapper.java
0 → 100644
View file @
3e08bcd1
package
com
.
zfxftech
.
telmarket
.
mapper
.
business
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.zfxftech.telmarket.common.pojo.dao.CodeYearData
;
import
org.springframework.stereotype.Repository
;
/**
* 股票年线
*
* @author jianghua
* @version 1.0
* @date 2021-08-24 15:55
*/
@Repository
public
interface
CodeYearDataMapper
extends
BaseMapper
<
CodeYearData
>
{
}
\ No newline at end of file
src/main/java/com/zfxftech/telmarket/service/business/CodeYearDataService.java
0 → 100644
View file @
3e08bcd1
package
com
.
zfxftech
.
telmarket
.
service
.
business
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.zfxftech.telmarket.common.pojo.dao.CodeYearData
;
public
interface
CodeYearDataService
extends
IService
<
CodeYearData
>
{
}
src/main/java/com/zfxftech/telmarket/service/impl/business/CodeYearDataServiceImpl.java
0 → 100644
View file @
3e08bcd1
package
com
.
zfxftech
.
telmarket
.
service
.
impl
.
business
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.zfxftech.telmarket.common.pojo.dao.CodeYearData
;
import
com.zfxftech.telmarket.common.pojo.dao.asset.AssetSendFromLog
;
import
com.zfxftech.telmarket.common.pojo.dao.permission.UsTeamUser
;
import
com.zfxftech.telmarket.mapper.business.CodeYearDataMapper
;
import
com.zfxftech.telmarket.service.business.CodeYearDataService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
/**
* 股票年线
*
* @author jianghua
* @version 1.0
* 股票年线
* @date 2021-08-24 15:55
*/
@Service
public
class
CodeYearDataServiceImpl
extends
ServiceImpl
<
CodeYearDataMapper
,
CodeYearData
>
implements
CodeYearDataService
{
}
src/main/java/com/zfxftech/telmarket/task/code/CodeYearDataTask.java
0 → 100644
View file @
3e08bcd1
package
com
.
zfxftech
.
telmarket
.
task
.
code
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.zfxftech.telmarket.common.bean.CommonResult
;
import
com.zfxftech.telmarket.common.bean.followAccount.RedisKeyBeanForTask
;
import
com.zfxftech.telmarket.common.pojo.dao.CodeYearData
;
import
com.zfxftech.telmarket.common.pojo.dao.Quote
;
import
com.zfxftech.telmarket.common.pojo.dao.StocksCode
;
import
com.zfxftech.telmarket.common.pojo.dao.asset.AssetAccountProductRelation
;
import
com.zfxftech.telmarket.common.util.BigDecimalUtil
;
import
com.zfxftech.telmarket.common.util.ObjectUtil
;
import
com.zfxftech.telmarket.common.util.StringUtil
;
import
com.zfxftech.telmarket.common.util.followAccount.RedisUtilNew
;
import
com.zfxftech.telmarket.service.business.CodeYearDataService
;
import
com.zfxftech.telmarket.service.business.StockCodeService
;
import
com.zfxftech.telmarket.service.followAccount.CommunicationRecordStatisticalLogService
;
import
com.zfxftech.telmarket.task.communication.TimedTaskController
;
import
com.zfxftech.telmarket.task.followAccount.SmartStockPriceTask
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.atomic.AtomicReference
;
/**
* @Description TODO
* @Author Dell
* @Date 2021/11/30 13:16
*/
@Api
(
value
=
"定时股票年线任务相关接口"
,
tags
=
{
"定时任务股票年线相关接口"
})
@RestController
@RequestMapping
(
"/admin/timedTask/code"
)
public
class
CodeYearDataTask
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
CodeYearDataTask
.
class
);
@Autowired
private
CodeYearDataService
codeYearDataService
;
@Autowired
private
RedisUtilNew
redisUtilNew
;
@Autowired
private
StockCodeService
stockCodeService
;
@ApiOperation
(
value
=
"股票年线"
,
notes
=
"股票年线 "
,
httpMethod
=
"GET"
)
@GetMapping
(
"syCodeYearStater"
)
@Scheduled
(
cron
=
"0 0/20 * * * ?"
)
public
CommonResult
syCodeYearStater
()
{
AtomicReference
<
Integer
>
pageNo
=
new
AtomicReference
<>(
1
);
Integer
pageSize
=
400
;
List
<
StocksCode
>
list
=
stockCodeService
.
selectAllStockCode
();
Integer
pageTOtl
=
list
.
size
()
%
pageSize
==
0
?
list
.
size
()
/
pageSize
:
list
.
size
()
/
pageSize
+
1
;
for
(
Integer
i
=
0
;
i
<
pageTOtl
;
i
++)
{
List
<
StocksCode
>
codeList
=
this
.
page
(
list
,
pageNo
.
get
(),
pageSize
);
List
<
CodeYearData
>
codeYearDataList
=
new
ArrayList
<>();
for
(
StocksCode
stocksCode
:
codeList
)
{
try
{
CodeYearData
codeYearData
=
new
CodeYearData
();
//获取
Quote
quote
=
stockCodeService
.
queryStockPrice
(
stocksCode
.
getSymbol
());
if
(
ObjectUtils
.
isEmpty
(
quote
)
||
ObjectUtils
.
isEmpty
(
quote
.
getNow
()))
{
logger
.
info
(
"查询不到redis股票价格数据:{}"
,
stocksCode
.
getSymbol
());
continue
;
}
String
codeYearPrice
=
redisUtilNew
.
get
(
RedisKeyBeanForTask
.
getStockYearDataYesterday
(
stocksCode
.
getSymbol
()));
if
(
StringUtil
.
isEmpty
(
codeYearPrice
))
{
logger
.
info
(
"查询不到redis年线价格数据:{}"
,
stocksCode
.
getSymbol
());
continue
;
}
codeYearData
.
setCode
(
stocksCode
.
getSymbol
());
codeYearData
.
setCreateTime
(
new
Date
());
if
(
BigDecimalUtil
.
compare
(
quote
.
getNow
()
,
new
BigDecimal
(
codeYearPrice
),
1
))
{
codeYearData
.
setYearStater
(
1
);
}
if
(
BigDecimalUtil
.
compare
(
quote
.
getNow
(),
new
BigDecimal
(
codeYearPrice
),
-
1
))
{
codeYearData
.
setYearStater
(-
1
);
}
if
(
BigDecimalUtil
.
compare
(
quote
.
getNow
(),
new
BigDecimal
(
codeYearPrice
),
0
))
{
codeYearData
.
setYearStater
(
0
);
}
codeYearData
.
setCodePrice
(
quote
.
getNow
());
codeYearData
.
setYearPrice
(
new
BigDecimal
(
codeYearPrice
));
LambdaQueryWrapper
<
CodeYearData
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
CodeYearData:
:
getCode
,
stocksCode
.
getSymbol
());
CodeYearData
codeYearDataOld
=
codeYearDataService
.
getOne
(
queryWrapper
);
if
(!
ObjectUtils
.
isEmpty
(
codeYearDataOld
)
&&
!
ObjectUtils
.
isEmpty
(
codeYearDataOld
.
getId
()))
{
codeYearData
.
setId
(
codeYearDataOld
.
getId
());
}
codeYearDataList
.
add
(
codeYearData
);
}
catch
(
Exception
e
)
{
logger
.
info
(
"更新股票年线错误日志:{}"
,
e
);
}
}
pageNo
.
set
(
pageNo
.
get
()
+
1
);
codeYearDataService
.
saveOrUpdateBatch
(
codeYearDataList
);
}
logger
.
info
(
"股票年线状态成功"
);
return
CommonResult
.
success
(
"股票年线状态成功"
);
}
public
List
<
StocksCode
>
page
(
List
<
StocksCode
>
list
,
Integer
pageNo
,
Integer
pageSize
)
{
if
(
CollectionUtils
.
isEmpty
(
list
))
{
return
list
;
}
List
<
StocksCode
>
resultList
=
new
ArrayList
();
// 所有dataList数据中的第几条
int
currIdx
=
pageNo
>
1
?
(
pageNo
-
1
)
*
pageSize
:
0
;
for
(
int
i
=
0
;
i
<
pageSize
&&
i
<
list
.
size
()
-
currIdx
;
i
++)
{
resultList
.
add
(
list
.
get
(
currIdx
+
i
));
}
return
resultList
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment