记得上下班打卡 | 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
bb3821ca
Commit
bb3821ca
authored
Aug 10, 2022
by
GaoHu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化流程
parent
dd79adf7
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
199 additions
and
7 deletions
+199
-7
UserData.java
...m/liquidnet/client/admin/zhengzai/smile/dto/UserData.java
+2
-0
SmileShowServiceImpl.java
...min/zhengzai/smile/service/impl/SmileShowServiceImpl.java
+62
-7
ShowBaseVoDto.java
...com/liquidnet/service/smile/entity/dto/ShowBaseVoDto.java
+73
-0
SmileAgentMapper.java
.../com/liquidnet/service/smile/mapper/SmileAgentMapper.java
+3
-0
SmileAgentMapper.xml
...s/com/liquidnet/service/smile/mapper/SmileAgentMapper.xml
+59
-0
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 @
bb3821ca
...
...
@@ -49,4 +49,6 @@ public class UserData {
@ApiModelProperty
(
value
=
"打款状态"
,
example
=
""
)
private
Integer
priceStatus
;
}
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 @
bb3821ca
...
...
@@ -2,6 +2,7 @@ package com.liquidnet.client.admin.zhengzai.smile.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.ObjectUtils
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.Page
;
...
...
@@ -25,6 +26,7 @@ import com.liquidnet.service.smile.entity.SmileAgent;
import
com.liquidnet.service.smile.entity.SmilePrice
;
import
com.liquidnet.service.smile.entity.SmileSchool
;
import
com.liquidnet.service.smile.entity.SmileUser
;
import
com.liquidnet.service.smile.entity.dto.ShowBaseVoDto
;
import
com.liquidnet.service.smile.mapper.SmileAgentMapper
;
import
com.liquidnet.service.smile.mapper.SmilePriceMapper
;
import
com.liquidnet.service.smile.mapper.SmileSchoolMapper
;
...
...
@@ -276,7 +278,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
}
saleDataVo
.
setTitle
(
kylinPerformanceVo
.
getTitle
());
//map 票提id,票提信息
Map
<
String
,
SmileAgent
>
m
ap
=
getSmileAgentMap
(
smileAgents
);
Map
<
String
,
SmileAgent
>
tidM
ap
=
getSmileAgentMap
(
smileAgents
);
List
<
String
>
ticketsIdList
=
smileAgents
.
stream
().
map
(
SmileAgent:
:
getTicketId
).
collect
(
Collectors
.
toList
());
...
...
@@ -284,18 +286,71 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
//根据票提IDs查询票信息
List
<
TicketAndStatusDao
>
ticketAndStatusDaoList
=
kylinTicketsMapper
.
selectTicketsByIds
(
ticketsIdList
);
for
(
TicketAndStatusDao
ticketAndStatusDao
:
ticketAndStatusDaoList
)
{
SmileAgent
smileAgent
=
m
ap
.
get
(
ticketAndStatusDao
.
getTicketsId
());
SmileAgent
smileAgent
=
tidM
ap
.
get
(
ticketAndStatusDao
.
getTicketsId
());
ShowAgentVo
showAgentVo
=
getShowAgentVo
(
performancesId
,
ticketAndStatusDao
,
smileAgent
);
showAgentVoList
.
add
(
showAgentVo
);
}
//根据演出id查询出所有代理人的uid
List
<
SmileUser
>
smileUsers
=
smileUserMapper
.
getAllUidByPerId
(
performancesId
);
List
<
ShowBaseVoDto
>
showBaseVoList
=
smileAgentMapper
.
selectMapByPerId
(
performancesId
);
Map
<
String
,
List
<
ShowBaseVoDto
>>
stringListMap
=
showBaseVoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getAgentId
));
List
<
UserData
>
userDataList
=
new
ArrayList
<>(
stringListMap
.
size
());
for
(
Map
.
Entry
<
String
,
List
<
ShowBaseVoDto
>>
showMap
:
stringListMap
.
entrySet
())
{
UserData
userData
=
new
UserData
();
List
<
UserDataAgentVo
>
userDataAgentVos
=
new
ArrayList
<>();
List
<
ShowBaseVoDto
>
showBaseVoDtoList
=
showMap
.
getValue
();
Map
<
String
,
List
<
ShowBaseVoDto
>>
tidMapByUid
=
showBaseVoDtoList
.
stream
().
collect
(
Collectors
.
groupingBy
(
ShowBaseVoDto:
:
getTid
));
for
(
TicketAndStatusDao
smileAgent
:
ticketAndStatusDaoList
){
UserDataAgentVo
userDataAgentVo
=
new
UserDataAgentVo
();
ShowBaseVoDto
showBaseVoDto
=
tidMapByUid
.
get
(
smileAgent
.
getTicketsId
()).
get
(
0
);
if
(!
StringUtils
.
isEmpty
(
stringListMap
)){
userDataAgentVo
.
setTicketsId
(
showBaseVoDto
.
getTid
());
userDataAgentVo
.
setTicketName
(
showBaseVoDto
.
getTitle
());
userDataAgentVo
.
setNumber
(
showBaseVoDto
.
getNumber
());
userDataAgentVo
.
setPrice
(
showBaseVoDto
.
getPrice
());
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
.
setAgent
(
showBaseVoDto
.
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
,
showBaseVoDto
.
getAgentId
(),
smileAgent
.
getTicketsId
());
}
//判断是否为总代
if
(
showBaseVoDto
.
getType
()
==
1
)
{
//是总代 //在原有的数据上新增加该用户下所有普代的提成
Map
orgMap
=
smileAgentMapper
.
getUserOrgByPerIdAndUidAndAgentMaster
(
performancesId
,
showBaseVoDto
.
getAgentId
(),
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
,
showBaseVoDto
.
getAgentId
(),
smileAgent
.
getTicketsId
());
}
}
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
()));
userDataList
.
add
(
userData
);
}
/*List<SmileUser> smileUsers = smileUserMapper.getAllUidByPerId(performancesId);
List<UserData> userDataList = new ArrayList<>(smileUsers.size());
for (SmileUser smileUser : smileUsers) {
UserData
userData
=
getUserData
(
performancesId
,
smileUser
,
m
ap
,
ticketAndStatusDaoList
);
UserData userData = getUserData(performancesId, smileUser,
tidM
ap, ticketAndStatusDaoList);
userDataList.add(userData);
}
}
*/
saleDataVo
.
setUserDataList
(
userDataList
);
saleDataVo
.
setShowAgentVoList
(
showAgentVoList
);
return
saleDataVo
;
...
...
@@ -339,7 +394,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
return
AjaxResult
.
success
(
showIds
);
}
private
UserData
getUserData
(
String
performancesId
,
SmileUser
smileUser
,
Map
<
String
,
SmileAgent
>
m
ap
,
List
<
TicketAndStatusDao
>
smileAgentList
)
{
private
UserData
getUserData
(
String
performancesId
,
SmileUser
smileUser
,
Map
<
String
,
SmileAgent
>
tidM
ap
,
List
<
TicketAndStatusDao
>
smileAgentList
)
{
UserData
userData
=
new
UserData
();
//个人用户的演出数据详情
//便利票种id 查询用户的销售数据信息
...
...
@@ -359,7 +414,7 @@ public class SmileShowServiceImpl extends ServiceImpl<SmileSchoolMapper, SmileSc
userDataAgentVo
.
setTicketName
(
smileAgent
.
getTitle
());
userDataAgentVo
.
setNumber
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setPrice
(
new
BigDecimal
(
0
));
userDataAgentVo
.
setAgent
(
smileUser
.
getType
()
==
1
?
map
.
get
(
smileAgent
.
getTicketsId
()).
getTotalCarry
()
:
m
ap
.
get
(
smileAgent
.
getTicketsId
()).
getOrdCarry
());
userDataAgentVo
.
setAgent
(
smileUser
.
getType
()
==
1
?
tidMap
.
get
(
smileAgent
.
getTicketsId
()).
getTotalCarry
()
:
tidM
ap
.
get
(
smileAgent
.
getTicketsId
()).
getOrdCarry
());
userDataAgentVo
.
setCommission
(
new
BigDecimal
(
"0.00"
));
log
.
debug
(
"saleData:演出id:{},用户id:{},票提id:{}"
,
performancesId
,
smileUser
.
getUid
(),
smileAgent
.
getTicketsId
());
}
...
...
liquidnet-bus-do/liquidnet-service-smile-do/src/main/java/com/liquidnet/service/smile/entity/dto/ShowBaseVoDto.java
0 → 100644
View file @
bb3821ca
package
com
.
liquidnet
.
service
.
smile
.
entity
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author TT
*/
@Data
public
class
ShowBaseVoDto
implements
Serializable
,
Cloneable
{
/**
* 名字
*/
private
String
name
;
/**
* 城市
*/
private
String
city
;
/**
* agentId
*/
private
String
agentId
;
/**
* 票提id
*/
private
String
tid
;
/**
* 票提名称
*/
private
String
title
;
/**
* 单价
*/
private
BigDecimal
price
;
/**
* 票提
*/
private
BigDecimal
use
;
/**
* 类型
*/
private
int
type
;
/**
* 张数
*/
private
BigDecimal
number
;
/**
*提成
*/
private
BigDecimal
totalPrice
;
private
static
final
ShowBaseVoDto
obj
=
new
ShowBaseVoDto
();
public
static
ShowBaseVoDto
getNew
()
{
try
{
return
(
ShowBaseVoDto
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
return
new
ShowBaseVoDto
();
}
}
}
liquidnet-bus-do/liquidnet-service-smile-do/src/main/java/com/liquidnet/service/smile/mapper/SmileAgentMapper.java
View file @
bb3821ca
...
...
@@ -4,6 +4,7 @@ package com.liquidnet.service.smile.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.smile.entity.SmileAgent
;
import
com.liquidnet.service.smile.entity.dao.SmileAgentDao
;
import
com.liquidnet.service.smile.entity.dto.ShowBaseVoDto
;
import
org.apache.ibatis.annotations.Param
;
import
java.math.BigDecimal
;
...
...
@@ -33,4 +34,6 @@ public interface SmileAgentMapper extends BaseMapper<SmileAgent> {
List
<
SmileAgent
>
selectAgentCarryGtZeroByPerId
(
@Param
(
"performancesId"
)
String
performancesId
);
int
selectCountPerId
();
List
<
ShowBaseVoDto
>
selectMapByPerId
(
@Param
(
"performancesId"
)
String
performancesId
);
}
liquidnet-bus-do/liquidnet-service-smile-do/src/main/resources/com/liquidnet/service/smile/mapper/SmileAgentMapper.xml
View file @
bb3821ca
...
...
@@ -121,4 +121,63 @@
SELECT COUNT(sa.id) FROM (SELECT id FROM smile_agent WHERE del_tag = 0 GROUP BY performance_id) sa;
</select>
<select
id=
"selectMapByPerId"
resultType=
"com.liquidnet.service.smile.entity.dto.ShowBaseVoDto"
>
SELECT kk.name,
kk.city,
kk.agentId,
kk.tid,
kk.title,
kk.price,
kk.USE,
kk.type,
SUM(kk.number - kk.refund_number) number,
SUM(
kk.price * kk.`use` * (kk.number - kk.refund_number)) totalPrice
FROM (
SELECT kote.mid,
kote.order_id,
kote.ticket_id tid,
kt.title,
kote.user_id,
kote.is_payment,
kote.STATUS,
kot.number,
kot.refund_number,
kot.price,
kotr.agent_id agentId,
kotr.agent_id_master,
kotr.agent_distributions `use`,
kotr.agent_distributions_master,
su.type,
su.name,
su.city
FROM kylin_order_ticket_entities kote
LEFT JOIN kylin_order_tickets kot ON kote.order_id = kot.order_tickets_id
LEFT JOIN kylin_order_ticket_relations kotr ON kotr.order_id = kot.order_tickets_id
LEFT JOIN kylin_order_ticket_status kots ON kots.order_id = kotr.order_id
LEFT JOIN smile_user su ON su.uid = kotr.agent_id
LEFT JOIN kylin_tickets kt ON kote.ticket_id = kt.tickets_id
WHERE kote.performance_id = #{performancesId}
AND kote.ticket_id IN (SELECT sa.ticket_id
FROM smile_agent sa
WHERE sa.del_tag = 0 AND sa.performance_id = #{performancesId})
AND kotr.agent_id IN (
SELECT su.uid
FROM smile_user AS su
INNER JOIN (SELECT mid, agent_id, agent_id_master
FROM kylin_order_ticket_relations
WHERE performance_id = #{performancesId}
AND agent_id != 0
GROUP BY agent_id) u ON u.agent_id = su.uid
OR u.agent_id_master = su.uid
GROUP BY su.uid
)
AND kotr.agent_status = 1
AND kots.pay_status = 1
GROUP BY kote.order_id
) kk
GROUP BY agentId,
tid
</select>
</mapper>
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