作者 刘锟

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

@@ -16,6 +16,8 @@ use App\Models\Manage\BelongingGroup; @@ -16,6 +16,8 @@ use App\Models\Manage\BelongingGroup;
16 use App\Models\Manage\Dept; 16 use App\Models\Manage\Dept;
17 use App\Models\Manage\EntryPosition; 17 use App\Models\Manage\EntryPosition;
18 use App\Models\Manage\ManageHr; 18 use App\Models\Manage\ManageHr;
  19 +use App\Models\Nav\BNav;
  20 +use App\Models\Nav\BNavGroup;
19 use App\Models\Product\Keyword; 21 use App\Models\Product\Keyword;
20 use App\Models\Product\Product; 22 use App\Models\Product\Product;
21 use App\Models\Project\DeployOptimize; 23 use App\Models\Project\DeployOptimize;
@@ -264,19 +266,45 @@ class Demo extends Command @@ -264,19 +266,45 @@ class Demo extends Command
264 // } 266 // }
265 public function handle(){ 267 public function handle(){
266 $projectModel = new Project(); 268 $projectModel = new Project();
267 - $list = $projectModel->list(['type'=>['in',[2,3]]]);  
268 - foreach ($list as $k => $v){  
269 - $domainModel = new DomainInfo();  
270 - if(empty($v['uptime'])){  
271 - //获取项目域名的时间  
272 - $domainInfo = $domainModel->read(['project_id'=>$v['id']]);  
273 - if($domainInfo !== false){  
274 -// dd($domainInfo);  
275 - $projectModel->edit(['uptime'=>$domainInfo['created_at']],['id'=>$v['id']]);  
276 - echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL; 269 + $list = $projectModel->list(['delete_status'=>0,'type'=>['!=',0]]);
  270 + foreach ($list as $v1){
  271 + ProjectServer::useProject($v1['id']);
  272 + echo date('Y-m-d H:i:s') . '项目id:'.$v1['id'] . PHP_EOL;
  273 + $navGroupModel = new BNavGroup();
  274 + $groupList = $navGroupModel->list(['sort_list'=>['!=','']]);
  275 + if(empty($groupList)){
  276 + continue;
  277 + }
  278 + foreach ($groupList as $k=>$v){
  279 + if(!empty($v['sort_list'])){
  280 + $sort_list = json_decode($v['sort_list']);
  281 + $sort = 0;
  282 + $this->subSort($sort_list,$sort);
277 } 283 }
278 } 284 }
  285 + DB::disconnect('custom_mysql');
279 } 286 }
  287 + return true;
  288 + }
  289 +
  290 + /**
  291 + * @remark :处理子集排序
  292 + * @name :subSort
  293 + * @author :lyh
  294 + * @method :post
  295 + * @time :2024/2/29 15:30
  296 + */
  297 + public function subSort($subList,&$sort,$pid = 0){
  298 + $navModel = new BNav();
  299 + foreach ($subList as $k => $v){
  300 + $v = (array)$v;
  301 + $sort = $sort+1;
  302 + $navModel->edit(['sort'=>$sort],['id'=>$v['id']]);
  303 + if(!empty($v['sub'])){
  304 + $this->subSort($v['sub'],$sort,$v['id']);
  305 + }
  306 + }
  307 + return true;
280 } 308 }
281 // public function handle(){ 309 // public function handle(){
282 // $projectModel = new DeployOptimize(); 310 // $projectModel = new DeployOptimize();
@@ -12,6 +12,7 @@ namespace App\Http\Controllers\Aside\Project; @@ -12,6 +12,7 @@ namespace App\Http\Controllers\Aside\Project;
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\Models\Project\MinorLanguages; 14 use App\Models\Project\MinorLanguages;
  15 +use App\Models\WebSetting\WebLanguage;
