ShareEnum.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. namespace app\common\Enum;
  3. /**
  4. * 分享枚举类
  5. */
  6. class ShareEnum
  7. {
  8. // 分享来源类型
  9. const FROM_FORWARD = 'forward';
  10. const FROM_POSTER = 'poster';
  11. const FROM_LINK = 'link';
  12. // 分享平台类型
  13. const PLATFORM_H5 = 'H5';
  14. const PLATFORM_WECHAT_OFFICIAL_ACCOUNT = 'WechatOfficialAccount';
  15. const PLATFORM_WECHAT_MINI_PROGRAM = 'WechatMiniProgram';
  16. const PLATFORM_APP = 'App';
  17. /**
  18. * 获取分享来源列表
  19. */
  20. public static function getFromList()
  21. {
  22. return [
  23. self::FROM_FORWARD => '直接转发',
  24. self::FROM_POSTER => '识别海报',
  25. self::FROM_LINK => '分享链接',
  26. ];
  27. }
  28. /**
  29. * 获取分享平台列表
  30. */
  31. public static function getPlatformList()
  32. {
  33. return [
  34. self::PLATFORM_H5 => 'H5网页',
  35. self::PLATFORM_WECHAT_OFFICIAL_ACCOUNT => '微信公众号网页',
  36. self::PLATFORM_WECHAT_MINI_PROGRAM => '微信小程序',
  37. self::PLATFORM_APP => 'APP',
  38. ];
  39. }
  40. /**
  41. * 获取分享来源文本
  42. */
  43. public static function getFromText($from)
  44. {
  45. return self::getFromList()[$from] ?? $from;
  46. }
  47. /**
  48. * 获取分享平台文本
  49. */
  50. public static function getPlatformText($platform)
  51. {
  52. return self::getPlatformList()[$platform] ?? $platform;
  53. }
  54. /**
  55. * 验证分享来源是否有效
  56. */
  57. public static function isValidFrom($from)
  58. {
  59. return array_key_exists($from, self::getFromList());
  60. }
  61. /**
  62. * 验证分享平台是否有效
  63. */
  64. public static function isValidPlatform($platform)
  65. {
  66. return array_key_exists($platform, self::getPlatformList());
  67. }
  68. /**
  69. * 平台映射到数字ID (与前端buildSpmQuery保持一致)
  70. * 1=H5,2=微信公众号网页,3=微信小程序,4=App
  71. */
  72. public static function getPlatformIdMap()
  73. {
  74. return [
  75. self::PLATFORM_H5 => 1,
  76. self::PLATFORM_WECHAT_OFFICIAL_ACCOUNT => 2,
  77. self::PLATFORM_WECHAT_MINI_PROGRAM => 3,
  78. self::PLATFORM_APP => 4,
  79. ];
  80. }
  81. /**
  82. * 根据平台获取数字ID
  83. */
  84. public static function getPlatformId($platform)
  85. {
  86. return self::getPlatformIdMap()[$platform] ?? 3; // 默认微信小程序
  87. }
  88. }