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
00ec197d
Commit
00ec197d
authored
Jun 02, 2022
by
liucx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化 只能新4个字段
parent
38646681
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
70 additions
and
14 deletions
+70
-14
StockPositionService.java
...tech/telmarket/service/business/StockPositionService.java
+1
-0
SmartStockPositionService.java
...ket/service/business/smart/SmartStockPositionService.java
+1
-0
StockPositionServiceImpl.java
...arket/service/impl/business/StockPositionServiceImpl.java
+26
-0
SmartStockPositionServiceImpl.java
...ce/impl/business/smart/SmartStockPositionServiceImpl.java
+24
-0
SmartStockPriceTask.java
...ech/telmarket/task/followAccount/SmartStockPriceTask.java
+9
-7
StockPriceTask.java
...zfxftech/telmarket/task/followAccount/StockPriceTask.java
+9
-7
No files found.
src/main/java/com/zfxftech/telmarket/service/business/StockPositionService.java
View file @
00ec197d
...
@@ -138,6 +138,7 @@ public interface StockPositionService extends IService<StockPosition> {
...
@@ -138,6 +138,7 @@ public interface StockPositionService extends IService<StockPosition> {
boolean
selling
(
AccountProductRelation
accountProductRelation
,
StockPosition
stockPosition
,
String
position
,
BigDecimal
currentPrice
,
TradingStrategyParam
tradingStrategyParam
,
UsAdmin
usAdmin
,
Boolean
isPresent
,
StockInputLogTrustSource
trustSource
);
boolean
selling
(
AccountProductRelation
accountProductRelation
,
StockPosition
stockPosition
,
String
position
,
BigDecimal
currentPrice
,
TradingStrategyParam
tradingStrategyParam
,
UsAdmin
usAdmin
,
Boolean
isPresent
,
StockInputLogTrustSource
trustSource
);
MarketDetailsVO
createMarketDetailsVO
(
MemberBase
memberBase
,
List
<
StockPosition
>
stockPositions
,
BigDecimal
funding
,
AccountProductRelation
accountProductRelation
,
Long
marketId
);
MarketDetailsVO
createMarketDetailsVO
(
MemberBase
memberBase
,
List
<
StockPosition
>
stockPositions
,
BigDecimal
funding
,
AccountProductRelation
accountProductRelation
,
Long
marketId
);
MarketDetailsVO
createMarketDetailsVOTask
(
List
<
StockPosition
>
stockPositions
,
BigDecimal
funding
,
AccountProductRelation
accountProductRelation
);
StockVO
createStockVO
(
StockPosition
stockPosition
,
Map
<
String
,
Quote
>
codeAndQuoteMapping
);
StockVO
createStockVO
(
StockPosition
stockPosition
,
Map
<
String
,
Quote
>
codeAndQuoteMapping
);
...
...
src/main/java/com/zfxftech/telmarket/service/business/smart/SmartStockPositionService.java
View file @
00ec197d
...
@@ -129,6 +129,7 @@ public interface SmartStockPositionService {
...
@@ -129,6 +129,7 @@ public interface SmartStockPositionService {
SmartMarketDetailsVO
createMarketDetailsVO
(
MemberBase
memberBase
,
List
<
SmartStockPosition
>
stockPositions
,
BigDecimal
funding
,
SmartAccountProductRelation
accountProductRelation
,
Long
marketId
);
SmartMarketDetailsVO
createMarketDetailsVO
(
MemberBase
memberBase
,
List
<
SmartStockPosition
>
stockPositions
,
BigDecimal
funding
,
SmartAccountProductRelation
accountProductRelation
,
Long
marketId
);
SmartMarketDetailsVO
createMarketDetailsVOTask
(
List
<
SmartStockPosition
>
stockPositions
,
BigDecimal
funding
,
SmartAccountProductRelation
accountProductRelation
);
SmartStockVO
createStockVO
(
SmartStockPosition
stockPosition
,
Map
<
String
,
Quote
>
codeAndQuoteMapping
);
SmartStockVO
createStockVO
(
SmartStockPosition
stockPosition
,
Map
<
String
,
Quote
>
codeAndQuoteMapping
);
...
...
src/main/java/com/zfxftech/telmarket/service/impl/business/StockPositionServiceImpl.java
View file @
00ec197d
...
@@ -1519,6 +1519,32 @@ public class StockPositionServiceImpl extends ServiceImpl<StockPositionMapper, S
...
@@ -1519,6 +1519,32 @@ public class StockPositionServiceImpl extends ServiceImpl<StockPositionMapper, S
}
}
return
marketDetailsVO
;
return
marketDetailsVO
;
}
}
@Override
public
MarketDetailsVO
createMarketDetailsVOTask
(
List
<
StockPosition
>
stockPositions
,
BigDecimal
funding
,
AccountProductRelation
accountProductRelation
)
{
MarketDetailsVO
marketDetailsVO
=
new
MarketDetailsVO
();
List
<
String
>
codes
=
stockPositions
.
stream
().
map
(
StockPosition:
:
getCode
).
collect
(
Collectors
.
toList
());
//批量获取股票当前价格
Map
<
String
,
Quote
>
codeAndPriceMapping
=
stockCodeService
.
batchQueryStockPrice
(
codes
);
//计算股票总市值(当前)
BigDecimal
stocksTotalPrice
=
financeCalculateService
.
calculateTotalAssets
(
stockPositions
,
codeAndPriceMapping
);
//计算总资产 剩余的钱+总市值
BigDecimal
totalPrice
=
BigDecimalUtil
.
add
(
funding
,
stocksTotalPrice
);
//计算仓位 总市值/总资产
BigDecimal
position
=
BigDecimalUtil
.
div
(
stocksTotalPrice
,
totalPrice
);
//盈亏比例
BigDecimal
totalProfitRate
=
financeCalculateService
.
calculateProfitRate
(
totalPrice
,
accountProductRelation
.
getInitialFunding
());
//总盈亏(股票当前市值和成本总值的差值)
BigDecimal
totalProfit
=
financeCalculateService
.
calculateProfit
(
totalPrice
,
accountProductRelation
.
getInitialFunding
());
marketDetailsVO
.
setPosition
(
position
.
toPlainString
());
marketDetailsVO
.
setTotalPrice
(
totalPrice
.
toPlainString
());
marketDetailsVO
.
setTotalProfit
(
totalProfit
.
toPlainString
());
marketDetailsVO
.
setTotalProfitRate
(
totalProfitRate
.
toPlainString
());
return
marketDetailsVO
;
}
@Transactional
(
propagation
=
Propagation
.
REQUIRED
)
@Transactional
(
propagation
=
Propagation
.
REQUIRED
)
@Override
@Override
...
...
src/main/java/com/zfxftech/telmarket/service/impl/business/smart/SmartStockPositionServiceImpl.java
View file @
00ec197d
...
@@ -1356,6 +1356,30 @@ public class SmartStockPositionServiceImpl extends ServiceImpl<SmartStockPositio
...
@@ -1356,6 +1356,30 @@ public class SmartStockPositionServiceImpl extends ServiceImpl<SmartStockPositio
}
}
return
marketDetailsVO
;
return
marketDetailsVO
;
}
}
@Override
public
SmartMarketDetailsVO
createMarketDetailsVOTask
(
List
<
SmartStockPosition
>
stockPositions
,
BigDecimal
funding
,
SmartAccountProductRelation
accountProductRelation
)
{
SmartMarketDetailsVO
marketDetailsVO
=
new
SmartMarketDetailsVO
();
List
<
String
>
codes
=
stockPositions
.
stream
().
map
(
SmartStockPosition:
:
getCode
).
collect
(
Collectors
.
toList
());
//批量获取股票当前价格
Map
<
String
,
Quote
>
codeAndPriceMapping
=
stockCodeService
.
batchQueryStockPrice
(
codes
);
//计算股票总市值(当前)
BigDecimal
stocksTotalPrice
=
smartFinanceCalculateService
.
calculateTotalAssets
(
stockPositions
,
codeAndPriceMapping
);
//计算总值
BigDecimal
totalPrice
=
BigDecimalUtil
.
add
(
funding
,
stocksTotalPrice
);
//计算仓位
BigDecimal
position
=
BigDecimalUtil
.
div
(
stocksTotalPrice
,
totalPrice
);
//盈亏比例
BigDecimal
totalProfitRate
=
smartFinanceCalculateService
.
calculateProfitRate
(
totalPrice
,
accountProductRelation
.
getInitialFunding
());
//总盈亏(股票当前市值和成本总值的差值)
BigDecimal
totalProfit
=
smartFinanceCalculateService
.
calculateProfit
(
totalPrice
,
accountProductRelation
.
getInitialFunding
());
marketDetailsVO
.
setPosition
(
position
.
toPlainString
());
marketDetailsVO
.
setAvailableFunding
(
funding
.
toPlainString
());
marketDetailsVO
.
setTotalPrice
(
totalPrice
.
toPlainString
());
marketDetailsVO
.
setTotalProfit
(
totalProfit
.
toPlainString
());
marketDetailsVO
.
setTotalProfitRate
(
totalProfitRate
.
toPlainString
());
return
marketDetailsVO
;
}
@Override
@Override
public
List
<
SmartStockPosition
>
getCode
(
Long
id
)
{
public
List
<
SmartStockPosition
>
getCode
(
Long
id
)
{
...
...
src/main/java/com/zfxftech/telmarket/task/followAccount/SmartStockPriceTask.java
View file @
00ec197d
...
@@ -167,18 +167,20 @@ public class SmartStockPriceTask implements ApplicationRunner {
...
@@ -167,18 +167,20 @@ public class SmartStockPriceTask implements ApplicationRunner {
//获取所有买入过的股票
//获取所有买入过的股票
List
<
SmartStockPosition
>
stockPositions
=
stockPositionService
.
queryStockPositions
(
marketId
);
List
<
SmartStockPosition
>
stockPositions
=
stockPositionService
.
queryStockPositions
(
marketId
);
//汇总数据
//汇总数据
SmartMarketDetailsVO
marketDetailsVO
=
stockPositionService
.
createMarketDetailsVO
(
memberBase
,
stockPositions
,
funding
,
accountProductRelation
,
marketId
);
SmartMarketDetailsVO
marketDetailsVO
=
stockPositionService
.
createMarketDetailsVO
Task
(
stockPositions
,
funding
,
accountProductRelation
);
//示范盈亏比例
//示范盈亏比例
accountProductRelation
.
setSimulatedTotalProfit
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfitRate
()));
SmartAccountProductRelation
smartAccountProductRelation
=
new
SmartAccountProductRelation
();
smartAccountProductRelation
.
setId
(
accountProductRelation
.
getId
());
smartAccountProductRelation
.
setSimulatedTotalProfit
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfitRate
()));
//示范盘总资产
//示范盘总资产
a
ccountProductRelation
.
setSimulatedTotalPrice
(
new
BigDecimal
(
marketDetailsVO
.
getTotalPrice
()));
smartA
ccountProductRelation
.
setSimulatedTotalPrice
(
new
BigDecimal
(
marketDetailsVO
.
getTotalPrice
()));
//示范持仓比
//示范持仓比
a
ccountProductRelation
.
setSimulatedProportion
(
new
BigDecimal
(
marketDetailsVO
.
getPosition
()));
smartA
ccountProductRelation
.
setSimulatedProportion
(
new
BigDecimal
(
marketDetailsVO
.
getPosition
()));
//示范盘持仓数量
//示范盘持仓数量
a
ccountProductRelation
.
setPositionCount
(
ObjectUtils
.
isEmpty
(
stockPositions
.
size
())
?
0
:
stockPositions
.
size
());
smartA
ccountProductRelation
.
setPositionCount
(
ObjectUtils
.
isEmpty
(
stockPositions
.
size
())
?
0
:
stockPositions
.
size
());
//示范盘盈亏金额
//示范盘盈亏金额
a
ccountProductRelation
.
setProfitAmount
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfit
()));
smartA
ccountProductRelation
.
setProfitAmount
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfit
()));
accountProductRelationService
.
updateAccountProductRelation
(
a
ccountProductRelation
);
accountProductRelationService
.
updateAccountProductRelation
(
smartA
ccountProductRelation
);
}
}
...
...
src/main/java/com/zfxftech/telmarket/task/followAccount/StockPriceTask.java
View file @
00ec197d
...
@@ -164,18 +164,20 @@ public class StockPriceTask implements ApplicationRunner {
...
@@ -164,18 +164,20 @@ public class StockPriceTask implements ApplicationRunner {
//获取所有买入过的股票
//获取所有买入过的股票
List
<
StockPosition
>
stockPositions
=
stockPositionService
.
queryStockPositions
(
marketId
);
List
<
StockPosition
>
stockPositions
=
stockPositionService
.
queryStockPositions
(
marketId
);
//汇总数据
//汇总数据
MarketDetailsVO
marketDetailsVO
=
stockPositionService
.
createMarketDetailsVO
(
memberBase
,
stockPositions
,
funding
,
accountProductRelation
,
marketId
);
MarketDetailsVO
marketDetailsVO
=
stockPositionService
.
createMarketDetailsVOTask
(
stockPositions
,
funding
,
accountProductRelation
);
AccountProductRelation
productRelation
=
new
AccountProductRelation
();
productRelation
.
setId
(
accountProductRelation
.
getId
());
//示范盈亏比例
//示范盈亏比例
accountP
roductRelation
.
setSimulatedTotalProfit
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfitRate
()));
p
roductRelation
.
setSimulatedTotalProfit
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfitRate
()));
//示范盘总资产
//示范盘总资产
accountP
roductRelation
.
setSimulatedTotalPrice
(
new
BigDecimal
(
marketDetailsVO
.
getTotalPrice
()));
p
roductRelation
.
setSimulatedTotalPrice
(
new
BigDecimal
(
marketDetailsVO
.
getTotalPrice
()));
//示范持仓比
//示范持仓比
accountP
roductRelation
.
setSimulatedProportion
(
new
BigDecimal
(
marketDetailsVO
.
getPosition
()));
p
roductRelation
.
setSimulatedProportion
(
new
BigDecimal
(
marketDetailsVO
.
getPosition
()));
//示范盘持仓数量
//示范盘持仓数量
accountP
roductRelation
.
setPositionCount
(
ObjectUtils
.
isEmpty
(
stockPositions
.
size
())
?
0
:
stockPositions
.
size
());
p
roductRelation
.
setPositionCount
(
ObjectUtils
.
isEmpty
(
stockPositions
.
size
())
?
0
:
stockPositions
.
size
());
//示范盘盈亏金额
//示范盘盈亏金额
accountP
roductRelation
.
setProfitAmount
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfit
()));
p
roductRelation
.
setProfitAmount
(
new
BigDecimal
(
marketDetailsVO
.
getTotalProfit
()));
accountProductRelationService
.
updateAccountProductRelation
(
accountP
roductRelation
);
accountProductRelationService
.
updateAccountProductRelation
(
p
roductRelation
);
}
}
...
...
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