peixue-dev/Archive/peidu-temp-files/docs/[一次性]时卡诊断-快速指南-2026-01-25.md

2.9 KiB
Raw Blame History

时卡诊断 - 快速指南

日期: 2026-01-25


📋 执行步骤

1 打开简化版SQL文件

文件位置:Archive/peidu-temp-files/sql/[一次性]诊断时卡-简化版-2026-01-25.sql

2 修改手机号

将所有 13800138000 替换为您的实际手机号

3 依次执行4个查询

查询1查看所有时卡

SELECT 
    id,
    user_id,
    card_no,
    card_name,
    status,
    total_hours,
    used_hours,
    remaining_hours,
    start_date,
    expire_date,
    deleted,
    create_time
FROM time_card
WHERE user_id = (SELECT id FROM user WHERE phone = '您的手机号' LIMIT 1)
ORDER BY create_time DESC;

查询2检查时卡状态

SELECT 
    id,
    card_name,
    status AS status_code,
    remaining_hours,
    expire_date,
    deleted
FROM time_card
WHERE user_id = (SELECT id FROM user WHERE phone = '您的手机号' LIMIT 1)
ORDER BY create_time DESC;

查询3模拟后端查询

SELECT 
    id,
    card_no,
    card_name,
    status,
    total_hours,
    used_hours,
    remaining_hours,
    start_date,
    expire_date
FROM time_card 
WHERE user_id = (SELECT id FROM user WHERE phone = '您的手机号' LIMIT 1)
AND status = 1
AND remaining_hours > 0
AND expire_date > CURRENT_DATE
AND deleted = 0
ORDER BY expire_date ASC;

查询4查看当前日期

SELECT CURRENT_DATE AS today;

🔍 判断问题

如果查询3返回空结果

对比查询1和查询2的结果检查

字段 要求 您的值 是否正常
status 必须 = 1 ? /
remaining_hours 必须 > 0 ? /
expire_date 必须 > 今天 ? /
deleted 必须 = 0 ? /

🛠️ 执行修复

问题1status 不是 1

UPDATE time_card 
SET status = 1, update_time = CURRENT_TIMESTAMP
WHERE user_id = (SELECT id FROM user WHERE phone = '您的手机号' LIMIT 1)
AND status != 1
AND remaining_hours > 0
AND deleted = 0;

问题2expire_date 为空或已过期

UPDATE time_card 
SET expire_date = DATE_ADD(CURRENT_DATE, INTERVAL 1 YEAR), 
    update_time = CURRENT_TIMESTAMP
WHERE user_id = (SELECT id FROM user WHERE phone = '您的手机号' LIMIT 1)
AND (expire_date IS NULL OR expire_date <= CURRENT_DATE)
AND deleted = 0;

问题3start_date 为空

UPDATE time_card 
SET start_date = CURRENT_DATE, 
    update_time = CURRENT_TIMESTAMP
WHERE user_id = (SELECT id FROM user WHERE phone = '您的手机号' LIMIT 1)
AND start_date IS NULL
AND deleted = 0;

验证修复

执行修复SQL后再次运行查询3应该能看到时卡数据了。


📸 请提供给我

  1. 查询1的结果截图 - 显示所有时卡
  2. 查询2的结果截图 - 显示状态检查
  3. 查询3的结果 - 是否返回数据?

这样我就能准确判断问题并指导您修复!