user_id
This commit is contained in:
parent
14f1085262
commit
b825373174
|
|
@ -118,74 +118,76 @@
|
||||||
|
|
||||||
|
|
||||||
<select id="selectPushEventUser" resultType="com.czg.account.entity.ShopUser">
|
<select id="selectPushEventUser" resultType="com.czg.account.entity.ShopUser">
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
u.id, u.head_img, u.nick_name, u.amount, u.account_points, u.phone,
|
u.id,u.user_id, u.head_img, u.nick_name, u.amount, u.account_points, u.phone,
|
||||||
<choose>
|
<choose>
|
||||||
<!-- 当有筛选条件时才计算订单相关字段 -->
|
<!-- 当有筛选条件时才计算订单相关字段 -->
|
||||||
<when test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
|
<when test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
|
||||||
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
|
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
|
||||||
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
|
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
|
||||||
COUNT(o.id) AS order_count,
|
COUNT(o.id) AS order_count,
|
||||||
SUM(CASE WHEN o.trade_day = CURDATE() THEN 1 ELSE 0 END) AS today_orders,
|
SUM(CASE WHEN o.trade_day = CURDATE() THEN 1 ELSE 0 END) AS today_orders,
|
||||||
SUM(CASE WHEN o.trade_day = CURDATE() - INTERVAL 1 DAY THEN 1 ELSE 0 END) AS yesterday_orders,
|
SUM(CASE WHEN o.trade_day = CURDATE() - INTERVAL 1 DAY THEN 1 ELSE 0 END) AS yesterday_orders,
|
||||||
SUM(CASE WHEN o.trade_day >= CURDATE() - INTERVAL 2 WEEK AND o.trade_day < CURDATE() - INTERVAL 1 DAY
|
SUM(CASE WHEN o.trade_day >= CURDATE() - INTERVAL 2 WEEK AND o.trade_day < CURDATE() - INTERVAL 1
|
||||||
THEN 1 ELSE 0 END) AS two_weeks_orders,
|
DAY
|
||||||
SUM(CASE WHEN o.trade_day < CURDATE() - INTERVAL 2 WEEK THEN 1 ELSE 0 END) AS earlier_orders
|
THEN 1 ELSE 0 END) AS two_weeks_orders,
|
||||||
</when>
|
SUM(CASE WHEN o.trade_day < CURDATE() - INTERVAL 2 WEEK THEN 1 ELSE 0 END) AS earlier_orders
|
||||||
<!-- 无筛选条件时不计算订单相关字段 -->
|
</when>
|
||||||
<otherwise>
|
<!-- 无筛选条件时不计算订单相关字段 -->
|
||||||
0 AS order_count,
|
<otherwise>
|
||||||
0 AS today_orders,
|
0 AS order_count,
|
||||||
0 AS yesterday_orders,
|
0 AS today_orders,
|
||||||
0 AS two_weeks_orders,
|
0 AS yesterday_orders,
|
||||||
0 AS earlier_orders
|
0 AS two_weeks_orders,
|
||||||
</otherwise>
|
0 AS earlier_orders
|
||||||
</choose>
|
</otherwise>
|
||||||
FROM tb_shop_user u
|
</choose>
|
||||||
<!-- 只有当有筛选条件时才关联order表 -->
|
FROM tb_shop_user u
|
||||||
<if test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
|
<!-- 只有当有筛选条件时才关联order表 -->
|
||||||
|
<if test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
|
||||||
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
|
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
|
||||||
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
|
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
|
||||||
LEFT JOIN `tb_order_info` o ON u.user_id = o.user_id and o.user_id is not null AND o.shop_id = #{shopId} AND o.status = 'done'
|
LEFT JOIN `tb_order_info` o ON u.user_id = o.user_id and o.user_id is not null AND o.shop_id = #{shopId}
|
||||||
</if>
|
AND o.status = 'done'
|
||||||
WHERE u.main_shop_id = #{mainShopId} and u.phone is not null
|
</if>
|
||||||
<!-- 性别筛选条件 -->
|
WHERE u.main_shop_id = #{mainShopId} and u.phone is not null
|
||||||
|
<!-- 性别筛选条件 -->
|
||||||
<if test="!(param.sexMan == 1 and param.sexWoman == 1 and param.sexUnknown == 1)
|
<if test="!(param.sexMan == 1 and param.sexWoman == 1 and param.sexUnknown == 1)
|
||||||
and (param.sexMan == 1 or param.sexWoman == 1 or param.sexUnknown == 1)">
|
and (param.sexMan == 1 or param.sexWoman == 1 or param.sexUnknown == 1)">
|
||||||
AND
|
AND
|
||||||
<trim prefix="(" suffix=")" prefixOverrides="OR">
|
<trim prefix="(" suffix=")" prefixOverrides="OR">
|
||||||
<if test="param.sexMan == 1">OR u.sex = 1</if>
|
<if test="param.sexMan == 1">OR u.sex = 1</if>
|
||||||
<if test="param.sexWoman == 1">OR u.sex = 0</if>
|
<if test="param.sexWoman == 1">OR u.sex = 0</if>
|
||||||
<if test="param.sexUnknown == 1">OR u.sex IS NULL</if>
|
<if test="param.sexUnknown == 1">OR u.sex IS NULL</if>
|
||||||
</trim>
|
</trim>
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
<!-- 会员状态筛选 -->
|
<!-- 会员状态筛选 -->
|
||||||
<if test="param.isVip != null">
|
<if test="param.isVip != null">
|
||||||
AND u.is_vip = #{param.isVip}
|
AND u.is_vip = #{param.isVip}
|
||||||
</if>
|
</if>
|
||||||
|
|
||||||
<if test="param.isRecharge != null">
|
<if test="param.isRecharge != null">
|
||||||
AND u.recharge_count <![CDATA[ ${param.isRecharge == 0 ? '=' : '>'} ]]> 0
|
AND u.recharge_count <![CDATA[ ${param.isRecharge == 0 ? '=' : '>'} ]]> 0
|
||||||
</if>
|
</if>
|
||||||
<!-- 只有当有筛选条件时才需要HAVING子句 -->
|
<!-- 只有当有筛选条件时才需要HAVING子句 -->
|
||||||
<if test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
|
<if test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
|
||||||
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
|
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
|
||||||
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
|
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
|
||||||
GROUP BY u.id
|
GROUP BY u.id
|
||||||
HAVING
|
HAVING
|
||||||
<trim prefix="(" suffix=")" prefixOverrides="OR">
|
<trim prefix="(" suffix=")" prefixOverrides="OR">
|
||||||
<if test="param.orderTimeToday == 1">OR today_orders > 0</if>
|
<if test="param.orderTimeToday == 1">OR today_orders > 0</if>
|
||||||
<if test="param.orderTimeYesterday == 1">OR yesterday_orders > 0</if>
|
<if test="param.orderTimeYesterday == 1">OR yesterday_orders > 0</if>
|
||||||
<if test="param.orderTimeTwoWeeks == 1">OR two_weeks_orders > 0</if>
|
<if test="param.orderTimeTwoWeeks == 1">OR two_weeks_orders > 0</if>
|
||||||
<if test="param.orderTimeMoreThanTwoWeeks == 1">OR earlier_orders > 0</if>
|
<if test="param.orderTimeMoreThanTwoWeeks == 1">OR earlier_orders > 0</if>
|
||||||
|
|
||||||
<if test="param.noOrder == 1">OR order_count = 0</if>
|
<if test="param.noOrder == 1">OR order_count = 0</if>
|
||||||
<if test="param.oneOrder == 1">OR order_count = 1</if>
|
<if test="param.oneOrder == 1">OR order_count = 1</if>
|
||||||
<if test="param.fiveOrder == 1">OR order_count >= 5</if>
|
<if test="param.fiveOrder == 1">OR order_count >= 5</if>
|
||||||
</trim>
|
</trim>
|
||||||
</if>
|
</if>
|
||||||
order by u.create_time desc
|
order by u.create_time desc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue