作者 刘锟

Merge remote-tracking branch 'origin/develop' into akun

@@ -5,9 +5,12 @@ namespace App\Http\Controllers\Aside\Optimize; @@ -5,9 +5,12 @@ namespace App\Http\Controllers\Aside\Optimize;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
7 use App\Http\Logic\Aside\Optimize\OptimizeLogic; 7 use App\Http\Logic\Aside\Optimize\OptimizeLogic;
  8 +use App\Models\ASide\APublicModel;
  9 +use App\Models\Channel\Channel;
8 use App\Models\Domain\DomainInfo; 10 use App\Models\Domain\DomainInfo;
9 use App\Models\Manage\Manage; 11 use App\Models\Manage\Manage;
10 use App\Models\Project\Project; 12 use App\Models\Project\Project;
  13 +use App\Models\Task\Task;
11 use Illuminate\Support\Facades\DB; 14 use Illuminate\Support\Facades\DB;
12 15
13 /** 16 /**
@@ -32,14 +35,8 @@ class OptimizeController extends BaseController @@ -32,14 +35,8 @@ class OptimizeController extends BaseController
32 $query = $this->searchParam($query); 35 $query = $this->searchParam($query);
33 $lists = $query->paginate($this->row, $this->selectParam(), 'page', $this->page)->toArray(); 36 $lists = $query->paginate($this->row, $this->selectParam(), 'page', $this->page)->toArray();
34 if(!empty($lists['list'])){ 37 if(!empty($lists['list'])){
35 - $manager = new Manage();  
36 - $domainModel = new DomainInfo();  
37 foreach ($lists['list'] as $k => $v){ 38 foreach ($lists['list'] as $k => $v){
38 - $v['plan'] = $project::planMap()[$v['plan']];  
39 - $v['optimist_mid_name'] = $manager->getName($v['optimist_mid']);  
40 - $v['tech_mid_name'] = $manager->getName($v['tech_mid']);  
41 - $v['autologin_code'] = getAutoLoginCode($v['id']);  
42 - $v['domain'] = $domainModel->getDomain($v['domain']); 39 + $v = $this->handleParam($v);
43 $lists['list'][$k] = $v; 40 $lists['list'][$k] = $v;
44 } 41 }
45 } 42 }
@@ -47,6 +44,40 @@ class OptimizeController extends BaseController @@ -47,6 +44,40 @@ class OptimizeController extends BaseController
47 } 44 }
48 45
49 /** 46 /**
  47 + * @remark :参数处理
  48 + * @name :handleParam
  49 + * @author :lyh
  50 + * @method :post
  51 + * @time :2023/8/18 14:44
  52 + */
  53 + public function handleParam(&$item){
  54 + if($item['type'] != Project::TYPE_ZERO){
  55 + $data = APublicModel::getNumByProjectId($item['id']);
  56 + }
  57 + $manageModel = new Manage();
  58 + $item['channel'] = Channel::getChannelText($item['channel']['user_id'] ?? 0);
  59 + $item['build_leader'] = $manageModel->getName($item['leader_mid']);
  60 + $item['build_manager'] = $manageModel->getName($item['manager_mid']);
  61 + $item['build_designer'] = $manageModel->getName($item['designer_mid']);
  62 + $item['build_tech'] = $manageModel->getName($item['tech_mid']);
  63 + $item['optimize_manager'] = $manageModel->getName($item['optimize_manager_mid']);
  64 + $item['optimize_optimist'] = $manageModel->getName($item['optimize_optimist_mid']);
  65 + $item['optimize_assist'] = $manageModel->getName($item['optimize_assist_mid']);
  66 + $item['optimize_tech'] = $manageModel->getName($item['optimize_tech_mid']);
  67 + $item['plan'] = Project::planMap()[$item['plan']];
  68 + $item['created_at'] = date('Y年m月d日', strtotime($item['cooperate_date']));
  69 + $item['autologin_code'] = getAutoLoginCode($item['id']);
  70 + $domainModel = new DomainInfo();
  71 + $item['domain'] = !empty($item['domain']) ? $domainModel->getDomain($item['domain']) : '';
  72 + $item['product_num'] = $data['product'] ?? 0;
  73 + $item['keyword_num'] = $item['key'] ?? 0;
  74 + $item['autologin_code'] = getAutoLoginCode($item['id']);
  75 + $item['article_num'] = ($data['blog'] ?? 0) + ($data['news'] ?? 0);
  76 + $item['task_finish_num'] = Task::getNumByProjectId($item['id'], Task::STATUS_DOWN);
  77 + $item['task_pending_num'] = Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]);
  78 + return $item;
  79 + }
  80 + /**
50 * @remark :查询字段处理 81 * @remark :查询字段处理
51 * @name :selectParam 82 * @name :selectParam
52 * @author :lyh 83 * @author :lyh
@@ -57,14 +88,32 @@ class OptimizeController extends BaseController @@ -57,14 +88,32 @@ class OptimizeController extends BaseController
57 $select = [ 88 $select = [
58 'gl_project.id AS id', 89 'gl_project.id AS id',
59 'gl_project.title AS title', 90 'gl_project.title AS title',
  91 + 'gl_project.channel AS channel',
60 'gl_project.company AS company', 92 'gl_project.company AS company',
61 'gl_project.type AS type', 93 'gl_project.type AS type',
62 - 'gl_project_deploy_build.service_duration AS service_duration',  
63 - 'gl_project_deploy_build.plan AS plan', 94 + 'gl_project.created_at AS created_at',
  95 + 'gl_project.cooperate_date AS cooperate_date',
64 'gl_project_payment.amount AS amount', 96 'gl_project_payment.amount AS amount',
65 - 'gl_project_deploy_optimize.optimist_mid AS optimist_mid',  
66 - 'gl_project_deploy_optimize.tech_mid AS tech_mid', 97 + 'gl_project_deploy_build.dept_id AS dept_id',
  98 + 'gl_project_deploy_build.keyword_num AS key',
  99 + 'gl_project_deploy_build.service_duration AS day',
  100 + 'gl_project_deploy_build.leader_mid AS leader_mid',
  101 + 'gl_project_deploy_build.manager_mid AS manager_mid',
  102 + 'gl_project_deploy_build.designer_mid AS designer_mid',
  103 + 'gl_project_deploy_build.tech_mid AS tech_mid',
  104 + 'gl_project_deploy_build.test_domain AS test_domain',
  105 + 'gl_project_deploy_build.plan AS plan',
  106 + 'gl_project_deploy_optimize.dept_id AS optimize_dept_id',
  107 + 'gl_project_deploy_optimize.manager_mid AS optimize_manager_mid',
  108 + 'gl_project_deploy_optimize.optimist_mid AS optimize_optimist_mid',
  109 + 'gl_project_deploy_optimize.assist_mid AS optimize_assist_mid',
  110 + 'gl_project_deploy_optimize.tech_mid AS optimize_tech_mid',
  111 + 'gl_project_deploy_optimize.design_mid AS design_mid',
  112 + 'gl_project_deploy_optimize.tech_leader AS tech_leader',
67 'gl_project_deploy_optimize.domain AS domain', 113 'gl_project_deploy_optimize.domain AS domain',
  114 + 'gl_project_deploy_optimize.quality_mid AS quality_mid',
  115 + 'gl_project_deploy_optimize.design_mid AS design_mid',
  116 + 'gl_project_payment.amount AS amount',
68 ]; 117 ];
69 return $select; 118 return $select;
70 } 119 }
@@ -85,23 +134,4 @@ class OptimizeController extends BaseController @@ -85,23 +134,4 @@ class OptimizeController extends BaseController
85 return $query; 134 return $query;
86 } 135 }
87 136
88 - /**  
89 - * @remark :授权域名  
90 - * @name :empowerDomain  
91 - * @author :lyh  
92 - * @method :post  
93 - * @time :2023/6/20 15:10  
94 - */  
95 - public function empowerDomain(OptimizeLogic $optimizeLogic){  
96 - $this->request->validate([  
97 - 'id'=>'required',  
98 - 'gsc_id'=>'required'  
99 - ],[  
100 - 'id.required' => '审核域名ID不能为空',  
101 - 'gsc_id.required' => 'GSC账号ID不能为空'  
102 - ]);  
103 - $optimizeLogic->empowerDomain();  
104 - $this->response('success');  
105 - }  
106 -  
107 } 137 }
@@ -53,7 +53,9 @@ class ProjectController extends BaseController @@ -53,7 +53,9 @@ class ProjectController extends BaseController
53 $query = $project->leftJoin('gl_project_payment', 'gl_project.id', '=', 'gl_project_payment.project_id') 53 $query = $project->leftJoin('gl_project_payment', 'gl_project.id', '=', 'gl_project_payment.project_id')
54 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') 54 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
55 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') 55 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
56 - ->leftJoin('gl_project_online_check', 'gl_project.id', '=', 'gl_project_online_check.project_id'); 56 + ->leftJoin('gl_project_online_check', 'gl_project.id', '=', 'gl_project_online_check.project_id')
  57 + ->where('gl_project.delete_status',Project::TYPE_ZERO)
  58 + ->where('gl_project.extend_type',Project::TYPE_ZERO);
