diff --git a/scripts/expire-paid-user.sh b/scripts/expire-paid-user.sh index 303ffb4..a93e88d 100755 --- a/scripts/expire-paid-user.sh +++ b/scripts/expire-paid-user.sh @@ -49,39 +49,31 @@ SSH_HOST=$(get_ssh_host) DB_CONTAINER="1Panel-postgresql-FtMo" DB_USER="milkydata" - -# ---------- 设置过期日期 ---------- -if [ -z "$EXPIRES_DATE" ]; then - EXPIRES_DATE=$(date -d "yesterday" +%Y-%m-%d) - echo "未指定日期,默认设为昨天: ${EXPIRES_DATE}" -fi - -echo "═══════════════════════════════════════" -echo "用户 ${USER_ID} 会员过期操作" -echo "到期日期: ${EXPIRES_DATE}" -echo "═══════════════════════════════════════" - echo "" - -echo "⚠️ 即将执行以下操作:" -echo " 将用户 ${USER_ID} 的 membership_expires_at 设到 ${EXPIRES_DATE}" -echo " is_member 保持 true(用户仍标记为曾付费)" -echo " 用户的 is_active_member 会变为 false(付费已过期)" +echo "═══════════════════════════════════════" +echo " 操作: 用户 ${USER_ID} 会员过期" +echo " 到期日: ${EXPIRES_DATE}" +echo " 数据库: ${DB_NAME}(${SSH_HOST})" +echo "═══════════════════════════════════════" +echo "" +echo "当前状态:" +CURRENT_SQL="SELECT id, name, is_member, membership_expires_at FROM users WHERE id = ${USER_ID};" +ssh "$SSH_HOST" "docker exec ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME} -c \"${CURRENT_SQL}\"" +echo "" +echo "将要执行:" +echo " UPDATE users SET is_member = true, membership_expires_at = '"'"'${EXPIRES_DATE}'"'"'::date WHERE id = ${USER_ID};" +echo " → is_member 保持 true, is_active_member 变为 false" echo "" read -p "确认执行? [y/N] " -n 1 -r; echo [[ ! $REPLY =~ ^[Yy]$ ]] && { echo "已取消"; exit 0; } -# ---------- 执行 SQL ---------- -SQL="UPDATE users SET is_member = true, membership_expires_at = '${EXPIRES_DATE}'::date WHERE id = ${USER_ID};" - -echo "执行 SQL: ${SQL}" +echo "" +echo "执行中..." +SQL="UPDATE users SET is_member = true, membership_expires_at = '"'"'${EXPIRES_DATE}'"'"'::date WHERE id = ${USER_ID};" ssh "$SSH_HOST" "docker exec ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME} -c \"${SQL}\"" && echo "✅ 操作成功" || echo "❌ 操作失败" -# 查询验证 -QUERY_SQL="SELECT id, name, phone, type, is_member, is_admin, membership_expires_at FROM users WHERE id = ${USER_ID};" echo "" echo "验证结果:" -ssh "$SSH_HOST" "docker exec ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME} -c \"${QUERY_SQL}\"" - +VERIFY_SQL="SELECT id, name, phone, type, is_member, is_admin, membership_expires_at FROM users WHERE id = ${USER_ID};" +ssh "$SSH_HOST" "docker exec ${DB_CONTAINER} psql -U ${DB_USER} -d ${DB_NAME} -c \"${VERIFY_SQL}\"" echo "" -echo "提示: is_member 保持 true,is_active_member 会变为 false(付费已过期)"