SmsService.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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_type = '', $template = '', $template_param = '')
  26. {
  27. $sms_obj_arr = [
  28. 'chuanglan' => 'chuanglan\\Chuanglan',
  29. 'mas' => 'mas\\Mas',
  30. 'ali' => 'ali\\Ali',
  31. ];
  32. if (empty($sms_type)) {
  33. $sms_type = SettingModel::getConfigValue('sms_type');
  34. if (empty($sms_type)) {
  35. return ['code' => 1, 'msg' => '未配置默认模板'];
  36. }
  37. }
  38. if (empty($sms_obj_arr[$sms_type]) && empty($sms_type)) {
  39. return ['code' => 1, 'msg' => '模板类型错误'];
  40. }
  41. if (!in_array($sms_type, array_keys(SettingModel::SMS_TYPE))) {
  42. return ['code' => 1, 'msg' => '平台类型不存在'];
  43. }
  44. $sms_obj = $sms_obj_arr[$sms_type];
  45. $sms = new $sms_obj();
  46. return $sms->send($mobile, [
  47. 'message' => $content,
  48. 'template' => $template,
  49. 'template_param' => $template_param,
  50. ]);
  51. }
  52. }