记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
董敬伟
liquidnet-bus-v1
Commits
f547a5dd
Commit
f547a5dd
authored
Aug 29, 2022
by
GaoHu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug:用户总营收计算错误问题,打款后数据读取修改
parent
7ea3cf66
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
94 additions
and
93 deletions
+94
-93
SmileShowServiceImpl.java
...min/zhengzai/smile/service/impl/SmileShowServiceImpl.java
+94
-93
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/smile/service/impl/SmileShowServiceImpl.java
View file @
f547a5dd
...
@@ -156,12 +156,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -156,12 +156,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
@Override
@Override
public
AjaxResult
price
(
SmilePriceParam
smilePriceParam
)
{
public
AjaxResult
price
(
SmilePriceParam
smilePriceParam
)
{
//查询演出状态
//查询演出状态
AjaxResult
showStatue
=
showStatue
(
smilePriceParam
);
/*
AjaxResult showStatue = showStatue(smilePriceParam);
if (showStatue != null) {
if (showStatue != null) {
return showStatue;
return showStatue;
}
}*/
//该uid本次打款金额
BigDecimal
priceByUid
=
new
BigDecimal
(
"0"
);
//用户是否打款
//用户是否打款
Integer
status
=
smileRedisUtils
.
getShowPriceUid
(
smilePriceParam
.
getPerformancesId
(),
smilePriceParam
.
getUid
());
Integer
status
=
smileRedisUtils
.
getShowPriceUid
(
smilePriceParam
.
getPerformancesId
(),
smilePriceParam
.
getUid
());
if
(
status
!=
null
)
{
if
(
status
!=
null
)
{
...
@@ -202,9 +200,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -202,9 +200,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
smilePriceByUidAndPerId
.
setPerformancesId
(
smilePriceParam
.
getPerformancesId
());
smilePriceByUidAndPerId
.
setPerformancesId
(
smilePriceParam
.
getPerformancesId
());
smilePriceByUidAndPerId
.
setUid
(
smileUser
.
getUid
());
smilePriceByUidAndPerId
.
setUid
(
smileUser
.
getUid
());
smilePriceByUidAndPerId
.
setPrice
(
price
);
smilePriceByUidAndPerId
.
setPrice
(
price
);
if
(
smileUser
.
getUid
().
equals
(
smilePriceParam
.
getUid
()))
{
priceByUid
=
price
;
}
smilePriceByUidAndPerId
.
setCreatedDate
(
LocalDateTime
.
now
());
smilePriceByUidAndPerId
.
setCreatedDate
(
LocalDateTime
.
now
());
String
userDataJson
=
JSON
.
toJSONString
(
userDataByUid
);
String
userDataJson
=
JSON
.
toJSONString
(
userDataByUid
);
...
@@ -223,12 +218,12 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -223,12 +218,12 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
smilePriceUpdate
.
setStatus
(
1
);
smilePriceUpdate
.
setStatus
(
1
);
smilePriceUpdate
.
setUpdatedDate
(
LocalDateTime
.
now
());
smilePriceUpdate
.
setUpdatedDate
(
LocalDateTime
.
now
());
smilePriceMapper
.
update
(
smilePriceUpdate
,
lambdaQueryWrapper
);
smilePriceMapper
.
update
(
smilePriceUpdate
,
lambdaQueryWrapper
);
SmilePrice
smilePrice
=
smilePriceMapper
.
selectOne
(
lambdaQueryWrapper
);
//该用户该演出标记打款
//该用户该演出标记打款
smileRedisUtils
.
setPriceByUid
(
smilePriceParam
.
getPerformancesId
(),
smilePriceParam
.
getUid
());
smileRedisUtils
.
setPriceByUid
(
smilePriceParam
.
getPerformancesId
(),
smilePriceParam
.
getUid
());
//计算总营收
//计算总营收
BigDecimal
userTotalPrice
=
smileRedisUtils
.
getUserTotalPrice
(
smilePriceParam
.
getUid
());
BigDecimal
userTotalPrice
=
smileRedisUtils
.
getUserTotalPrice
(
smilePriceParam
.
getUid
());
smileRedisUtils
.
setUserTotalPrice
(
smilePriceParam
.
getUid
(),
priceByUid
.
add
(
userTotalPrice
));
smileRedisUtils
.
setUserTotalPrice
(
smilePriceParam
.
getUid
(),
smilePrice
.
getPrice
().
add
(
userTotalPrice
));
}
}
return
AjaxResult
.
success
();
return
AjaxResult
.
success
();
}
}
...
@@ -361,10 +356,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -361,10 +356,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
showAgentVoList
.
add
(
showAgentVo
);
showAgentVoList
.
add
(
showAgentVo
);
}
}
//根据演出id查询出所有代理人的销售
List
<
ShowBaseVoDto
>
showBaseVoList
=
smileAgentMapper
.
selectMapByPerId
(
performancesId
);
//根据代理id进行分组
Map
<
String
,
List
<
ShowBaseVoDto
>>
stringListMap
=
showBaseVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getAgentId
));
List
<
String
>
ids
=
ObjectUtil
.
cloneLinkedListStr
();
List
<
String
>
ids
=
ObjectUtil
.
cloneLinkedListStr
();
//创建list长度定位分组数量
//创建list长度定位分组数量
List
<
UserData
>
userDataList
=
new
ArrayList
<>();
List
<
UserData
>
userDataList
=
new
ArrayList
<>();
...
@@ -377,105 +368,115 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -377,105 +368,115 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
for
(
SmilePrice
smilePrice
:
smilePrices
)
{
for
(
SmilePrice
smilePrice
:
smilePrices
)
{
if
(
smilePrice
.
getRecord
()
!=
null
&&
!
smilePrice
.
getRecord
().
equals
(
""
))
{
if
(
smilePrice
.
getRecord
()
!=
null
&&
!
smilePrice
.
getRecord
().
equals
(
""
))
{
UserData
userData
=
JSON
.
parseObject
(
smilePrice
.
getRecord
(),
UserData
.
class
);
UserData
userData
=
JSON
.
parseObject
(
smilePrice
.
getRecord
(),
UserData
.
class
);
//保存打款标识
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
userData
.
getUid
()));
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
userData
.
getUid
()));
userDataList
.
add
(
userData
);
userDataList
.
add
(
userData
);
ids
.
add
(
userData
.
getUid
());
ids
.
add
(
userData
.
getUid
());
}
}
}
}
//遍历分组
//判断该演出是否有打款
for
(
Map
.
Entry
<
String
,
List
<
ShowBaseVoDto
>>
showMap
:
stringListMap
.
entrySet
())
{
Integer
showPriceId
=
smileRedisUtils
.
getShowPriceId
(
performancesId
);
UserData
userData
=
UserData
.
getNew
();
List
<
ShowBaseVoDto
>
showBaseVoDtoList
=
showMap
.
getValue
();
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
//当前list不为null,遍历有数据,方便后期判断是否总代取uid
ShowBaseVoDto
baseVoDto
=
showBaseVoDtoList
.
get
(
0
);
//根据票提id分组 list数量小于等于票提数量
Map
<
String
,
List
<
ShowBaseVoDto
>>
tidMapByUid
=
showBaseVoDtoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getTid
));
//对票提进行遍历(总代没有售出而普代有售出)
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
//为没个uid的没个票提id 塞数据
UserDataAgentVo
userDataAgentVo
=
UserDataAgentVo
.
getNew
();
//有且只有一条
List
<
ShowBaseVoDto
>
showBaseVoDtoS
=
tidMapByUid
.
get
(
smileAgent
.
getTicketsId
());
//判断用户是否卖出该票提
if
(
showBaseVoDtoS
!=
null
&&
showBaseVoDtoS
.
size
()
>
0
)
{
ShowBaseVoDto
showBaseVoDto
=
showBaseVoDtoS
.
get
(
0
);
userDataAgentVo
.
setTicketsId
(
showBaseVoDto
.
getTid
());
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
userDataAgentVo
.
setNumber
(
showBaseVoDto
.
getNumber
());
userDataAgentVo
.
setPrice
(
showBaseVoDto
.
getPrice
());
userDataAgentVo
.
setPriceReal
(
showBaseVoDto
.
getPriceReal
());
// userDataAgentVo.setAgent(showBaseVoDto.getUse());
userDataAgentVo
.
setCommission
(
showBaseVoDto
.
getTotalPrice
().
setScale
(
2
,
RoundingMode
.
HALF_UP
));
}
else
{
//没有买过
userDataAgentVo
.
setTicketsId
(
smileAgent
.
getTicketsId
());
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
userDataAgentVo
.
setNumber
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPrice
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPriceReal
(
new
BigDecimal
(
"0.00"
));
// userDataAgentVo.setAgent(showBaseVoDto.getType() == 1 ? tidMap.get(smileAgent.getTicketsId()).getTotalCarry() : tidMap.get(smileAgent.getTicketsId()).getOrdCarry());
userDataAgentVo
.
setCommission
(
new
BigDecimal
(
"0.00"
));
}
//判断是否为总代
if
(
baseVoDto
.
getType
()
==
1
)
{
//是总代 //在原有的数据上新增加该用户下所有普代的提成
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
baseVoDto
.
getAgentId
(),
smileAgent
.
getTicketsId
());
if
(
orgMap
!=
null
)
{
userDataAgentVo
.
setCommission
((
userDataAgentVo
.
getCommission
().
add
((
BigDecimal
)
orgMap
.
get
(
"totalPrice"
))).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
}
}
userDataAgentVos
.
add
(
userDataAgentVo
);
}
userData
.
setUid
(
showBaseVoDtoList
.
get
(
0
).
getAgentId
());
userData
.
setUsername
(
showBaseVoDtoList
.
get
(
0
).
getName
());
userData
.
setCityName
(
showBaseVoDtoList
.
get
(
0
).
getCity
());
userData
.
setType
(
showBaseVoDtoList
.
get
(
0
).
getType
());
userData
.
setDataAgentVos
(
userDataAgentVos
);
//设置打款状态
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
showBaseVoDtoList
.
get
(
0
).
getAgentId
()));
ids
.
add
(
userData
.
getUid
());
userDataList
.
add
(
userData
);
//缓存用户redis记录 计算
smileRedisUtils
.
setUserDataByUid
(
userData
,
performancesId
);
}
//查询所有代理uid
List
<
SmileUser
>
smileUsers
=
smileUserMapper
.
selectUidByPerId
(
performancesId
);
smileUsers
.
forEach
(
smileUser
->
{
if
(!
ids
.
contains
(
smileUser
.
getUid
()))
{
UserData
userData
=
UserData
.
getNew
();
if
(
showPriceId
==
null
){
//根据演出id查询出所有代理人的销售
List
<
ShowBaseVoDto
>
showBaseVoList
=
smileAgentMapper
.
selectMapByPerId
(
performancesId
);
//根据代理id进行分组
Map
<
String
,
List
<
ShowBaseVoDto
>>
stringListMap
=
showBaseVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getAgentId
));
//遍历分组
for
(
Map
.
Entry
<
String
,
List
<
ShowBaseVoDto
>>
showMap
:
stringListMap
.
entrySet
())
{
UserData
userData
=
UserData
.
getNew
();
List
<
ShowBaseVoDto
>
showBaseVoDtoList
=
showMap
.
getValue
();
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
//当前list不为null,遍历有数据,方便后期判断是否总代取uid
ShowBaseVoDto
baseVoDto
=
showBaseVoDtoList
.
get
(
0
);
//根据票提id分组 list数量小于等于票提数量
Map
<
String
,
List
<
ShowBaseVoDto
>>
tidMapByUid
=
showBaseVoDtoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getTid
));
//对票提进行遍历(总代没有售出而普代有售出)
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
//为没个uid的没个票提id 塞数据
UserDataAgentVo
userDataAgentVo
=
UserDataAgentVo
.
getNew
();
UserDataAgentVo
userDataAgentVo
=
UserDataAgentVo
.
getNew
();
userDataAgentVo
.
setTicketsId
(
smileAgent
.
getTicketsId
());
//有且只有一条
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
List
<
ShowBaseVoDto
>
showBaseVoDtoS
=
tidMapByUid
.
get
(
smileAgent
.
getTicketsId
());
userDataAgentVo
.
setNumber
(
new
BigDecimal
(
0
));
//判断用户是否卖出该票提
userDataAgentVo
.
setPrice
(
new
BigDecimal
(
0
));
if
(
showBaseVoDtoS
!=
null
&&
showBaseVoDtoS
.
size
()
>
0
)
{
userDataAgentVo
.
setPriceReal
(
new
BigDecimal
(
"0.00"
));
ShowBaseVoDto
showBaseVoDto
=
showBaseVoDtoS
.
get
(
0
);
userDataAgentVo
.
setCommission
(
new
BigDecimal
(
"0.00"
));
userDataAgentVo
.
setTicketsId
(
showBaseVoDto
.
getTid
());
userDataAgentVos
.
add
(
userDataAgentVo
);
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
//是总代 //在原有的数据上新增加该用户下所有普代的提成
userDataAgentVo
.
setNumber
(
showBaseVoDto
.
getNumber
());
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
userDataAgentVo
.
setPrice
(
showBaseVoDto
.
getPrice
());
if
(
orgMap
!=
null
)
{
userDataAgentVo
.
setPriceReal
(
showBaseVoDto
.
getPriceReal
());
userDataAgentVo
.
setCommission
((
userDataAgentVo
.
getCommission
().
add
((
BigDecimal
)
orgMap
.
get
(
"totalPrice"
))).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
// userDataAgentVo.setAgent(showBaseVoDto.getUse());
userDataAgentVo
.
setCommission
(
showBaseVoDto
.
getTotalPrice
().
setScale
(
2
,
RoundingMode
.
HALF_UP
));
}
else
{
//没有买过
userDataAgentVo
.
setTicketsId
(
smileAgent
.
getTicketsId
());
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
userDataAgentVo
.
setNumber
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPrice
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPriceReal
(
new
BigDecimal
(
"0.00"
));
// userDataAgentVo.setAgent(showBaseVoDto.getType() == 1 ? tidMap.get(smileAgent.getTicketsId()).getTotalCarry() : tidMap.get(smileAgent.getTicketsId()).getOrdCarry());
userDataAgentVo
.
setCommission
(
new
BigDecimal
(
"0.00"
));
}
}
//判断是否为总代
if
(
baseVoDto
.
getType
()
==
1
)
{
//是总代 //在原有的数据上新增加该用户下所有普代的提成
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
baseVoDto
.
getAgentId
(),
smileAgent
.
getTicketsId
());
if
(
orgMap
!=
null
)
{
userDataAgentVo
.
setCommission
((
userDataAgentVo
.
getCommission
().
add
((
BigDecimal
)
orgMap
.
get
(
"totalPrice"
))).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
}
}
userDataAgentVos
.
add
(
userDataAgentVo
);
}
}
userData
.
setUid
(
showBaseVoDtoList
.
get
(
0
).
getAgentId
());
userData
.
setUid
(
smileUser
.
getUid
());
userData
.
setUsername
(
showBaseVoDtoList
.
get
(
0
).
getName
());
userData
.
setUsername
(
smileUser
.
getName
());
userData
.
setCityName
(
showBaseVoDtoList
.
get
(
0
).
getCity
());
userData
.
setCityName
(
smileUser
.
getCity
());
userData
.
setType
(
showBaseVoDtoList
.
get
(
0
).
getType
());
userData
.
setType
(
smileUser
.
getType
());
userData
.
setDataAgentVos
(
userDataAgentVos
);
userData
.
setDataAgentVos
(
userDataAgentVos
);
//设置打款状态
//设置打款状态
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
s
mileUser
.
getUi
d
()));
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
s
howBaseVoDtoList
.
get
(
0
).
getAgentI
d
()));
ids
.
add
(
userData
.
getUid
());
ids
.
add
(
userData
.
getUid
());
userDataList
.
add
(
userData
);
userDataList
.
add
(
userData
);
//缓存用户redis记录 计算
//缓存用户redis记录 计算
smileRedisUtils
.
setUserDataByUid
(
userData
,
performancesId
);
smileRedisUtils
.
setUserDataByUid
(
userData
,
performancesId
);
}
}
});
//查询所有代理uid
List
<
SmileUser
>
smileUsers
=
smileUserMapper
.
selectUidByPerId
(
performancesId
);
smileUsers
.
forEach
(
smileUser
->
{
if
(!
ids
.
contains
(
smileUser
.
getUid
()))
{
UserData
userData
=
UserData
.
getNew
();
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
UserDataAgentVo
userDataAgentVo
=
UserDataAgentVo
.
getNew
();
userDataAgentVo
.
setTicketsId
(
smileAgent
.
getTicketsId
());
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
userDataAgentVo
.
setNumber
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPrice
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPriceReal
(
new
BigDecimal
(
"0.00"
));
userDataAgentVo
.
setCommission
(
new
BigDecimal
(
"0.00"
));
userDataAgentVos
.
add
(
userDataAgentVo
);
//是总代 //在原有的数据上新增加该用户下所有普代的提成
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
if
(
orgMap
!=
null
)
{
userDataAgentVo
.
setCommission
((
userDataAgentVo
.
getCommission
().
add
((
BigDecimal
)
orgMap
.
get
(
"totalPrice"
))).
setScale
(
2
,
RoundingMode
.
HALF_UP
));
}
}
userData
.
setUid
(
smileUser
.
getUid
());
userData
.
setUsername
(
smileUser
.
getName
());
userData
.
setCityName
(
smileUser
.
getCity
());
userData
.
setType
(
smileUser
.
getType
());
userData
.
setDataAgentVos
(
userDataAgentVos
);
//设置打款状态
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
smileUser
.
getUid
()));
ids
.
add
(
userData
.
getUid
());
userDataList
.
add
(
userData
);
//缓存用户redis记录 计算
smileRedisUtils
.
setUserDataByUid
(
userData
,
performancesId
);
}
});
}
saleDataVo
.
setUserDataList
(
userDataList
);
saleDataVo
.
setUserDataList
(
userDataList
);
saleDataVo
.
setShowAgentVoList
(
showAgentVoList
);
saleDataVo
.
setShowAgentVoList
(
showAgentVoList
);
return
saleDataVo
;
return
saleDataVo
;
...
...
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