123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.qs.mp.user.mapper.UserTicketOrderMapper">
- <!-- 通用查询映射结果 -->
- <resultMap id="BaseResultMap" type="com.qs.mp.user.domain.UserTicketOrder">
- <id column="order_id" property="orderId" />
- <result column="user_id" property="userId" />
- <result column="title" property="title" />
- <result column="box_id" property="boxId" />
- <result column="order_amt" property="orderAmt" />
- <result column="discount_amt" property="discountAmt" />
- <result column="pay_amt" property="payAmt" />
- <result column="ticket_num" property="ticketNum" />
- <result column="memo" property="memo" />
- <result column="resource" property="resource" />
- <result column="coupon_info" property="couponInfo" />
- <result column="share_info" property="shareInfo" />
- <result column="status" property="status" />
- <result column="comm_status" property="commStatus" />
- <result column="channel_id" property="channelId" />
- <result column="created_time" property="createdTime" />
- <result column="updated_time" property="updatedTime" />
- </resultMap>
- <!-- 通用查询结果列 -->
- <sql id="Base_Column_List">
- order_id, user_id, title, box_id, order_amt, discount_amt, pay_amt, ticket_num, memo, resource, coupon_info, share_info, status, comm_status, channel_id, created_time, updated_time
- </sql>
- <!-- 统计交易金额列表 -->
- <select id="selectIndexPayAmtList" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select
- DATE_FORMAT(t1.created_time, '%Y%m%d') AS time,
- SUM(t1.pay_amt) AS payAmt
- from `mp_user_ticket_order` t1
- ${ew.customSqlSegment}
- GROUP BY time
- </select>
- <!-- 统计交易用户数列表 -->
- <select id="selectIndexPayUserCntList" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select
- DATE_FORMAT(t1.created_time, '%Y%m%d') AS time,
- COUNT(DISTINCT t1.user_id) AS payUserCnt
- from `mp_user_ticket_order` t1
- ${ew.customSqlSegment}
- GROUP BY time
- </select>
- <!-- 统计交易实时数据列表 -->
- <select id="selectIndexDailyInfoList" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select
- DATE_FORMAT(t1.created_time, '%Y%m%d') AS time,
- SUM(t1.pay_amt) AS payAmt,
- SUM(IFNULL(t1.ticket_num,0)) AS ticketNum,
- COUNT(DISTINCT t1.user_id) AS payUserCnt
- from `mp_user_ticket_order` t1
- ${ew.customSqlSegment}
- GROUP BY time
- </select>
- <!-- 统计票组销售TOP10 -->
- <select id="selectIndexTicketBoxTop" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select a.pay_amt as payAmt,b.title
- from (
- select
- t1.box_id,
- SUM(t1.pay_amt) AS pay_amt
- from `mp_user_ticket_order` t1
- ${ew.customSqlSegment}
- GROUP BY t1.box_id
- ORDER BY pay_amt DESC limit 10 ) a
- left join mp_ticket_box b on a.box_id = b.box_id
- ORDER BY payAmt DESC
- </select>
- <!-- 统计经销商交易额TOP10 -->
- <select id="selectIndexTicketSiteTop" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select a.pay_amt as payAmt,b.`name`
- from (
- select
- t1.channel_id,
- SUM(t1.pay_amt) AS pay_amt
- from `mp_user_ticket_order` t1
- ${ew.customSqlSegment}
- GROUP BY t1.channel_id
- ORDER BY pay_amt DESC limit 10 ) a
- left join mp_channel b on a.channel_id = b.channel_id
- ORDER BY payAmt DESC
- </select>
- <!-- 查询子渠道全部的盲票销量 -->
- <select id="getChannelTotalTicketNumCnt" resultType="integer">
- select IFNULL(SUM(t1.ticket_num),0) as ticketNum
- from mp_user_ticket_order t1
- left join mp_channel t2 on t1.channel_id = t2.channel_id
- where (t2.channel_no like concat(#{channelNo},'.%') or t2.channel_no = #{channelNo})
- and t1.`status` = 1
- </select>
- <!-- 查询经销商的盲票销量 -->
- <select id="getSaleSiteTotalTicketNumCnt" resultType="integer">
- select IFNULL(SUM(t1.ticket_num),0) as ticketNum
- from mp_user_ticket_order t1
- where t1.`status` = 1 and t1.channel_id = #{channelId}
- </select>
- <!-- 查询经销商的线下、线上盲票销量 -->
- <select id="getTicketSaleCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
- select
- SUM( CASE WHEN (t2.type = 'online') THEN IFNULL(t1.ticket_num,0) ELSE 0 END ) AS onLineSaleCnt,
- SUM( CASE WHEN (t2.type = 'offline') THEN IFNULL(t1.ticket_num,0) ELSE 0 END ) AS offLineSaleCnt
- from mp_user_ticket_order t1
- left join mp_ticket_box t2 on t1.box_id = t2.box_id
- where t1.channel_id = #{channelId} and t1.`status` = 1
- </select>
- <!-- 查询经销商的线下、线上盲票销量 -->
- <select id="listTicketSaleCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
- select
- t1.channel_id,
- SUM( CASE WHEN (t2.type = 'online') THEN IFNULL(t1.ticket_num,0) ELSE 0 END ) AS onLineSaleCnt,
- SUM( CASE WHEN (t2.type = 'offline') THEN IFNULL(t1.ticket_num,0) ELSE 0 END ) AS offLineSaleCnt
- from mp_user_ticket_order t1
- left join mp_ticket_box t2 on t1.box_id = t2.box_id
- ${ew.customSqlSegment}
- GROUP BY t1.channel_id
- </select>
- <select id="listUserTicketOrder" resultType="com.qs.mp.admin.domain.vo.UserTicketOrderListVO">
- select t1.order_id,
- t1.created_time,
- t1.status,
- t1.title,
- t1.sale_price,
- t1.pay_type,
- t1.pay_amt,
- t1.discount_amt,
- t1.ticket_num,
- t2.nick_name,
- t2.phonenumber phone,
- t3.type boxType,
- t4.name channelName
- from mp_user_ticket_order t1
- left join sys_user t2 on t1.user_id = t2.user_id
- left join mp_ticket_box t3 on t1.box_id = t3.box_id
- left join mp_channel t4 on t1.channel_id = t4.channel_id
- ${ew.customSqlSegment}
- </select>
- <select id="selectUserTicketOrderDetail" resultType="com.qs.mp.admin.domain.vo.UserTicketOrderDetailVO">
- select t1.order_id,
- t1.discount_amt,
- t1.status,
- t1.title ticketBoxTitle,
- t1.sale_comm_rate,
- t1.sale_price,
- t1.pay_amt,
- t1.pay_type,
- t1.created_time,
- t1.ticket_num,
- t2.nick_name,
- t2.phonenumber phone,
- t3.name channelName,
- t4.type ticketBoxType,
- t5.name as promoterName
- from mp_user_ticket_order t1
- left join sys_user t2 on t1.user_id = t2.user_id
- left join mp_channel t3 on t1.channel_id = t3.channel_id
- left join mp_ticket_box t4 on t1.box_id = t4.box_id
- left join mp_channel t5 on t1.promoter_id = t5.channel_id
- ${ew.customSqlSegment}
- </select>
- <select id="countUserTicketOrder" resultType="integer">
- select count(*)
- from mp_user_ticket_order t1
- left join sys_user t2 on t1.user_id = t2.user_id
- left join mp_ticket_box t3 on t1.box_id = t3.box_id
- ${ew.customSqlSegment}
- </select>
- <select id="selectIndexTicketBoxTopByTicketOrderAndChannelOrder" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select SUM(a.pay_amt) as payAmt,
- b.title,
- a.box_id
- from (select t1.box_id,
- SUM(t1.pay_amt) AS pay_amt
- from `mp_user_ticket_order` t1
- where t1.created_time between #{param.startTime} and #{param.endTime}
- and t1.status > #{param.ticketOrderStatus}
- group by t1.box_id
- union
- select a2.box_id,
- sum(a1.pay_amt) as pay_amt
- from mp_channel_order a1
- left join mp_channel_order_item a2
- on a1.order_id = a2.order_id
- where a1.created_time between #{param.startTime} and #{param.endTime}
- and a1.status > #{param.channelOrderStatus}
- and a1.type > #{param.channelOrderType}
- group by a2.box_id) a
- left join mp_ticket_box b on a.box_id = b.box_id
- group by a.box_id, b.title
- ORDER BY payAmt DESC
- limit 10
- </select>
- <select id="selectIndexTicketSiteTopByTicketOrderAndChannelOrder" resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select SUM(a.pay_amt) as payAmt, b.`name`
- from
- (select t1.channel_id,
- SUM(t1.pay_amt) AS pay_amt
- from mp_user_ticket_order t1
- where t1.created_time between #{param.startTime} and #{param.endTime}
- and t1.status > #{param.ticketOrderStatus}
- and t1.channel_id is not null
- GROUP BY t1.channel_id
- union
- select a1.channel_id,
- SUM(a1.pay_amt) as pay_amt
- from mp_channel_order a1
- where a1.created_time between #{param.startTime} and #{param.endTime}
- and a1.status > #{param.channelOrderStatus}
- and a1.type > #{param.channelOrderType}
- group by a1.channel_id) a
- left join mp_channel b on a.channel_id = b.channel_id
- group by a.channel_id,b.name
- order by payAmt desc
- limit 10;
- </select>
- <select id="getPromoterTicketSaleCnt" resultType="long">
- select IFNULL(SUM(t1.ticket_num), 0) as ticketNum
- from mp_user_ticket_order t1
- left join mp_channel t2 on t1.promoter_id = t2.channel_id
- where (t2.channel_no like concat(#{channelNo},'.%') or t2.channel_no = #{channelNo})
- AND t1.created_time > DATE_SUB(CURDATE(),INTERVAL #{days} DAY);
- </select>
- <select id="selectTicketBoxGrossProfitByTicketOrderAndChannelOrder"
- resultType="com.qs.mp.admin.domain.vo.TicketBoxGrossProfitVO">
- select SUM(a.pay_amt) as payAmt
- from (select SUM(t1.pay_amt) AS pay_amt
- from `mp_user_ticket_order` t1
- where t1.box_id = #{param.boxId}
- and t1.status > #{param.ticketOrderStatus}
- union all
- select sum(a1.pay_amt) as pay_amt
- from mp_channel_order a1
- left join mp_channel_order_item a2
- on a1.order_id = a2.order_id
- where a2.box_id = #{param.boxId}
- and a1.status > #{param.channelOrderStatus}
- and a1.type = #{param.channelOrderType}
- ) a
- </select>
- <select id="listPrizeCost" resultType="com.qs.mp.admin.domain.vo.TicketAwardsPrizeVO">
- select t1.*,t3.prize_type as type
- from mp_user_hit_prize t1
- left join mp_user_ticket_order t2 on t1.order_id = t2.order_id
- left join mp_ticket_awards_prize t3 on t3.prize_id = t2.prize_id
- left join mp_goods t4 on t3.ref_id = t4.goods_id
- ${ew.customSqlSegment}
- </select>
- <select id="listUserHitPrize" resultType="com.qs.mp.user.domain.vo.UserHitPrizeVO">
- select t1.*,t3.prize_type,t3.value,t2.box_id,t3.ref_id
- from mp_user_hit_prize t1
- left join mp_user_ticket_order t2 on t2.order_id = t1.order_id
- left join mp_ticket_awards_prize t3 on t3.prize_id = t1.prize_id
- ${ew.customSqlSegment}
- </select>
- <select id="selectTicketBoxGrossProfitByTicketOrderAndChannelOrderDaily"
- resultType="com.qs.mp.admin.domain.vo.IndexVO">
- select SUM(a.pay_amt) as payAmt,
- b.title,
- a.box_id
- from (select t1.box_id,
- SUM(t1.pay_amt) AS pay_amt
- from `mp_user_ticket_order` t1
- where t1.created_time between #{param.startTime} and #{param.endTime}
- and t1.status > #{param.ticketOrderStatus}
- group by t1.box_id
- union
- select a2.box_id,
- sum(a1.pay_amt) as pay_amt
- from mp_channel_order a1
- left join mp_channel_order_item a2
- on a1.order_id = a2.order_id
- where a1.created_time between #{param.startTime} and #{param.endTime}
- and a1.status > #{param.channelOrderStatus}
- and a1.type > #{param.channelOrderType}
- group by a2.box_id) a
- left join mp_ticket_box b on a.box_id = b.box_id
- group by a.box_id, b.title
- ORDER BY payAmt DESC
- </select>
- </mapper>
|