add_voice_pricing.sql 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. -- ============================================================
  2. -- 外呼接口改造 DDL
  3. -- 1. company_voice_api 新增 provider + cost_price
  4. -- 2. company_voice_api_tenant 新增 price + priority + is_primary + allow_manual
  5. -- ============================================================
  6. -- ========== 1. voice_api 新增字段 ==========
  7. -- provider 用存储过程检测列是否存在
  8. DROP PROCEDURE IF EXISTS add_voice_api_columns;
  9. DELIMITER //
  10. CREATE PROCEDURE add_voice_api_columns()
  11. BEGIN
  12. IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  13. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_voice_api' AND COLUMN_NAME = 'provider') THEN
  14. ALTER TABLE company_voice_api ADD COLUMN provider VARCHAR(20) DEFAULT 'platform' COMMENT '服务商:platform平台/card手机卡' AFTER api_type;
  15. END IF;
  16. IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  17. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_voice_api' AND COLUMN_NAME = 'cost_price') THEN
  18. ALTER TABLE company_voice_api ADD COLUMN cost_price DECIMAL(10,4) DEFAULT NULL COMMENT '平台成本价(元/分钟)' AFTER status;
  19. END IF;
  20. END //
  21. DELIMITER ;
  22. CALL add_voice_api_columns();
  23. DROP PROCEDURE add_voice_api_columns;
  24. -- ========== 2. voice_api_tenant 新增字段 ==========
  25. DROP PROCEDURE IF EXISTS add_voice_api_tenant_columns;
  26. DELIMITER //
  27. CREATE PROCEDURE add_voice_api_tenant_columns()
  28. BEGIN
  29. IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  30. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_voice_api_tenant' AND COLUMN_NAME = 'price') THEN
  31. ALTER TABLE company_voice_api_tenant ADD COLUMN price DECIMAL(10,4) DEFAULT NULL COMMENT '租户售价(元/分钟)' AFTER company_id;
  32. END IF;
  33. IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  34. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_voice_api_tenant' AND COLUMN_NAME = 'priority') THEN
  35. ALTER TABLE company_voice_api_tenant ADD COLUMN priority INT DEFAULT 1 COMMENT '优先级(1最高)' AFTER price;
  36. END IF;
  37. IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  38. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_voice_api_tenant' AND COLUMN_NAME = 'is_primary') THEN
  39. ALTER TABLE company_voice_api_tenant ADD COLUMN is_primary TINYINT DEFAULT 0 COMMENT '是否主线路(0否1是)' AFTER priority;
  40. END IF;
  41. IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS
  42. WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'company_voice_api_tenant' AND COLUMN_NAME = 'allow_manual') THEN
  43. ALTER TABLE company_voice_api_tenant ADD COLUMN allow_manual TINYINT DEFAULT 0 COMMENT '允许销售手动选择(0否1是)' AFTER is_primary;
  44. END IF;
  45. END //
  46. DELIMITER ;
  47. CALL add_voice_api_tenant_columns();
  48. DROP PROCEDURE add_voice_api_tenant_columns;