57 $query = $this->searchParam($query); 59 $query = $this->searchParam($query);
58 $lists = $query->orderBy('gl_project.id', 'desc')->paginate($this->row, $this->selectParam(), 'page', $this->page)->toArray(); 60 $lists = $query->orderBy('gl_project.id', 'desc')->paginate($this->row, $this->selectParam(), 'page', $this->page)->toArray();
59 if(!empty($lists) && !empty($lists['list'])){ 61 if(!empty($lists) && !empty($lists['list'])){
@@ -94,11 +96,6 @@ class ProjectController extends BaseController @@ -94,11 +96,6 @@ class ProjectController extends BaseController
94 * @time :2023/8/30 10:14 96 * @time :2023/8/30 10:14
95 */ 97 */
96 public function searchType(&$query){ 98 public function searchType(&$query){
97 - $query->where('gl_project.delete_status',Project::TYPE_ZERO);  
98 - $query->where('gl_project.extend_type',Project::TYPE_ZERO);  
99 - if(!isset($this->map['type'])){  
100 - $this->map['type'] = Project::TYPE_ZERO;  
101 - }  
102 if($this->map['type'] == Project::TYPE_ZERO){ 99 if($this->map['type'] == Project::TYPE_ZERO){
103 $query->where('gl_project.type',Project::TYPE_ZERO); 100 $query->where('gl_project.type',Project::TYPE_ZERO);
104 }elseif ($this->map['type'] == Project::TYPE_ONE){ 101 }elseif ($this->map['type'] == Project::TYPE_ONE){
@@ -61,10 +61,6 @@ class BTemplateLogic extends BaseLogic @@ -61,10 +61,6 @@ class BTemplateLogic extends BaseLogic
61 $this->fail('请先选择模版'); 61 $this->fail('请先选择模版');
62 } 62 }
63 $TemplateInfo = []; 63 $TemplateInfo = [];
64 - $key = 'template_'.$this->user['project_id'].'_'.$this->param['source'].'_'.$this->param['source_id'];  
65 - if(!empty(Cache::get($key))){  
66 - $this->fail('当前页面正在装修中');  
67 - }  
68 if($this->param['source'] == $this->model::SOURCE_HOME){//首页 64 if($this->param['source'] == $this->model::SOURCE_HOME){//首页
69 $TemplateInfo = $this->homeHtml($info,$this->param['source'],$this->param['source_id']); 65 $TemplateInfo = $this->homeHtml($info,$this->param['source'],$this->param['source_id']);
70 } 66 }
@@ -38,7 +38,15 @@ class Channel extends Model @@ -38,7 +38,15 @@ class Channel extends Model
38 if(!$channel){ 38 if(!$channel){
39 return []; 39 return [];
40 } 40 }
41 - $user = User::where('channel_id', $channel['id'])->where('name', $sales)->first(); 41 + $userModel = new User();
  42 + $user = $userModel->read(['name'=>$sales]);
  43 + if(!$user){
  44 + $data = [
  45 + 'channel_id' => $channel['id'] ?? 0,
  46 + 'name'=>$sales
  47 + ];
  48 + $user['id'] = $userModel->addReturnId($data);
  49 + }
42 return [ 50 return [
43 'zone_id' => $channel['zone_id'] ?? 0, 51 'zone_id' => $channel['zone_id'] ?? 0,
44 'channel_id' => $channel['id'] ?? 0, 52 'channel_id' => $channel['id'] ?? 0,
@@ -49,7 +57,7 @@ class Channel extends Model @@ -49,7 +57,7 @@ class Channel extends Model
49 public static function getChannelText($sales_id){ 57 public static function getChannelText($sales_id){
50 $user = User::where('id', $sales_id)->select(['name', 'channel_id'])->first(); 58 $user = User::where('id', $sales_id)->select(['name', 'channel_id'])->first();
51 if(!$user){ 59 if(!$user){
52 - return ''; 60 + return $sales_id;
53 } 61 }
54 $channel_alias = self::where('id', $user['channel_id'])->value('alias'); 62 $channel_alias = self::where('id', $user['channel_id'])->value('alias');
55 return $channel_alias . '-' . $user['name']; 63 return $channel_alias . '-' . $user['name'];
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 namespace App\Models\Channel; 3 namespace App\Models\Channel;
4 4
  5 +use App\Models\Base;
5 use Illuminate\Database\Eloquent\Model; 6 use Illuminate\Database\Eloquent\Model;
6 7
7 /** 8 /**
@@ -10,7 +11,7 @@ use Illuminate\Database\Eloquent\Model; @@ -10,7 +11,7 @@ use Illuminate\Database\Eloquent\Model;
10 * @author zbj 11 * @author zbj
11 * @date 2023/6/27 12 * @date 2023/6/27
12 */ 13 */
13 -class User extends Model 14 +class User extends Base
14 { 15 {
15 //设置关联表名 16 //设置关联表名
16 protected $table = 'gl_channel_user'; 17 protected $table = 'gl_channel_user';
@@ -89,7 +89,15 @@ class Project extends Base @@ -89,7 +89,15 @@ class Project extends Base
89 3 => '推广案例', 89 3 => '推广案例',
90 4 => '全球搜案例', 90 4 => '全球搜案例',
91 5 => '设计师案例', 91 5 => '设计师案例',
92 - 6 => '可登陆后台' 92 + 6 => '可登陆后台',
  93 + 7 => 'T项目',
  94 + 8 => '特殊前后缀',
  95 + 9 => '推广续费',
  96 + 10 => '案例渠道',
  97 + 11 => 'Ads',
  98 + 12 => 'AI',
  99 + 13 => 'AI站群',
  100 + 14 => '未达标',
93 ]; 101 ];
94 } 102 }
95 103