记得上下班打卡 | 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
b23c513d
Commit
b23c513d
authored
Sep 20, 2022
by
GaoHu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改提成计算逻辑
parent
46bf3567
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
42 additions
and
71 deletions
+42
-71
UserData.java
...m/liquidnet/client/admin/zhengzai/smile/dto/UserData.java
+4
-0
SmileShowServiceImpl.java
...min/zhengzai/smile/service/impl/SmileShowServiceImpl.java
+24
-65
SmileAgentMapper.java
.../com/liquidnet/service/smile/mapper/SmileAgentMapper.java
+1
-1
SmileAgentMapper.xml
...s/com/liquidnet/service/smile/mapper/SmileAgentMapper.xml
+13
-5
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/smile/dto/UserData.java
View file @
b23c513d
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -50,6 +51,9 @@ public class UserData implements Serializable, Cloneable {
...
@@ -50,6 +51,9 @@ public class UserData implements Serializable, Cloneable {
@ApiModelProperty
(
value
=
"打款状态"
,
example
=
""
)
@ApiModelProperty
(
value
=
"打款状态"
,
example
=
""
)
private
Integer
priceStatus
;
private
Integer
priceStatus
;
@ApiModelProperty
(
value
=
"总佣金"
)
private
BigDecimal
totalCommission
;
private
static
final
UserData
obj
=
new
UserData
();
private
static
final
UserData
obj
=
new
UserData
();
...
...
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 @
b23c513d
...
@@ -372,6 +372,12 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -372,6 +372,12 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
List
<
ShowBaseVoDto
>
showBaseVoList
=
smileAgentMapper
.
selectMapByPerId
(
performancesId
);
List
<
ShowBaseVoDto
>
showBaseVoList
=
smileAgentMapper
.
selectMapByPerId
(
performancesId
);
//根据代理id进行分组
//根据代理id进行分组
Map
<
String
,
List
<
ShowBaseVoDto
>>
stringListMap
=
showBaseVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getAgentId
));
Map
<
String
,
List
<
ShowBaseVoDto
>>
stringListMap
=
showBaseVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getAgentId
));
//所有提成佣金
List
<
Map
<
String
,
Object
>>
agentIdCommissionList
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
);
Map
<
String
,
BigDecimal
>
agentIdMasterMap
=
new
HashMap
<>();
agentIdCommissionList
.
forEach
(
map
->{
agentIdMasterMap
.
put
((
String
)
map
.
get
(
"uid"
),(
BigDecimal
)
map
.
get
(
"totalPrice"
));
});
//遍历分组
//遍历分组
for
(
Map
.
Entry
<
String
,
List
<
ShowBaseVoDto
>>
showMap
:
stringListMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
List
<
ShowBaseVoDto
>>
showMap
:
stringListMap
.
entrySet
())
{
UserData
userData
=
UserData
.
getNew
();
UserData
userData
=
UserData
.
getNew
();
...
@@ -381,6 +387,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -381,6 +387,10 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
ShowBaseVoDto
baseVoDto
=
showBaseVoDtoList
.
get
(
0
);
ShowBaseVoDto
baseVoDto
=
showBaseVoDtoList
.
get
(
0
);
//根据票提id分组 list数量小于等于票提数量
//根据票提id分组 list数量小于等于票提数量
Map
<
String
,
List
<
ShowBaseVoDto
>>
tidMapByUid
=
showBaseVoDtoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getTid
));
Map
<
String
,
List
<
ShowBaseVoDto
>>
tidMapByUid
=
showBaseVoDtoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getTid
));
//总佣金
BigDecimal
totalCommission
=
BigDecimal
.
ZERO
;
//对票提进行遍历(总代没有售出而普代有售出)
//对票提进行遍历(总代没有售出而普代有售出)
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
//为没个uid的没个票提id 塞数据
//为没个uid的没个票提id 塞数据
...
@@ -407,15 +417,18 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -407,15 +417,18 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
// userDataAgentVo.setAgent(showBaseVoDto.getType() == 1 ? tidMap.get(smileAgent.getTicketsId()).getTotalCarry() : tidMap.get(smileAgent.getTicketsId()).getOrdCarry());
// userDataAgentVo.setAgent(showBaseVoDto.getType() == 1 ? tidMap.get(smileAgent.getTicketsId()).getTotalCarry() : tidMap.get(smileAgent.getTicketsId()).getOrdCarry());
userDataAgentVo
.
setCommission
(
BigDecimal
.
ZERO
);
userDataAgentVo
.
setCommission
(
BigDecimal
.
ZERO
);
}
}
//判断是否为特邀代理
totalCommission
=
totalCommission
.
add
(
userDataAgentVo
.
getCommission
());
if
(
baseVoDto
.
getType
()
!=
5
)
{
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
baseVoDto
.
getAgentId
(),
smileAgent
.
getTicketsId
());
if
(
orgMap
!=
null
)
{
userDataAgentVo
.
setCommission
((
userDataAgentVo
.
getCommission
().
add
((
BigDecimal
)
orgMap
.
get
(
"totalPrice"
))).
stripTrailingZeros
());
}
}
userDataAgentVos
.
add
(
userDataAgentVo
);
userDataAgentVos
.
add
(
userDataAgentVo
);
}
}
//判断是否为总代
if
(
baseVoDto
.
getType
()
==
5
)
{
//不是特邀代理 //在原有的数据上新增加该用户下所有普代的提成
if
(
agentIdMasterMap
.
get
(
baseVoDto
.
getAgentId
())
!=
null
)
{
userData
.
setTotalCommission
(
totalCommission
.
add
(
agentIdMasterMap
.
get
(
baseVoDto
.
getAgentId
())).
stripTrailingZeros
());
}
}
else
{
userData
.
setTotalCommission
(
totalCommission
);
}
userData
.
setUid
(
showBaseVoDtoList
.
get
(
0
).
getAgentId
());
userData
.
setUid
(
showBaseVoDtoList
.
get
(
0
).
getAgentId
());
userData
.
setUsername
(
showBaseVoDtoList
.
get
(
0
).
getName
());
userData
.
setUsername
(
showBaseVoDtoList
.
get
(
0
).
getName
());
userData
.
setCityName
(
showBaseVoDtoList
.
get
(
0
).
getCity
());
userData
.
setCityName
(
showBaseVoDtoList
.
get
(
0
).
getCity
());
...
@@ -433,7 +446,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -433,7 +446,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
smileUsers
.
forEach
(
smileUser
->
{
smileUsers
.
forEach
(
smileUser
->
{
if
(!
ids
.
contains
(
smileUser
.
getUid
()))
{
if
(!
ids
.
contains
(
smileUser
.
getUid
()))
{
UserData
userData
=
UserData
.
getNew
();
UserData
userData
=
UserData
.
getNew
();
BigDecimal
price
=
BigDecimal
.
ZERO
;
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
)
{
UserDataAgentVo
userDataAgentVo
=
UserDataAgentVo
.
getNew
();
UserDataAgentVo
userDataAgentVo
=
UserDataAgentVo
.
getNew
();
...
@@ -443,14 +455,11 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -443,14 +455,11 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
userDataAgentVo
.
setPrice
(
BigDecimal
.
ZERO
);
userDataAgentVo
.
setPrice
(
BigDecimal
.
ZERO
);
userDataAgentVo
.
setPriceReal
(
BigDecimal
.
ZERO
);
userDataAgentVo
.
setPriceReal
(
BigDecimal
.
ZERO
);
userDataAgentVo
.
setCommission
(
BigDecimal
.
ZERO
);
userDataAgentVo
.
setCommission
(
BigDecimal
.
ZERO
);
//是总代 //在原有的数据上新增加该用户下所有普代的提成
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
if
(
orgMap
!=
null
)
{
userDataAgentVo
.
setCommission
((
userDataAgentVo
.
getCommission
().
add
((
BigDecimal
)
orgMap
.
get
(
"totalPrice"
))).
stripTrailingZeros
());
}
price
=
price
.
add
(
userDataAgentVo
.
getCommission
());
userDataAgentVos
.
add
(
userDataAgentVo
);
userDataAgentVos
.
add
(
userDataAgentVo
);
}
}
//不是特邀代理 //在原有的数据上新增加该用户下所有普代的提成
BigDecimal
decimal
=
agentIdMasterMap
.
get
(
smileUser
.
getUid
());
userData
.
setTotalCommission
(
decimal
);
userData
.
setUid
(
smileUser
.
getUid
());
userData
.
setUid
(
smileUser
.
getUid
());
userData
.
setUsername
(
smileUser
.
getName
());
userData
.
setUsername
(
smileUser
.
getName
());
userData
.
setCityName
(
smileUser
.
getCity
());
userData
.
setCityName
(
smileUser
.
getCity
());
...
@@ -460,9 +469,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -460,9 +469,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
smileUser
.
getUid
()));
userData
.
setPriceStatus
(
smileRedisUtils
.
getShowPriceUid
(
performancesId
,
smileUser
.
getUid
()));
//缓存用户redis记录 计算
//缓存用户redis记录 计算
smileRedisUtils
.
setUserDataByUid
(
userData
,
performancesId
);
smileRedisUtils
.
setUserDataByUid
(
userData
,
performancesId
);
if
(
price
.
compareTo
(
BigDecimal
.
ZERO
)
>
0
)
{
userDataList
.
add
(
userData
);
userDataList
.
add
(
userData
);
}
}
}
});
});
}
}
...
@@ -509,54 +516,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
...
@@ -509,54 +516,6 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
return
AjaxResult
.
success
(
showIds
);
return
AjaxResult
.
success
(
showIds
);
}
}
private
UserData
getUserData
(
String
performancesId
,
SmileUser
smileUser
,
Map
<
String
,
SmileAgent
>
tidMap
,
List
<
TicketAndStatusDao
>
smileAgentList
)
{
UserData
userData
=
new
UserData
();
//个人用户的演出数据详情
//便利票种id 查询用户的销售数据信息
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
for
(
TicketAndStatusDao
smileAgent
:
smileAgentList
)
{
UserDataAgentVo
userDataAgentVo
=
new
UserDataAgentVo
();
Map
userMap
=
smileAgentMapper
.
getUserDataByPerIdAndTicketsId
(
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
if
(
userMap
!=
null
)
{
userDataAgentVo
.
setTicketsId
((
String
)
userMap
.
get
(
"tid"
));
userDataAgentVo
.
setTicketName
((
String
)
userMap
.
get
(
"title"
));
userDataAgentVo
.
setNumber
((
BigDecimal
)
userMap
.
get
(
"num"
));
userDataAgentVo
.
setPrice
((
BigDecimal
)
userMap
.
get
(
"price"
));
userDataAgentVo
.
setAgent
((
BigDecimal
)
userMap
.
get
(
"use"
));
userDataAgentVo
.
setCommission
(((
BigDecimal
)
userMap
.
get
(
"totalPrice"
)).
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
.
setAgent
(
smileUser
.
getType
()
==
1
?
tidMap
.
get
(
smileAgent
.
getTicketsId
()).
getTotalCarry
()
:
tidMap
.
get
(
smileAgent
.
getTicketsId
()).
getOrdCarry
());
userDataAgentVo
.
setCommission
(
new
BigDecimal
(
"0.00"
));
log
.
debug
(
"saleData:演出id:{},用户id:{},票提id:{}"
,
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
}
//判断该用户是否是总代理
if
(
smileUser
.
getType
()
==
1
)
{
//是总代 //在原有的数据上新增加该用户下所有普代的提成
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
));
}
else
{
log
.
debug
(
"saleData:演出id:{},用户id:{},票提id:{}"
,
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
}
}
// if (userDataAgentVo.getCommission().compareTo(new BigDecimal(0)) != 0) {
userDataAgentVos
.
add
(
userDataAgentVo
);
// }
}
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
()));
return
userData
;
}
private
Map
<
String
,
SmileAgent
>
getSmileAgentMap
(
List
<
SmileAgent
>
smileAgents
)
{
private
Map
<
String
,
SmileAgent
>
getSmileAgentMap
(
List
<
SmileAgent
>
smileAgents
)
{
Map
<
String
,
SmileAgent
>
map
=
new
HashMap
<>(
smileAgents
.
size
());
Map
<
String
,
SmileAgent
>
map
=
new
HashMap
<>(
smileAgents
.
size
());
smileAgents
.
forEach
(
smileAgent
->
map
.
put
(
smileAgent
.
getTicketId
(),
smileAgent
));
smileAgents
.
forEach
(
smileAgent
->
map
.
put
(
smileAgent
.
getTicketId
(),
smileAgent
));
...
...
liquidnet-bus-do/liquidnet-service-smile-do/src/main/java/com/liquidnet/service/smile/mapper/SmileAgentMapper.java
View file @
b23c513d
...
@@ -27,7 +27,7 @@ public interface SmileAgentMapper extends BaseMapper<SmileAgent> {
...
@@ -27,7 +27,7 @@ public interface SmileAgentMapper extends BaseMapper<SmileAgent> {
Map
getUserDataByPerIdAndTicketsId
(
@Param
(
"performancesId"
)
String
performancesId
,
@Param
(
"uid"
)
String
uid
,
@Param
(
"ticketId"
)
String
ticketId
);
Map
getUserDataByPerIdAndTicketsId
(
@Param
(
"performancesId"
)
String
performancesId
,
@Param
(
"uid"
)
String
uid
,
@Param
(
"ticketId"
)
String
ticketId
);
Map
getUserOrgByPerIdAndUidAndAgentMaster
(
@Param
(
"performancesId"
)
String
performancesId
,
@Param
(
"uid"
)
String
uid
,
@Param
(
"ticketId"
)
String
ticket
Id
);
List
<
Map
<
String
,
Object
>>
getUserOrgByPerIdAndUidAndAgentMaster
(
@Param
(
"performancesId"
)
String
performances
Id
);
List
<
SmileAgentDao
>
selectAgentList
(
@Param
(
"performancesId"
)
String
performancesId
);
List
<
SmileAgentDao
>
selectAgentList
(
@Param
(
"performancesId"
)
String
performancesId
);
...
...
liquidnet-bus-do/liquidnet-service-smile-do/src/main/resources/com/liquidnet/service/smile/mapper/SmileAgentMapper.xml
View file @
b23c513d
...
@@ -63,8 +63,8 @@
...
@@ -63,8 +63,8 @@
<select
id=
"getUserOrgByPerIdAndUidAndAgentMaster"
resultType=
"java.util.Map"
>
<select
id=
"getUserOrgByPerIdAndUidAndAgentMaster"
resultType=
"java.util.Map"
>
SELECT
SELECT
SUM(
kotr.agent_id_master uid,
( kot.price_actual - kot.price_refund )* kotr.agent_distributions_master
) totalPrice
SUM( ( kot.price_actual - kot.price_refund )* kotr.agent_distributions_master
) totalPrice
FROM
FROM
kylin_order_ticket_relations AS kotr
kylin_order_ticket_relations AS kotr
INNER JOIN kylin_order_tickets AS kot ON kot.order_tickets_id = kotr.order_id
INNER JOIN kylin_order_tickets AS kot ON kot.order_tickets_id = kotr.order_id
...
@@ -76,9 +76,17 @@
...
@@ -76,9 +76,17 @@
kylin_order_ticket_relations AS kotr
kylin_order_ticket_relations AS kotr
LEFT JOIN kylin_order_ticket_status AS kots ON kots.order_id = kotr.order_id
LEFT JOIN kylin_order_ticket_status AS kots ON kots.order_id = kotr.order_id
WHERE
WHERE
kotr.agent_id_master = #{uid}
kots.STATUS IN ( 1, 6, 3 ) )
AND kots.status IN (1,6,3)
AND kotr.performance_id = #{performancesId}
) AND kotr.performance_id = #{performancesId} AND kotr.ticket_id = #{ticketId}
AND kotr.ticket_id IN (
SELECT
sa.ticket_id
FROM
smile_agent AS sa
WHERE
sa.del_tag = 0
AND sa.performance_id = #{performancesId}
) AND kotr.agent_id_master >0 GROUP BY kotr.agent_id_master
</select>
</select>
<select
id=
"selectAgentList"
resultType=
"com.liquidnet.service.smile.entity.dao.SmileAgentDao"
>
<select
id=
"selectAgentList"
resultType=
"com.liquidnet.service.smile.entity.dao.SmileAgentDao"
>
...
...
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