作者 lyh

gx

@@ -57,7 +57,7 @@ class Count extends Command @@ -57,7 +57,7 @@ class Count extends Command
57 //服务达标天数 57 //服务达标天数
58 $arr['compliance_day'] = $this->compliance_day($v['test_domain']); 58 $arr['compliance_day'] = $this->compliance_day($v['test_domain']);
59 //剩余服务时常 59 //剩余服务时常
60 - $arr['service_day'] = ((int)$v['service_duration'] - (int)$arr['compliance_day']) < 0 ?? 0; 60 + $arr['service_day'] = ((int)$v['service_duration'] - (int)$arr['compliance_day']) > 0 ? ((int)$v['service_duration'] - (int)$arr['compliance_day']) : 0;
61 //项目id 61 //项目id
62 $arr['project_id'] = $v['project_id']; 62 $arr['project_id'] = $v['project_id'];
63 $arr['created_at'] = date('Y-m-d H:i:s'); 63 $arr['created_at'] = date('Y-m-d H:i:s');
@@ -24,7 +24,7 @@ class InquiryMonthlyCount extends Command @@ -24,7 +24,7 @@ class InquiryMonthlyCount extends Command
24 * 24 *
25 * @var string 25 * @var string
26 */ 26 */
27 - protected $description = '月报告统计'; 27 + protected $description = '询盘月报告统计';
28 28
29 /** 29 /**
30 * @remark :询盘月报告 30 * @remark :询盘月报告
@@ -38,7 +38,7 @@ class ProjectController extends BaseController @@ -38,7 +38,7 @@ class ProjectController extends BaseController
38 //搜索类型 38 //搜索类型
39 if(!empty($this->param['type'])){ 39 if(!empty($this->param['type'])){
40 if($this->param['type'] == 3){//推广中 40 if($this->param['type'] == 3){//推广中
41 - $map[] = ['type', '>' ,$this->param['type']]; 41 + $map[] = ['type', 'in' ,[4,6]];
42 }elseif($this->param['type'] == 2){//建站完成 42 }elseif($this->param['type'] == 2){//建站完成
43 $map[] = ['type', 'in', [2,3]]; 43 $map[] = ['type', 'in', [2,3]];
44 }elseif($this->param['type'] == 1){//建站中 44 }elseif($this->param['type'] == 1){//建站中
@@ -11,10 +11,16 @@ namespace App\Http\Controllers\Aside\Project; @@ -11,10 +11,16 @@ namespace App\Http\Controllers\Aside\Project;
11 11
12 use App\Enums\Common\Code; 12 use App\Enums\Common\Code;
13 use App\Http\Controllers\Aside\BaseController; 13 use App\Http\Controllers\Aside\BaseController;
  14 +use App\Http\Logic\Aside\Manage\ManageLogic;
14 use App\Http\Logic\Aside\Project\ProjectLogic; 15 use App\Http\Logic\Aside\Project\ProjectLogic;
15 use App\Http\Logic\Aside\Project\RenewLogic; 16 use App\Http\Logic\Aside\Project\RenewLogic;
  17 +use App\Models\ASide\APublicModel;
  18 +use App\Models\Channel\Channel;
16 use App\Models\HomeCount\Count; 19 use App\Models\HomeCount\Count;
  20 +use App\Models\Manage\Manage;
17 use App\Models\Project\DeployOptimize; 21 use App\Models\Project\DeployOptimize;
  22 +use App\Models\Project\Project;
  23 +use App\Models\Task\Task;
18 use Carbon\Carbon; 24 use Carbon\Carbon;
19 25
20 class RenewProjectController extends BaseController 26 class RenewProjectController extends BaseController
@@ -80,4 +86,67 @@ class RenewProjectController extends BaseController @@ -80,4 +86,67 @@ class RenewProjectController extends BaseController
80 $info = $logic->renewRead(); 86 $info = $logic->renewRead();
81 $this->response('success',Code::SUCCESS,$info); 87 $this->response('success',Code::SUCCESS,$info);
82 } 88 }
  89 +
  90 + /**
  91 + * @remark :未续费项目列表
  92 + * @name :notHaveRenewItems
  93 + * @author :lyh
  94 + * @method :post
  95 + * @time :2023/8/18 14:33
  96 + */
  97 + public function notHaveRenewItems(Project $project){
  98 + $lists = $project->with('payment')->with('deploy_build')
  99 + ->with('deploy_optimize')->with('online_check')
  100 + ->with('project_after')->paginate($this->row, ['*'], 'page', $this->page);
  101 + if(!empty($lists)){
  102 + $lists = $lists->toArray();
  103 + foreach ($lists['list'] as $k=>$item){
  104 + $item = $this->handleParam($item);
  105 + $lists['list'][$k] = $item;
  106 + }
  107 + }
  108 + $this->response('success',Code::SUCCESS,$lists);
  109 + }
  110 +
  111 + /**
  112 + * @remark :参数处理
  113 + * @name :handleParam
  114 + * @author :lyh
  115 + * @method :post
  116 + * @time :2023/8/18 14:44
  117 + */
  118 + public function handleParam(&$item){
  119 + $manageModel = new Manage();
  120 + $item = [
  121 + 'id' => $item['id'],
  122 + 'title' => $item['title'],
  123 + 'channel' => Channel::getChannelText($item['channel']['user_id'] ?? 0),
  124 + 'key' => $item['deploy_build']['keyword_num'] ?? 0,
  125 + 'day' => $item['deploy_build']['service_duration'] ?? 0,
  126 + 'amount' => $item['payment']['amount'] ?? 0,
  127 + 'build_leader' => $manageModel->getName($item['deploy_build']['leader_mid']), //组长
  128 + 'build_manager' => $manageModel->getName($item['deploy_build']['manager_mid']), //项目经理
  129 + 'build_designer' => $manageModel->getName($item['deploy_build']['designer_mid']), //设计师
  130 + 'build_tech' => $manageModel->getName($item['deploy_build']['tech_mid']), //技术助理
  131 + 'optimize_manager' => $manageModel->getName($item['deploy_optimize']['manager_mid']), //优化服务经理
  132 + 'optimize_optimist' => $manageModel->getName($item['deploy_optimize']['optimist_mid']), //优化师
  133 + 'optimize_assist' => $manageModel->getName($item['deploy_optimize']['assist_mid']), //优化助理
  134 + 'optimize_tech' => $manageModel->getName($item['deploy_optimize']['tech_mid']), //售后技术
  135 + 'type' => $item['type'],
  136 + 'test_domain' => $item['deploy_build']['test_domain'] ?? 0,
  137 + 'plan' =>Project::planMap()[$item['deploy_build']['plan']],
  138 + 'domain' => $item['deploy_optimize']['domain'] ?? 0,
  139 + 'created_at' => date('Y年m月d日', strtotime($item['created_at'])),
  140 + 'autologin_code' => $this->getAutoLoginCode($item['id']),
  141 + 'product_num' => APublicModel::getProductNumByProjectId($item['id']),
  142 + 'keyword_num' => $item['deploy_build']['keyword_num'] ?? 0,
  143 + 'article_num' => APublicModel::getBlogNumByProjectId($item['id']) + APublicModel::getNewsNumByProjectId($item['id']),
  144 + 'task_finish_num' => Task::getNumByProjectId($item['id'], Task::STATUS_DOWN),
  145 + 'task_pending_num' => Task::getNumByProjectId($item['id'], [Task::STATUS_DONGING, Task::STATUS_WAIT]),
  146 + 'optimist_status'=>$item['online_check']['optimist_status'] ?? 0,
  147 + 'qa_status'=>$item['online_check']['qa_status'] ?? 0,
  148 + 'service_day'=>$item['deploy_build']['service_duration'],
  149 + ];
  150 + return $item;
  151 + }
