<?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.UserActivityDiscount1Mapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserActivityDiscount1">
|
<id column="id" property="id" />
|
<result column="userActivityId" property="userActivityId" />
|
<result column="special" property="special" />
|
<result column="taxi" property="taxi" />
|
<result column="logistics" property="logistics" />
|
<result column="startTime" property="startTime" />
|
<result column="endTime" property="endTime" />
|
<result column="enable" property="enable" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, userActivityId, special, taxi, logistics, startTime, endTime, enable
|
</sql>
|
|
|
<select id="queryDiscount1" resultType="map">
|
select
|
qa.time,
|
count(qa.userId) as userNum,
|
sum(qa.discountMoney) as discountMoney
|
from (
|
select
|
aa.time,
|
aa.userId as userId,
|
sum(aa.discountMoney) as discountMoney
|
from (
|
select DATE_FORMAT(a.travelTime, '%Y-%m-%d') as time, a.userId,a.discountMoney
|
from t_order_private_car a
|
left join t_user_activity_discount1 b on (a.activityId = b.id)
|
left join t_user_activity c on (b.userActivityId = c.id)
|
where a.activityId is not null
|
<if test="null != name and '' != name">
|
and c.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.insertTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and c.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select DATE_FORMAT(a.travelTime, '%Y-%m-%d') as time,a.userId,a.discountMoney
|
from t_order_taxi a
|
left join t_user_activity_discount1 b on (a.activityId = b.id)
|
left join t_user_activity c on (b.userActivityId = c.id)
|
where a.activityId is not null
|
<if test="null != name and '' != name">
|
and c.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.insertTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and c.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select DATE_FORMAT(a.travelTime, '%Y-%m-%d') as time,a.userId,a.discountMoney
|
from t_order_logistics a
|
left join t_user_activity_discount1 b on (a.activityId = b.id)
|
left join t_user_activity c on (b.userActivityId = c.id)
|
where a.activityId is not null
|
<if test="null != name and '' != name">
|
and c.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.insertTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and c.companyId = #{companyId}
|
</if>
|
) as aa GROUP BY aa.time, aa.userId
|
) as qa GROUP BY qa.time order by qa.time desc
|
<if test="null != offset and null != limit">
|
limit #{offset}, #{limit}
|
</if>
|
</select>
|
|
|
|
<select id="queryDiscount1Count" resultType="int">
|
select count(time) from (
|
select
|
qa.time as time
|
from (
|
select
|
aa.time,
|
aa.userId as userId,
|
sum(aa.discountMoney) as discountMoney
|
from (
|
select DATE_FORMAT(a.travelTime, '%Y-%m-%d') as time, a.userId,a.discountMoney
|
from t_order_private_car a
|
left join t_user_activity_discount1 b on (a.activityId = b.id)
|
left join t_user_activity c on (b.userActivityId = c.id)
|
where a.activityId is not null
|
<if test="null != name and '' != name">
|
and c.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.insertTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and c.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select DATE_FORMAT(a.travelTime, '%Y-%m-%d') as time,a.userId,a.discountMoney
|
from t_order_taxi a
|
left join t_user_activity_discount1 b on (a.activityId = b.id)
|
left join t_user_activity c on (b.userActivityId = c.id)
|
where a.activityId is not null
|
<if test="null != name and '' != name">
|
and c.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.insertTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and c.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select DATE_FORMAT(a.travelTime, '%Y-%m-%d') as time,a.userId,a.discountMoney
|
from t_order_logistics a
|
left join t_user_activity_discount1 b on (a.activityId = b.id)
|
left join t_user_activity c on (b.userActivityId = c.id)
|
where a.activityId is not null
|
<if test="null != name and '' != name">
|
and c.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.insertTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and c.companyId = #{companyId}
|
</if>
|
) as aa GROUP BY aa.time, aa.userId
|
) as qa GROUP BY qa.time
|
) as da
|
</select>
|
|
|
<select id="queryDiscountInfo" resultType="map">
|
select
|
aa.time,
|
aa.`name`,
|
aa.phone,
|
sum(aa.discountMoney) as discountMoney
|
from (
|
select
|
DATE_FORMAT(a.endServiceTime, '%Y-%m-%d %H:%i:%s') as time,
|
a.userId as userId,
|
b.nickName as `name`,
|
b.phone as phone,
|
a.discountMoney as discountMoney
|
from t_order_private_car a
|
left join t_user b on (a.userId = b.id)
|
left join t_user_activity_discount1 c on (a.activityId = c.id)
|
left join t_user_activity d on (c.userActivityId = d.id)
|
where a.state in (8, 9) and activityId is not null
|
<if test="null != name and '' != name">
|
and d.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.endServiceTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and a.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select
|
DATE_FORMAT(a.endServiceTime, '%Y-%m-%d %H:%i:%s') as time,
|
a.userId as userId,
|
b.nickName as `name`,
|
b.phone as phone,
|
a.discountMoney as discountMoney
|
from t_order_taxi a
|
left join t_user b on (a.userId = b.id)
|
left join t_user_activity_discount1 c on (a.activityId = c.id)
|
left join t_user_activity d on (c.userActivityId = d.id)
|
where a.state in (8, 9) and activityId is not null
|
<if test="null != name and '' != name">
|
and d.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.endServiceTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and a.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select
|
DATE_FORMAT(a.endServiceTime, '%Y-%m-%d %H:%i:%s') as time,
|
a.userId as userId,
|
b.nickName as `name`,
|
b.phone as phone,
|
a.discountMoney as discountMoney
|
from t_order_logistics a
|
left join t_user b on (a.userId = b.id)
|
left join t_user_activity_discount1 c on (a.activityId = c.id)
|
left join t_user_activity d on (c.userActivityId = d.id)
|
where a.state in (9) and activityId is not null
|
<if test="null != name and '' != name">
|
and d.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.endServiceTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and a.companyId = #{companyId}
|
</if>
|
) as aa group by aa.time, userId order by aa.time desc
|
<if test="null != offset and null != limit">
|
limit #{offset}, #{limit}
|
</if>
|
</select>
|
|
|
<select id="queryDiscountInfoCount" resultType="int">
|
select count(w.time) from (
|
select
|
aa.time as time
|
from (
|
select
|
DATE_FORMAT(a.endServiceTime, '%Y-%m-%d %H:%i:%s') as time,
|
a.userId as userId,
|
b.nickName as `name`,
|
b.phone as phone,
|
a.discountMoney as discountMoney
|
from t_order_private_car a
|
left join t_user b on (a.userId = b.id)
|
left join t_user_activity_discount1 c on (a.activityId = c.id)
|
left join t_user_activity d on (c.userActivityId = d.id)
|
where a.state in (8, 9) and activityId is not null
|
<if test="null != name and '' != name">
|
and d.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.endServiceTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and a.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select
|
DATE_FORMAT(a.endServiceTime, '%Y-%m-%d %H:%i:%s') as time,
|
a.userId as userId,
|
b.nickName as `name`,
|
b.phone as phone,
|
a.discountMoney as discountMoney
|
from t_order_taxi a
|
left join t_user b on (a.userId = b.id)
|
left join t_user_activity_discount1 c on (a.activityId = c.id)
|
left join t_user_activity d on (c.userActivityId = d.id)
|
where a.state in (8, 9) and activityId is not null
|
<if test="null != name and '' != name">
|
and d.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.endServiceTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and a.companyId = #{companyId}
|
</if>
|
|
union all
|
|
select
|
DATE_FORMAT(a.endServiceTime, '%Y-%m-%d %H:%i:%s') as time,
|
a.userId as userId,
|
b.nickName as `name`,
|
b.phone as phone,
|
a.discountMoney as discountMoney
|
from t_order_logistics a
|
left join t_user b on (a.userId = b.id)
|
left join t_user_activity_discount1 c on (a.activityId = c.id)
|
left join t_user_activity d on (c.userActivityId = d.id)
|
where a.state in (9) and activityId is not null
|
<if test="null != name and '' != name">
|
and d.`name` like CONCAT('%', #{name}, '%')
|
</if>
|
<if test="null != start and '' != start and null != end and '' != end">
|
and DATE_FORMAT(a.endServiceTime, '%Y-%m-%d') between #{start} and #{end}
|
</if>
|
<if test="null != companyId">
|
and a.companyId = #{companyId}
|
</if>
|
) as aa group by aa.time, userId
|
|
) as w
|
</select>
|
</mapper>
|