15 16
16 /** 17 /**
17 * @remark :小语种 18 * @remark :小语种
@@ -22,6 +23,13 @@ use App\Models\Project\MinorLanguages; @@ -22,6 +23,13 @@ use App\Models\Project\MinorLanguages;
22 */ 23 */
23 class MinorLanguagesController extends BaseController 24 class MinorLanguagesController extends BaseController
24 { 25 {
  26 + /**
  27 + * @remark :小语种列表
  28 + * @name :getMinorLanguageList
  29 + * @author :lyh
  30 + * @method :post
  31 + * @time :2024/3/1 10:35
  32 + */
25 public function getMinorLanguageList(){ 33 public function getMinorLanguageList(){
26 $this->request->validate([ 34 $this->request->validate([
27 'project_id'=>'required', 35 'project_id'=>'required',
@@ -29,7 +37,20 @@ class MinorLanguagesController extends BaseController @@ -29,7 +37,20 @@ class MinorLanguagesController extends BaseController
29 'project_id.required' => 'keyword不能为空', 37 'project_id.required' => 'keyword不能为空',
30 ]); 38 ]);
31 $languageModel = new MinorLanguages(); 39 $languageModel = new MinorLanguages();
32 - $lists = $languageModel->list($this->map,'id',['language','type','keywords','service_day']); 40 + $lists = $languageModel->list($this->map,'id',['language','type','keywords','service_day','lang']);
  41 + $this->response('success',Code::SUCCESS,$lists);
  42 + }
  43 +
  44 + /**
  45 + * @remark :获取所有的小语种
  46 + * @name :getLanguages
  47 + * @author :lyh
  48 + * @method :post
  49 + * @time :2024/3/1 10:11
  50 + */
  51 + public function getLanguages(){
  52 + $webLanguageModel = new WebLanguage();
  53 + $lists = $webLanguageModel->list($this->map,'id',['short','chinese']);
33 $this->response('success',Code::SUCCESS,$lists); 54 $this->response('success',Code::SUCCESS,$lists);
34 } 55 }
35 } 56 }
@@ -28,9 +28,9 @@ class NavController extends BaseController @@ -28,9 +28,9 @@ class NavController extends BaseController
28 * @method :post 28 * @method :post
29 * @time :2023/12/4 15:00 29 * @time :2023/12/4 15:00
30 */ 30 */
31 - public function index(BNav $nav,BNavGroup $navGroup){ 31 + public function index(BNav $nav){
32 $this->map['project_id'] = $this->user['project_id']; 32 $this->map['project_id'] = $this->user['project_id'];
33 - $lists = $nav->list($this->map,$this->order = ['sort','id']); 33 + $lists = $nav->list($this->map,$this->order = ['sort','id'],['*'],'asc');
34 $data = array(); 34 $data = array();
35 if(!empty($lists)){ 35 if(!empty($lists)){
36 foreach ($lists as $v){ 36 foreach ($lists as $v){
@@ -41,13 +41,6 @@ class NavController extends BaseController @@ -41,13 +41,6 @@ class NavController extends BaseController
41 $data[] = $v; 41 $data[] = $v;
42 } 42 }
43 } 43 }
44 - //获取菜单组排序字段  
45 - $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);  
46 - if(!empty($groupInfo['sort_list'])){  
47 - $sort_list = json_decode($groupInfo['sort_list']);  
48 - $detailsList = $this->getIdDetailsList($data);  
49 - $data = $this->findDetailsLists($sort_list,$detailsList);  
50 - }  
51 } 44 }
52 $this->response('success',Code::SUCCESS,$data); 45 $this->response('success',Code::SUCCESS,$data);
53 } 46 }
@@ -70,66 +63,6 @@ class NavController extends BaseController @@ -70,66 +63,6 @@ class NavController extends BaseController
70 } 63 }
71 64
72 /** 65 /**
73 - * @remark :根据固定的数组排序  
74 - * @name :findDetailsInList  
75 - * @author :lyh  
76 - * @method :post  
77 - * @time :2023/12/18 14:54  
78 - */  
79 - public function findDetailsLists($sort_list, $detailsList)  
80 - {  
81 - $result = [];  
82 - foreach ($sort_list as $val) {  
83 - $val = (array)$val;  
84 - if (!empty($val['sub']) && is_array($val['sub']) && isset($detailsList[$val['id']]['sub'])){  
85 - $detailsList[$val['id']]['sub'] = $this->findDetailsLists($val['sub'], $detailsList[$val['id']]['sub']);  
86 - }  
87 - if (empty($detailsList[$val['id']])){  
88 - continue;  
89 - }  
90 - if(!empty($detailsList[$val['id']]['sub']) && is_array($detailsList[$val['id']]['sub'])){  
91 - $detailsList[$val['id']]['sub'] = $this->handleDetailsSub($detailsList[$val['id']]['sub']);  
92 - }  
93 - $result[] = $detailsList[$val['id']];  
94 - unset($detailsList[$val['id']]);  
95 - }  
96 - $result = array_merge($result, $detailsList);  
97 - return $this->success($result);  
98 - }  
99 -  
100 - /**  
101 - * @remark :处理子集  
102 - * @name :handleDetailsSub  
103 - * @author :lyh  
104 - * @method :post  
105 - * @time :2023/12/21 16:36  
106 - */  
107 - public function handleDetailsSub($detailsList){  
108 - if(!empty($detailsList['sub']) && is_array($detailsList['sub'])){  
109 - $detailsList['sub'] = $this->handleDetailsSub($detailsList['sub']);  
110 - }  
111 - return array_merge($detailsList);  
112 - }  
113 -  
114 - /**  
115 - * @remark :根据id组装数据  
116 - * @name :getDetailsList  
117 - * @author :lyh  
118 - * @method :post  
119 - * @time :2023/12/20 18:52  
120 - */  
121 - public function getIdDetailsList($data){  
122 - $detailsList = [];  
123 - foreach ($data as $v) {  
124 - if (!empty($v['sub'])){  
125 - $v['sub'] = $this->getIdDetailsList($v['sub']);  
126 - }  
127 - $detailsList[$v['id']] = $v;  
128 - }  
129 - return $this->success($detailsList);  
130 - }  
131 -  
132 - /**  
133 * @remark :获取当前id下的所有子集 66 * @remark :获取当前id下的所有子集
134 * @name :getSubList 67 * @name :getSubList
135 * @author :lyh 68 * @author :lyh
@@ -233,10 +166,8 @@ class NavController extends BaseController @@ -233,10 +166,8 @@ class NavController extends BaseController
233 */ 166 */
234 public function setSortList(NavLogic $navLogic){ 167 public function setSortList(NavLogic $navLogic){
235 $this->request->validate([ 168 $this->request->validate([
236 - 'id'=>'required',  
237 'sort_list'=>'required', 169 'sort_list'=>'required',
238 ],[ 170 ],[
239 - 'id.required' => 'ID不能为空',  
240 'sort_list.required' => '排序不能为空', 171 'sort_list.required' => '排序不能为空',
241 ]); 172 ]);
242 $navLogic->setSortList(); 173 $navLogic->setSortList();
@@ -322,12 +322,14 @@ class ProjectLogic extends BaseLogic @@ -322,12 +322,14 @@ class ProjectLogic extends BaseLogic
322 if(!empty($minor_language)){ 322 if(!empty($minor_language)){
323 foreach ($minor_language as $k => $v){ 323 foreach ($minor_language as $k => $v){
324 if(!empty($v['language'])){ 324 if(!empty($v['language'])){
  325 + $v['created_at'] = date('Y-m-d H:i:s');
  326 + $v['updated_at'] = date('Y-m-d H:i:s');
325 $v['project_id'] = $this->param['id']; 327 $v['project_id'] = $this->param['id'];
326 $data[] = $v; 328 $data[] = $v;
327 } 329 }
328 } 330 }
329 if(!empty($data)){ 331 if(!empty($data)){
330 - $languageModel->insert($minor_language); 332 + $languageModel->insert($data);
331 } 333 }
332 } 334 }
333 return $this->success(); 335 return $this->success();
@@ -260,11 +260,30 @@ class NavLogic extends BaseLogic @@ -260,11 +260,30 @@ class NavLogic extends BaseLogic
260 * @time :2023/12/18 13:47 260 * @time :2023/12/18 13:47
261 */ 261 */
262 public function setSortList(){ 262 public function setSortList(){
263 - $navGroupModel = new BNavGroup();  
264 - if(!empty($this->param['sort_list'])){  
265 - $this->param['sort_list'] = json_encode($this->param['sort_list']); 263 + $navList = $this->param['sort_list'];
  264 + if(!empty($navList)){
  265 + $sort = 0;
  266 + $this->subSort($navList,$sort);
266 } 267 }
267 - $navGroupModel->edit(['sort_list'=>$this->param['sort_list']],['id'=>$this->param['id']]);  
268 return $this->success(); 268 return $this->success();
269 } 269 }
  270 +
  271 + /**
  272 + * @remark :处理子集排序
  273 + * @name :subSort
  274 + * @author :lyh
  275 + * @method :post
  276 + * @time :2024/2/29 15:30
  277 + */
  278 + public function subSort($subList,&$sort,$pid = 0){
  279 + $navModel = new BNav();
  280 + foreach ($subList as $k => $v){
  281 + $sort = $sort+1;
  282 + $navModel->edit(['pid'=>$pid,'sort'=>$sort],['id'=>$v['id']]);
  283 + if(!empty($v['sub'])){
  284 + $this->subSort($v['sub'],$sort,$v['id']);
  285 + }
  286 + }
  287 + return true;
  288 + }
270 } 289 }
@@ -45,7 +45,7 @@ class ProductLogic extends BaseLogic @@ -45,7 +45,7 @@ class ProductLogic extends BaseLogic
45 $category_ids = $this->handleCategory(); 45 $category_ids = $this->handleCategory();
46 //处理其他字段 46 //处理其他字段
47 $this->param = $this->handleSaveParam($this->param); 47 $this->param = $this->handleSaveParam($this->param);
48 - try { 48 +// try {
49 if(isset($this->param['id']) && !empty($this->param['id'])){ 49 if(isset($this->param['id']) && !empty($this->param['id'])){
50 $is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0 50 $is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0
51 $six_read = $this->param['six_read'] ?? 0;//是否按6.0显示 51 $six_read = $this->param['six_read'] ?? 0;//是否按6.0显示
@@ -66,10 +66,10 @@ class ProductLogic extends BaseLogic @@ -66,10 +66,10 @@ class ProductLogic extends BaseLogic
66 CategoryRelated::saveRelated($id, $category_ids); 66 CategoryRelated::saveRelated($id, $category_ids);
67 //保存扩展字段 67 //保存扩展字段
68 $this->saveExtendInfo($id,$extend); 68 $this->saveExtendInfo($id,$extend);
69 - }catch (\Exception $e){  
70 - Log::info('错误信息---'.$e->getMessage());  
71 - $this->fail('系统错误请联系管理员');  
72 - } 69 +// }catch (\Exception $e){
  70 +// Log::info('错误信息---'.$e->getMessage());
  71 +// $this->fail('系统错误请联系管理员');
  72 +// }
73 $this->addUpdateNotify(RouteMap::SOURCE_PRODUCT,$route); 73 $this->addUpdateNotify(RouteMap::SOURCE_PRODUCT,$route);
74 $this->curlDelRoute(['new_route'=>$route]); 74 $this->curlDelRoute(['new_route'=>$route]);
75 return $this->success(); 75 return $this->success();
@@ -88,9 +88,9 @@ class RankDataLogic extends BaseLogic @@ -88,9 +88,9 @@ class RankDataLogic extends BaseLogic
88 $languageList = $languageModel->list(['project_id'=>$project['id']]); 88 $languageList = $languageModel->list(['project_id'=>$project['id']]);
89 if(!empty($languageList) && is_array($languageList)){ 89 if(!empty($languageList) && is_array($languageList)){
90 foreach($languageList as $lang){ 90 foreach($languageList as $lang){
91 - $remain_day = $lang_data[$lang['language']]['dabiao_day'] ?? 0; 91 + $remain_day = $lang_data[$lang['lang']]['dabiao_day'] ?? 0;
92 $data['langs'][$lang['language'] ?? ''] = [ 92 $data['langs'][$lang['language'] ?? ''] = [
93 - 'lang_text' => Translate::getTls($lang['tl'] ?? ''), 93 + 'lang_text' => $lang['language'],
94 'keyword_num' => $lang['keywords'] ?? 0, 94 'keyword_num' => $lang['keywords'] ?? 0,
95 'reach_day' => $lang_data[$lang['language']]['dabiao_day'] ?? 0, 95 'reach_day' => $lang_data[$lang['language']]['dabiao_day'] ?? 0,
96 'home_cnt' => $lang_data[$lang['language']]['home_cnt'] ?? 0, 96 'home_cnt' => $lang_data[$lang['language']]['home_cnt'] ?? 0,
@@ -488,7 +488,6 @@ class RankDataLogic extends BaseLogic @@ -488,7 +488,6 @@ class RankDataLogic extends BaseLogic
488 } 488 }
489 } 489 }
490 } 490 }
491 -  
492 $model->project_id = $project_id; 491 $model->project_id = $project_id;
493 $model->first_num = $first_num; 492 $model->first_num = $first_num;
494 $model->first_page_num = $first_page_num; 493 $model->first_page_num = $first_page_num;
@@ -67,7 +67,7 @@ class ProductRequest extends FormRequest @@ -67,7 +67,7 @@ class ProductRequest extends FormRequest
67 { 67 {
68 return [ 68 return [
69 'title.required' => '请输入产品标题', 69 'title.required' => '请输入产品标题',
70 - 'title.max' => '产品标题不能超过20个字符', 70 + 'title.max' => '产品标题不能超过200个字符',
71 'route.required' => '请输入产品链接', 71 'route.required' => '请输入产品链接',
72 'route.max' => '产品链接不能超过200个字符', 72 'route.max' => '产品链接不能超过200个字符',
73 // 'gallery.required' => '请上传产品图片', 73 // 'gallery.required' => '请上传产品图片',
@@ -193,6 +193,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -193,6 +193,7 @@ Route::middleware(['aloginauth'])->group(function () {
193 193
194 Route::prefix('language')->group(function () { 194 Route::prefix('language')->group(function () {
195 Route::any('/', [Aside\Project\MinorLanguagesController::class, 'getMinorLanguageList'])->name('admin.getMinorLanguageList'); 195 Route::any('/', [Aside\Project\MinorLanguagesController::class, 'getMinorLanguageList'])->name('admin.getMinorLanguageList');
  196 + Route::any('/getLanguages', [Aside\Project\MinorLanguagesController::class, 'getLanguages'])->name('admin.getLanguages');
196 }); 197 });
197 //更新项目tdk 198 //更新项目tdk
198 Route::any('/updateSeoTdk', [Aside\Com\UpdateController::class, 'updateSeoTdk'])->name('admin.project_updateSeoTdk'); 199 Route::any('/updateSeoTdk', [Aside\Com\UpdateController::class, 'updateSeoTdk'])->name('admin.project_updateSeoTdk');