BaseConst.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?php
  2. namespace App\Consts;
  3. class BaseConst
  4. {
  5. /**
  6. * 一天86400秒
  7. */
  8. const ONE_DAY_SECONDS = 86400;
  9. /**
  10. * 一周 86400 * 7 秒
  11. */
  12. const ONE_WEEK_SECONDS = 604800;
  13. /**
  14. * 一个月 86400 * 31 秒
  15. */
  16. const ONE_MONTH_SECONDS = 2678400;
  17. /**
  18. * 一天24*60分钟
  19. */
  20. const ONE_DAY_MINITUES = 1440;
  21. /**
  22. * 一分钟60秒
  23. */
  24. const ONE_MINUTE_SECONDS = 60;
  25. /**
  26. * 一小时3600秒
  27. */
  28. const ONE_HOUR = 3600;
  29. /**
  30. * 一年365天
  31. */
  32. const ONE_YEAR_DAYS = 365;
  33. /**
  34. * 默认锁时长
  35. */
  36. const LOCK_DEFAULT_SECONDS = 5;
  37. /**
  38. * 显示7天以前数据
  39. */
  40. const DATE_RANGE_DAYS = 7;
  41. /**
  42. * 默认分页数量
  43. */
  44. const DEFAULT_LENGTH = 15;
  45. /**
  46. * 每日分享量(达到该数值可获得一天会员)
  47. */
  48. const DAILY_SHARE_NUM = 5;
  49. /**
  50. * 初级vip等级
  51. */
  52. const JUNIOR_VIP_LEVEL = 1;
  53. /**
  54. * 高级vip登记等级
  55. */
  56. const SENIOR_VIP_LEVEL = 2;
  57. const USER_SCOPE = [
  58. '1' => '补充模板未覆盖人群',
  59. '2' => '付费用户',
  60. '3' => '派单用户'
  61. ];
  62. const PRODUCT_TYPE = [
  63. 'WEEK' => '周卡',
  64. 'MONTH' => '月卡',
  65. 'QUARTER' => '季卡',
  66. 'YEAR' => '年卡'
  67. ];
  68. const VOLC_PIC_MODELS = ['doubao-seedream-5-0-260128', 'doubao-seedream-5-0-lite-260128', 'doubao-seedream-4-5-251128'];
  69. const GPT_IMAGE2_MODELS = ['gpt-image-2'];
  70. const NANO_BANANA_MODELS = ['NanoBanana2', 'NanoBananaPro', 'GptImage2'];
  71. const GPT_TEXT_MODELS = ['gpt-5.4', 'gpt-5.6-terra', 'gpt-5.6-sol', 'gpt-5.6-luna', 'gpt-6-astra'];
  72. const GEMINI_TEXT_MODELS = [
  73. 'gemini-3-pro-preview',
  74. 'gemini-3-flash-preview',
  75. 'gemini-3.1-pro-preview',
  76. 'gemini-3.1-flash-image-preview-t',
  77. 'gemini-3.6-flash'
  78. ];
  79. // 百度 AI 网关 GLM 文生文模型(前端入参名)
  80. const BAIDU_GLM_TEXT_MODELS = ['baidu-glm-5.2', 'baidu-glm-5.3'];
  81. // 百度 AI 网关 GLM 模型映射:前端名 -> 网关真实模型名
  82. const BAIDU_GLM_MODEL_MAP = [
  83. 'baidu-glm-5.2' => 'glm-5.2',
  84. 'baidu-glm-5.3' => 'glm-5.3',
  85. ];
  86. // 火山写作奖励计划接入点(使用该接入点可在第二天根据前一天使用量获取免费额度)
  87. const MODELS_MAP = [
  88. 'doubao-seed-2-0-pro-260215' => 'ep-20260422093628-pv5vj',
  89. 'doubao-seed-2-0-lite-260215' => 'ep-20260422093559-9fsgl',
  90. 'doubao-seed-2-0-mini-260215' => 'ep-20260422093505-qkj4z',
  91. 'deepseek-v3-2-251201' => 'ep-20260422092942-7kh9p',
  92. 'doubao-seedream-4-5-251128' => 'ep-20260422092419-6lvp9',
  93. 'doubao-seedream-5-0-lite-260128' => 'ep-20260903150621-49nrm',
  94. 'doubao-seedream-5-0-pro-260628' => 'ep-20260903141837-drhcf',
  95. 'doubao-seedance-1-5-pro-251215' => 'ep-20260422091940-g4knb',
  96. ];
  97. /**
  98. * 图片生成:分辨率档位(2k/3k/4k)与画面比例对应的尺寸映射表
  99. *
  100. * 统一入口,所有图片生成入口均应引用本常量,禁止在业务代码中重复维护尺寸表。
  101. */
  102. const IMAGE_RESOLUTION_SIZE_MAP = [
  103. '2k' => [
  104. '1:1' => ['width' => 2048, 'height' => 2048],
  105. '4:3' => ['width' => 2304, 'height' => 1728],
  106. '3:4' => ['width' => 1728, 'height' => 2304],
  107. '16:9' => ['width' => 2848, 'height' => 1600],
  108. '9:16' => ['width' => 1600, 'height' => 2848],
  109. '3:2' => ['width' => 2496, 'height' => 1664],
  110. '2:3' => ['width' => 1664, 'height' => 2496],
  111. '21:9' => ['width' => 3136, 'height' => 1344],
  112. ],
  113. '3k' => [
  114. '1:1' => ['width' => 3072, 'height' => 3072],
  115. '4:3' => ['width' => 3456, 'height' => 2592],
  116. '3:4' => ['width' => 2592, 'height' => 3456],
  117. '16:9' => ['width' => 3840, 'height' => 2160],
  118. '9:16' => ['width' => 2160, 'height' => 3840],
  119. '2:3' => ['width' => 2496, 'height' => 3744],
  120. '3:2' => ['width' => 3744, 'height' => 2496],
  121. '21:9' => ['width' => 3440, 'height' => 1440],
  122. ],
  123. '4k' => [
  124. '1:1' => ['width' => 4096, 'height' => 4096],
  125. '3:4' => ['width' => 3520, 'height' => 4704],
  126. '4:3' => ['width' => 4704, 'height' => 3520],
  127. '16:9' => ['width' => 5504, 'height' => 3040],
  128. '9:16' => ['width' => 3040, 'height' => 5504],
  129. '2:3' => ['width' => 3328, 'height' => 4992],
  130. '3:2' => ['width' => 4992, 'height' => 3328],
  131. '21:9' => ['width' => 6240, 'height' => 2656],
  132. ],
  133. ];
  134. /**
  135. * 画面比例配置(默认 2k 档尺寸)
  136. */
  137. const IMAGE_RATIOS = self::IMAGE_RESOLUTION_SIZE_MAP['2k'];
  138. }