NoticeEnum.php 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeadmin快速开发前后端分离管理后台(PHP版)
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
  8. // | github下载:https://github.com/likeshop-github/likeadmin
  9. // | 访问官网:https://www.likeadmin.cn
  10. // | likeadmin团队 版权所有 拥有最终解释权
  11. // +----------------------------------------------------------------------
  12. // | author: likeadminTeam
  13. // +----------------------------------------------------------------------
  14. namespace app\common\enum\notice;
  15. /**
  16. * 通知枚举
  17. * Class NoticeEnum
  18. * @package app\common\enum
  19. */
  20. class NoticeEnum
  21. {
  22. /**
  23. * 通知类型
  24. */
  25. const SYSTEM = 1;
  26. const SMS = 2;
  27. const OA = 3;
  28. const MNP = 4;
  29. /**
  30. * 短信验证码场景
  31. */
  32. const LOGIN_CAPTCHA = 101;
  33. const BIND_MOBILE_CAPTCHA = 102;
  34. const CHANGE_MOBILE_CAPTCHA = 103;
  35. const FIND_LOGIN_PASSWORD_CAPTCHA = 104;
  36. /**
  37. * 验证码场景
  38. */
  39. const SMS_SCENE = [
  40. self::LOGIN_CAPTCHA,
  41. self::BIND_MOBILE_CAPTCHA,
  42. self::CHANGE_MOBILE_CAPTCHA,
  43. self::FIND_LOGIN_PASSWORD_CAPTCHA,
  44. ];
  45. //通知类型
  46. const BUSINESS_NOTIFICATION = 1;//业务通知
  47. const VERIFICATION_CODE = 2;//验证码
  48. /**
  49. * @notes 通知类型
  50. * @param bool $value
  51. * @return string|string[]
  52. * @author ljj
  53. * @date 2022/2/17 2:49 下午
  54. */
  55. public static function getTypeDesc($value = true)
  56. {
  57. $data = [
  58. self::BUSINESS_NOTIFICATION => '业务通知',
  59. self::VERIFICATION_CODE => '验证码'
  60. ];
  61. if ($value === true) {
  62. return $data;
  63. }
  64. return $data[$value];
  65. }
  66. /**
  67. * @notes 获取场景描述
  68. * @param $sceneId
  69. * @param false $flag
  70. * @return string|string[]
  71. * @author 段誉
  72. * @date 2022/3/29 11:33
  73. */
  74. public static function getSceneDesc($sceneId, $flag = false)
  75. {
  76. $desc = [
  77. self::LOGIN_CAPTCHA => '登录验证码',
  78. self::BIND_MOBILE_CAPTCHA => '绑定手机验证码',
  79. self::CHANGE_MOBILE_CAPTCHA => '变更手机验证码',
  80. self::FIND_LOGIN_PASSWORD_CAPTCHA => '找回登录密码验证码',
  81. ];
  82. if ($flag) {
  83. return $desc;
  84. }
  85. return $desc[$sceneId] ?? '';
  86. }
  87. /**
  88. * @notes 更具标记获取场景
  89. * @param $tag
  90. * @return int|string
  91. * @author 段誉
  92. * @date 2022/9/15 15:08
  93. */
  94. public static function getSceneByTag($tag)
  95. {
  96. $scene = [
  97. // 手机验证码登录
  98. 'YZMDL' => self::LOGIN_CAPTCHA,
  99. // 绑定手机号验证码
  100. 'BDSJHM' => self::BIND_MOBILE_CAPTCHA,
  101. // 变更手机号验证码
  102. 'BGSJHM' => self::CHANGE_MOBILE_CAPTCHA,
  103. // 找回登录密码
  104. 'ZHDLMM' => self::FIND_LOGIN_PASSWORD_CAPTCHA,
  105. ];
  106. return $scene[$tag] ?? '';
  107. }
  108. /**
  109. * @notes 获取场景变量
  110. * @param $sceneId
  111. * @param false $flag
  112. * @return array|string[]
  113. * @author 段誉
  114. * @date 2022/3/29 11:33
  115. */
  116. public static function getVars($sceneId, $flag = false)
  117. {
  118. $desc = [
  119. self::LOGIN_CAPTCHA => '验证码:code',
  120. self::BIND_MOBILE_CAPTCHA => '验证码:code',
  121. self::CHANGE_MOBILE_CAPTCHA => '验证码:code',
  122. self::FIND_LOGIN_PASSWORD_CAPTCHA => '验证码:code',
  123. ];
  124. if ($flag) {
  125. return $desc;
  126. }
  127. return isset($desc[$sceneId]) ? ['可选变量 ' . $desc[$sceneId]] : [];
  128. }
  129. /**
  130. * @notes 获取系统通知示例
  131. * @param $sceneId
  132. * @param false $flag
  133. * @return array|string[]
  134. * @author 段誉
  135. * @date 2022/3/29 11:33
  136. */
  137. public static function getSystemExample($sceneId, $flag = false)
  138. {
  139. $desc = [];
  140. if ($flag) {
  141. return $desc;
  142. }
  143. return isset($desc[$sceneId]) ? [$desc[$sceneId]] : [];
  144. }
  145. /**
  146. * @notes 获取短信通知示例
  147. * @param $sceneId
  148. * @param false $flag
  149. * @return array|string[]
  150. * @author 段誉
  151. * @date 2022/3/29 11:33
  152. */
  153. public static function getSmsExample($sceneId, $flag = false)
  154. {
  155. $desc = [
  156. self::LOGIN_CAPTCHA => '您正在登录,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  157. self::BIND_MOBILE_CAPTCHA => '您正在绑定手机号,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  158. self::CHANGE_MOBILE_CAPTCHA => '您正在变更手机号,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  159. self::FIND_LOGIN_PASSWORD_CAPTCHA => '您正在找回登录密码,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  160. ];
  161. if ($flag) {
  162. return $desc;
  163. }
  164. return isset($desc[$sceneId]) ? ['示例:' . $desc[$sceneId]] : [];
  165. }
  166. /**
  167. * @notes 获取公众号模板消息示例
  168. * @param $sceneId
  169. * @param false $flag
  170. * @return array|string[]|\string[][]
  171. * @author 段誉
  172. * @date 2022/3/29 11:33
  173. */
  174. public static function getOaExample($sceneId, $flag = false)
  175. {
  176. $desc = [];
  177. if ($flag) {
  178. return $desc;
  179. }
  180. return $desc[$sceneId] ?? [];
  181. }
  182. /**
  183. * @notes 获取小程序订阅消息示例
  184. * @param $sceneId
  185. * @param false $flag
  186. * @return array|mixed
  187. * @author 段誉
  188. * @date 2022/3/29 11:33
  189. */
  190. public static function getMnpExample($sceneId, $flag = false)
  191. {
  192. $desc = [];
  193. if ($flag) {
  194. return $desc;
  195. }
  196. return $desc[$sceneId] ?? [];
  197. }
  198. /**
  199. * @notes 提示
  200. * @param $type
  201. * @param $sceneId
  202. * @return array|string|string[]|\string[][]
  203. * @author 段誉
  204. * @date 2022/3/29 11:33
  205. */
  206. public static function getOperationTips($type, $sceneId)
  207. {
  208. // 场景变量
  209. $vars = self::getVars($sceneId);
  210. // 其他提示
  211. $other = [];
  212. // 示例
  213. switch ($type) {
  214. case self::SYSTEM:
  215. $example = self::getSystemExample($sceneId);
  216. break;
  217. case self::SMS:
  218. $other[] = '生效条件:1、管理后台完成短信设置。 2、第三方短信平台申请模板。';
  219. $example = self::getSmsExample($sceneId);
  220. break;
  221. case self::OA:
  222. $other[] = '配置路径:公众号后台 > 广告与服务 > 模板消息';
  223. $other[] = '推荐行业:主营行业:IT科技/互联网|电子商务 副营行业:消费品/消费品';
  224. $example = self::getOaExample($sceneId);
  225. break;
  226. case self::MNP:
  227. $other[] = '配置路径:小程序后台 > 功能 > 订阅消息';
  228. $example = self::getMnpExample($sceneId);
  229. break;
  230. }
  231. $tips = array_merge($vars, $example, $other);
  232. return $tips;
  233. }
  234. }