83 } 152 }
@@ -56,7 +56,7 @@ class RankDataController extends BaseController @@ -56,7 +56,7 @@ class RankDataController extends BaseController
56 */ 56 */
57 public function speed(ProjectLogic $projectLogic, GoogleSpeedApi $googleSpeedApi){ 57 public function speed(ProjectLogic $projectLogic, GoogleSpeedApi $googleSpeedApi){
58 $project_id = $this->user['project_id']; 58 $project_id = $this->user['project_id'];
59 - $project = $projectLogic->getInfo($project_id); 59 + $project = $projectLogic->getProjectInfo($project_id);
60 $domain = $project['deploy_optimize']['domain'] ?? ''; 60 $domain = $project['deploy_optimize']['domain'] ?? '';
61 $data = $googleSpeedApi->run($domain); 61 $data = $googleSpeedApi->run($domain);
62 if($data){ 62 if($data){
@@ -126,7 +126,7 @@ class RankDataController extends BaseController @@ -126,7 +126,7 @@ class RankDataController extends BaseController
126 */ 126 */
127 public function export_history(RankDataLogic $logic, ProjectLogic $projectLogic, QuanqiusouApi $quanqiusouApi){ 127 public function export_history(RankDataLogic $logic, ProjectLogic $projectLogic, QuanqiusouApi $quanqiusouApi){
128 $project_id = $this->user['project_id']; 128 $project_id = $this->user['project_id'];
129 - $project = $projectLogic->getInfo($project_id); 129 + $project = $projectLogic->getProjectInfo($project_id);
130 $lang = $this->request['lang'] ??''; 130 $lang = $this->request['lang'] ??'';
131 $data = $quanqiusouApi->getHistoryCount($project['deploy_optimize']['api_no'], $lang); 131 $data = $quanqiusouApi->getHistoryCount($project['deploy_optimize']['api_no'], $lang);
132 if($lang){ 132 if($lang){
@@ -5,6 +5,7 @@ namespace App\Http\Logic\Aside\Project; @@ -5,6 +5,7 @@ namespace App\Http\Logic\Aside\Project;
5 5
6 use App\Http\Logic\Aside\BaseLogic; 6 use App\Http\Logic\Aside\BaseLogic;
7 use App\Models\Project\OnlineCheck; 7 use App\Models\Project\OnlineCheck;
  8 +use App\Models\Project\Project;
8 9
9 class OnlineCheckLogic extends BaseLogic 10 class OnlineCheckLogic extends BaseLogic
10 { 11 {
@@ -67,6 +68,9 @@ class OnlineCheckLogic extends BaseLogic @@ -67,6 +68,9 @@ class OnlineCheckLogic extends BaseLogic
67 if($rs === false){ 68 if($rs === false){
68 $this->fail('error'); 69 $this->fail('error');
69 } 70 }
  71 + //提交审核修改状态为审核中
  72 + $projectModel = new Project();
  73 + $projectModel->edit(['status'=>$projectModel::STATUS_ONE],['id'=>$this->param['id']]);
70 } 74 }
71 return $this->success(); 75 return $this->success();
72 } 76 }
@@ -96,12 +96,6 @@ class ProjectLogic extends BaseLogic @@ -96,12 +96,6 @@ class ProjectLogic extends BaseLogic
96 return $encrypt->authcode(json_encode(['project_id' => $project_id]), 'ENCODE', 'autologin', 3600); 96 return $encrypt->authcode(json_encode(['project_id' => $project_id]), 'ENCODE', 'autologin', 3600);
97 } 97 }
98 98
99 - public function getInfo($id)  
100 - {  
101 - parent::setWith(['payment', 'deploy_build', 'deploy_optimize', 'online_check']); //删除缓存要添加带with的cache_key  
102 - return parent::getInfo($id);  
103 - }  
104 -  
105 /** 99 /**
106 * @remark :获取当前数据详情 100 * @remark :获取当前数据详情
107 * @name :getProjectInfo 101 * @name :getProjectInfo
@@ -204,7 +198,6 @@ class ProjectLogic extends BaseLogic @@ -204,7 +198,6 @@ class ProjectLogic extends BaseLogic
204 $code = $hashids->encode($data['project_id']); 198 $code = $hashids->encode($data['project_id']);
205 $data['test_domain'] = 'v6-' . $code . '.globalso.site';; 199 $data['test_domain'] = 'v6-' . $code . '.globalso.site';;
206 $data['id'] = DeployBuild::where('project_id', $param['id'])->value('id'); 200 $data['id'] = DeployBuild::where('project_id', $param['id'])->value('id');
207 -// Arr::forget($data, ['test_domain', 'plan']);  
208 return (new DeployBuildLogic)->save($data); 201 return (new DeployBuildLogic)->save($data);
209 } 202 }
210 203
@@ -221,7 +214,6 @@ class ProjectLogic extends BaseLogic @@ -221,7 +214,6 @@ class ProjectLogic extends BaseLogic
221 $data['minor_keywords'] = json_encode($data['minor_keywords']) ?? ''; 214 $data['minor_keywords'] = json_encode($data['minor_keywords']) ?? '';
222 $data['project_id'] = $param['id']; 215 $data['project_id'] = $param['id'];
223 $data['id'] = DeployOptimize::where('project_id', $param['id'])->value('id'); 216 $data['id'] = DeployOptimize::where('project_id', $param['id'])->value('id');
224 -// Arr::forget($data, ['api_no']);  
225 return (new DeployOptimizeLogic)->save($data); 217 return (new DeployOptimizeLogic)->save($data);
226 } 218 }
227 /** 219 /**
@@ -260,14 +252,12 @@ class ProjectLogic extends BaseLogic @@ -260,14 +252,12 @@ class ProjectLogic extends BaseLogic
260 public function saveInquirySet($param) 252 public function saveInquirySet($param)
261 { 253 {
262 $project = $this->getCacheInfo($param['project_id']); 254 $project = $this->getCacheInfo($param['project_id']);
263 -  
264 //同步到接口 255 //同步到接口
265 $domain = parse_url($project['deploy_optimize']['domain'])['host']; 256 $domain = parse_url($project['deploy_optimize']['domain'])['host'];
266 $emails = Arr::arrToSet($param['emails']??'', 'trim'); 257 $emails = Arr::arrToSet($param['emails']??'', 'trim');
267 $phones = Arr::arrToSet($param['phones']??'', 'trim'); 258 $phones = Arr::arrToSet($param['phones']??'', 'trim');
268 - $form_globalso_api = new FormGlobalsoApi();  
269 - $res = $form_globalso_api->setInquiry($domain, $emails, $phones);  
270 - 259 + $form_global_api = new FormGlobalsoApi();
  260 + $res = $form_global_api->setInquiry($domain, $emails, $phones);
271 if (!$res) { 261 if (!$res) {
272 $this->fail('保存失败'); 262 $this->fail('保存失败');
273 } 263 }
@@ -52,7 +52,7 @@ class InquiryLogic extends BaseLogic @@ -52,7 +52,7 @@ class InquiryLogic extends BaseLogic
52 52
53 public function getInfo($id) 53 public function getInfo($id)
54 { 54 {
55 - $project = (new ProjectLogic())->getInfo($this->user['project_id']); 55 + $project = (new ProjectLogic())->getProjectInfo($this->user['project_id']);
56 $domain = $project['deploy_optimize']['domain'] ?: ''; 56 $domain = $project['deploy_optimize']['domain'] ?: '';
57 //修改状态为已读 57 //修改状态为已读
58 if($this->request['read_status']){ 58 if($this->request['read_status']){
@@ -68,7 +68,7 @@ class InquiryLogic extends BaseLogic @@ -68,7 +68,7 @@ class InquiryLogic extends BaseLogic
68 68
69 public function delete($ids, $map = []) 69 public function delete($ids, $map = [])
70 { 70 {
71 - $project = (new ProjectLogic())->getInfo($this->user['project_id']); 71 + $project = (new ProjectLogic())->getProjectInfo($this->user['project_id']);
72 $domain = $project['deploy_optimize']['domain'] ?: ''; 72 $domain = $project['deploy_optimize']['domain'] ?: '';
73 $ids = array_filter(Arr::splitFilterToArray($ids), 'intval'); 73 $ids = array_filter(Arr::splitFilterToArray($ids), 'intval');
74 if(!$ids){ 74 if(!$ids){
@@ -32,7 +32,7 @@ class RankDataLogic extends BaseLogic @@ -32,7 +32,7 @@ class RankDataLogic extends BaseLogic
32 $project_id = $this->user['project_id']; 32 $project_id = $this->user['project_id'];
33 33
34 //查数据 34 //查数据
35 - $project = (new ProjectLogic())->getInfo($project_id); 35 + $project = (new ProjectLogic())->getProjectInfo($project_id);
36 $domain_info = (new DomainInfoLogic)->getDomainInfo($project_id); 36 $domain_info = (new DomainInfoLogic)->getDomainInfo($project_id);
37 $rank = RankData::where('project_id', $project_id)->first(); 37 $rank = RankData::where('project_id', $project_id)->first();
38 $rank_week = RankWeek::where('project_id', $project_id)->first(); 38 $rank_week = RankWeek::where('project_id', $project_id)->first();
@@ -25,4 +25,20 @@ class Manage extends Base @@ -25,4 +25,20 @@ class Manage extends Base
25 self::STATUS_DISABLE => '正常', 25 self::STATUS_DISABLE => '正常',
26 ]; 26 ];
27 } 27 }
  28 +
  29 + /**
  30 + * @remark :获取用户名称
  31 + * @name :getName
  32 + * @author :lyh
  33 + * @method :post
  34 + * @time :2023/8/18 14:41
  35 + */
  36 + public function getName($id){
  37 + $name = '';
  38 + $info = $this->read(['id'=>$id]);
  39 + if($info !== false){
  40 + $name = $info['name'];
  41 + }
  42 + return $name;
  43 + }
28 } 44 }
@@ -16,6 +16,7 @@ class Project extends Base @@ -16,6 +16,7 @@ class Project extends Base
16 16
17 const DATABASE_NAME_FIX = 'gl_data_'; 17 const DATABASE_NAME_FIX = 'gl_data_';
18 18
  19 + const STATUS_ONE = 1;//审核通过
19 /** 20 /**
20 * 星级客户 21 * 星级客户
21 * @return string[] 22 * @return string[]