"int",
"leave_message_guid" => "string",
"leave_message_content" => "string",
"leave_message_name" => "string",
"leave_message_email" => "string",
"leave_message_phone" => "int",
"leave_message_status" => "int",
"leave_message_create_time" => "datetime",
"leave_message_create_user_guid" => "string",
"leave_message_update_time" => "datetime",
"leave_message_update_user_guid" => "string",
"leave_message_delete_time" => "datetime",
"leave_message_delete_user_guid" => "string",
];
// 设置json类型字段
protected $json = [''];
// 开启自动写入时间戳字段
protected $autoWriteTimestamp = 'datetime';
// 创建时间
protected $createTime = 'leave_message_create_time';
// 修改时间
protected $updateTime = 'leave_message_update_time';
// excel导入/下载模板表头
public const EXCELFIELD = [
'leave_message_content' => '留言内容',
'leave_message_name' => '姓名',
'leave_message_email' => '邮箱',
'leave_message_phone' => '手机号',
'leave_message_status' => '留言受理状态',
];
/**
* 新增前
*/
public static function onBeforeInsert(self $model): void
{
// self::checkRepeatData($model);
$model->completeCreateField();
}
/**
* 更新前
*/
public static function onBeforeUpdate(self $model): void
{
// self::checkRepeatData($model);
$model->completeUpdateField();
}
/**
* 删除前
*/
public static function onBeforeDelete(self $model): void
{
$model->completeDeleteField();
}
/**
* 留言用户
*/
public static function auditLeaveMessage($params)
{
$params_audit_status = $params['leave_message_status'];
$leave_message_guids_arr = explode(',', $params['leave_message_guid']);
Db::startTrans();
try {
if (count($leave_message_guids_arr) > 1) {
foreach ($leave_message_guids_arr as $key => $value) {
self::audit($value,$params);
}
} else {
self::audit($params['leave_message_guid'],$params);
}
Db::commit();
} catch (\Throwable $th) {
Db::rollback();
throw $th;
}
}
/**
* 留言
*/
public static function audit($value,$params)
{
$model = self::where('leave_message_guid', $value)->find();
if (!$model) throwErrorMsg("该留言不存在", 1);
$audit_status = $model->leave_message_status;
$leave_message_name = $model->leave_message_name;
if ($audit_status == 2) throwErrorMsg("{$leave_message_name} 已通过留言!");
$model->allowField([
'leave_message_status',
])->save($params);
}
/**
* 导出Excel
*/
public static function exportExcel($select)
{
$data = [[
'留言内容',
'姓名',
'邮箱',
'手机号',
'留言受理状态'
]];
foreach ($select as $key => $val) {
$data[] = [
$val['leave_message_content'],
$val['leave_message_name'],
$val['leave_message_email'],
$val['leave_message_phone'],
$val['leave_message_status'],
];
}
$excel = (new Excel())->exporTsheet($data);
$excel->save('.xlsx');
}
/**
* 导入excel
*/
public static function importExcel($file)
{
$msg = [];
Db::startTrans();
try {
$excel = new Excel($file);
$data = $excel->parseExcel(
Tool::getExcelRule(self::EXCELFIELD),
[
'titleLine' => [1]
]
);
if (!$data) throwErrorMsg('excel无数据', 1);
$msg = [];
foreach ($data as $line => $value) {
try {
$model = self::importExcelInit($value);
$msg[] = "{$line} 新增成功!
";
} catch (\Throwable $th) {
$msg[] = "{$line} {$th->getMessage()}
";
}
}
Db::commit();
return implode(', ', $msg);
} catch (\Throwable $th) {
Db::rollback();
throw $th;
}
}
/**
* 导入excel初始化
*/
public static function importExcelInit($value)
{
$leave_message_content = $value['leave_message_content'];
$leave_message_name = $value['leave_message_name'];
$leave_message_email = $value['leave_message_email'];
$leave_message_phone = $value['leave_message_phone'];
$leave_message_status = $value['leave_message_status'];
return self::create([
'leave_message_content' => $leave_message_content,
'leave_message_name' => $leave_message_name,
'leave_message_email' => $leave_message_email,
'leave_message_phone' => $leave_message_phone,
'leave_message_status' => $leave_message_status,
]);
}
}