作者 赵彬吉

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into develop

@@ -4,12 +4,15 @@ namespace App\Console\Commands\DayCount; @@ -4,12 +4,15 @@ namespace App\Console\Commands\DayCount;
4 4
5 use App\Helper\Common; 5 use App\Helper\Common;
6 use App\Helper\FormGlobalsoApi; 6 use App\Helper\FormGlobalsoApi;
  7 +use App\Models\Domain\DomainInfo;
7 use App\Models\Project\DeployBuild; 8 use App\Models\Project\DeployBuild;
8 use App\Models\Project\DeployOptimize; 9 use App\Models\Project\DeployOptimize;
9 use App\Models\Project\Project; 10 use App\Models\Project\Project;
  11 +use App\Services\ProjectServer;
10 use Carbon\Carbon; 12 use Carbon\Carbon;
11 use Illuminate\Console\Command; 13 use Illuminate\Console\Command;
12 use Illuminate\Support\Facades\DB; 14 use Illuminate\Support\Facades\DB;
  15 +use Illuminate\Support\Facades\Log;
13 16
14 class Count extends Command 17 class Count extends Command
15 { 18 {
@@ -28,6 +31,7 @@ class Count extends Command @@ -28,6 +31,7 @@ class Count extends Command
28 * @var string 31 * @var string
29 */ 32 */
30 protected $description = '统计昨日数据'; 33 protected $description = '统计昨日数据';
  34 +
31 /** 35 /**
32 * @name :(定时执行生成昨日数据统计)handle 36 * @name :(定时执行生成昨日数据统计)handle
33 * @author :lyh 37 * @author :lyh
@@ -39,35 +43,48 @@ class Count extends Command @@ -39,35 +43,48 @@ class Count extends Command
39 $list = DB::table('gl_project')->where('gl_project.extend_type','!=',5) 43 $list = DB::table('gl_project')->where('gl_project.extend_type','!=',5)
40 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id') 44 ->leftJoin('gl_project_deploy_build', 'gl_project.id', '=', 'gl_project_deploy_build.project_id')
41 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id') 45 ->leftJoin('gl_project_deploy_optimize', 'gl_project.id', '=', 'gl_project_deploy_optimize.project_id')
42 - ->select($this->selectParam())->get()->toArray();  
43 - $data = [];  
44 - $yesterday = Carbon::yesterday()->toDateString();  
45 - foreach ($list as $v){  
46 - $v = (array)$v;  
47 - if($v['domain'] != ''){  
48 - $v['test_domain'] = $v['domain']; 46 + ->select($this->selectParam())->get();
  47 + try {
  48 + if(!empty($list)){
  49 + $list = $list->toArray();
  50 + $data = [];
  51 + $yesterday = Carbon::yesterday()->toDateString();
  52 + $domainInfo = new DomainInfo();
  53 + foreach ($list as $v){
  54 + $v = (array)$v;
  55 + if(!empty($v['domain'])){
  56 + $info = $domainInfo->read(['id'=>$v['domain']]);
  57 + if($info !== false){
  58 + $v['test_domain'] = $info['domain'];
  59 + }
  60 + }
  61 + $arr = [];
  62 + //统计时间
  63 + $arr['date'] = $yesterday;
  64 + ProjectServer::useProject($v['id']);
  65 + //pv统计
  66 + $arr['pv_num'] = $this->pv_num($yesterday,$v['test_domain']);
  67 + //ip统计
  68 + $arr['ip_num'] = $this->ip_num($yesterday,$v['test_domain']);
  69 + DB::disconnect('custom_mysql');
  70 + //服务达标天数
  71 + $arr['compliance_day'] = $this->compliance_day($v['id']);
  72 + //剩余服务时常
  73 + $arr['service_day'] = ((int)$v['service_duration'] - (int)$arr['compliance_day']) > 0 ? ((int)$v['service_duration'] - (int)$arr['compliance_day']) : 0;
  74 + //项目id
  75 + $arr['project_id'] = $v['project_id'];
  76 + $arr['created_at'] = date('Y-m-d H:i:s');
  77 + $arr['updated_at'] = date('Y-m-d H:i:s');
  78 + //询盘统计
  79 + $arr = $this->inquiry($arr,$v['test_domain']);
  80 + $data[] = $arr;
  81 + }
  82 + //判断数据是否存在
  83 + DB::table('gl_count')->insert($data);
49 } 84 }
50 - $arr = [];  
51 - //统计时间  
52 - $arr['date'] = $yesterday;  
53 - //pv统计  
54 - $arr['pv_num'] = $this->pv_num($yesterday,$v['test_domain']);  
55 - //ip统计  
56 - $arr['ip_num'] = $this->ip_num($yesterday,$v['test_domain']);  
57 - //服务达标天数  
58 - $arr['compliance_day'] = $this->compliance_day($v['test_domain']);  
59 - //剩余服务时常  
60 - $arr['service_day'] = ((int)$v['service_duration'] - (int)$arr['compliance_day']) > 0 ? ((int)$v['service_duration'] - (int)$arr['compliance_day']) : 0;  
61 - //项目id  
62 - $arr['project_id'] = $v['project_id'];  
63 - $arr['created_at'] = date('Y-m-d H:i:s');  
64 - $arr['updated_at'] = date('Y-m-d H:i:s');  
65 - //询盘统计  
66 - $arr = $this->inquiry($arr,$v['test_domain']);  
67 - $data[] = $arr; 85 + }catch (\Exception $e){
  86 + Log::error('同步数据执行失败');
68 } 87 }
69 - //判断数据是否存在  
70 - DB::table('gl_count')->insert($data);  
71 echo $this->error; 88 echo $this->error;
72 } 89 }
73 90
@@ -78,7 +95,7 @@ class Count extends Command @@ -78,7 +95,7 @@ class Count extends Command
78 * @time :2023/6/14 15:40 95 * @time :2023/6/14 15:40
79 */ 96 */
80 public function pv_num($yesterday,$domain){ 97 public function pv_num($yesterday,$domain){
81 - $pv = DB::table('gl_customer_visit_item')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count(); 98 + $pv = DB::connection('custom_mysql')->table('gl_customer_visit_item')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count();
82 return $pv; 99 return $pv;
83 } 100 }
84 101
@@ -89,7 +106,7 @@ class Count extends Command @@ -89,7 +106,7 @@ class Count extends Command
89 * @time :2023/6/14 15:40 106 * @time :2023/6/14 15:40
90 */ 107 */
91 public function ip_num($yesterday,$domain){ 108 public function ip_num($yesterday,$domain){
92 - $ip = DB::table('gl_customer_visit')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count(); 109 + $ip = DB::connection('custom_mysql')->table('gl_customer_visit')->whereDate('updated_date', $yesterday)->where('domain',$domain)->count();
93 return $ip; 110 return $ip;
94 } 111 }
95 112
@@ -150,7 +167,7 @@ class Count extends Command @@ -150,7 +167,7 @@ class Count extends Command
150 */ 167 */
151 public function selectParam(){ 168 public function selectParam(){
152 $select = [ 169 $select = [
153 - 'gl_project.id AS user_id', 170 + 'gl_project.id AS id',
154 'gl_project.extend_type AS extend_type', 171 'gl_project.extend_type AS extend_type',
155 'gl_project_deploy_build.test_domain AS test_domain', 172 'gl_project_deploy_build.test_domain AS test_domain',
156 'gl_project_deploy_optimize.domain AS domain', 173 'gl_project_deploy_optimize.domain AS domain',
@@ -38,7 +38,7 @@ class InquiryDelay extends Command @@ -38,7 +38,7 @@ class InquiryDelay extends Command
38 { 38 {
39 $inquiryInfoModel = new InquiryInfo(); 39 $inquiryInfoModel = new InquiryInfo();
40 $param = $inquiryInfoModel->formatQuery(['status'=>$inquiryInfoModel::STATUS_FOUR])->orderBy('send_time','asc')->first(); 40 $param = $inquiryInfoModel->formatQuery(['status'=>$inquiryInfoModel::STATUS_FOUR])->orderBy('send_time','asc')->first();
41 - if($param !== false){ 41 + if(!empty($param)){
42 $time = date('Y-m-d H:i:s'); 42 $time = date('Y-m-d H:i:s');
43 if($time >= $param['send_time']){ 43 if($time >= $param['send_time']){
44 $data = []; 44 $data = [];
@@ -3,6 +3,8 @@ @@ -3,6 +3,8 @@
3 namespace App\Console\Commands\MonthlyCount; 3 namespace App\Console\Commands\MonthlyCount;
4 4
5 use App\Helper\FormGlobalsoApi; 5 use App\Helper\FormGlobalsoApi;
  6 +use App\Models\Domain\DomainInfo;
  7 +use App\Services\ProjectServer;
6 use Carbon\Carbon; 8 use Carbon\Carbon;
7 use Illuminate\Console\Command; 9 use Illuminate\Console\Command;
8 use Illuminate\Support\Facades\DB; 10 use Illuminate\Support\Facades\DB;
@@ -41,16 +43,22 @@ class InquiryMonthlyCount extends Command @@ -41,16 +43,22 @@ class InquiryMonthlyCount extends Command
41 $startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString(); 43 $startTime = Carbon::now()->subMonth()->startOfMonth()->toDateString();
42 // 获取上个月的结束时间 44 // 获取上个月的结束时间
43 $endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString(); 45 $endTime = Carbon::now()->subMonth()->endOfMonth()->toDateString();
  46 + $domainInfo = new DomainInfo();
44 foreach ($list as $value){ 47 foreach ($list as $value){
45 $value = (array)$value; 48 $value = (array)$value;
46 - if($value['domain'] != ''){  
47 - $value['test_domain'] = $value['domain']; 49 + if(!empty($value['domain'])){
  50 + $info = $domainInfo->read(['id'=>$value['domain']]);
  51 + if($info !== false){
  52 + $value['test_domain'] = $value['domain'];
  53 + }
48 } 54 }
49 $arr = []; 55 $arr = [];
50 //按月统计询盘记录 56 //按月统计询盘记录
51 $arr = $this->inquiryCount($arr,$startTime,$endTime,$value['test_domain']); 57 $arr = $this->inquiryCount($arr,$startTime,$endTime,$value['test_domain']);
52 $arr = $this->flowCount($arr,$startTime,$endTime,$value['project_id']); 58 $arr = $this->flowCount($arr,$startTime,$endTime,$value['project_id']);
  59 + ProjectServer::useProject($value['project_id']);
53 $arr = $this->sourceCount($arr,$value['test_domain'],$startTime,$endTime); 60 $arr = $this->sourceCount($arr,$value['test_domain'],$startTime,$endTime);
  61 + DB::disconnect('custom_mysql');
54 $arr['created_at'] = date('Y-m-d H:i:s'); 62 $arr['created_at'] = date('Y-m-d H:i:s');
55 $arr['updated_at'] = date('Y-m-d H:i:s'); 63 $arr['updated_at'] = date('Y-m-d H:i:s');
56 $arr['project_id'] = $value['project_id']; 64 $arr['project_id'] = $value['project_id'];
@@ -128,21 +136,21 @@ class InquiryMonthlyCount extends Command @@ -128,21 +136,21 @@ class InquiryMonthlyCount extends Command
128 */ 136 */
129 public function sourceCount(&$arr,$domain,$startTime,$endTime){ 137 public function sourceCount(&$arr,$domain,$startTime,$endTime){
130 //访问来源前10 138 //访问来源前10
131 - $source = DB::table('gl_customer_visit') 139 + $source = DB::connection('custom_mysql')->table('gl_customer_visit')
132 ->select('referrer_url', DB::raw('COUNT(*) as count')) 140 ->select('referrer_url', DB::raw('COUNT(*) as count'))
133 ->groupBy('referrer_url')->where(['domain'=>$domain]) 141 ->groupBy('referrer_url')->where(['domain'=>$domain])
134 ->whereBetween('updated_date', [$startTime,$endTime]) 142 ->whereBetween('updated_date', [$startTime,$endTime])
135 ->orderByDesc('count')->limit(10)->get()->toArray(); 143 ->orderByDesc('count')->limit(10)->get()->toArray();
136 $arr['source'] = json_encode($source); 144 $arr['source'] = json_encode($source);
137 //访问国家前15 145 //访问国家前15
138 - $source_country = DB::table('gl_customer_visit') 146 + $source_country = DB::connection('custom_mysql')->table('gl_customer_visit')
139 ->select('country',DB::raw('COUNT(*) as ip'),DB::raw('SUM(depth) as pv')) 147 ->select('country',DB::raw('COUNT(*) as ip'),DB::raw('SUM(depth) as pv'))
140 ->groupBy('country')->where(['domain'=>$domain]) 148 ->groupBy('country')->where(['domain'=>$domain])
141 ->whereBetween('updated_date', [$startTime,$endTime]) 149 ->whereBetween('updated_date', [$startTime,$endTime])
142 ->orderBy('ip','desc')->limit(15)->get()->toArray(); 150 ->orderBy('ip','desc')->limit(15)->get()->toArray();
143 $arr['source_country'] = json_encode($source_country); 151 $arr['source_country'] = json_encode($source_country);
144 //受访界面前15 152 //受访界面前15
145 - $referrer_url = DB::table('gl_customer_visit') 153 + $referrer_url = DB::connection('custom_mysql')->table('gl_customer_visit')
146 ->select('url',DB::raw('COUNT(*) as num')) 154 ->select('url',DB::raw('COUNT(*) as num'))
147 ->orderBy('num','desc')->where(['domain'=>$domain]) 155 ->orderBy('num','desc')->where(['domain'=>$domain])
148 ->whereBetween('updated_date', [$startTime,$endTime]) 156 ->whereBetween('updated_date', [$startTime,$endTime])
@@ -150,7 +158,7 @@ class InquiryMonthlyCount extends Command @@ -150,7 +158,7 @@ class InquiryMonthlyCount extends Command
150 ->limit(15)->get()->toArray(); 158 ->limit(15)->get()->toArray();
151 $arr['referrer_url'] = json_encode($referrer_url); 159 $arr['referrer_url'] = json_encode($referrer_url);
152 //访问端口 160 //访问端口
153 - $referrer_port = DB::table('gl_customer_visit') 161 + $referrer_port = DB::connection('custom_mysql')->table('gl_customer_visit')
154 ->select('device_port',DB::raw('COUNT(*) as num')) 162 ->select('device_port',DB::raw('COUNT(*) as num'))
155 ->orderBy('num','desc')->where(['domain'=>$domain]) 163 ->orderBy('num','desc')->where(['domain'=>$domain])
156 ->whereBetween('updated_date', [$startTime,$endTime]) 164 ->whereBetween('updated_date', [$startTime,$endTime])
@@ -168,7 +176,7 @@ class InquiryMonthlyCount extends Command @@ -168,7 +176,7 @@ class InquiryMonthlyCount extends Command
168 */ 176 */
169 public function selectParam(){ 177 public function selectParam(){
170 $select = [ 178 $select = [
171 - 'gl_project.id AS user_id', 179 + 'gl_project.id AS id',
172 'gl_project.extend_type AS extend_type', 180 'gl_project.extend_type AS extend_type',
173 'gl_project_deploy_build.test_domain AS test_domain', 181 'gl_project_deploy_build.test_domain AS test_domain',
174 'gl_project_deploy_optimize.domain AS domain', 182 'gl_project_deploy_optimize.domain AS domain',
@@ -46,6 +46,8 @@ class Demo extends Command @@ -46,6 +46,8 @@ class Demo extends Command
46 */ 46 */
47 public function handle() 47 public function handle()
48 { 48 {
  49 + $domain = parse_url('https//:dev.golbalso.site/');
  50 + dd($domain);
49 echo time() . PHP_EOL; 51 echo time() . PHP_EOL;
50 $blogModel = new Image(); 52 $blogModel = new Image();
51 $list = $blogModel->list(); 53 $list = $blogModel->list();
@@ -44,8 +44,7 @@ class TaskController extends BaseController @@ -44,8 +44,7 @@ class TaskController extends BaseController
44 $map = $this->searchParam($task,$taskOwnerModel); 44 $map = $this->searchParam($task,$taskOwnerModel);
45 $manager_list = $taskOwnerModel->formatQuery($map)->select('manage_id', DB::raw('COUNT(*) as count')) 45 $manager_list = $taskOwnerModel->formatQuery($map)->select('manage_id', DB::raw('COUNT(*) as count'))
46 ->groupBy('manage_id')->get()->toArray(); 46 ->groupBy('manage_id')->get()->toArray();
47 - var_dump($manager_list);  
48 - die(); 47 +
49 $managerModel = new Manage(); 48 $managerModel = new Manage();
50 foreach ($manager_list as $k => $v){ 49 foreach ($manager_list as $k => $v){
51 $ids = $taskOwnerModel->where('manage_id', $v['manage_id'])->pluck('task_id')->toArray(); 50 $ids = $taskOwnerModel->where('manage_id', $v['manage_id'])->pluck('task_id')->toArray();
@@ -76,19 +75,23 @@ class TaskController extends BaseController @@ -76,19 +75,23 @@ class TaskController extends BaseController
76 $map['manage_id'] = $this->map['manage_id']; 75 $map['manage_id'] = $this->map['manage_id'];
77 } 76 }
78 } 77 }
79 - }elseif (isset($this->map['content']) && !empty($this->map['content'])){  
80 - $ids = $task->where('content', 'like','%'.$this->map['content'].'%')->pluck('id')->toArray();  
81 - $manage_ids = $taskOwnerModel->formatQuery(['task_id'=>['in',$ids]])->pluck('manage_id')->toArray();  
82 - $map['manage_id'] = ['in',$manage_ids];  
83 }elseif (isset($this->map['search_type']) && !empty($this->map['search_type'])){ 78 }elseif (isset($this->map['search_type']) && !empty($this->map['search_type'])){
84 if(isset($this->map['search']) && !empty($this->map['search'])) { 79 if(isset($this->map['search']) && !empty($this->map['search'])) {
85 $projectModel = new Project(); 80 $projectModel = new Project();
86 - $ids = $projectModel->where('title', 'like', '%' . $this->map['search'] . '%')->pluck('id')->toArray();  
87 - $manage_ids = $taskOwnerModel->formatQuery(['project'=>['in',$ids]])->pluck('manage_id')->toArray();  
88 - $map['manage_id'] = ['in',$manage_ids]; 81 + if($this->map['search_type'] == 'project'){
  82 + $ids = $projectModel->where('title', 'like', '%' . $this->map['search'] . '%')->pluck('id')->toArray();
  83 + $manage_ids = $taskOwnerModel->formatQuery(['project'=>['in',$ids]])->pluck('manage_id')->toArray();
  84 + $map['manage_id'] = ['in',$manage_ids];
  85 + }else{
  86 + $ids = $task->where('content', 'like','%'.$this->map['search'].'%')->pluck('id')->toArray();
  87 + $manage_ids = $taskOwnerModel->formatQuery(['task_id'=>['in',$ids]])->pluck('manage_id')->toArray();
  88 + $map['manage_id'] = ['in',$manage_ids];
  89 + }
89 } 90 }
90 }else{ 91 }else{
91 - $map['manage_id'] = $this->map['manage_id']; 92 + if(isset($this->map['search_type']) && !empty($this->map['search_type'])){
  93 + $map['manage_id'] = $this->map['manage_id'];
  94 + }
92 } 95 }
93 96
94 return $map; 97 return $map;
@@ -30,8 +30,8 @@ class ProjectMenuController extends BaseController @@ -30,8 +30,8 @@ class ProjectMenuController extends BaseController
30 * @time :2023/6/21 17:24 30 * @time :2023/6/21 17:24
31 */ 31 */
32 public function lists(ProjectMenuLogic $projectMenuLogic){ 32 public function lists(ProjectMenuLogic $projectMenuLogic){
33 - $this->order = 'sort';  
34 - $lists = $projectMenuLogic->MenuList($this->map,$this->order); 33 +
  34 + $lists = $projectMenuLogic->MenuList($this->map);
35 $this->response('success',Code::SUCCESS,$lists); 35 $this->response('success',Code::SUCCESS,$lists);
36 } 36 }
37 37
@@ -29,11 +29,17 @@ class ComController extends BaseController @@ -29,11 +29,17 @@ class ComController extends BaseController
29 $projectRoleModel = new ProjectRoleModel(); 29 $projectRoleModel = new ProjectRoleModel();
30 $info = $projectRoleModel->read(['id'=>$this->user['role_id']]); 30 $info = $projectRoleModel->read(['id'=>$this->user['role_id']]);
31 $info['role_menu'] = trim($info['role_menu'],','); 31 $info['role_menu'] = trim($info['role_menu'],',');
32 - $lists = $projectMenuModel->where(['status'=>0,'is_role'=>0])->whereIn('id',explode(',',$info['role_menu']))->get(); 32 + $this->map = [
  33 + 'status'=>0,
  34 + 'is_role'=>0,
  35 + 'id'=>['in',explode(',',$info['role_menu'])]
  36 + ];
33 }else{ 37 }else{
34 - $lists = $projectMenuModel->where(['is_role'=>0])->get(); 38 + $this->map = [
  39 + 'status'=>0,
  40 + ];
35 } 41 }
36 - $lists = $lists->toArray(); 42 + $lists = $projectMenuModel->list($this->map,'sort');
37 $menu = array(); 43 $menu = array();
38 foreach ($lists as $k => $v){ 44 foreach ($lists as $k => $v){
39 $v = (array)$v; 45 $v = (array)$v;
@@ -73,7 +79,7 @@ class ComController extends BaseController @@ -73,7 +79,7 @@ class ComController extends BaseController
73 ]); 79 ]);
74 $userLogic = new UserLogic(); 80 $userLogic = new UserLogic();
75 $this->param['id'] = $this->uid; 81 $this->param['id'] = $this->uid;
76 - $userLogic->edits($this->param); 82 + $userLogic->edits();
77 $this->response('编辑成功'); 83 $this->response('编辑成功');
78 } 84 }
79 85
@@ -7,6 +7,7 @@ use App\Helper\Common; @@ -7,6 +7,7 @@ use App\Helper\Common;
7 use App\Http\Controllers\Controller; 7 use App\Http\Controllers\Controller;
8 use App\Http\Logic\Aside\Project\ProjectLogic; 8 use App\Http\Logic\Aside\Project\ProjectLogic;
9 use App\Http\Requests\Scene; 9 use App\Http\Requests\Scene;
  10 +use App\Models\Domain\DomainInfo;
10 use App\Models\File\File; 11 use App\Models\File\File;
11 use App\Models\File\Image; 12 use App\Models\File\Image;
12 use App\Models\User\User as UserModel; 13 use App\Models\User\User as UserModel;
@@ -184,7 +184,8 @@ class LoginController extends BaseController @@ -184,7 +184,8 @@ class LoginController extends BaseController
184 $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR); 184 $message = simplexml_load_string($message, 'SimpleXMLElement', LIBXML_NOCDATA | LIBXML_NOERROR);
185 $jsonData = json_encode($message); 185 $jsonData = json_encode($message);
186 $arrayData = json_decode($jsonData, true); 186 $arrayData = json_decode($jsonData, true);
187 - $data = $this->setWechat($arrayData['ToUserName'],$arrayData['EventKey']); 187 + //gh_27174ac5c9d8,gh_27174ac5c9d8
  188 + $data = $this->setWechat($arrayData['FromUserName'],$arrayData['EventKey']);
188 if($data['code'] == 0){//登录失败,请先绑定 189 if($data['code'] == 0){//登录失败,请先绑定
189 $resMessage = $data['message']; 190 $resMessage = $data['message'];
190 }elseif($data['code'] == 1){ 191 }elseif($data['code'] == 1){
@@ -296,21 +297,4 @@ class LoginController extends BaseController @@ -296,21 +297,4 @@ class LoginController extends BaseController
296 return $data; 297 return $data;
297 } 298 }
298 299
299 - public function ceshi(){  
300 - $templateModel = new TemplateModule();  
301 - $list = $templateModel->list();  
302 - $imageModel = new ImageModel();  
303 - foreach ($list as $k=>$v){  
304 - if (strpos($v['image'], '.') !== false) {  
305 - $v['image'] = '/upload'.$v['image'];  
306 - }else{  
307 - $info = $imageModel->read(['hash'=>$v['image']]);  
308 - if($info !== false){  
309 - $v['image'] = $info['path'];  
310 - }  
311 - }  
312 - $templateModel->edit(['image'=>$v['image']],['id'=>$v['id']]);  
313 - }  
314 - $this->response('success');  
315 - }  
316 } 300 }
@@ -54,7 +54,7 @@ class UserController extends BaseController @@ -54,7 +54,7 @@ class UserController extends BaseController
54 * @author :liyuhang 54 * @author :liyuhang
55 * @method 55 * @method
56 */ 56 */
57 - public function edit(UserRequest $request,UserLogic $userLogic){ 57 + public function edit(Request $request,UserLogic $userLogic){
58 $request->validate([ 58 $request->validate([
59 'id'=>['required'] 59 'id'=>['required']
60 ],[ 60 ],[
@@ -31,6 +31,10 @@ class DomainInfoLogic extends BaseLogic @@ -31,6 +31,10 @@ class DomainInfoLogic extends BaseLogic
31 */ 31 */
32 public function saveDomain() 32 public function saveDomain()
33 { 33 {
  34 + $domain = parse_url($this->param['domain'], PHP_URL_HOST);
  35 + if(!empty($domain)){
  36 + $this->param['domain'] = $domain['host'];
  37 + }
34 //验证域名 38 //验证域名
35 $this->verifyDomain($this->param['domain'],isset($this->param['id']) ?? ''); 39 $this->verifyDomain($this->param['domain'],isset($this->param['id']) ?? '');
36 if(isset($this->param['id']) && !empty($this->param['id'])){ 40 if(isset($this->param['id']) && !empty($this->param['id'])){
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 namespace App\Http\Logic\Aside\Project; 3 namespace App\Http\Logic\Aside\Project;
4 4
  5 +use App\Models\Devops\ServerConfig;
5 use Illuminate\Support\Arr as SupArr; 6 use Illuminate\Support\Arr as SupArr;
6 use App\Helper\Arr; 7 use App\Helper\Arr;
7 use App\Helper\Common; 8 use App\Helper\Common;
@@ -178,8 +179,9 @@ class ProjectLogic extends BaseLogic @@ -178,8 +179,9 @@ class ProjectLogic extends BaseLogic
178 protected function saveProjectDeployOptimize($deploy_optimize){ 179 protected function saveProjectDeployOptimize($deploy_optimize){
179 $deployOptimizeModel = new DeployOptimize(); 180 $deployOptimizeModel = new DeployOptimize();
180 if(isset($deploy_optimize['domain']) && !empty($deploy_optimize['domain'])){ 181 if(isset($deploy_optimize['domain']) && !empty($deploy_optimize['domain'])){
181 - if (!preg_match('/http/', $deploy_optimize['domain'])) {  
182 - $deploy_optimize['domain'] = 'https://'.trim($deploy_optimize['domain'],'/').'/'; 182 + //更改域名
  183 + if(isset($deploy_optimize['domain']) && !empty($deploy_optimize['domain'])){
  184 + $this->editDomainStatus($deploy_optimize['domain'],$deploy_optimize['project_id']);
183 } 185 }
184 } 186 }
185 if(isset($deploy_optimize['minor_languages']) && !empty($deploy_optimize['minor_languages'])){ 187 if(isset($deploy_optimize['minor_languages']) && !empty($deploy_optimize['minor_languages'])){
@@ -258,8 +260,8 @@ class ProjectLogic extends BaseLogic @@ -258,8 +260,8 @@ class ProjectLogic extends BaseLogic
258 * @time :2023/8/28 10:50 260 * @time :2023/8/28 10:50
259 */ 261 */
260 public function updateServe($serve_id){ 262 public function updateServe($serve_id){
261 - $domainModel = new DomainInfo();  
262 - $domainModel->edit(['status'=>$domainModel::STATUS_ONE],['id'=>$serve_id]); 263 + $serverModel = new ServerConfig();
  264 + $serverModel->edit(['status'=>$serverModel::STATUS_ONE],['id'=>$serve_id]);
263 return $this->success(); 265 return $this->success();
264 } 266 }
265 267
@@ -355,7 +357,24 @@ class ProjectLogic extends BaseLogic @@ -355,7 +357,24 @@ class ProjectLogic extends BaseLogic
355 } 357 }
356 358
357 359
358 - 360 + /**
  361 + * @remark :修改域名时,同时更改其状态
  362 + * @name :domainStatus
  363 + * @author :lyh
  364 + * @method :post
  365 + * @time :2023/9/4 14:29
  366 + */
  367 + public function editDomainStatus($domain,$project_id){
  368 + $domainModel = new DomainInfo();
  369 + //先清空上一次所绑定的域名
  370 + $info = $domainModel->read(['project_id'=>$project_id]);
  371 + if($info !== false){
  372 + $domainModel->edit(['project_id'=>'','status'=>DomainInfo::STATUS_ZERO],['id'=>$info['id']]);
  373 + }
  374 + //重新设置域名
  375 + $domainModel->edit(['status'=>DomainInfo::STATUS_ONE,'project_id'=>$project_id],['id'=>$domain]);
  376 + return $this->success();
  377 + }
359 378
360 379
361 380
@@ -74,7 +74,7 @@ class UserLogic extends BaseLogic @@ -74,7 +74,7 @@ class UserLogic extends BaseLogic
74 } 74 }
75 $this->param['type'] = 1; 75 $this->param['type'] = 1;
76 $this->param['operator_id'] = $this->user['id']; 76 $this->param['operator_id'] = $this->user['id'];
77 - $this->edits($this->param); 77 + $this->edits();
78 return $this->success(); 78 return $this->success();
79 } 79 }
80 80
@@ -116,20 +116,24 @@ class UserLogic extends BaseLogic @@ -116,20 +116,24 @@ class UserLogic extends BaseLogic
116 * @method :post 116 * @method :post
117 * @time :2023/6/17 16:41 117 * @time :2023/6/17 16:41
118 */ 118 */
119 - public function edits($param){  
120 - //查看密码是否修改  
121 - $info = $this->model->read(['id'=>$param['id']]);  
122 - $param['password'] = base64_encode(md5($param['password']));  
123 - if($param['password'] == $info['password']){  
124 - unset($param['password']); 119 + public function edits(){
  120 + if(!isset($this->param['password']) || empty($this->param['password'])){
  121 + unset($this->param['password']);
  122 + }else{
  123 + $this->param['password'] = base64_encode(md5($this->param['password']));
  124 + }
  125 + $info = $this->model->read(['mobile'=>$this->param['mobile'],
  126 + 'project_id'=>$this->user['project_id'],'id'=>['!=',$this->param['id']]]);
  127 + if($info !== false){
  128 + $this->fail('当前手机号码已注册');
125 } 129 }
126 //密码加密 130 //密码加密
127 - $rs = $this->model->edit($param,['id'=>$param['id']]); 131 + $rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
128 if($rs === false){ 132 if($rs === false){
129 $this->fail('系统错误,请联系管理员'); 133 $this->fail('系统错误,请联系管理员');
130 } 134 }
131 //清空当前用户登录缓存 135 //清空当前用户登录缓存
132 - Cache::pull($info['token']); 136 + Cache::pull($this->user['token']);
133 return $this->success(); 137 return $this->success();
134 } 138 }
135 } 139 }
@@ -6,6 +6,7 @@ use App\Enums\Common\Code; @@ -6,6 +6,7 @@ use App\Enums\Common\Code;
6 use App\Exceptions\AsideGlobalException; 6 use App\Exceptions\AsideGlobalException;
7 use App\Exceptions\BsideGlobalException; 7 use App\Exceptions\BsideGlobalException;
8 use App\Helper\Common; 8 use App\Helper\Common;
  9 +use App\Models\Domain\DomainInfo;
9 use App\Models\Project\Project; 10 use App\Models\Project\Project;
10 use App\Models\Sms\SmsLog; 11 use App\Models\Sms\SmsLog;
11 use App\Models\User\ProjectRole as ProjectRoleModel; 12 use App\Models\User\ProjectRole as ProjectRoleModel;
@@ -55,6 +56,8 @@ class UserLoginLogic @@ -55,6 +56,8 @@ class UserLoginLogic
55 } 56 }
56 $projectModel = new Project(); 57 $projectModel = new Project();
57 $project_list = $projectModel->list(['id'=>['in',$projectArr]],'id',['id','title']); 58 $project_list = $projectModel->list(['id'=>['in',$projectArr]],'id',['id','title']);
  59 + //登录选择项目的有效时间
  60 + Cache::add('login-project-'.$this->param['mobile'],1,300);
58 return $this->success($project_list); 61 return $this->success($project_list);
59 } 62 }
60 63
@@ -66,11 +69,15 @@ class UserLoginLogic @@ -66,11 +69,15 @@ class UserLoginLogic
66 * @time :2023/6/17 16:43 69 * @time :2023/6/17 16:43
67 */ 70 */
68 public function projectLogin(){ 71 public function projectLogin(){
  72 + if(!Cache::get('login-project-'.$this->param['mobile'])){
  73 + $this->fail('当前用户选择项目有限时间已过期');
  74 + }
69 //获取项目详情 75 //获取项目详情
70 $info = $this->assembleParam($this->param['mobile'],$this->param['project_id']); 76 $info = $this->assembleParam($this->param['mobile'],$this->param['project_id']);
71 if(isset($info['token']) && !empty($info['token'])){ 77 if(isset($info['token']) && !empty($info['token'])){
72 //清除上一次用户缓存 78 //清除上一次用户缓存
73 Cache::pull($info['token']); 79 Cache::pull($info['token']);
  80 + Cache::pull('login-project-'.$this->param['mobile']);
74 } 81 }
75 //生成新token 82 //生成新token
76 $token = md5(uniqid().$info['id']); 83 $token = md5(uniqid().$info['id']);
@@ -157,7 +164,7 @@ class UserLoginLogic @@ -157,7 +164,7 @@ class UserLoginLogic
157 $info['hagro'] = $project['hagro'] ?? ''; 164 $info['hagro'] = $project['hagro'] ?? '';
158 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; 165 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
159 $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? 166 $info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
160 - $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? '')); 167 + ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
161 //保存项目缓存 168 //保存项目缓存
162 Cache::put('user-'.$info['project_id'],$project,$minutes = null); 169 Cache::put('user-'.$info['project_id'],$project,$minutes = null);
163 return $this->success($info); 170 return $this->success($info);
@@ -171,7 +178,7 @@ class UserLoginLogic @@ -171,7 +178,7 @@ class UserLoginLogic
171 * @time :2023/8/29 15:26 178 * @time :2023/8/29 15:26
172 */ 179 */
173 public function assembleParam($mobile,$project_id){ 180 public function assembleParam($mobile,$project_id){
174 - $info = $this->model->read(['mobile'=>$mobile,'project_id'=>$project_id],['id','mobile','status','role_id','token','name','project_id']); 181 + $info = $this->model->read(['mobile'=>$mobile,'project_id'=>$project_id],['id','mobile','status','role_id','token','name','wechat','project_id']);
175 //获取项目详情 182 //获取项目详情
176 $project = $this->getProjectInfo($project_id); 183 $project = $this->getProjectInfo($project_id);
177 $info['title'] = $project['title'] ?? ''; 184 $info['title'] = $project['title'] ?? '';
@@ -181,13 +188,14 @@ class UserLoginLogic @@ -181,13 +188,14 @@ class UserLoginLogic
181 $info['hagro'] = $project['hagro'] ?? ''; 188 $info['hagro'] = $project['hagro'] ?? '';
182 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']]; 189 $info['plan'] = Project::planMap()[$project['deploy_build']['plan']];
183 $info['domain'] = (!empty($project['deploy_optimize']['domain']) ? 190 $info['domain'] = (!empty($project['deploy_optimize']['domain']) ?
184 - $project['deploy_optimize']['domain'] : ($project['deploy_build']['test_domain'] ?? '')); 191 + ((new DomainInfo())->getDomain($project['deploy_optimize']['domain'])) : ($project['deploy_build']['test_domain'] ?? ''));
185 //保存项目缓存 192 //保存项目缓存
186 Cache::put('user-'.$info['project_id'],$project,$minutes = null); 193 Cache::put('user-'.$info['project_id'],$project,$minutes = null);
187 return $this->success($info); 194 return $this->success($info);
188 } 195 }
189 196
190 197
  198 +
191 /** 199 /**
192 * @remark :获取项目数据详情 200 * @remark :获取项目数据详情
193 * @name :getProjectInfo 201 * @name :getProjectInfo
@@ -9,6 +9,8 @@ @@ -9,6 +9,8 @@
9 9
10 namespace App\Models\ASide; 10 namespace App\Models\ASide;
11 11
  12 +use App\Helper\AyrShare as AyrShareHelper;
  13 +use App\Models\AyrShare\AyrShare as AyrShareModel;
12 use App\Models\Base; 14 use App\Models\Base;
13 use App\Services\ProjectServer; 15 use App\Services\ProjectServer;
14 use Illuminate\Support\Facades\DB; 16 use Illuminate\Support\Facades\DB;
@@ -38,5 +40,4 @@ class APublicModel extends Base @@ -38,5 +40,4 @@ class APublicModel extends Base
38 return ['product'=>$productNumber,'blog'=>$blogNumber,'news'=>$newsNumber]; 40 return ['product'=>$productNumber,'blog'=>$blogNumber,'news'=>$newsNumber];
39 } 41 }
40 42
41 -  
42 } 43 }
@@ -7,7 +7,4 @@ use App\Models\Base; @@ -7,7 +7,4 @@ use App\Models\Base;
7 class AyrRelease extends Base 7 class AyrRelease extends Base
8 { 8 {
9 protected $table = 'gl_ayr_release'; 9 protected $table = 'gl_ayr_release';
10 - //连接数据库  
11 - protected $connection = 'custom_mysql';  
12 -  
13 } 10 }
@@ -7,9 +7,6 @@ use App\Models\Base; @@ -7,9 +7,6 @@ use App\Models\Base;
7 class AyrShare extends Base 7 class AyrShare extends Base
8 { 8 {
9 protected $table = 'gl_ayr_share'; 9 protected $table = 'gl_ayr_share';
10 - //连接数据库  
11 - protected $connection = 'custom_mysql';  
12 -  
13 10
14 const COUNT = 3; 11 const COUNT = 3;
15 12
@@ -15,7 +15,7 @@ use App\Models\Base; @@ -15,7 +15,7 @@ use App\Models\Base;
15 class DomainInfo extends Base 15 class DomainInfo extends Base
16 { 16 {
17 const STATUS_ONE = 1; 17 const STATUS_ONE = 1;
18 - 18 + const STATUS_ZERO = 0;
19 public $btAction = [ 19 public $btAction = [
20 'create_site' => '/site?action=AddSite', 20 'create_site' => '/site?action=AddSite',
21 ]; 21 ];
@@ -51,7 +51,20 @@ class DomainInfo extends Base @@ -51,7 +51,20 @@ class DomainInfo extends Base
51 } 51 }
52 52
53 53
54 - 54 + /**
  55 + * @remark :获取域名信息
  56 + * @name :getDomain
  57 + * @author :lyh
  58 + * @method :post
  59 + * @time :2023/9/4 17:05
  60 + */
  61 + public function getDomain($domain){
  62 + $info = $this->read(['id'=>$domain]);
  63 + if($info === false){
  64 + return '';
  65 + }
  66 + return 'https://'.$info['domain'].'/';
  67 + }
55 68
56 69
57 } 70 }
@@ -16,7 +16,8 @@ class Visit extends Base @@ -16,7 +16,8 @@ class Visit extends Base
16 16
17 //设置关联表名 17 //设置关联表名
18 protected $table = 'gl_customer_visit'; 18 protected $table = 'gl_customer_visit';
19 - 19 + //连接数据库
  20 + protected $connection = 'custom_mysql';
20 protected $appends = ['device_text']; 21 protected $appends = ['device_text'];
21 22
22 public static function deviceMap(){ 23 public static function deviceMap(){
@@ -14,4 +14,6 @@ class VisitItem extends Base @@ -14,4 +14,6 @@ class VisitItem extends Base
14 { 14 {
15 //设置关联表名 15 //设置关联表名
16 protected $table = 'gl_customer_visit_item'; 16 protected $table = 'gl_customer_visit_item';
  17 + //连接数据库
  18 + protected $connection = 'custom_mysql';
17 } 19 }
@@ -35,7 +35,6 @@ Route::middleware(['aloginauth'])->group(function () { @@ -35,7 +35,6 @@ Route::middleware(['aloginauth'])->group(function () {
35 //栏目管理 35 //栏目管理
36 Route::prefix('menu')->group(function () { 36 Route::prefix('menu')->group(function () {
37 Route::any('/', [Aside\User\ProjectMenuController::class, 'lists'])->name('admin.user_menu_lists'); 37 Route::any('/', [Aside\User\ProjectMenuController::class, 'lists'])->name('admin.user_menu_lists');
38 - Route::any('/list', [Aside\User\ProjectMenuController::class, 'list'])->name('admin.user_menu_list');  
39 Route::any('/info', [Aside\User\ProjectMenuController::class, 'info'])->name('admin.user_menu_info'); 38 Route::any('/info', [Aside\User\ProjectMenuController::class, 'info'])->name('admin.user_menu_info');
40 Route::any('/add', [Aside\User\ProjectMenuController::class, 'add'])->name('admin.user_menu_add'); 39 Route::any('/add', [Aside\User\ProjectMenuController::class, 'add'])->name('admin.user_menu_add');
41 Route::any('/edit', [Aside\User\ProjectMenuController::class, 'edit'])->name('admin.user_menu_edit'); 40 Route::any('/edit', [Aside\User\ProjectMenuController::class, 'edit'])->name('admin.user_menu_edit');