vr-shopxo-plugin/shopxo/app/service/EmailLogService.php

146 lines
5.2 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
// +----------------------------------------------------------------------
// | ShopXO 国内领先企业级B2C免费开源电商系统
// +----------------------------------------------------------------------
// | Copyright (c) 2011~2099 http://shopxo.net All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( https://opensource.org/licenses/mit-license.php )
// +----------------------------------------------------------------------
// | Author: Devil
// +----------------------------------------------------------------------
namespace app\service;
use think\facade\Db;
/**
* 邮件日志数据
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-09-04
* @desc description
*/
class EmailLogService
{
/**
* 邮件日志添加
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2023-11-19
* @desc description
* @param [string] $smtp_host [SMTP服务器]
* @param [string] $smtp_port [SMTP端口]
* @param [string] $smtp_name [邮箱用户名]
* @param [string] $smtp_account [发信人邮件]
* @param [string] $smtp_send_name [发件人姓名]
* @param [string|array] $email [收件邮箱]
* @param [string] $title [邮件标题]
* @param [string] $template_value [邮件内容]
* @param [string|array] $template_var [邮件变量]
*/
public static function EmailLogAdd($smtp_host, $smtp_port, $smtp_name, $smtp_account, $smtp_send_name, $email, $title, $template_value, $template_var = '')
{
$data = [
'status' => 0,
'smtp_host' => empty($smtp_host) ? '' : $smtp_host,
'smtp_port' => empty($smtp_port) ? '' : $smtp_port,
'smtp_name' => empty($smtp_name) ? '' : $smtp_name,
'smtp_account' => empty($smtp_account) ? '' : $smtp_account,
'smtp_send_name' => empty($smtp_send_name) ? '' : $smtp_send_name,
'email' => empty($email) ? '' : (is_array($email) ? implode(', ', $email) : $email),
'title' => empty($title) ? '' : $title,
'template_value' => empty($template_value) ? '' : $template_value,
'template_var' => empty($template_var) ? '' : (is_array($template_var) ? json_encode($template_var, JSON_UNESCAPED_UNICODE) : $template_var),
'add_time' => time(),
];
$data['id'] = Db::name('EmailLog')->insertGetId($data);
if($data['id'] > 0)
{
// 邮件添加钩子
$hook_name = 'plugins_service_email_log_add';
MyEventTrigger($hook_name, [
'hook_name' => $hook_name,
'is_backend' => true,
'data' => $data,
'data_id' => $data['id'],
]);
return DataReturn(MyLang('insert_success'), 0, $data);
}
return DataReturn(MyLang('insert_fail'), -1);
}
/**
* 邮件回调
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2023-11-19
* @desc description
* @param [int] $log_id [日志id]
* @param [int] $status [发送状态0未发送1已发送2已失败]
* @param [int] $tsc [耗时(秒)]
* @param [string] $reason [失败原因]
*/
public static function EmailLogResponse($log_id, $status, $tsc, $reason = '')
{
return Db::name('EmailLog')->where(['id'=>$log_id])->update([
'status' => intval($status),
'tsc' => intval($tsc),
'reason' => $reason,
'upd_time' => time(),
]);
}
/**
* 删除
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-11-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function EmailLogDelete($params = [])
{
// 参数是否有误
if(empty($params['ids']))
{
return DataReturn(MyLang('data_id_error_tips'), -1);
}
// 是否数组
if(!is_array($params['ids']))
{
$params['ids'] = explode(',', $params['ids']);
}
// 删除操作
if(Db::name('EmailLog')->where(['id'=>$params['ids']])->delete())
{
return DataReturn(MyLang('delete_success'), 0);
}
return DataReturn(MyLang('delete_fail'), -100);
}
/**
* 清空全部
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2021-11-18
* @desc description
* @param [array] $params [输入参数]
*/
public static function EmailLogAllDelete($params = [])
{
$where = [
['id', '>', 0]
];
if(Db::name('EmailLog')->where($where)->delete() === false)
{
return DataReturn(MyLang('operate_fail'), -100);
}
return DataReturn(MyLang('operate_success'));
}
}
?>