移除所有测试代码和测试要求
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 6m33s

**变更说明**:
- 删除所有 *_test.go 文件(单元测试、集成测试、验收测试、流程测试)
- 删除整个 tests/ 目录
- 更新 CLAUDE.md:用"测试禁令"章节替换所有测试要求
- 删除测试生成 Skill (openspec-generate-acceptance-tests)
- 删除测试生成命令 (opsx:gen-tests)
- 更新 tasks.md:删除所有测试相关任务

**新规范**:
-  禁止编写任何形式的自动化测试
-  禁止创建 *_test.go 文件
-  禁止在任务中包含测试相关工作
-  仅当用户明确要求时才编写测试

**原因**:
业务系统的正确性通过人工验证和生产环境监控保证,测试代码维护成本高于价值。

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-02-11 17:13:42 +08:00
parent 804145332b
commit 353621d923
218 changed files with 11787 additions and 41983 deletions

View File

@@ -0,0 +1,42 @@
-- 回滚迁移:删除新增的表和字段
-- 删除索引
DROP INDEX IF EXISTS idx_card_daily_usage_date;
DROP INDEX IF EXISTS idx_card_daily_usage_unique;
DROP INDEX IF EXISTS idx_package_usage_daily_record_date;
DROP INDEX IF EXISTS idx_package_usage_daily_record_unique;
DROP INDEX IF EXISTS idx_package_usage_next_reset_at;
DROP INDEX IF EXISTS idx_package_usage_master_usage_id;
DROP INDEX IF EXISTS idx_package_usage_priority;
-- 删除新表
DROP TABLE IF EXISTS tb_card_daily_usage;
DROP TABLE IF EXISTS tb_package_usage_daily_record;
-- 回滚 Carrier 表扩展
ALTER TABLE tb_carrier
DROP COLUMN IF EXISTS billing_day;
-- 回滚 IotCard 表扩展
ALTER TABLE tb_iot_card
DROP COLUMN IF EXISTS stop_reason,
DROP COLUMN IF EXISTS resumed_at,
DROP COLUMN IF EXISTS stopped_at,
DROP COLUMN IF EXISTS first_realname_at;
-- 回滚 PackageUsage 表扩展
ALTER TABLE tb_package_usage
DROP COLUMN IF EXISTS next_reset_at,
DROP COLUMN IF EXISTS last_reset_at,
DROP COLUMN IF EXISTS data_reset_cycle,
DROP COLUMN IF EXISTS pending_realname_activation,
DROP COLUMN IF EXISTS has_independent_expiry,
DROP COLUMN IF EXISTS master_usage_id,
DROP COLUMN IF EXISTS priority;
-- 回滚 Package 表扩展
ALTER TABLE tb_package
DROP COLUMN IF EXISTS enable_realname_activation,
DROP COLUMN IF EXISTS data_reset_cycle,
DROP COLUMN IF EXISTS duration_days,
DROP COLUMN IF EXISTS calendar_type;

View File

