SmsService.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace app\common\service;
  3. use app\common\model\SettingModel;
  4. use app\common\model\SmsTemplateModel;
  5. use think\facade\Log;
  6. class SmsService
  7. {
  8. public function send($mobile, $code, $content_param = [])
  9. {
  10. $message = SmsTemplateModel::where('code', $code)->find();
  11. if (empty($message)) {
  12. Log::error('短信模板不存在:' . $code);
  13. return ['code' => 1, 'msg' => '模板不存在'];
  14. }
  15. $msg = $message['content'];
  16. if (!empty($content_param)) {
  17. foreach ($content_param as $k => $v) {
  18. $msg = str_replace('{$' . ($k + 1) . '}', $v, $msg);
  19. }
  20. }
  21. $sms_obj = Config('mobile.sms_type');
  22. $sms = new $sms_obj();
  23. return $sms->send($mobile, ['message' => $msg]);
  24. }
  25. public static function apiSend($mobile, $content, $sms_obj = '')
  26. {
  27. if (empty($sms_obj)) {
  28. $sms_obj = SettingModel::getConfigValue('sms_type');
  29. if (empty($sms_obj)) {
  30. return ['code' => 1, 'msg' => '未配置默认模板'];
  31. }
  32. }
  33. if (!in_array($sms_obj, array_keys(SettingModel::SMS_TYPE))) {
  34. return ['code' => 1, 'msg' => '平台类型不存在'];
  35. }
  36. $sms = new $sms_obj();
  37. return $sms->send($mobile, ['message' => $content]);
  38. }
  39. }