作者 赵彬吉

update

... ... @@ -18,6 +18,7 @@ class ProcessRecordsLogic extends BaseLogic
public function getInfo($project_id)
{
$data = $this->model->select(['project_id', 'record', 'remark'])->where('project_id', $project_id)->first();
$project = ProjectLogic::instance()->getInfo($project_id);
if(!$data){
$data = [
'project_id' => $project_id,
... ... @@ -27,6 +28,12 @@ class ProcessRecordsLogic extends BaseLogic
}else{
$data = $data->toArray();
}
$data['project_company'] = $project['company'] ?? '';
$data['project_plan'] = $project['deploy_build']['plan'][0] ?? '';
$data['project_service_duration'] = $project['deploy_build']['service_duration'] ?? '';
$data['domain'] = $project['deploy_optimize']['domain'] ?? '';
$data['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
$data['login_mobile'] = $project['deploy_build']['login_mobile'] ?? '';
$data['data_source'] = [
[
'type' => '基础资料',
... ...
... ... @@ -7,14 +7,18 @@ use App\Helper\Arr;
use App\Helper\FormGlobalsoApi;
use App\Http\Logic\Aside\BaseLogic;
use App\Http\Logic\Aside\Manage\ManageLogic;
use App\Models\Blog\Blog;
use App\Models\Channel\Channel;
use App\Models\Channel\User;
use App\Models\Channel\Zone;
use App\Models\Inquiry\InquirySet;
use App\Models\News\News;
use App\Models\Product\Product;
use App\Models\Project\DeployBuild;
use App\Models\Project\DeployOptimize;
use App\Models\Project\Payment;
use App\Models\Project\Project;
use App\Models\Task\Task;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
... ... @@ -57,12 +61,12 @@ class ProjectLogic extends BaseLogic
'test_domain' => $item['deploy_build']['test_domain'] ?? 0,
'domain' => $item['deploy_optimize']['domain'] ?? 0,
'created_at' => date('Y年m月d日', strtotime($item['created_at'])),
'autologin_url' => '',
'product_num' => 0,
'keyword_num' => 0,
'article_num' => 0,
'task_finish_num' => 0,
'task_pending_num' => 0,
'autologin_url' => '', //TODO
'product_num' => Product::getNumByProjectId($item['id']),
'keyword_num' => $item['deploy_build']['keyword_num'] ?? 0,
'article_num' => Blog::getNumByProjectId($item['id']) + News::getNumByProjectId($item['id']),
'task_finish_num' => Task::getNumByProjectId($item['id'], Task::STATUS_DOWN),
'task_pending_num' => Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]),
];
}
return $list;
... ...
... ... @@ -13,4 +13,10 @@ class Blog extends Base
public function user(){
return $this->hasMany(User::class,'operator_id','id');
}
public static function getNumByProjectId($project_id){
return self::where('project_id', $project_id)->where('status', 1)->count();
}
}
... ...
... ... @@ -9,4 +9,8 @@ class News extends Base
protected $table = 'gl_news';
//连接数据库
// protected $connection = 'custom_mysql';
public static function getNumByProjectId($project_id){
return self::where('project_id', $project_id)->where('status', 1)->count();
}
}
... ...
... ... @@ -141,4 +141,8 @@ class Product extends Base
return RouteMap::getRoute(RouteMap::SOURCE_PRODUCT, $this->id, $this->project_id);
}
public function getNumByProjectId($project_id){
return self::where('project_id', $project_id)->where('status', self::STATUS_ON)->count();
}
}
... ...
... ... @@ -22,10 +22,11 @@ class DeployBuild extends Base
return Arr::setToArr($value, 'trim');
}
public function getTestDomainAttribute(){
public function getTestDomainAttribute(): string
{
$hashids = new Hashids('test_domain', 4, 'abcdefghjkmnpqrstuvwxyz1234567890');
$code = $hashids->encode($this->project_id);
return $code . '.test.com';
return 'https://' . $code . '.test.com';
}
public static function clearCache($row){
... ...
... ... @@ -31,7 +31,7 @@ class Task extends Base
return '';
}
$project = ProjectLogic::instance()->getCacheInfo($this->project_id);
return $project['title'] ?? '';
return $project['company'] ?? '';
}
public function getStatusTextAttribute(){
... ... @@ -68,4 +68,17 @@ class Task extends Base
return $this->hasMany(TaskFollow::class,'task_id','id');
}
public static function getNumByProjectId($project_id, $status = ''){
return self::where('project_id', $project_id)
->where(function ($query) use($status){
if($status){
if(is_array($status)){
$query->whereIn('status', $status);
}else{
$query->where('status', $status);
}
}
})->count();
}
}
... ...