|
...
|
...
|
@@ -9,9 +9,13 @@ |
|
|
|
|
|
|
|
namespace App\Console\Commands\LyhTest;
|
|
|
|
|
|
|
|
use App\Enums\Common\Code;
|
|
|
|
use App\Helper\Common;
|
|
|
|
use App\Http\Requests\Aside\WorkOrder\AsideTicketListRequest;
|
|
|
|
use App\Models\Blog\Blog;
|
|
|
|
use App\Models\Com\V6WeeklyReport;
|
|
|
|
use App\Models\Manage\Manage;
|
|
|
|
use App\Models\Manage\ManageHr;
|
|
|
|
use App\Models\News\News;
|
|
|
|
use App\Models\Product\Category;
|
|
|
|
use App\Models\Product\CategoryRelated;
|
|
...
|
...
|
@@ -22,6 +26,7 @@ use App\Models\Template\BTemplate; |
|
|
|
use App\Models\Visit\Visit;
|
|
|
|
use App\Models\Visit\VisitItem;
|
|
|
|
use App\Models\Workchat\MessagePush;
|
|
|
|
use App\Models\WorkOrder\Tickets;
|
|
|
|
use App\Services\ProjectServer;
|
|
|
|
use Illuminate\Console\Command;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
...
|
...
|
@@ -45,11 +50,11 @@ class DownloadProject extends Command |
|
|
|
protected $description = '导出项目数据';
|
|
|
|
|
|
|
|
public function handle(){
|
|
|
|
echo date('Y-m-d H:i:s') . 'start' . PHP_EOL;
|
|
|
|
ProjectServer::useProject(671);
|
|
|
|
$this->newsImportBlog();
|
|
|
|
DB::disconnect('custom_mysql');
|
|
|
|
echo date('Y-m-d H:i:s') . 'end' . PHP_EOL;
|
|
|
|
echo date('Y-m-d H:i:s') . 'start1' . PHP_EOL;
|
|
|
|
// ProjectServer::useProject(671);
|
|
|
|
$this->downloadTicket();
|
|
|
|
// DB::disconnect('custom_mysql');
|
|
|
|
echo date('Y-m-d H:i:s') . 'end1' . PHP_EOL;
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
...
|
...
|
@@ -121,6 +126,58 @@ class DownloadProject extends Command |
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :导出工单数据
|
|
|
|
* @name :downloadTicketList
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2025/9/13 15:24
|
|
|
|
*/
|
|
|
|
/**
|
|
|
|
* A端查看所有工单
|
|
|
|
*
|
|
|
|
* @return \Illuminate\Http\Response
|
|
|
|
*/
|
|
|
|
public function downloadTicket()
|
|
|
|
{
|
|
|
|
$this->param['dept_id'] = 2;
|
|
|
|
$this->param['entry_position'] = 2;
|
|
|
|
$search = '资料上传';
|
|
|
|
$query = Tickets::with([
|
|
|
|
'logs.engineer',
|
|
|
|
'project.pm',
|
|
|
|
'project.projectV6',
|
|
|
|
]);
|
|
|
|
$query = $query->where('title', 'like', '%' . $search . '%');
|
|
|
|
$query = $query->where('status', '!=' ,Tickets::STATUS_COMPLETED)->where('plan_end_at','<',date("Y-m-d H:i:s", strtotime("-72 hours")));
|
|
|
|
$query = $query->where('status', 0)->where('plan_end_at','<',date("Y-m-d H:i:s", strtotime("-120 hours")));//超过120个小时未处理的工单
|
|
|
|
//TODO::用户部门搜索
|
|
|
|
if(isset($this->param['dept_id']) && !empty($this->param['dept_id'])){
|
|
|
|
$manageHrModel = new ManageHr();
|
|
|
|
//售后优化+技术搜索
|
|
|
|
if($this->param['dept_id'] == 2 && !empty($this->param['entry_position'])) {//售后部
|
|
|
|
if ($this->param['entry_position'] == 1) {
|
|
|
|
$manageIdArr = $manageHrModel->selectField(['entry_position' => ['in', [44, 46, 49]], 'status' => 1], 'manage_id');
|
|
|
|
} else {
|
|
|
|
//售后技术
|
|
|
|
$manageIdArr = $manageHrModel->selectField(['entry_position' => ['in', [42, 43, 45, 48, 51]], 'status' => 1], 'manage_id');
|
|
|
|
}
|
|
|
|
$query = $query->whereHas('logs', function ($q) use ($manageIdArr) {
|
|
|
|
$q->whereIn('engineer_id', $manageIdArr);
|
|
|
|
});
|
|
|
|
}else{
|
|
|
|
$manageIdArr = $manageHrModel->selectField(['dept_id'=>$this->param['dept_id'],'status'=>1],'manage_id');
|
|
|
|
$query = $query->whereHas('logs', function ($q) use ($manageIdArr) {
|
|
|
|
$q->whereIn('engineer_id', $manageIdArr);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 添加排序功能
|
|
|
|
$query->orderBy('status', 'asc');
|
|
|
|
$lists = $query->get()->toArray();
|
|
|
|
return $this->exportData($lists);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :导出访问明细
|
|
|
|
* @name :exportData
|
|
|
|
* @author :lyh
|
|
...
|
...
|
@@ -132,22 +189,27 @@ class DownloadProject extends Command |
|
|
|
$spreadsheet = new Spreadsheet();
|
|
|
|
$sheet = $spreadsheet->getActiveSheet();
|
|
|
|
// 添加表头
|
|
|
|
$sheet->setCellValue('A1', '浏览时间');
|
|
|
|
$sheet->setCellValue('B1', '访客来源');
|
|
|
|
$sheet->setCellValue('C1', '访客入路页面');
|
|
|
|
$sheet->setCellValue('D1', '终端');
|
|
|
|
$sheet->setCellValue('E1', '国家ip');
|
|
|
|
$sheet->setCellValue('F1', '深度访问页数');
|
|
|
|
$sheet->setCellValue('G1', '国家');
|
|
|
|
$sheet->setCellValue('A1', '公司名称');
|
|
|
|
$sheet->setCellValue('B1', '工单提交时间');
|
|
|
|
$sheet->setCellValue('C1', '工单内容');
|
|
|
|
$sheet->setCellValue('D1', '正式域名');
|
|
|
|
$sheet->setCellValue('E1', '测试域名');
|
|
|
|
$sheet->setCellValue('F1', '提交人');
|
|
|
|
$sheet->setCellValue('G1', '执行技术');
|
|
|
|
$rowCount = 2;
|
|
|
|
foreach ($data as $v) {
|
|
|
|
$sheet->setCellValue('A' . $rowCount, $v['created_at']);
|
|
|
|
$sheet->setCellValue('B' . $rowCount, $v['referrer_url']);
|
|
|
|
$sheet->setCellValue('C' . $rowCount, $v['url']);
|
|
|
|
$sheet->setCellValue('D' . $rowCount, $v['device_text']);
|
|
|
|
$sheet->setCellValue('E' . $rowCount, $v['ip']);
|
|
|
|
$sheet->setCellValue('F' . $rowCount, $v['depth']);
|
|
|
|
$sheet->setCellValue('G' . $rowCount, $v['country']);
|
|
|
|
foreach ($v['logs'] as $key => $value) {
|
|
|
|
if($value['is_engineer'] == 1){
|
|
|
|
$is_engineer = $value['engineer']['name'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$sheet->setCellValue('A' . $rowCount, $v['project']['company_name']);
|
|
|
|
$sheet->setCellValue('B' . $rowCount, $v['created_at']);
|
|
|
|
$sheet->setCellValue('C' . $rowCount, $v['content']);
|
|
|
|
$sheet->setCellValue('D' . $rowCount, $v['project']['website']);
|
|
|
|
$sheet->setCellValue('E' . $rowCount, $v['project']['test_website']);
|
|
|
|
$sheet->setCellValue('F' . $rowCount, $v['submit_username']);
|
|
|
|
$sheet->setCellValue('G' . $rowCount, $is_engineer ?? '');
|
|
|
|
$rowCount++;
|
|
|
|
}
|
|
|
|
// 创建一个新的 Excel Writer 对象
|
...
|
...
|
|