作者 刘锟

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

... ... @@ -8,6 +8,8 @@ use App\Helper\FormGlobalsoApi;
use App\Models\Domain\DomainInfo;
use App\Models\HomeCount\Count;
use App\Models\Inquiry\InquiryFormData;
use App\Models\Nav\BNav;
use App\Models\Nav\BNavGroup;
use App\Models\Project\Project;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
... ... @@ -52,6 +54,17 @@ class Test extends Command
*/
public function handle()
{
ProjectServer::useProject(1);
$group =BNavGroup::where(['id' => 1])->first();
$sort_list = json_decode($group->sort_list, true);
$nav = new BNav();
$map = [
'project_id' => 1,
'group_id' => 1
];
$list = $nav->list($map, ['sort','id']);
$ids = array_column($group, 'id');
dd($list, $sort_list);
$projects = Project::all();
foreach ($projects as $project){
echo "project " . $project->id;
... ...
... ... @@ -36,7 +36,7 @@ class Kernel extends ConsoleKernel
$schedule->command('inquiry_count')->dailyAt('01:00')->withoutOverlapping(1); // 询盘统计数据,每天凌晨执行一次
$schedule->command('domain_info')->dailyAt('01:00')->withoutOverlapping(1);// 更新域名|证书结束时间,每天凌晨1点执行一次
$schedule->command('last_inquiry')->dailyAt('04:00')->withoutOverlapping(1);// 最近一次询盘信息
$schedule->command('update_progress')->everyThirtyMinutes()->withoutOverlapping(1);//监控更新
// $schedule->command('update_progress')->everyThirtyMinutes()->withoutOverlapping(1);//监控更新
$schedule->command('update_seo_tdk_crontab')->dailyAt('00:00')->withoutOverlapping(1); //更新上线项目TDK
$schedule->command('website_data')->dailyAt('01:00')->withoutOverlapping(1); // 向AICC推送数据
$schedule->command('project_file_pdf')->dailyAt('00:00')->withoutOverlapping(1); // 网站项目数据,生成PDF文件
... ...
... ... @@ -14,6 +14,10 @@ use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\CustomModule\CustomModuleExtendLogic;
use App\Models\CustomModule\CustomModuleExtend;
use App\Models\CustomModule\CustomModuleExtentContent;
<<<<<<< HEAD
use App\Models\Product\Extend;
=======
>>>>>>> 8cd12bff1a9683bab5e510abdf95218a42999a27
class CustomModuleExtentController extends BaseController
{
... ... @@ -83,6 +87,24 @@ class CustomModuleExtentController extends BaseController
}
/**
<<<<<<< HEAD
* @remark :获取扩展模块的扩展字段
* @name :lists
* @author :lyh
* @method :post
* @time :2023/12/21 9:25
*/
public function extendContent(CustomModuleExtentContent $content){
$this->request->validate([
'module_id'=>['required'],
],[
'module_id.required' => 'module_id不能为空',
]);
$lists = $content->list($this->map);
$this->response('success',Code::SUCCESS,$lists);
}
=======
* @remark :
* @name :getExtendContentList
* @author :lyh
... ... @@ -94,4 +116,5 @@ class CustomModuleExtentController extends BaseController
$lists = $extend->list($this->map);
$this->response('success',Code::SUCCESS,$lists);
}
>>>>>>> 8cd12bff1a9683bab5e510abdf95218a42999a27
}
... ...
... ... @@ -31,13 +31,8 @@ class NavController extends BaseController
public function index(BNav $nav,BNavGroup $navGroup){
$this->map['project_id'] = $this->user['project_id'];
$lists = $nav->list($this->map,$this->order = ['sort','id']);
// //获取菜单组排序字段
// $groupInfo = $navGroup->read(['id'=>$this->param['group_id']]);
// if(!empty($groupInfo['sort_list'])){
// $sort_list = json_decode($groupInfo['sort_list']);
// $data = $this->findDetailsList($sort_list,$lists);
// }else{
$data = array();
$data = array();
if(!empty($lists)){
foreach ($lists as $v){
$v = (array)$v;
if ($v['pid'] == 0) {
... ... @@ -45,7 +40,14 @@ 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);
}
... ... @@ -56,24 +58,41 @@ class NavController extends BaseController
* @method :post
* @time :2023/12/18 14:54
*/
public function findDetailsList($data, $detailsList) {
public function findDetailsLists($sort_list, $detailsList)
{
$result = [];
foreach ($data as $item) {
$items = $item = (array)$item;
$id = $item['id'];
// 在给定的详情列表中查找匹配的id
$matchingDetail = array_filter($detailsList, function ($detail) use ($id) {
return $detail['id'] == $id;
});
if (!empty($matchingDetail)) {
$items = reset($matchingDetail);
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($item['sub'])) {
$items['sub'] = $this->findDetailsList((array)$item['sub'], $detailsList);
$result[] = $detailsList[$val['id']];
unset($detailsList[$val['id']]);
}
$result = array_merge($result, $detailsList);
return $this->success($result);
}
/**
* @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']);
}
$result[] = $items;
$detailsList[$v['id']] = $v;
}
return $result;
return $this->success($detailsList);
}
/**
... ...
... ... @@ -99,6 +99,9 @@ class CreateKeywordLogic extends BaseLogic
if(!empty($prefix)){//前缀+关键词
foreach ($keyword as $keywordItem){
foreach ($prefix as $prefixItem) {
if (strpos($keywordItem, $prefixItem) === 0) {
continue;
}
$prefix_keyword[] =$prefixItem.' '.$keywordItem;
}
}
... ... @@ -118,6 +121,9 @@ class CreateKeywordLogic extends BaseLogic
if(!empty($suffix)){//前缀+关键词
foreach ($keyword as $keywordItem){
foreach ($suffix as $suffixItem) {
if (str_ends_with($keywordItem, $suffixItem)) {
continue;
}
$suffix_keyword[] = $keywordItem.' '.$suffixItem;
}
}
... ... @@ -137,7 +143,13 @@ class CreateKeywordLogic extends BaseLogic
if(!empty($prefix) && !empty($suffix)){
foreach ($keyword as $keywordItem){
foreach ($prefix as $prefixItem) {
if (strpos($keywordItem, $prefixItem) === 0) {
continue;
}
foreach ($suffix as $suffixItem) {
if (str_ends_with($keywordItem, $suffixItem)) {
continue;
}
$prefix_keyword_suffix[] = $prefixItem.' '.$keywordItem.' '.$suffixItem;
}
}
... ...
... ... @@ -174,6 +174,8 @@ class ProjectLogic extends BaseLogic
}
}
$param['notice_file'] = Arr::a2s($param['notice_file']);
}else{
unset($param['notice_file']);
}
if(isset($param['confirm_file']) && !empty($param['confirm_file'])){
foreach ($param['confirm_file'] as &$v2) {
... ... @@ -182,6 +184,8 @@ class ProjectLogic extends BaseLogic
}
}
$param['confirm_file'] = Arr::a2s($param['confirm_file']);
}else{
unset($param['confirm_file']);
}
unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],$param['online_check'],$param['project_after']);
... ...
... ... @@ -80,7 +80,7 @@ class CustomTemplateLogic extends BaseLogic
$this->model->edit(['url'=>$route],['id'=>$id]);
}
}catch (\Exception $e){
$this->fail('error');
$this->fail('保存失败,请联系管理员');
}
return $this->success();
}
... ...
... ... @@ -38,7 +38,8 @@ class CountLogic extends BaseLogic
];
$info = $this->model->read($param,['pv_num','ip_num','inquiry_num','date','compliance_day','service_day','country']);
if($info === false){
$info = [];
$info = $this->model->read(['project_id' => $this->user['project_id']],
['pv_num','ip_num','inquiry_num','date','compliance_day','service_day','country']);
}
return $this->success($info);
}
... ...
... ... @@ -475,7 +475,7 @@ class ProductLogic extends BaseLogic
'content'=>$info['content'],
'describe'=>Arr::a2s($info['describe']),
'describe_id'=>Arr::arrToSet($info['describe_id']),
'seo_mate'=>Arr::a2s($info['seo_mate']),
// 'seo_mate'=>Arr::a2s($info['seo_mate']),
'related_product_id'=>Arr::arrToSet($info['related_product_id']),
'sort'=>$info['sort'],
'status'=>0,
... ...
... ... @@ -455,6 +455,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/info', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'info'])->name('custom_extend_info');
Route::any('/save', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'save'])->name('custom_extend_save');
Route::any('/del', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'del'])->name('custom_extend_del');
Route::any('/extendContent', [\App\Http\Controllers\Bside\CustomModule\CustomModuleExtentController::class, 'extendContent'])->name('custom_extend_extendContent');
});
});
});
... ...