NoticeEnum.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeshop100%开源免费商用商城系统
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | 开源版本可自由商用,可去除界面版权logo
  7. // | 商业版本务必购买商业授权,以免引起法律纠纷
  8. // | 禁止对系统程序代码以任何目的,任何形式的再发布
  9. // | gitee下载:https://gitee.com/likeshop_gitee
  10. // | github下载:https://github.com/likeshop-github
  11. // | 访问官网:https://www.likeshop.cn
  12. // | 访问社区:https://home.likeshop.cn
  13. // | 访问手册:http://doc.likeshop.cn
  14. // | 微信公众号:likeshop技术社区
  15. // | likeshop团队 版权所有 拥有最终解释权
  16. // +----------------------------------------------------------------------
  17. // | author: likeshopTeam
  18. // +----------------------------------------------------------------------
  19. namespace app\common\enum;
  20. /**
  21. * 通知枚举
  22. * Class NoticeEnum
  23. * @package app\common\enum
  24. */
  25. class NoticeEnum
  26. {
  27. /**
  28. * 通知类型
  29. */
  30. const SYSTEM = 1;
  31. const SMS = 2;
  32. const OA = 3;
  33. const MNP = 4;
  34. /**
  35. * 短信验证码场景
  36. */
  37. const REGISTER_CAPTCHA = 100;
  38. const LOGIN_CAPTCHA = 101;
  39. const BIND_MOBILE_CAPTCHA = 102;
  40. const CHANGE_MOBILE_CAPTCHA = 103;
  41. const FIND_LOGIN_PASSWORD_CAPTCHA = 104;
  42. const FIND_PAY_PASSWORD_CAPTCHA = 105;
  43. /**
  44. * 业务通知场景
  45. */
  46. const ORDER_PAY_NOTICE = 106;
  47. const ORDER_SHIP_NOTICE = 107;
  48. const REFUND_REFUSE_NOTICE = 108;
  49. const REFUND_SUCCESS_NOTICE = 109;
  50. const EARNINGS_NOTICE = 110;
  51. const SELLER_ORDER_PAY_NOTICE = 200;
  52. const SELLER_REFUND_APPLY_NOTICE = 201;
  53. /**
  54. * 订单场景
  55. */
  56. const ORDER_SCENE = [
  57. self::ORDER_PAY_NOTICE,
  58. self::ORDER_SHIP_NOTICE,
  59. self::SELLER_REFUND_APPLY_NOTICE,
  60. ];
  61. /**
  62. * 验证码场景
  63. */
  64. const SMS_SCENE = [
  65. self::REGISTER_CAPTCHA,
  66. self::LOGIN_CAPTCHA,
  67. self::BIND_MOBILE_CAPTCHA,
  68. self::CHANGE_MOBILE_CAPTCHA,
  69. self::FIND_LOGIN_PASSWORD_CAPTCHA,
  70. self::FIND_PAY_PASSWORD_CAPTCHA,
  71. ];
  72. /**
  73. * @notes 获取场景描述
  74. * @param $sceneId
  75. * @param false $flag
  76. * @return string|string[]
  77. * @author Tab
  78. * @date 2021/8/19 9:59
  79. */
  80. public static function getSceneDesc($sceneId, $flag = false)
  81. {
  82. $desc = [
  83. self::REGISTER_CAPTCHA => '注册验证码',
  84. self::LOGIN_CAPTCHA => '登录验证码',
  85. self::BIND_MOBILE_CAPTCHA => '绑定手机验证码',
  86. self::CHANGE_MOBILE_CAPTCHA => '变更手机验证码',
  87. self::FIND_LOGIN_PASSWORD_CAPTCHA => '找回登录密码验证码',
  88. self::FIND_PAY_PASSWORD_CAPTCHA => '找回支付密码验证码',
  89. self::ORDER_PAY_NOTICE => '订单付款通知',
  90. self::ORDER_SHIP_NOTICE => '订单发货通知',
  91. self::REFUND_REFUSE_NOTICE => '售后退款拒绝通知',
  92. self::REFUND_SUCCESS_NOTICE => '售后退款成功通知',
  93. self::EARNINGS_NOTICE => '佣金入账通知',
  94. self::SELLER_ORDER_PAY_NOTICE => '订单付款通知',
  95. self::SELLER_REFUND_APPLY_NOTICE => '售后退款申请通知',
  96. ];
  97. if($flag) {
  98. return $desc;
  99. }
  100. return $desc[$sceneId] ?? '';
  101. }
  102. /**
  103. * @notes 获取场景变量
  104. * @param $sceneId
  105. * @param false $flag
  106. * @return string|string[]|\string[][]
  107. * @author Tab
  108. * @date 2021/9/13 16:23
  109. */
  110. public static function getVars($sceneId, $flag = false)
  111. {
  112. $desc = [
  113. self::REGISTER_CAPTCHA => '验证码:code',
  114. self::LOGIN_CAPTCHA => '验证码:code',
  115. self::BIND_MOBILE_CAPTCHA => '验证码:code',
  116. self::CHANGE_MOBILE_CAPTCHA => '验证码:code',
  117. self::FIND_LOGIN_PASSWORD_CAPTCHA => '验证码:code',
  118. self::FIND_PAY_PASSWORD_CAPTCHA => '验证码:code',
  119. self::ORDER_PAY_NOTICE => '用户昵称:nickname 订单编号:order_sn 支付时间:pay_time',
  120. self::ORDER_SHIP_NOTICE => '用户昵称:nickname 订单编号:order_sn 快递名称:express_name 物流单号:invoice_no',
  121. self::REFUND_REFUSE_NOTICE => '用户昵称:nickname 售后单号:after_sale_sn',
  122. self::REFUND_SUCCESS_NOTICE => '用户昵称:nickname 售后单号:after_sale_sn 退款金额:refund_amount',
  123. self::EARNINGS_NOTICE => '用户昵称:nickname 预估收益:earnings',
  124. self::SELLER_ORDER_PAY_NOTICE => '订单编号:order_sn',
  125. self::SELLER_REFUND_APPLY_NOTICE => '售后单号:after_sale_sn',
  126. ];
  127. if($flag) {
  128. return $desc;
  129. }
  130. return isset($desc[$sceneId]) ? ['可选变量 ' . $desc[$sceneId]] : [];
  131. }
  132. /**
  133. * @notes 获取系统通知示例
  134. * @param $sceneId
  135. * @param false $flag
  136. * @return string|string[]
  137. * @author Tab
  138. * @date 2021/9/13 16:34
  139. */
  140. public static function getSystemExample($sceneId, $flag = false)
  141. {
  142. $desc = [
  143. self::ORDER_PAY_NOTICE => '亲爱的{nickname},您的订单 {order_sn}已支付成功,商家正在快马加鞭为您安排发货。',
  144. self::ORDER_SHIP_NOTICE => '亲爱的{nickname}、您的订单{order_sn}已发货,{express_name}单号{invoice_no},请保持收件手机畅通!。',
  145. self::REFUND_REFUSE_NOTICE => '亲爱的{nickname},您的售后申请{after_sale_sn}已被卖家拒绝。',
  146. self::REFUND_SUCCESS_NOTICE => '亲爱的{nickname},您的售后申请{after_sale_sn}已成功退款。',
  147. self::EARNINGS_NOTICE => '亲爱的${nickname},恭喜您获得预估收益${earnings}元。',
  148. ];
  149. if($flag) {
  150. return $desc;
  151. }
  152. return isset($desc[$sceneId]) ? [$desc[$sceneId]] : [];
  153. }
  154. /**
  155. * @notes 获取短信通知示例
  156. * @param $sceneId
  157. * @param false $flag
  158. * @return string|string[]
  159. * @author Tab
  160. * @date 2021/9/13 16:39
  161. */
  162. public static function getSmsExample($sceneId, $flag = false)
  163. {
  164. $desc = [
  165. self::REGISTER_CAPTCHA => '您正在申请注册,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  166. self::LOGIN_CAPTCHA => '您正在登录,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  167. self::BIND_MOBILE_CAPTCHA => '您正在绑定手机号,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  168. self::CHANGE_MOBILE_CAPTCHA => '您正在变更手机号,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  169. self::FIND_LOGIN_PASSWORD_CAPTCHA => '您正在找回登录密码,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  170. self::FIND_PAY_PASSWORD_CAPTCHA => '您正在找回支付密码,验证码${code},切勿将验证码泄露于他人,本条验证码有效期5分钟。',
  171. self::ORDER_PAY_NOTICE => '亲爱的${nickname},您的订单${order_sn}已支付成功,商家正在快马加鞭为您安排发货。',
  172. self::ORDER_SHIP_NOTICE => '亲爱的${nickname}、您的订单${order_sn}已发货,${express_name}单号${invoice_no},请保持收件手机畅通。',
  173. self::REFUND_REFUSE_NOTICE => '亲爱的${nickname},您的售后申请${after_sale_sn}已被卖家拒绝。',
  174. self::REFUND_SUCCESS_NOTICE => '亲爱的${nickname},您的售后申请${after_sale_sn}已成功退款。',
  175. self::EARNINGS_NOTICE => '亲爱的${nickname},恭喜您获得预估收益${earnings}元。',
  176. self::SELLER_ORDER_PAY_NOTICE => '亲爱的卖家,您有新的付款订单,订单编号${order_sn},请及时处理。',
  177. self::SELLER_REFUND_APPLY_NOTICE => '亲爱的卖家,您有新的售后申请,售后单号${after_sale_sn},请及时处理。',
  178. ];
  179. if($flag) {
  180. return $desc;
  181. }
  182. return isset($desc[$sceneId]) ? ['示例:' . $desc[$sceneId]] : [];
  183. }
  184. /**
  185. * @notes 获取公众号模板消息示例
  186. * @param $sceneId
  187. * @param false $flag
  188. * @return array|string[]|\string[][]
  189. * @author Tab
  190. * @date 2021/9/13 17:04
  191. */
  192. public static function getOaExample($sceneId, $flag = false)
  193. {
  194. $desc = [
  195. self::ORDER_PAY_NOTICE => [
  196. '模板库: 搜索 “订单支付成功通知”,选用编号:OPENTM201285651的模板,添加,获得模板ID。',
  197. '头部内容:您的订单已支付成功。',
  198. '尾部内容:商家正在快马加鞭为您安排发货。',
  199. '字段名 字段值 字段内容',
  200. '商品名称 keyword1 {goods_name}',
  201. '订单编号 keyword2 {order_sn}',
  202. '支付金额 keyword3 {order_amount}',
  203. ],
  204. self::ORDER_SHIP_NOTICE => [
  205. '模板库: 搜索 “订单发货通知”,选用编号:OPENTM414956350的模板,添加,获得模板ID。',
  206. '头部内容:您购买的订单已经发货啦,正快马加鞭向您飞奔而去。',
  207. '尾部内容:请保持收件手机畅通。',
  208. '字段名 字段值 字段内容',
  209. '订单编号 keyword1 {order_sn}',
  210. '发货时间 keyword2 {ship_time}',
  211. '物流公司 keyword3 {express_name}',
  212. '快递单号 keyword4 {invoice_no}',
  213. ],
  214. self::REFUND_REFUSE_NOTICE => [
  215. '模板库: 搜索 “拒绝退款通知”,选用编号:OPENTM417819858的模板,添加,获得模板ID。',
  216. '头部内容:您好!您的退款申请已被卖家拒绝。',
  217. '尾部内容:如有任何疑问请与卖家联系。',
  218. '字段名 字段值 字段内容',
  219. '单号 keyword1 {after_sale_sn}',
  220. '金额 keyword2 {refund_amount}',
  221. '时间 keyword3 {refuse_time}',
  222. ],
  223. self::REFUND_SUCCESS_NOTICE => [
  224. '模板库: 搜索 “退款成功提醒”,选用编号:OPENTM416378254的模板,添加,获得模板ID。',
  225. '头部内容: 您好!您有售后申请已成功退款。',
  226. '尾部内容: 请注意查收哦。',
  227. '字段名 字段值 字段内容',
  228. '退款金额 keyword1 {refund_amount}',
  229. '退款时间 keyword2 {refund_time}',
  230. '退款方式 keyword3 {refund_way}',
  231. ],
  232. self::EARNINGS_NOTICE => [
  233. '模板库: 搜索 “佣金提醒”,选用编号:OPENTM400094720的模板,添加,获得模板ID。',
  234. '头部内容: 恭喜您,获得了一笔新的预估收益。',
  235. '尾部内容: 请注意查收哦。',
  236. '字段名 字段值 字段内容',
  237. '佣金金额 keyword1 {earnings}',
  238. '时间 keyword2 {time}',
  239. ],
  240. ];
  241. if($flag) {
  242. return $desc;
  243. }
  244. return $desc[$sceneId] ?? [];
  245. }
  246. /**
  247. * @notes 获取小程序订阅消息示例
  248. * @param $sceneId
  249. * @param false $flag
  250. * @return array|mixed
  251. * @author Tab
  252. * @date 2021/9/13 17:10
  253. */
  254. public static function getMnpExample($sceneId, $flag = false)
  255. {
  256. $desc = [
  257. self::ORDER_PAY_NOTICE => [
  258. '模板库: 搜索 “订单支付成功通知”,选用类目:软件服务提供商的模板,选用并选择以下参数,提交获得模板ID。',
  259. '字段名 字段值 字段内容',
  260. '订单编号 character_string1 {order_sn}',
  261. '支付时间 time2 {pay_time}',
  262. '订单金额 amount3 {order_amount}',
  263. '商品名称 thing4 {goods_name}',
  264. ],
  265. self::ORDER_SHIP_NOTICE => [
  266. '模板库: 搜索 “订单发货通知”,选用类目:软件服务提供商的模板,选用并选择以下参数,提交获得模板ID。',
  267. '字段名 字段值 字段内容',
  268. '商品名称 thing1 {goods_name}',
  269. '订单号 character_string2 {order_sn}',
  270. '发货时间 date3 {ship_time}',
  271. '快递公司 thing4 {express_name}',
  272. '快递单号 character_string5 {invoice_no}',
  273. ],
  274. self::REFUND_REFUSE_NOTICE => [
  275. '模板库: 搜索 “退款失败通知”,选用类目:软件服务提供商的模板,选用并选择以下参数,提交获得模板ID。',
  276. '字段名 字段值 字段内容',
  277. '用户昵称 name1 {nickname}',
  278. '售后单号 character_string3 {after_sale_sn}',
  279. ],
  280. self::REFUND_SUCCESS_NOTICE => [],
  281. self::EARNINGS_NOTICE => [],
  282. ];
  283. if($flag) {
  284. return $desc;
  285. }
  286. return $desc[$sceneId] ?? [];
  287. }
  288. public static function getOperationTips($type, $sceneId)
  289. {
  290. // 场景变量
  291. $vars = self::getVars($sceneId);
  292. // 其他提示
  293. $other = [];
  294. // 示例
  295. switch ($type) {
  296. case self::SYSTEM:
  297. $example = self::getSystemExample($sceneId);
  298. break;
  299. case self::SMS:
  300. $other[] = '生效条件:1、管理后台完成短信设置。2、第三方短信平台申请模板。';
  301. $example = self::getSmsExample($sceneId);
  302. break;
  303. case self::OA:
  304. $other[] = '配置路径:公众号后台 > 广告与服务 > 模板消息';
  305. $other[] = '推荐行业:主营行业:IT科技/互联网|电子商务 副营行业:消费品/消费品';
  306. $example = self::getOaExample($sceneId);
  307. break;
  308. case self::MNP:
  309. $other[] = '配置路径:小程序后台 > 功能 > 订阅消息';
  310. $example = self::getMnpExample($sceneId);
  311. break;
  312. }
  313. $tips = array_merge($vars, $example, $other);
  314. return $tips;
  315. }
  316. }