NoticeEnum.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294
  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. const OTHER_CAPTCHA = 105;
  37. const GCSSJHM_CAPTCHA =106;
  38. /**
  39. * 其他非验证码业务场景
  40. */
  41. const ACCOUNT_PASSWORD =107;
  42. const WORKER_EXAMINE =108;
  43. /**
  44. * 指定用户的类型 1:工程师,2:用户
  45. */
  46. const DESIGNATED_TYPE_WORKER = 1;
  47. const DESIGNATED_TYPE_USER = 2;
  48. /**
  49. * 验证码场景
  50. */
  51. const SMS_SCENE = [
  52. self::LOGIN_CAPTCHA,
  53. self::BIND_MOBILE_CAPTCHA,
  54. self::CHANGE_MOBILE_CAPTCHA,
  55. self::FIND_LOGIN_PASSWORD_CAPTCHA,
  56. self::OTHER_CAPTCHA,
  57. self::GCSSJHM_CAPTCHA
  58. ];
  59. //通知类型
  60. const BUSINESS_NOTIFICATION = 1;//业务通知
  61. const VERIFICATION_CODE = 2;//验证码
  62. /**
  63. * @notes 通知类型
  64. * @param bool $value
  65. * @return string|string[]
  66. * @author ljj
  67. * @date 2022/2/17 2:49 下午
  68. */
  69. public static function getTypeDesc($value = true)
  70. {
  71. $data = [
  72. self::BUSINESS_NOTIFICATION => '业务通知',
  73. self::VERIFICATION_CODE => '验证码'
  74. ];
  75. if ($value === true) {
  76. return $data;
  77. }
  78. return $data[$value];
  79. }
  80. /**
  81. * @notes 获取场景描述
  82. * @param $sceneId
  83. * @param false $flag
  84. * @return string|string[]
  85. * @author 段誉
  86. * @date 2022/3/29 11:33
  87. */
  88. public static function getSceneDesc($sceneId, $flag = false)
  89. {
  90. $desc = [
  91. self::LOGIN_CAPTCHA => '登录验证码',
  92. self::BIND_MOBILE_CAPTCHA => '绑定手机验证码',
  93. self::CHANGE_MOBILE_CAPTCHA => '变更手机验证码',
  94. self::FIND_LOGIN_PASSWORD_CAPTCHA => '找回登录密码验证码',
  95. self::OTHER_CAPTCHA => '其它',
  96. self::GCSSJHM_CAPTCHA => '工程师入驻',
  97. ];
  98. if ($flag) {
  99. return $desc;
  100. }
  101. return $desc[$sceneId] ?? '';
  102. }
  103. /**
  104. * @notes 更具标记获取场景
  105. * @param $tag
  106. * @return int|string
  107. * @author 段誉
  108. * @date 2022/9/15 15:08
  109. */
  110. public static function getSceneByTag($tag)
  111. {
  112. $scene = [
  113. // 手机验证码登录
  114. 'YZMDL' => self::LOGIN_CAPTCHA,
  115. // 绑定手机号验证码
  116. 'BDSJHM' => self::BIND_MOBILE_CAPTCHA,
  117. // 变更手机号验证码
  118. 'BGSJHM' => self::CHANGE_MOBILE_CAPTCHA,
  119. // 找回登录密码
  120. 'ZHDLMM' => self::FIND_LOGIN_PASSWORD_CAPTCHA,
  121. //其它
  122. 'OTHER' => self::OTHER_CAPTCHA,
  123. //工程师入住
  124. 'GCSSJHM' => self::GCSSJHM_CAPTCHA
  125. ];
  126. return $scene[$tag] ?? '';
  127. }
  128. /**
  129. * @notes 获取场景变量
  130. * @param $sceneId
  131. * @param false $flag
  132. * @return array|string[]
  133. * @author 段誉
  134. * @date 2022/3/29 11:33
  135. */
  136. public static function getVars($sceneId, $flag = false)
  137. {
  138. $desc = [
  139. self::LOGIN_CAPTCHA => '验证码:code',
  140. self::BIND_MOBILE_CAPTCHA => '验证码:code',
  141. self::CHANGE_MOBILE_CAPTCHA => '验证码:code',
  142. self::FIND_LOGIN_PASSWORD_CAPTCHA => '验证码:code',
  143. self::OTHER_CAPTCHA => '验证码:code',
  144. self::GCSSJHM_CAPTCHA => '验证码:code',
  145. ];
  146. if ($flag) {
  147. return $desc;
  148. }
  149. return isset($desc[$sceneId]) ? ['可选变量 ' . $desc[$sceneId]] : [];
  150. }
  151. /**
  152. * @notes 获取系统通知示例
  153. * @param $sceneId
  154. * @param false $flag
  155. * @return array|string[]
  156. * @author 段誉
  157. * @date 2022/3/29 11:33
  158. */
  159. public static function getSystemExample($sceneId, $flag = false)
  160. {
  161. $desc = [];
  162. if ($flag) {
  163. return $desc;
  164. }
  165. return isset($desc[$sceneId]) ? [$desc[$sceneId]] : [];
  166. }
  167. /**
  168. * @notes 获取短信通知示例
  169. * @param $sceneId
  170. * @param false $flag
  171. * @return array|string[]
  172. * @author 段誉
  173. * @date 2022/3/29 11:33
  174. */
  175. public static function getSmsExample($sceneId, $flag = false)
  176. {
  177. $desc = [
  178. self::LOGIN_CAPTCHA => '您正在登录,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  179. self::BIND_MOBILE_CAPTCHA => '您正在绑定手机号,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  180. self::CHANGE_MOBILE_CAPTCHA => '您正在变更手机号,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  181. self::FIND_LOGIN_PASSWORD_CAPTCHA => '您正在找回登录密码,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  182. self::OTHER_CAPTCHA => '您的验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  183. self::GCSSJHM_CAPTCHA => '工程师,您的验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  184. ];
  185. if ($flag) {
  186. return $desc;
  187. }
  188. return isset($desc[$sceneId]) ? ['示例:' . $desc[$sceneId]] : [];
  189. }
  190. /**
  191. * @notes 获取公众号模板消息示例
  192. * @param $sceneId
  193. * @param false $flag
  194. * @return array|string[]|\string[][]
  195. * @author 段誉
  196. * @date 2022/3/29 11:33
  197. */
  198. public static function getOaExample($sceneId, $flag = false)
  199. {
  200. $desc = [];
  201. if ($flag) {
  202. return $desc;
  203. }
  204. return $desc[$sceneId] ?? [];
  205. }
  206. /**
  207. * @notes 获取小程序订阅消息示例
  208. * @param $sceneId
  209. * @param false $flag
  210. * @return array|mixed
  211. * @author 段誉
  212. * @date 2022/3/29 11:33
  213. */
  214. public static function getMnpExample($sceneId, $flag = false)
  215. {
  216. $desc = [];
  217. if ($flag) {
  218. return $desc;
  219. }
  220. return $desc[$sceneId] ?? [];
  221. }
  222. /**
  223. * @notes 提示
  224. * @param $type
  225. * @param $sceneId
  226. * @return array|string|string[]|\string[][]
  227. * @author 段誉
  228. * @date 2022/3/29 11:33
  229. */
  230. public static function getOperationTips($type, $sceneId)
  231. {
  232. // 场景变量
  233. $vars = self::getVars($sceneId);
  234. // 其他提示
  235. $other = [];
  236. // 示例
  237. switch ($type) {
  238. case self::SYSTEM:
  239. $example = self::getSystemExample($sceneId);
  240. break;
  241. case self::SMS:
  242. $other[] = '生效条件:1、管理后台完成短信设置。 2、第三方短信平台申请模板。';
  243. $example = self::getSmsExample($sceneId);
  244. break;
  245. case self::OA:
  246. $other[] = '配置路径:公众号后台 > 广告与服务 > 模板消息';
  247. $other[] = '推荐行业:主营行业:IT科技/互联网|电子商务 副营行业:消费品/消费品';
  248. $example = self::getOaExample($sceneId);
  249. break;
  250. case self::MNP:
  251. $other[] = '配置路径:小程序后台 > 功能 > 订阅消息';
  252. $example = self::getMnpExample($sceneId);
  253. break;
  254. }
  255. $tips = array_merge($vars, $example, $other);
  256. return $tips;
  257. }
  258. }