<?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.stylefeng.guns.modular.system.dao.TRevenueMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TRevenue">
|
<id column="id" property="id" />
|
<result column="type" property="type" />
|
<result column="userType" property="userType" />
|
<result column="userId" property="userId" />
|
<result column="orderId" property="orderId" />
|
<result column="amount" property="amount" />
|
<result column="createTime" property="createTime" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, type, userType, userId, orderId, amount, createTime
|
</sql>
|
<select id="getPageList" resultType="com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp">
|
SELECT
|
t.id,
|
t.businessType,
|
t.amount,
|
t.businessTime,
|
t.driverName,
|
t.driverPhone,
|
t.`code`,
|
t.payType,
|
t.state,
|
t.discountedPrice,
|
t.driverId,
|
t.accountBalance,
|
t.agentId,
|
t.payMoney,
|
t.orderId
|
FROM
|
(SELECT
|
r.id,
|
r.type AS businessType,
|
r.amount,
|
r.createTime AS businessTime,
|
d.`name` AS driverName,
|
d.phone AS driverPhone,
|
o.`code`,
|
o.payType,
|
o.state,
|
o.discountedPrice,
|
o.payMoney,
|
o.id AS orderId,
|
d.id AS driverId,
|
d.balance AS accountBalance,
|
d.agentId
|
FROM
|
t_revenue r
|
LEFT JOIN t_driver d ON r.userId = d.id
|
LEFT JOIN t_order o ON r.orderId = o.id
|
WHERE
|
( o.state = ${@com.stylefeng.guns.modular.system.enums.OrderStateEnum@WAIT_EVALUATED.getCode()}
|
OR o.state = ${@com.stylefeng.guns.modular.system.enums.OrderStateEnum@FINISH.getCode()} )
|
AND r.type = 1
|
UNION ALL
|
SELECT
|
cw.id,
|
cw.businessType,
|
cw.amount,
|
cw.createTime AS businessTime,
|
d.`name` AS driverName,
|
d.phone AS driverPhone,
|
cw.`code`,
|
0 AS payType,
|
cw.state,
|
0 AS discountedPrice,
|
0 AS payMoney,
|
0 AS orderId,
|
d.id AS driverId,
|
d.balance AS accountBalance,
|
d.agentId
|
FROM
|
t_cash_withdrawal cw
|
LEFT JOIN t_driver d ON cw.userDriverId = d.id
|
WHERE
|
cw.type = 2) t
|
<where>
|
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
|
AND t.businessTime BETWEEN #{startTime} AND #{endTime}
|
</if>
|
<if test="code != null and code != ''">
|
AND t.code LIKE concat('%',#{code},'%')
|
</if>
|
<if test="businessType != null">
|
AND t.businessType = #{businessType}
|
</if>
|
<if test="payType != null">
|
AND t.payType = #{payType}
|
</if>
|
<if test="driverName != null and driverName != ''">
|
AND t.driverName LIKE concat('%',#{driverName},'%')
|
</if>
|
<if test="roleType != null and roleType == 3">
|
AND t.agentId = #{objectId}
|
</if>
|
</where>
|
ORDER BY t.businessTime DESC
|
</select>
|
<select id="commissionOrBalanceDetail" resultType="com.stylefeng.guns.modular.system.controller.resp.RevenueExpenditureResp">
|
SELECT
|
cw.id,
|
cw.businessType,
|
cw.amount,
|
cw.createTime AS businessTime,
|
d.`name` AS driverName,
|
d.phone AS driverPhone,
|
cw.`code`,
|
0 AS payType,
|
cw.state,
|
0 AS discountedPrice,
|
0 AS payMoney,
|
0 AS orderId,
|
d.id AS driverId,
|
d.balance AS accountBalance,
|
d.agentId
|
FROM
|
t_cash_withdrawal cw
|
LEFT JOIN t_driver d ON cw.userDriverId = d.id
|
WHERE
|
cw.type = 2 AND cw.businessType = #{type} AND cw.code = #{code}
|
</select>
|
<select id="getDataStatisticsIncomeOrCommission" resultType="com.stylefeng.guns.modular.system.controller.resp.PerformanceTableResp">
|
<if test="type == 1">
|
select aa.monthTime,aa.userName,sum(aa.amount) as amount from (
|
select
|
DATE_FORMAT(a.createTime, '%Y-%m') as monthTime,
|
b.id as driverId,
|
a.payMoney as amount,
|
b.`name` as userName
|
from t_order a
|
left join t_driver b on (a.driverId = b.id)
|
where a.payMoney > 0
|
<if test="agentId != null">
|
and a.agentId = #{agentId}
|
</if>
|
<if test="monthDate != null and monthDate != ''">
|
AND date_format(a.createTime, '%Y-%m') LIKE concat('',#{monthDate},'%')
|
</if>
|
) as aa GROUP BY aa.monthTime,aa.driverId
|
ORDER BY amount DESC
|
LIMIT 10
|
</if>
|
<if test="2 == type">
|
SELECT date_format(r.createTime, '%Y-%m') AS monthTime,SUM(r.amount) AS amount,d.userName
|
FROM t_revenue r
|
LEFT JOIN (SELECT id,name AS userName from t_driver) d ON r.userId = d.id
|
LEFT JOIN t_order o ON r.orderId = o.id
|
<where>
|
<if test="agentId != null">
|
AND o.agentId = #{agentId}
|
</if>
|
<if test="monthDate != null and monthDate != ''">
|
AND date_format(r.createTime, '%Y-%m') LIKE concat('',#{monthDate},'%')
|
</if>
|
<if test="type != null">
|
AND r.type = #{type}
|
</if>
|
AND r.userType = 2
|
</where>
|
GROUP BY monthTime,userName
|
ORDER BY amount DESC
|
LIMIT 10
|
</if>
|
</select>
|
|
<select id="getDataStatisticsCommission" resultType="com.stylefeng.guns.modular.system.controller.resp.PerformanceTableResp">
|
SELECT date_format(r.createTime, '%Y-%m') AS monthTime,SUM(r.amount) AS amount,d.name AS userName
|
FROM t_revenue r
|
LEFT JOIN t_driver d ON r.userId = d.id
|
LEFT JOIN t_order o ON r.orderId = o.id
|
<where>
|
<if test="agentId != null">
|
AND o.agentId = #{agentId}
|
</if>
|
<if test="monthDate != null and monthDate != ''">
|
AND date_format(r.createTime, '%Y-%m') LIKE concat('',#{monthDate},'%')
|
</if>
|
<if test="type != null">
|
AND r.type = #{type}
|
</if>
|
AND r.userType = 2
|
</where>
|
GROUP BY monthTime,userName
|
ORDER BY amount DESC
|
</select>
|
<select id="getDataStatisticsIncomeOrCommissionByIds" resultType="com.stylefeng.guns.modular.system.controller.resp.PerformanceTableResp">
|
<if test="type == 1">
|
select aa.monthTime,aa.userName,sum(aa.amount) as amount from (
|
select
|
DATE_FORMAT(a.createTime, '%Y-%m') as monthTime,
|
b.id as driverId,
|
a.payMoney as amount,
|
b.`name` as userName
|
from t_order a
|
left join t_driver b on (a.driverId = b.id)
|
where a.payMoney > 0
|
<if test="ids != null and ids.size() > 0">
|
AND a.agentId IN
|
<foreach collection="ids" close=")" open="(" item="id" separator=",">
|
#{id}
|
</foreach>
|
</if>
|
<if test="monthDate != null and monthDate != ''">
|
AND date_format(a.createTime, '%Y-%m') LIKE concat('',#{monthDate},'%')
|
</if>
|
) as aa GROUP BY aa.monthTime,aa.driverId
|
ORDER BY amount DESC
|
LIMIT 10
|
</if>
|
<if test="type == 2">
|
SELECT date_format(r.createTime, '%Y-%m') AS monthTime,SUM(r.amount) AS amount,d.userName
|
FROM t_revenue r
|
LEFT JOIN (SELECT id,name AS userName from t_driver) d ON r.userId = d.id
|
LEFT JOIN t_order o ON r.orderId = o.id
|
<where>
|
<if test="ids != null and ids.size() > 0">
|
AND o.agentId IN
|
<foreach collection="ids" close=")" open="(" item="id" separator=",">
|
#{id}
|
</foreach>
|
</if>
|
<if test="monthDate != null and monthDate != ''">
|
AND date_format(r.createTime, '%Y-%m') LIKE concat('',#{monthDate},'%')
|
</if>
|
<if test="type != null">
|
AND r.type = #{type}
|
</if>
|
AND r.userType = 2
|
</where>
|
GROUP BY monthTime,userName
|
ORDER BY amount DESC
|
LIMIT 10
|
</if>
|
</select>
|
|
</mapper>
|