ServeServices.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\services\serve;
  12. use app\services\BaseServices;
  13. use crmeb\services\express\Express;
  14. use crmeb\services\FormBuilder;
  15. use crmeb\services\product\Product;
  16. use crmeb\services\serve\Serve;
  17. use crmeb\services\sms\Sms;
  18. /**
  19. * 平台服务入口
  20. * Class ServeServices
  21. * @package app\services\serve
  22. */
  23. class ServeServices extends BaseServices
  24. {
  25. /**
  26. * @var FormBuilder
  27. */
  28. protected $builder;
  29. /**
  30. * SmsTemplateApplyServices constructor.
  31. * @param FormBuilder $builder
  32. */
  33. public function __construct(FormBuilder $builder)
  34. {
  35. $this->builder = $builder;
  36. }
  37. /**
  38. * 获取配置
  39. * @return array
  40. */
  41. public function getConfig(array $config = [])
  42. {
  43. return array_merge([
  44. 'account' => sys_config('sms_account'),
  45. 'secret' => sys_config('sms_token')
  46. ], $config);
  47. }
  48. /**
  49. * 短信
  50. * @return Sms
  51. */
  52. public function sms(array $config = [])
  53. {
  54. return app()->make(Sms::class, [$this->getConfig($config)]);
  55. }
  56. /**
  57. * 复制商品
  58. * @return Product
  59. */
  60. public function copy(array $config = [])
  61. {
  62. return app()->make(Product::class, [$this->getConfig($config)]);
  63. }
  64. /**
  65. * 电子面单
  66. * @return Express
  67. */
  68. public function express(array $config = [])
  69. {
  70. return app()->make(Express::class, [$this->getConfig($config)]);
  71. }
  72. /**
  73. * 用户
  74. * @return Serve
  75. */
  76. public function user(array $config = [])
  77. {
  78. return app()->make(Serve::class, [$this->getConfig($config)]);
  79. }
  80. /**
  81. * 获取短信模板
  82. * @param int $page
  83. * @param int $limit
  84. * @param int $type
  85. * @return array
  86. */
  87. public function getSmsTempsList(int $page, int $limit, int $type)
  88. {
  89. $list = $this->sms()->temps($page, $limit, $type);
  90. foreach ($list['data'] as &$item) {
  91. $item['templateid'] = $item['temp_id'];
  92. switch ((int)$item['temp_type']) {
  93. case 1:
  94. $item['type'] = '验证码';
  95. break;
  96. case 2:
  97. $item['type'] = '通知';
  98. break;
  99. case 30:
  100. $item['type'] = '营销短信';
  101. break;
  102. }
  103. }
  104. return $list;
  105. }
  106. /**
  107. * 创建短信模板表单
  108. * @return array
  109. * @throws \FormBuilder\Exception\FormBuilderException
  110. */
  111. public function createSmsTemplateForm()
  112. {
  113. $field = [
  114. $this->builder->input('title', '模板名称')->placeholder('模板名称,如:订单支付成功'),
  115. $this->builder->input('content', '模板内容')->type('textarea')->placeholder('模板内容,如:您购买的商品已支付成功,支付金额{$pay_price}元,订单号{$order_id},感谢您的光临!(注:模板内容不用添加短信签名,可在一号通主页单独修改签名)')->rows(3),
  116. $this->builder->radio('type', '模板类型', 1)->options([['label' => '验证码', 'value' => 1], ['label' => '通知', 'value' => 2], ['label' => '推广', 'value' => 3]])
  117. ];
  118. return $field;
  119. }
  120. /**
  121. * 获取短信申请模板
  122. * @return array
  123. * @throws \FormBuilder\Exception\FormBuilderException
  124. */
  125. public function getSmsTemplateForm()
  126. {
  127. return create_form('申请短信模板', $this->createSmsTemplateForm(), $this->url('/notify/sms/temp'), 'POST');
  128. }
  129. }