SmsService.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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_code = '', $template_param = '')
  26. {
  27. $sms_obj_arr = [
  28. 'chuanglang' => '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])) {
  39. if (empty($sms_type)) {
  40. return ['code' => 1, 'msg' => '模板类型错误'];
  41. }
  42. }
  43. if (!in_array($sms_type, array_keys(SettingModel::SMS_TYPE))) {
  44. return ['code' => 1, 'msg' => '平台类型不存在'];
  45. }
  46. $sms_obj = $sms_obj_arr[$sms_type];
  47. $sms = new $sms_obj();
  48. return $sms->send($mobile, [
  49. 'message' => $content,
  50. 'template_code' => $template_code,
  51. 'template_param' => $template_param,
  52. ]);
  53. }
  54. }