SmsTemplateApply.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace app\adminapi\controller\v1\notification\sms;
  3. use app\adminapi\controller\AuthController;
  4. use crmeb\exceptions\AdminException;
  5. use crmeb\services\{
  6. FormBuilder, FormBuilder as Form, sms\Sms, UtilService
  7. };
  8. use think\facade\Route as Url;
  9. /**
  10. * 短信模板申请
  11. * Class SmsTemplateApply
  12. * @package app\admin\controller\sms
  13. */
  14. class SmsTemplateApply extends AuthController
  15. {
  16. /**
  17. * @var Sms
  18. */
  19. protected $smsHandle;
  20. /**
  21. * 构造函数 验证是否配置了短信
  22. * @return mixed|void
  23. */
  24. public function initialize()
  25. {
  26. parent::initialize();
  27. $this->smsHandle = new Sms('yunxin', [
  28. 'sms_account' => sys_config('sms_account'),
  29. 'sms_token' => sys_config('sms_token'),
  30. 'site_url' => sys_config('site_url')
  31. ]);
  32. if (!$this->smsHandle->isLogin()) {
  33. throw new AdminException('请先填写短息配置');
  34. }
  35. }
  36. /**
  37. * 异步获取模板列表
  38. */
  39. public function index()
  40. {
  41. $where = UtilService::getMore([
  42. ['status', ''],
  43. ['title', ''],
  44. ['page', 1],
  45. ['limit', 20],
  46. ]);
  47. $templateList = $this->smsHandle->template($where);
  48. if ($templateList['status'] == 400) return $this->fail($templateList['msg']);
  49. $arr = $templateList['data']['data'];
  50. foreach ($arr as $key => $value) {
  51. switch ($value['type']) {
  52. case 1:
  53. $arr[$key]['type'] = '验证码';
  54. break;
  55. case 2:
  56. $arr[$key]['type'] = '通知';
  57. break;
  58. case 3:
  59. $arr[$key]['type'] = '推广';
  60. break;
  61. default:
  62. $arr[$key]['type'] = '';
  63. break;
  64. }
  65. }
  66. $templateList['data']['data'] = $arr;
  67. return $this->success($templateList['data']);
  68. }
  69. /**
  70. * 显示创建资源表单页.
  71. *
  72. * @return string
  73. * @throws \FormBuilder\exception\FormBuilderException
  74. */
  75. public function create()
  76. {
  77. $field = [
  78. FormBuilder::input('title', '模板名称'),
  79. FormBuilder::input('content', '模板内容')->type('textarea'),
  80. FormBuilder::radio('type', '模板类型', 1)->options([['label' => '验证码', 'value' => 1], ['label' => '通知', 'value' => 2], ['label' => '推广', 'value' => 3]])
  81. ];
  82. return $this->makePostForm('申请短信模板', $field, Url::buildUrl('/notify/sms/temp'), 'POST');
  83. }
  84. /**
  85. * 保存新建的资源
  86. */
  87. public function save()
  88. {
  89. $data = UtilService::postMore([
  90. ['title', ''],
  91. ['content', ''],
  92. ['type', 0]
  93. ]);
  94. if (!strlen(trim($data['title']))) return $this->fail('请输入模板名称');
  95. if (!strlen(trim($data['content']))) return $this->fail('请输入模板内容');
  96. $applyStatus = $this->smsHandle->apply($data['title'], $data['content'], $data['type']);
  97. if ($applyStatus['status'] == 400) return $this->fail($applyStatus['msg']);
  98. return $this->success('申请成功');
  99. }
  100. }