NoticeEnum.php 15 KB

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