|
...
|
...
|
@@ -6,6 +6,7 @@ use App\Http\Logic\Bside\Blog\BlogLogic; |
|
|
|
use App\Http\Logic\Bside\News\NewsLogic;
|
|
|
|
use App\Http\Logic\Bside\Product\ProductLogic;
|
|
|
|
use App\Models\Import\ImportTask;
|
|
|
|
use App\Models\Mail\Mail;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
...
|
...
|
@@ -56,6 +57,8 @@ class ProjectImport extends Command |
|
|
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: 文件编码格式错误' . PHP_EOL;
|
|
|
|
$task->status = ImportTask::STATUS_COM;//导入完成
|
|
|
|
$task->save();
|
|
|
|
|
|
|
|
$this->send_mail($task->user_id, $task->created_at, $task->type, 0, 0, '文件编码格式错误,仅支持UTF-8和GBK编码格式');
|
|
|
|
return true;
|
|
|
|
} elseif ($file_code_type === 'GBK') {
|
|
|
|
$is_gbk = 1;
|
|
...
|
...
|
@@ -74,11 +77,14 @@ class ProjectImport extends Command |
|
|
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import fail, error: ' . $e->getMessage() . PHP_EOL;
|
|
|
|
$task->status = ImportTask::STATUS_COM;//导入完成
|
|
|
|
$task->save();
|
|
|
|
|
|
|
|
$this->send_mail($task->user_id, $task->created_at, $task->type, 0, 0, '读取文件数据失败');
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
$total_count = 0; //总条数
|
|
|
|
$success_count = 0; //成功导入条数
|
|
|
|
$repeat_count = 0; //过滤已存在条数
|
|
|
|
if (count($line_of_text) > 1) {
|
|
|
|
$task->status = ImportTask::STATUS_ING;//导入中
|
|
|
|
$task->save();
|
|
...
|
...
|
@@ -100,14 +106,20 @@ class ProjectImport extends Command |
|
|
|
if ($task->type == ImportTask::TYPE_NEWS) {
|
|
|
|
if ((new NewsLogic())->importNews($task->project_id, $task->user_id, $v)) {
|
|
|
|
$success_count += 1;
|
|
|
|
} else {
|
|
|
|
$repeat_count += 1;
|
|
|
|
}
|
|
|
|
} elseif ($task->type == ImportTask::TYPE_BLOG) {
|
|
|
|
if ((new BlogLogic())->importBlog($task->project_id, $task->user_id, $v)) {
|
|
|
|
$success_count += 1;
|
|
|
|
} else {
|
|
|
|
$repeat_count += 1;
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if ((new ProductLogic())->importProduct($task->project_id, $task->user_id, $v)) {
|
|
|
|
$success_count += 1;
|
|
|
|
} else {
|
|
|
|
$repeat_count += 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} catch (\Exception $e) {
|
|
...
|
...
|
@@ -125,13 +137,15 @@ class ProjectImport extends Command |
|
|
|
$task->success_count += $success_count;
|
|
|
|
$task->save();
|
|
|
|
|
|
|
|
$this->send_mail($task->user_id, $task->created_at, $task->type, $success_count, $repeat_count, '');
|
|
|
|
|
|
|
|
echo 'date:' . date('Y-m-d H:i:s') . ', task_id: ' . $task->id . ', import end, total count: ' . $total_count . ', success count: ' . $success_count . PHP_EOL;
|
|
|
|
|
|
|
|
sleep(2);
|
|
|
|
}
|
|
|
|
|
|
|
|
//判断编码格式
|
|
|
|
function get_code_type($file)
|
|
|
|
protected function get_code_type($file)
|
|
|
|
{
|
|
|
|
$list = array('GBK', 'UTF-8');
|
|
|
|
$str = file_get_contents($file);
|
|
...
|
...
|
@@ -143,4 +157,27 @@ class ProjectImport extends Command |
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
//发生站内通知
|
|
|
|
protected function send_mail($user_list, $time, $type, $success_count, $repeat_count, $reason)
|
|
|
|
{
|
|
|
|
if ($type == ImportTask::TYPE_NEWS) {
|
|
|
|
$type_content = '新闻';
|
|
|
|
} elseif ($type == ImportTask::TYPE_BLOG) {
|
|
|
|
$type_content = '博客';
|
|
|
|
} else {
|
|
|
|
$type_content = '产品';
|
|
|
|
}
|
|
|
|
$title = '导入结果通知';
|
|
|
|
$content = '您于 ' . $time . ' 添加的 ' . $type_content . ' 导入任务已执行完成, 成功导入数据:' . $success_count . ' 条';
|
|
|
|
$repeat_count && $content .= ',过滤已存在数据:' . $repeat_count . ' 条';
|
|
|
|
$reason && $content .= ',原因:' . $reason;
|
|
|
|
|
|
|
|
$mail_model = new Mail();
|
|
|
|
$mail_model->add([
|
|
|
|
'user_list' => $mail_model->setUserList($user_list),
|
|
|
|
'title' => $title,
|
|
|
|
'content' => $content
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
} |
...
|
...
|
|