参数问题

This commit is contained in:
wangw 2025-10-16 09:29:19 +08:00
parent 8bb97188ab
commit 1510493305
2 changed files with 26 additions and 26 deletions

View File

@ -46,7 +46,7 @@ public interface ShopUserMapper extends BaseMapper<ShopUser> {
List<ShopUser> selectPushEventUser(
@Param("mainShopId") Long mainShopId,
@Param("shopId") Long shopId,
SmsPushEventUser smsPushEventUser
@Param("param") SmsPushEventUser smsPushEventUser
);
}

View File

@ -122,9 +122,9 @@
u.id, u.head_img, u.nick_name, u.amount, u.account_points, u.phone,
<choose>
<!-- 当有筛选条件时才计算订单相关字段 -->
<when test="orderTimeToday == 1 or orderTimeYesterday == 1 or
orderTimeTwoWeeks == 1 or orderTimeMoreThanTwoWeeks == 1 or
noOrder == 1 or oneOrder == 1 or fiveOrder == 1">
<when test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
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() - INTERVAL 1 DAY THEN 1 ELSE 0 END) AS yesterday_orders,
@ -143,52 +143,52 @@
</choose>
FROM shop_user u
<!-- 只有当有筛选条件时才关联order表 -->
<if test="orderTimeToday == 1 or orderTimeYesterday == 1 or
orderTimeTwoWeeks == 1 or orderTimeMoreThanTwoWeeks == 1 or
noOrder == 1 or oneOrder == 1 or fiveOrder == 1">
<if test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
LEFT JOIN `order` o ON u.user_id = o.user_id and o.user_id is not null AND o.shop_id = #{shopId} AND o.status = 'done'
</if>
WHERE u.main_shop_id = #{mainShopId} and u.phone is not null
<!-- 性别筛选条件 -->
<if test="(sexMan == 1 or sexWoman == 1 or sexUnknown == 1)">
<if test="(param.sexMan == 1 or param.sexWoman == 1 or param.sexUnknown == 1)">
AND
<trim prefix="(" suffix=")" prefixOverrides="OR">
<if test="sexMan == 1">OR u.sex = 1</if>
<if test="sexWoman == 1">OR u.sex = 0</if>
<if test="sexUnknown == 1">OR u.sex IS NULL</if>
<if test="param.sexMan == 1">OR u.sex = 1</if>
<if test="param.sexWoman == 1">OR u.sex = 0</if>
<if test="param.sexUnknown == 1">OR u.sex IS NULL</if>
</trim>
</if>
<!-- 会员状态筛选 -->
<if test="isVip != null">
AND u.is_vip = #{isVip}
<if test="param.isVip != null">
AND u.is_vip = #{param.isVip}
</if>
<!-- 充值状态筛选 -->
<if test="isRecharge != null">
<if test="param.isRecharge != null">
AND
<if test="isRecharge == 0">
<if test="param.isRecharge == 0">
u.recharge_count = 0
</if>
<if test="isRecharge != 0">
<if test="param.isRecharge != 0">
u.recharge_count > 0
</if>
</if>
<!-- 只有当有筛选条件时才需要HAVING子句 -->
<if test="orderTimeToday == 1 or orderTimeYesterday == 1 or
orderTimeTwoWeeks == 1 or orderTimeMoreThanTwoWeeks == 1 or
noOrder == 1 or oneOrder == 1 or fiveOrder == 1">
<if test="param.orderTimeToday == 1 or param.orderTimeYesterday == 1 or
param.orderTimeTwoWeeks == 1 or param.orderTimeMoreThanTwoWeeks == 1 or
param.noOrder == 1 or param.oneOrder == 1 or param.fiveOrder == 1">
GROUP BY u.id
HAVING
<trim prefix="(" suffix=")" prefixOverrides="OR">
<if test="orderTimeToday == 1">OR today_orders > 0</if>
<if test="orderTimeYesterday == 1">OR yesterday_orders > 0</if>
<if test="orderTimeTwoWeeks == 1">OR two_weeks_orders > 0</if>
<if test="orderTimeMoreThanTwoWeeks == 1">OR earlier_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.orderTimeTwoWeeks == 1">OR two_weeks_orders > 0</if>
<if test="param.orderTimeMoreThanTwoWeeks == 1">OR earlier_orders > 0</if>
<if test="noOrder == 1">OR order_count = 0</if>
<if test="oneOrder == 1">OR order_count = 1</if>
<if test="fiveOrder == 1">OR order_count >= 5</if>
<if test="param.noOrder == 1">OR order_count = 0</if>
<if test="param.oneOrder == 1">OR order_count = 1</if>
<if test="param.fiveOrder == 1">OR order_count >= 5</if>
</trim>
</if>
order by u.create_time desc