记得上下班打卡 | git大法好,push需谨慎

Commit a52b0847 authored by wangyifan's avatar wangyifan

1. 优化SQL

parent 8add8fbc
......@@ -83,7 +83,7 @@ public class ExportServiceImpl implements IExportService {
@Override
public List<OrderDetailedByShowIdExportVo> exportOrderByShowId(String showId) {
List<OrderExportDao> list = performancesMapper.exportOrderByShowId(showId);
List<OrderExportDao> list = performancesMapper.exportOrderByShowIdV2(showId);
List<OrderDetailedByShowIdExportVo> voList = new ArrayList();
for (OrderExportDao item : list) {
voList.add(OrderDetailedByShowIdExportVo.getNew().copyOrderExportVo(item));
......
......@@ -78,6 +78,13 @@ public interface KylinPerformancesMapper extends BaseMapper<KylinPerformances> {
List<OrderExportDao> exportOrderByShowTime(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
//演出id查订单信息
List<OrderExportDao> exportOrderByShowId(@Param("showId") String showId);
/**
* 演出id查订单信息 V2
* @param showId 演出ID
* @return
*/
List<OrderExportDao> exportOrderByShowIdV2(@Param("showId") String showId);
//会员订单信息
List<MemberOrderExportDao> exportMemberOrder(@Param("beginTime") Date beginTime, @Param("endTime") Date endTime);
//商品订单信息
......
......@@ -1031,6 +1031,77 @@ GROUP BY user_mobile,tickets_id;
and ks.transfer_status in (0, 1, 2, 5)
group by kot.order_tickets_id
</select>
<!-- 演出id查订单信息V2-->
<select id="exportOrderByShowIdV2" resultMap="OrderExportDaoResult">
select
kot.order_code as order_code,
kot.pay_code as pay_code,
kot.payment_id as payment_id,
kot.performance_title as performance_title,
(CASE
WHEN kot.payment_type = 'WAPALIPAY' THEN '支付宝'
WHEN kot.payment_type = 'APPALIPAY' THEN '支付宝'
WHEN kot.payment_type = 'JSWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPLETWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPWEPAY' THEN '微信'
WHEN kot.payment_type = 'WAPWEPAY' THEN '微信'
WHEN kot.payment_type = 'APPUNIONPAY' THEN '银联云闪付'
WHEN kot.payment_type = 'WAPUNIONPAY' THEN '银联云闪付'
ELSE '其他' END) as payment_type,
kot.number as number,
kot.price as price,
kot.price_actual as price_actual,
kot.price_express as price_express,
kotr.refund_end_num as refund_number,
case
when (kp.type = '1') then '音乐节'
when (kp.type = '2') then '演唱会'
when (kp.type = '3') then '小型演出'
when (kp.type = '4') then '展览'
when (kp.type = '6') then '舞台剧'
when (kp.type = '101') then '音乐节'
when (kp.type = '102') then '小型演出(livehouse演出)'
when (kp.type = '103') then '巡演'
end as type ,
kt.title as title1,
ktt.title as title2,
kor.updated_at as refund_at,
kor.reject as reject,
kotr.refund_end_price as price_refund,
kot.time_pay as time_pay
from kylin_order_tickets kot
inner join kylin_order_ticket_status ks on kot.order_tickets_id = ks.order_id
left join kylin_order_refunds kor on kor.order_tickets_id = kot.order_tickets_id
inner join kylin_order_ticket_relations kr on kot.order_tickets_id = kr.order_id
and kr.performance_id = #{showId}
inner join kylin_tickets kt on kt.tickets_id = kr.ticket_id
inner join kylin_performances kp on kp.performances_id = kr.performance_id
left join kylin_ticket_times ktt on ktt.ticket_times_id = kr.time_id
left join (
select
kotre.order_id,
SUM(CASE WHEN e.status in (0, 1, 7, 3, 6) THEN ee.refund_price ELSE 0 END) as refund_ing_price,
SUM(CASE WHEN e.status in (4) THEN ee.refund_price ELSE 0 END) as refund_end_price,
COUNT(DISTINCT CASE
WHEN e.status IN (0, 1, 7, 3)
THEN ee.order_ticket_entities_id END) AS refund_ing_num,
COUNT(DISTINCT CASE
WHEN e.status IN (4)
THEN ee.order_ticket_entities_id END) AS refund_end_num
from kylin_order_ticket_relations as kotre
LEFT JOIN kylin_order_refunds AS e
ON e.order_tickets_id = kotre.order_id AND e.status not in (2, 5)
left join kylin_order_refund_entities as ee
ON ee.order_refunds_id = e.order_refunds_id
where kotre.performance_id = #{showId}
GROUP BY kotre.order_id) as kotr
on kot.order_tickets_id = kotr.order_id
where ks.status in (1, 3, 4, 6)
and ks.transfer_status in (0, 1, 2, 5)
group by kot.order_tickets_id
</select>
<!-- 会员订单信息-->
<select id="exportMemberOrder" resultMap="memberOrderExportDaoResult">
select amo.pay_no as pay_no,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment