作者 刘锟

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

... ... @@ -16,6 +16,8 @@ use App\Models\Manage\BelongingGroup;
use App\Models\Manage\Dept;
use App\Models\Manage\EntryPosition;
use App\Models\Manage\ManageHr;
use App\Models\Nav\BNav;
use App\Models\Nav\BNavGroup;
use App\Models\Product\Keyword;
use App\Models\Product\Product;
use App\Models\Project\DeployOptimize;
... ... @@ -264,19 +266,45 @@ class Demo extends Command
// }
public function handle(){
$projectModel = new Project();
$list = $projectModel->list(['type'=>['in',[2,3]]]);
foreach ($list as $k => $v){
$domainModel = new DomainInfo();
if(empty($v['uptime'])){
//获取项目域名的时间
$domainInfo = $domainModel->read(['project_id'=>$v['id']]);
if($domainInfo !== false){
// dd($domainInfo);
$projectModel->edit(['uptime'=>$domainInfo['created_at']],['id'=>$v['id']]);
echo date('Y-m-d H:i:s') . 'project_id:'.$v['id'] . PHP_EOL;
$list = $projectModel->list(['delete_status'=>0,'type'=>['!=',0]]);
foreach ($list as $v1){
ProjectServer::useProject($v1['id']);
echo date('Y-m-d H:i:s') . '项目id:'.$v1['id'] . PHP_EOL;
$navGroupModel = new BNavGroup();
$groupList = $navGroupModel->list(['sort_list'=>['!=','']]);
if(empty($groupList)){
continue;
}
foreach ($groupList as $k=>$v){
if(!empty($v['sort_list'])){
$sort_list = json_decode($v['sort_list']);
$sort = 0;
$this->subSort($sort_list,$sort);
}
}
DB::disconnect('custom_mysql');
}
return true;
}
/**
* @remark :处理子集排序
* @name :subSort
* @author :lyh
* @method :post
* @time :2024/2/29 15:30
*/
public function subSort($subList,&$sort,$pid = 0){
$navModel = new BNav();
foreach ($subList as $k => $v){
$v = (array)$v;
$sort = $sort+1;
$navModel->edit(['sort'=>$sort],['id'=>$v['id']]);
if(!empty($v['sub'])){
$this->subSort($v['sub'],$sort,$v['id']);
}
}
return true;
}
// public function handle(){
// $projectModel = new DeployOptimize();
... ...
... ... @@ -12,6 +12,7 @@ namespace App\Http\Controllers\Aside\Project;
use App\Enums\Common\Code;
use App\Http\Controllers\Aside\BaseController;
use App\Models\Project\MinorLanguages;
use App\Models\WebSetting\WebLanguage;
/**
* @remark :小语种
... ... @@ -22,6 +23,13 @@ use App\Models\Project\MinorLanguages;
*/
class MinorLanguagesController extends BaseController
{
/**
* @remark :小语种列表
* @name :getMinorLanguageList
* @author :lyh
* @method :post
* @time :2024/3/1 10:35
*/
public function getMinorLanguageList(){
$this->request->validate([
'project_id'=>'required',
... ... @@ -29,7 +37,20 @@ class MinorLanguagesController extends BaseController
'project_id.required' => 'keyword不能为空',
]);
$languageModel = new MinorLanguages();
$lists = $languageModel->list($this->map,'id',['language','type','keywords','service_day']);
$lists = $languageModel->list($this->map,'id',['language','type','keywords','service_day','lang']);
$this->response('success',Code::SUCCESS,$lists);
}
/**
* @remark :获取所有的小语种
* @name :getLanguages
* @author :lyh
* @method :post
* @time :2024/3/1 10:11
*/
public function getLanguages(){
$webLanguageModel = new WebLanguage();
$lists = $webLanguageModel->list($this->map,'id',['short','chinese']);
$this->response('success',Code::SUCCESS,$lists);
}
}
... ...
... ... @@ -28,9 +28,9 @@ class NavController extends BaseController
* @method :post
* @time :2023/12/4 15:00
*/
public function index(BNav $nav,BNavGroup $navGroup){
public function index(BNav $nav){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav->list($this->map,$this->order = ['sort','id']);
$lists = $nav->list($this->map,$this->order = ['sort','id'],['*'],'asc');
$data = array();
if(!empty($lists)){
foreach ($lists as $v){
... ... @@ -41,13 +41,6 @@ class NavController extends BaseController
$data[] = $v;
}
}
//获取菜单组排序字段
$groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
if(!empty($groupInfo['sort_list'])){
$sort_list = json_decode($groupInfo['sort_list']);
$detailsList = $this->getIdDetailsList($data);
$data = $this->findDetailsLists($sort_list,$detailsList);
}
}
$this->response('success',Code::SUCCESS,$data);
}
... ... @@ -70,66 +63,6 @@ class NavController extends BaseController
}
/**
* @remark :根据固定的数组排序
* @name :findDetailsInList
* @author :lyh
* @method :post
* @time :2023/12/18 14:54
*/
public function findDetailsLists($sort_list, $detailsList)
{
$result = [];
foreach ($sort_list as $val) {
$val = (array)$val;
if (!empty($val['sub']) && is_array($val['sub']) && isset($detailsList[$val['id']]['sub'])){
$detailsList[$val['id']]['sub'] = $this->findDetailsLists($val['sub'], $detailsList[$val['id']]['sub']);
}
if (empty($detailsList[$val['id']])){
continue;
}
if(!empty($detailsList[$val['id']]['sub']) && is_array($detailsList[$val['id']]['sub'])){
$detailsList[$val['id']]['sub'] = $this->handleDetailsSub($detailsList[$val['id']]['sub']);
}
$result[] = $detailsList[$val['id']];
unset($detailsList[$val['id']]);
}
$result = array_merge($result, $detailsList);
return $this->success($result);
}
/**
* @remark :处理子集
* @name :handleDetailsSub
* @author :lyh
* @method :post
* @time :2023/12/21 16:36
*/
public function handleDetailsSub($detailsList){
if(!empty($detailsList['sub']) && is_array($detailsList['sub'])){
$detailsList['sub'] = $this->handleDetailsSub($detailsList['sub']);
}
return array_merge($detailsList);
}
/**
* @remark :根据id组装数据
* @name :getDetailsList
* @author :lyh
* @method :post
* @time :2023/12/20 18:52
*/
public function getIdDetailsList($data){
$detailsList = [];
foreach ($data as $v) {
if (!empty($v['sub'])){
$v['sub'] = $this->getIdDetailsList($v['sub']);
}
$detailsList[$v['id']] = $v;
}
return $this->success($detailsList);
}
/**
* @remark :获取当前id下的所有子集
* @name :getSubList
* @author :lyh
... ... @@ -233,10 +166,8 @@ class NavController extends BaseController
*/
public function setSortList(NavLogic $navLogic){
$this->request->validate([
'id'=>'required',
'sort_list'=>'required',
],[
'id.required' => 'ID不能为空',
'sort_list.required' => '排序不能为空',
]);
$navLogic->setSortList();
... ...
... ... @@ -322,12 +322,14 @@ class ProjectLogic extends BaseLogic
if(!empty($minor_language)){
foreach ($minor_language as $k => $v){
if(!empty($v['language'])){
$v['created_at'] = date('Y-m-d H:i:s');
$v['updated_at'] = date('Y-m-d H:i:s');
$v['project_id'] = $this->param['id'];
$data[] = $v;
}
}
if(!empty($data)){
$languageModel->insert($minor_language);
$languageModel->insert($data);
}
}
return $this->success();
... ...
... ... @@ -260,11 +260,30 @@ class NavLogic extends BaseLogic
* @time :2023/12/18 13:47
*/
public function setSortList(){
$navGroupModel = new BNavGroup();
if(!empty($this->param['sort_list'])){
$this->param['sort_list'] = json_encode($this->param['sort_list']);
$navList = $this->param['sort_list'];
if(!empty($navList)){
$sort = 0;
$this->subSort($navList,$sort);
}
$navGroupModel->edit(['sort_list'=>$this->param['sort_list']],['id'=>$this->param['id']]);
return $this->success();
}
/**
* @remark :处理子集排序
* @name :subSort
* @author :lyh
* @method :post
* @time :2024/2/29 15:30
*/
public function subSort($subList,&$sort,$pid = 0){
$navModel = new BNav();
foreach ($subList as $k => $v){
$sort = $sort+1;
$navModel->edit(['pid'=>$pid,'sort'=>$sort],['id'=>$v['id']]);
if(!empty($v['sub'])){
$this->subSort($v['sub'],$sort,$v['id']);
}
}
return true;
}
}
... ...
... ... @@ -45,7 +45,7 @@ class ProductLogic extends BaseLogic
$category_ids = $this->handleCategory();
//处理其他字段
$this->param = $this->handleSaveParam($this->param);
try {
// try {
if(isset($this->param['id']) && !empty($this->param['id'])){
$is_upgrade = $this->param['is_upgrade'] ?? 0;//1:5.0数据 0:6.0
$six_read = $this->param['six_read'] ?? 0;//是否按6.0显示
... ... @@ -66,10 +66,10 @@ class ProductLogic extends BaseLogic
CategoryRelated::saveRelated($id, $category_ids);
//保存扩展字段
$this->saveExtendInfo($id,$extend);
}catch (\Exception $e){
Log::info('错误信息---'.$e->getMessage());
$this->fail('系统错误请联系管理员');
}
// }catch (\Exception $e){
// Log::info('错误信息---'.$e->getMessage());
// $this->fail('系统错误请联系管理员');
// }
$this->addUpdateNotify(RouteMap::SOURCE_PRODUCT,$route);
$this->curlDelRoute(['new_route'=>$route]);
return $this->success();
... ...
... ... @@ -88,9 +88,9 @@ class RankDataLogic extends BaseLogic
$languageList = $languageModel->list(['project_id'=>$project['id']]);
if(!empty($languageList) && is_array($languageList)){
foreach($languageList as $lang){
$remain_day = $lang_data[$lang['language']]['dabiao_day'] ?? 0;
$remain_day = $lang_data[$lang['lang']]['dabiao_day'] ?? 0;
$data['langs'][$lang['language'] ?? ''] = [
'lang_text' => Translate::getTls($lang['tl'] ?? ''),
'lang_text' => $lang['language'],
'keyword_num' => $lang['keywords'] ?? 0,
'reach_day' => $lang_data[$lang['language']]['dabiao_day'] ?? 0,
'home_cnt' => $lang_data[$lang['language']]['home_cnt'] ?? 0,
... ... @@ -488,7 +488,6 @@ class RankDataLogic extends BaseLogic
}
}
}
$model->project_id = $project_id;
$model->first_num = $first_num;
$model->first_page_num = $first_page_num;
... ...
... ... @@ -67,7 +67,7 @@ class ProductRequest extends FormRequest
{
return [
'title.required' => '请输入产品标题',
'title.max' => '产品标题不能超过20个字符',
'title.max' => '产品标题不能超过200个字符',
'route.required' => '请输入产品链接',
'route.max' => '产品链接不能超过200个字符',
// 'gallery.required' => '请上传产品图片',
... ...
... ... @@ -193,6 +193,7 @@ Route::middleware(['aloginauth'])->group(function () {
Route::prefix('language')->group(function () {
Route::any('/', [Aside\Project\MinorLanguagesController::class, 'getMinorLanguageList'])->name('admin.getMinorLanguageList');
Route::any('/getLanguages', [Aside\Project\MinorLanguagesController::class, 'getLanguages'])->name('admin.getLanguages');
});
//更新项目tdk
Route::any('/updateSeoTdk', [Aside\Com\UpdateController::class, 'updateSeoTdk'])->name('admin.project_updateSeoTdk');
... ...