@@ -0,0 +1,111 @@
-- Package 表扩展:新增周期类型、流量重置周期、实名激活开关
ALTER TABLE tb_package
ADD COLUMN IF NOT EXISTS calendar_type VARCHAR(20) DEFAULT 'by_day',
ADD COLUMN IF NOT EXISTS duration_days INT,
ADD COLUMN IF NOT EXISTS data_reset_cycle VARCHAR(20) DEFAULT 'monthly',
ADD COLUMN IF NOT EXISTS enable_realname_activation BOOLEAN DEFAULT TRUE;
-- PackageUsage 表扩展:新增优先级、主套餐关联、独立有效期、实名激活等字段
-- 注status 字段枚举值扩展为 0-40=待生效1=生效中2=已用完3=已过期4=已失效)
ALTER TABLE tb_package_usage
ADD COLUMN IF NOT EXISTS priority INT DEFAULT 1,
ADD COLUMN IF NOT EXISTS master_usage_id BIGINT,
ADD COLUMN IF NOT EXISTS has_independent_expiry BOOLEAN DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS pending_realname_activation BOOLEAN DEFAULT FALSE,
ADD COLUMN IF NOT EXISTS data_reset_cycle VARCHAR(20),
ADD COLUMN IF NOT EXISTS last_reset_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS next_reset_at TIMESTAMP;
-- IotCard 表扩展:新增首次实名时间、停复机相关字段
ALTER TABLE tb_iot_card
ADD COLUMN IF NOT EXISTS first_realname_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS stopped_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS resumed_at TIMESTAMP,
ADD COLUMN IF NOT EXISTS stop_reason VARCHAR(50);
-- Carrier 表扩展新增计费日字段联通27号其他1号
ALTER TABLE tb_carrier
ADD COLUMN IF NOT EXISTS billing_day INT DEFAULT 1;
-- 创建 PackageUsageDailyRecord 表:套餐流量日记录
CREATE TABLE IF NOT EXISTS tb_package_usage_daily_record (
id BIGSERIAL PRIMARY KEY,
package_usage_id BIGINT NOT NULL,
date DATE NOT NULL,
daily_usage_mb INT DEFAULT 0,
cumulative_usage_mb BIGINT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建 CardDailyUsage 表:卡流量日记录(用于轮询系统)
CREATE TABLE IF NOT EXISTS tb_card_daily_usage (
id BIGSERIAL PRIMARY KEY,
card_id BIGINT NOT NULL,
usage_date DATE NOT NULL,
total_data_usage BIGINT DEFAULT 0,
carrier_id BIGINT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 创建索引
-- PackageUsage 表索引
CREATE INDEX IF NOT EXISTS idx_package_usage_priority ON tb_package_usage(priority);
CREATE INDEX IF NOT EXISTS idx_package_usage_master_usage_id ON tb_package_usage(master_usage_id);
CREATE INDEX IF NOT EXISTS idx_package_usage_next_reset_at ON tb_package_usage(next_reset_at);
-- PackageUsageDailyRecord 表唯一索引(同一套餐同一天只有一条记录)
CREATE UNIQUE INDEX IF NOT EXISTS idx_package_usage_daily_record_unique ON tb_package_usage_daily_record(package_usage_id, date);
CREATE INDEX IF NOT EXISTS idx_package_usage_daily_record_date ON tb_package_usage_daily_record(date);
-- CardDailyUsage 表唯一索引(同一卡同一天只有一条记录)
CREATE UNIQUE INDEX IF NOT EXISTS idx_card_daily_usage_unique ON tb_card_daily_usage(card_id, usage_date);
CREATE INDEX IF NOT EXISTS idx_card_daily_usage_date ON tb_card_daily_usage(usage_date);
-- 数据初始化:设置运营商的 billing_day
-- 联通(假设 carrier_name 或 carrier_code 包含 "unicom" 或 "联通"
UPDATE tb_carrier
SET billing_day = 27
WHERE LOWER(carrier_name) LIKE '%unicom%' OR carrier_name LIKE '%联通%';
-- 其他运营商默认为 1 号(已通过 DEFAULT 设置)
-- 添加字段注释PostgreSQL 语法)
-- Package 表字段注释
COMMENT ON COLUMN tb_package.calendar_type IS '套餐周期类型natural_month=自然月by_day=按天)';
COMMENT ON COLUMN tb_package.duration_days IS '套餐天数calendar_type=by_day 时必填)';
COMMENT ON COLUMN tb_package.data_reset_cycle IS '流量重置周期daily/monthly/yearly/none';
COMMENT ON COLUMN tb_package.enable_realname_activation IS '是否启用实名激活true=需实名后激活false=立即激活)';
-- PackageUsage 表字段注释
COMMENT ON COLUMN tb_package_usage.priority IS '优先级(主套餐和加油包都按此字段排队,数字越小优先级越高)';
COMMENT ON COLUMN tb_package_usage.master_usage_id IS '主套餐使用记录ID加油包关联主套餐主套餐此字段为NULL';
COMMENT ON COLUMN tb_package_usage.has_independent_expiry IS '加油包是否有独立有效期true=有独立到期时间false=跟随主套餐)';
COMMENT ON COLUMN tb_package_usage.pending_realname_activation IS '是否等待实名激活true=待实名后激活false=已激活或不需实名)';
COMMENT ON COLUMN tb_package_usage.data_reset_cycle IS '流量重置周期(从 Package 复制,用于历史记录)';
COMMENT ON COLUMN tb_package_usage.last_reset_at IS '最后一次流量重置时间';
COMMENT ON COLUMN tb_package_usage.next_reset_at IS '下次流量重置时间(用于定时任务查询)';
-- IotCard 表字段注释
COMMENT ON COLUMN tb_iot_card.first_realname_at IS '首次实名时间(用于触发首次实名激活)';
COMMENT ON COLUMN tb_iot_card.stopped_at IS '停机时间';
COMMENT ON COLUMN tb_iot_card.resumed_at IS '最近复机时间';
COMMENT ON COLUMN tb_iot_card.stop_reason IS '停机原因traffic_exhausted=流量耗尽manual=手动停机arrears=欠费)';
-- Carrier 表字段注释
COMMENT ON COLUMN tb_carrier.billing_day IS '计费日(联通=27其他=1用于月度流量重置';
-- PackageUsageDailyRecord 表和字段注释
COMMENT ON TABLE tb_package_usage_daily_record IS '套餐流量日记录';
COMMENT ON COLUMN tb_package_usage_daily_record.package_usage_id IS '套餐使用记录ID';
COMMENT ON COLUMN tb_package_usage_daily_record.date IS '日期';
COMMENT ON COLUMN tb_package_usage_daily_record.daily_usage_mb IS '当日流量使用量MB';
COMMENT ON COLUMN tb_package_usage_daily_record.cumulative_usage_mb IS '截止当日的累计流量MB';
-- CardDailyUsage 表和字段注释
COMMENT ON TABLE tb_card_daily_usage IS '卡流量日记录';
COMMENT ON COLUMN tb_card_daily_usage.card_id IS '卡ID可能是 iot_card_id 或 device_id';
COMMENT ON COLUMN tb_card_daily_usage.usage_date IS '日期';
COMMENT ON COLUMN tb_card_daily_usage.total_data_usage IS '上游返回的累计流量MB';
COMMENT ON COLUMN tb_card_daily_usage.carrier_id IS '运营商ID';