SendTemplater.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace addons\qingdongams\model;
  3. use think\Model;
  4. /**
  5. *发送通知模板
  6. */
  7. class SendTemplater extends Model
  8. {
  9. // 表名,不含前缀
  10. protected $name = 'qingdongams_send_template';
  11. // 开启自动写入时间戳字段
  12. protected $autoWriteTimestamp = 'int';
  13. // 定义时间戳字段名
  14. protected $createTime = 'createtime';
  15. protected $updateTime = 'updatetime';
  16. public static function sendEmail($id,$title,$content,$types)
  17. {
  18. if($types == 'customer'){
  19. $customer = Customer::where(['id' => $id])->with(['contacts', 'ownerStaff'])->find();
  20. if (empty($customer['contacts']['mobile'])) {
  21. return false;
  22. }
  23. $email=$customer['contacts']['email'];
  24. $replace = [$customer['name'], $customer['contacts']['name'], $customer['contacts']['email'], $customer['contacts']['mobile'], $customer['create_staff']['name']];
  25. }elseif($types == 'contacts'){
  26. $contacts = Contacts::where(['id' => $id])->with(['customer', 'ownerStaff'])->find();
  27. if (empty($contacts['mobile'])) {
  28. return false;
  29. }
  30. $email=$contacts['email'];
  31. $replace = [$contacts['customer']['name'], $contacts['name'], $contacts['email'], $contacts['mobile'], $contacts['owner_staff']['name']];
  32. }
  33. $search = ['{{name}}','{{contacts_name}}','{{email}}','{{mobile}}','{{create_staff}}'];
  34. $content = str_replace($search, $replace, $content);
  35. $model = new \app\common\library\Email();
  36. $result = $model->to($email)
  37. ->subject($title)
  38. ->message($content)
  39. ->send();
  40. return $result;
  41. }
  42. public static function sendSms($id, $template, $params,$types)
  43. {
  44. if($types == 'customer'){
  45. $customer = Customer::where(['id' => $id])->with(['contacts', 'ownerStaff'])->find();
  46. if (empty($customer['contacts']['mobile'])) {
  47. return false;
  48. }
  49. $mobile=$customer['contacts']['mobile'];
  50. $replace = [$customer['name'], $customer['contacts']['name'], $customer['contacts']['email'], $customer['contacts']['mobile'], $customer['create_staff']['name']];
  51. }elseif($types == 'contacts'){
  52. $contacts = Contacts::where(['id' => $id])->with(['customer', 'ownerStaff'])->find();
  53. if (empty($contacts['mobile'])) {
  54. return false;
  55. }
  56. $mobile=$contacts['mobile'];
  57. $replace = [$contacts['customer']['name'], $contacts['name'], $contacts['email'], $contacts['mobile'], $contacts['owner_staff']['name']];
  58. }
  59. $search = ['{{name}}', '{{contacts_name}}', '{{email}}', '{{mobile}}', '{{create_staff}}'];
  60. $data=[];
  61. foreach ($params as $v) {
  62. $namesinfo = '';
  63. if($v['content']){
  64. $names = explode('{{',$v['content']);
  65. if($names[1]){
  66. $namesinfo = explode('}}',$names[1])[0];
  67. }
  68. }
  69. $data[$namesinfo] = str_replace($search, $replace, $v['content']);
  70. }
  71. return \app\common\library\Sms::notice($mobile,$data,$template);
  72. }
  73. }