feat: check-members.sh增加订单一致性检查-标记无付款记录的异常会员

This commit is contained in:
2026-06-05 22:40:44 +08:00
parent f04a0ab27d
commit 101b8fbf2c

View File

@@ -186,6 +186,24 @@ else
MEMBER_LIST=$(psql_exec "$SQL_LIST")
fi
# ---- 订单与会员一致性检查 ----
SQL_ORDER_CHECK=$(cat <<'SQL'
SELECT
u.id,
COALESCE(u.nickname, CONCAT('用户 #', u.id)) AS name,
COUNT(po.id) AS total_orders,
COUNT(po.id) FILTER (WHERE po.status = 'paid') AS paid_orders
FROM users u
LEFT JOIN payment_orders po ON po.user_id = u.id
WHERE u.is_member = true
GROUP BY u.id, u.nickname
HAVING COUNT(po.id) FILTER (WHERE po.status = 'paid') = 0
ORDER BY u.id;
SQL
)
ORDER_ISSUES=$(psql_exec "$SQL_ORDER_CHECK")
# ---- 近期到期的活跃会员 ----
SQL_EXPIRING=$(cat <<'SQL'
SELECT
@@ -277,3 +295,14 @@ if [ -n "$EXPIRING_LIST" ]; then
fi
echo -e "${CYAN}══════════════════════════════════════${NC}"
# ---- 订单异常提醒 ----
if [ -n "$ORDER_ISSUES" ]; then
echo -e "${BOLD}⚠️ 订单异常:有会员身份但无成功付款记录${NC}"
echo " !用户可能通过手动操作获得了会员身份"
while IFS='|' read -r id name total_orders paid_orders; do
[ -z "$id" ] && continue
echo -e " ${YELLOW}⚠️ 用户 #${id}${name}):共 ${total_orders} 条订单,${paid_orders} 条已支付${NC}"
done <<< "$ORDER_ISSUES"
echo ""
fi