- 新增资产状态、订单来源、操作人类型、实名链接类型常量 - 8个模型新增字段(asset_status/generation/source/retail_price等) - 数据库迁移000082:7张表15+字段,含存量retail_price回填 - BUG-1修复:代理零售价渠道隔离,cost_price分配锁定 - BUG-2修复:一次性佣金仅客户端订单触发 - BUG-4修复:充值回调Store操作纳入事务 - 新增资产手动停用接口(PATCH /iot-cards/:id/deactivate、/devices/:id/deactivate) - Carrier管理新增实名链接配置 - 后台订单generation写时快照 - BatchUpdatePricing支持retail_price调价目标 - 清理全部H5旧接口和个人客户旧登录方法
59 lines
3.7 KiB
SQL
59 lines
3.7 KiB
SQL
-- 客户端接口数据模型基础准备
|
|
-- 提案: client-api-data-model-fixes
|
|
-- 包含: 资产状态、世代编号、订单来源、操作人类型、实名链接配置、代理零售价、索引变更
|
|
|
|
-- 1. tb_iot_card: 新增 asset_status 和 generation
|
|
ALTER TABLE tb_iot_card ADD COLUMN asset_status int NOT NULL DEFAULT 1;
|
|
ALTER TABLE tb_iot_card ADD COLUMN generation int NOT NULL DEFAULT 1;
|
|
COMMENT ON COLUMN tb_iot_card.asset_status IS '业务状态 1-在库 2-已销售 3-已换货 4-已停用';
|
|
COMMENT ON COLUMN tb_iot_card.generation IS '资产世代编号';
|
|
|
|
-- 2. tb_device: 新增 asset_status 和 generation
|
|
ALTER TABLE tb_device ADD COLUMN asset_status int NOT NULL DEFAULT 1;
|
|
ALTER TABLE tb_device ADD COLUMN generation int NOT NULL DEFAULT 1;
|
|
COMMENT ON COLUMN tb_device.asset_status IS '业务状态 1-在库 2-已销售 3-已换货 4-已停用';
|
|
COMMENT ON COLUMN tb_device.generation IS '资产世代编号';
|
|
|
|
-- 3. tb_order: 新增 source 和 generation
|
|
ALTER TABLE tb_order ADD COLUMN source varchar(20) NOT NULL DEFAULT 'admin';
|
|
ALTER TABLE tb_order ADD COLUMN generation int NOT NULL DEFAULT 1;
|
|
COMMENT ON COLUMN tb_order.source IS '订单来源 admin-后台 client-客户端';
|
|
COMMENT ON COLUMN tb_order.generation IS '资产世代编号';
|
|
|
|
-- 4. tb_package_usage: 新增 generation
|
|
ALTER TABLE tb_package_usage ADD COLUMN generation int NOT NULL DEFAULT 1;
|
|
COMMENT ON COLUMN tb_package_usage.generation IS '资产世代编号';
|
|
|
|
-- 5. tb_asset_recharge_record: 新增 operator_type、generation 和强充关联字段
|
|
ALTER TABLE tb_asset_recharge_record ADD COLUMN operator_type varchar(20) NOT NULL DEFAULT 'admin_user';
|
|
ALTER TABLE tb_asset_recharge_record ADD COLUMN generation int NOT NULL DEFAULT 1;
|
|
ALTER TABLE tb_asset_recharge_record ADD COLUMN linked_package_ids jsonb DEFAULT '[]';
|
|
ALTER TABLE tb_asset_recharge_record ADD COLUMN linked_order_type varchar(20);
|
|
ALTER TABLE tb_asset_recharge_record ADD COLUMN linked_carrier_type varchar(20);
|
|
ALTER TABLE tb_asset_recharge_record ADD COLUMN linked_carrier_id bigint;
|
|
COMMENT ON COLUMN tb_asset_recharge_record.operator_type IS '操作人类型 admin_user-后台用户 personal_customer-个人客户';
|
|
COMMENT ON COLUMN tb_asset_recharge_record.generation IS '资产世代编号';
|
|
COMMENT ON COLUMN tb_asset_recharge_record.linked_package_ids IS '强充关联套餐ID列表';
|
|
COMMENT ON COLUMN tb_asset_recharge_record.linked_order_type IS '关联订单类型';
|
|
COMMENT ON COLUMN tb_asset_recharge_record.linked_carrier_type IS '关联载体类型';
|
|
COMMENT ON COLUMN tb_asset_recharge_record.linked_carrier_id IS '关联载体ID';
|
|
|
|
-- 6. tb_carrier: 新增实名链接配置
|
|
ALTER TABLE tb_carrier ADD COLUMN realname_link_type varchar(20) NOT NULL DEFAULT 'none';
|
|
ALTER TABLE tb_carrier ADD COLUMN realname_link_template varchar(500) DEFAULT '';
|
|
COMMENT ON COLUMN tb_carrier.realname_link_type IS '实名链接类型 none-不支持 template-模板URL gateway-Gateway接口';
|
|
COMMENT ON COLUMN tb_carrier.realname_link_template IS '实名链接模板URL';
|
|
|
|
-- 7. tb_shop_package_allocation: 新增 retail_price
|
|
ALTER TABLE tb_shop_package_allocation ADD COLUMN retail_price bigint NOT NULL DEFAULT 0;
|
|
COMMENT ON COLUMN tb_shop_package_allocation.retail_price IS '代理面向终端客户的零售价(分)';
|
|
|
|
-- 8. 存量数据修复: 将 retail_price 设为对应套餐的 suggested_retail_price
|
|
UPDATE tb_shop_package_allocation spa
|
|
SET retail_price = (SELECT suggested_retail_price FROM tb_package p WHERE p.id = spa.package_id)
|
|
WHERE retail_price = 0;
|
|
|
|
-- 9. tb_personal_customer: wx_open_id 唯一索引改为普通索引
|
|
DROP INDEX IF EXISTS idx_personal_customer_wx_open_id;
|
|
CREATE INDEX idx_personal_customer_wx_open_id ON tb_personal_customer(wx_open_id);
|