作者 赵彬吉

update

@@ -18,6 +18,7 @@ class ProcessRecordsLogic extends BaseLogic @@ -18,6 +18,7 @@ class ProcessRecordsLogic extends BaseLogic
18 public function getInfo($project_id) 18 public function getInfo($project_id)
19 { 19 {
20 $data = $this->model->select(['project_id', 'record', 'remark'])->where('project_id', $project_id)->first(); 20 $data = $this->model->select(['project_id', 'record', 'remark'])->where('project_id', $project_id)->first();
  21 + $project = ProjectLogic::instance()->getInfo($project_id);
21 if(!$data){ 22 if(!$data){
22 $data = [ 23 $data = [
23 'project_id' => $project_id, 24 'project_id' => $project_id,
@@ -27,6 +28,12 @@ class ProcessRecordsLogic extends BaseLogic @@ -27,6 +28,12 @@ class ProcessRecordsLogic extends BaseLogic
27 }else{ 28 }else{
28 $data = $data->toArray(); 29 $data = $data->toArray();
29 } 30 }
  31 + $data['project_company'] = $project['company'] ?? '';
  32 + $data['project_plan'] = $project['deploy_build']['plan'][0] ?? '';
  33 + $data['project_service_duration'] = $project['deploy_build']['service_duration'] ?? '';
  34 + $data['domain'] = $project['deploy_optimize']['domain'] ?? '';
  35 + $data['test_domain'] = $project['deploy_build']['test_domain'] ?? '';
  36 + $data['login_mobile'] = $project['deploy_build']['login_mobile'] ?? '';
30 $data['data_source'] = [ 37 $data['data_source'] = [
31 [ 38 [
32 'type' => '基础资料', 39 'type' => '基础资料',
@@ -7,14 +7,18 @@ use App\Helper\Arr; @@ -7,14 +7,18 @@ use App\Helper\Arr;
7 use App\Helper\FormGlobalsoApi; 7 use App\Helper\FormGlobalsoApi;
8 use App\Http\Logic\Aside\BaseLogic; 8 use App\Http\Logic\Aside\BaseLogic;
9 use App\Http\Logic\Aside\Manage\ManageLogic; 9 use App\Http\Logic\Aside\Manage\ManageLogic;
  10 +use App\Models\Blog\Blog;
10 use App\Models\Channel\Channel; 11 use App\Models\Channel\Channel;
11 use App\Models\Channel\User; 12 use App\Models\Channel\User;
12 use App\Models\Channel\Zone; 13 use App\Models\Channel\Zone;
13 use App\Models\Inquiry\InquirySet; 14 use App\Models\Inquiry\InquirySet;
  15 +use App\Models\News\News;
  16 +use App\Models\Product\Product;
14 use App\Models\Project\DeployBuild; 17 use App\Models\Project\DeployBuild;
15 use App\Models\Project\DeployOptimize; 18 use App\Models\Project\DeployOptimize;
16 use App\Models\Project\Payment; 19 use App\Models\Project\Payment;
17 use App\Models\Project\Project; 20 use App\Models\Project\Project;
  21 +use App\Models\Task\Task;
18 use Illuminate\Support\Facades\Cache; 22 use Illuminate\Support\Facades\Cache;
19 use Illuminate\Support\Facades\DB; 23 use Illuminate\Support\Facades\DB;
20 24
@@ -57,12 +61,12 @@ class ProjectLogic extends BaseLogic @@ -57,12 +61,12 @@ class ProjectLogic extends BaseLogic
57 'test_domain' => $item['deploy_build']['test_domain'] ?? 0, 61 'test_domain' => $item['deploy_build']['test_domain'] ?? 0,
58 'domain' => $item['deploy_optimize']['domain'] ?? 0, 62 'domain' => $item['deploy_optimize']['domain'] ?? 0,
59 'created_at' => date('Y年m月d日', strtotime($item['created_at'])), 63 'created_at' => date('Y年m月d日', strtotime($item['created_at'])),
60 - 'autologin_url' => '',  
61 - 'product_num' => 0,  
62 - 'keyword_num' => 0,  
63 - 'article_num' => 0,  
64 - 'task_finish_num' => 0,  
65 - 'task_pending_num' => 0, 64 + 'autologin_url' => '', //TODO
  65 + 'product_num' => Product::getNumByProjectId($item['id']),
  66 + 'keyword_num' => $item['deploy_build']['keyword_num'] ?? 0,
  67 + 'article_num' => Blog::getNumByProjectId($item['id']) + News::getNumByProjectId($item['id']),
  68 + 'task_finish_num' => Task::getNumByProjectId($item['id'], Task::STATUS_DOWN),
  69 + 'task_pending_num' => Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]),
66 ]; 70 ];
67 } 71 }
68 return $list; 72 return $list;
@@ -13,4 +13,10 @@ class Blog extends Base @@ -13,4 +13,10 @@ class Blog extends Base
13 public function user(){ 13 public function user(){
14 return $this->hasMany(User::class,'operator_id','id'); 14 return $this->hasMany(User::class,'operator_id','id');
15 } 15 }
  16 +
  17 + public static function getNumByProjectId($project_id){
  18 + return self::where('project_id', $project_id)->where('status', 1)->count();
  19 + }
16 } 20 }
  21 +
  22 +
@@ -9,4 +9,8 @@ class News extends Base @@ -9,4 +9,8 @@ class News extends Base
9 protected $table = 'gl_news'; 9 protected $table = 'gl_news';
10 //连接数据库 10 //连接数据库
11 // protected $connection = 'custom_mysql'; 11 // protected $connection = 'custom_mysql';
  12 +
  13 + public static function getNumByProjectId($project_id){
  14 + return self::where('project_id', $project_id)->where('status', 1)->count();
  15 + }
12 } 16 }
@@ -141,4 +141,8 @@ class Product extends Base @@ -141,4 +141,8 @@ class Product extends Base
141 return RouteMap::getRoute(RouteMap::SOURCE_PRODUCT, $this->id, $this->project_id); 141 return RouteMap::getRoute(RouteMap::SOURCE_PRODUCT, $this->id, $this->project_id);
142 } 142 }
143 143
  144 + public function getNumByProjectId($project_id){
  145 + return self::where('project_id', $project_id)->where('status', self::STATUS_ON)->count();
  146 + }
  147 +
144 } 148 }
@@ -22,10 +22,11 @@ class DeployBuild extends Base @@ -22,10 +22,11 @@ class DeployBuild extends Base
22 return Arr::setToArr($value, 'trim'); 22 return Arr::setToArr($value, 'trim');
23 } 23 }
24 24
25 - public function getTestDomainAttribute(){ 25 + public function getTestDomainAttribute(): string
  26 + {
26 $hashids = new Hashids('test_domain', 4, 'abcdefghjkmnpqrstuvwxyz1234567890'); 27 $hashids = new Hashids('test_domain', 4, 'abcdefghjkmnpqrstuvwxyz1234567890');
27 $code = $hashids->encode($this->project_id); 28 $code = $hashids->encode($this->project_id);
28 - return $code . '.test.com'; 29 + return 'https://' . $code . '.test.com';
29 } 30 }
30 31
31 public static function clearCache($row){ 32 public static function clearCache($row){
@@ -31,7 +31,7 @@ class Task extends Base @@ -31,7 +31,7 @@ class Task extends Base
31 return ''; 31 return '';
32 } 32 }
33 $project = ProjectLogic::instance()->getCacheInfo($this->project_id); 33 $project = ProjectLogic::instance()->getCacheInfo($this->project_id);
34 - return $project['title'] ?? ''; 34 + return $project['company'] ?? '';
35 } 35 }
36 36
37 public function getStatusTextAttribute(){ 37 public function getStatusTextAttribute(){
@@ -68,4 +68,17 @@ class Task extends Base @@ -68,4 +68,17 @@ class Task extends Base
68 return $this->hasMany(TaskFollow::class,'task_id','id'); 68 return $this->hasMany(TaskFollow::class,'task_id','id');
69 69
70 } 70 }
  71 +
  72 + public static function getNumByProjectId($project_id, $status = ''){
  73 + return self::where('project_id', $project_id)
  74 + ->where(function ($query) use($status){
  75 + if($status){
  76 + if(is_array($status)){
  77 + $query->whereIn('status', $status);
  78 + }else{
  79 + $query->where('status', $status);
  80 + }
  81 + }
  82 + })->count();
  83 + }
71 } 84 }