作者 李宇航

合并分支 'master-lyh-edit' 到 'master'

Master lyh edit



查看合并请求 !603
<?php
/**
* @remark :
* @name :PopularTemplateLabel.php
* @author :lyh
* @method :post
* @time :2024/6/3 17:00
*/
namespace App\Console\Commands\TemplateLabel;
use App\Models\Template\Template;
use App\Models\Template\TemplateLabel as TemplateLabelModel;
use App\Models\Template\TemplateModule;
use Illuminate\Console\Command;
class PopularTemplateLabel extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'popular_template_label';
/**
* The console command description.
*
* @var string
*/
protected $description = '设置热门label';
/**
* @remark :执行脚本
* @name :handle
* @author :lyh
* @method :post
* @time :2024/6/3 17:01
*/
public function handle(){
$this->setTemplate();
$this->setTemplateModule();
return true;
}
/**
* @remark :公共模块热门模块
* @name :setTemplate
* @author :lyh
* @method :post
* @time :2024/6/3 15:56
*/
public function setTemplate(){
$templateModel = new Template();
$info = $templateModel->list(['test_model'=>0,'number'=>['<>',0]],'number',['id'],'desc',50);
if(empty($info)){
return true;
}else{
//清除当前所有最新标签
$labelModel = new TemplateLabelModel();
$labelModel->del(['name'=>'热门','type'=>1]);
$data = [];
foreach ($info as $v){
$data[] = [
'name'=>'热门',
'type'=>1,
'template_id'=>$v['id'],
'manager_id'=>0,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
}
//设置为最新
$labelModel->insert($data);
}
return true;
}
/**
* @remark :左侧模块
* @name :templateModule
* @author :lyh
* @method :post
* @time :2024/6/3 15:54
*/
public function setTemplateModule(){
$templateModuleModel = new TemplateModule();
$moduleInfo = $templateModuleModel->list(['test_model'=>0,'number'=>['<>',0]],'id',['id']);
if(empty($moduleInfo)){
return true;
}else{
//清除当前所有最新标签
$labelModel = new TemplateLabelModel();
$labelModel->del(['name'=>'热门','type'=>2]);
$moduleData = [];
foreach ($moduleInfo as $k => $v){
$moduleData[] = [
'name'=>'热门',
'type'=>2,
'template_id'=>$v['id'],
'manager_id'=>0,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
}
//设置为最新
$labelModel->insert($moduleData);
}
return true;
}
}
... ...
... ... @@ -9,6 +9,7 @@
namespace App\Console\Commands\TemplateLabel;
use App\Models\Template\Template;
use App\Models\Template\TemplateModule;
use Illuminate\Console\Command;
use App\Models\Template\TemplateLabel as TemplateLabelModel;
... ... @@ -37,24 +38,77 @@ class TemplateLabel extends Command
* @time :2024/6/3 11:35
*/
public function handle(){
//清除当前所有最新标签
$labelModel = new TemplateLabelModel();
//获取最近5天左侧的记录
$start_time = now()->subDays(7)->startOfDay()->toDateString();
//获取最近7天模版的记录
$start_time = now()->subDays(90)->startOfDay()->toDateString();
$end_time = now()->startOfDay()->toDateString();
$templateModuleModel = new TemplateModule();
$moduleInfo = $templateModuleModel->list(['created_at'=>['between',[$start_time,$end_time]],'type'=>1]);
if($moduleInfo === false){
return false;
$this->setTemplateModule($start_time,$end_time);
$this->setTemplate($start_time,$end_time);
return true;
}
/**
* @remark :公共模块
* @name :setTemplate
* @author :lyh
* @method :post
* @time :2024/6/3 15:56
*/
public function setTemplate($start_time,$end_time){
$templateModel = new Template();
$info = $templateModel->list(['created_at'=>['between',[$start_time,$end_time]],'test_model'=>0],'id',['id']);
if(empty($info)){
return true;
}else{
//清除当前所有最新标签
$labelModel = new TemplateLabelModel();
$labelModel->del(['name'=>'最新','type'=>1]);
$data = [];
foreach ($moduleInfo as $k => $v){
foreach ($info as $k => $v){
$data[] = [
'name'=>'最新',
'type'=>1,
'template_id'=>$v['id'],
'manager_id'=>0,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
}
//设置为最新
$labelModel->insert($data);
}
return true;
}
/**
* @remark :左侧模块
* @name :templateModule
* @author :lyh
* @method :post
* @time :2024/6/3 15:54
*/
public function setTemplateModule($start_time,$end_time){
$templateModuleModel = new TemplateModule();
$moduleInfo = $templateModuleModel->list(['created_at'=>['between',[$start_time,$end_time]],'test_model'=>0],'id',['id']);
if(empty($moduleInfo)){
return true;
}else{
//清除当前所有最新标签
$labelModel = new TemplateLabelModel();
$labelModel->del(['name'=>'最新','type'=>2]);
$moduleData = [];
foreach ($moduleInfo as $k => $v){
$moduleData[] = [
'name'=>'最新',
'type'=>2,
'template_id'=>$v['id'],
'manager_id'=>0,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
}
//设置为最新
$labelModel->insert($moduleData);
}
//清空所有的最近标签
return true;
}
}
... ...
... ... @@ -15,6 +15,9 @@ class Kernel extends ConsoleKernel
*/
protected function schedule(Schedule $schedule)
{
// 每日更新最新模块
// $schedule->command('template_label')->dailyAt('01:00')->withoutOverlapping(1);//最新模块
// $schedule->command('popular_template_label')->dailyAt('01:30')->withoutOverlapping(1);//热门模块
// $schedule->command('inspire')->hourly();
$schedule->command('remain_day')->dailyAt('09:00')->withoutOverlapping(1); // 项目剩余服务时长
$schedule->command('rank_data_task')->everyMinute()->withoutOverlapping(1); // 排名数据更新任务
... ...
... ... @@ -24,7 +24,7 @@ use App\Models\Template\TemplateLabel;
class BTemplateLabelController extends BaseController
{
/**
* @remark :获取左侧模版的标签
* @remark :获取模版的标签
* @name :lists
* @author :lyh
* @method :post
... ...
... ... @@ -7,6 +7,7 @@ use App\Http\Controllers\Bside\BaseController;
use App\Http\Logic\Bside\BTemplate\BTemplateModuleLogic;
use App\Http\Logic\Bside\BTemplate\BTemplateModuleProjectLogic;
use App\Models\Template\BModuleProject;
use App\Models\Template\TemplateLabel;
/**
* @remark :左侧模块管理
... ... @@ -62,4 +63,21 @@ class BTemplateModuleController extends BaseController
$list = $BTemplateModuleLogic->ModuleType($this->map);
$this->response('success',Code::SUCCESS,$list);
}
/**
* @remark :设置数量
* @name :setModuleNumber
* @author :lyh
* @method :post
* @time :2024/6/3 16:50
*/
public function setModuleNumber(){
$this->request->validate([
'id'=>'required',
],[
'id.required' => 'id不能为空',
]);
$this->model->where('id', $this->param['id'])->increment('number');
$this->response('success');
}
}
... ...
... ... @@ -3,6 +3,7 @@
namespace App\Http\Logic\Bside\BTemplate;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\Template\TemplateLabel;
use App\Models\Template\TemplateModule;
use App\Models\Template\TemplateType;
... ... @@ -25,8 +26,13 @@ class BTemplateModuleLogic extends BaseLogic
public function ModuleList($map,$order = 'created_at',$filed = ['id','name','type','sort','status','image','test_model']){
$map['deleted_status'] = 0;
$map['status'] = 0;
$lists = $this->model->list($map,$order,$filed);
return $this->success($lists);
$list = $this->model->list($map,$order,$filed);
$templateLabel = new TemplateLabel();
foreach ($list as $k => $v){
$v['label'] = $templateLabel->list(['template_id'=>$v['id'],'type'=>2],'id',['id','name'],'desc',5);
$list[$k] = $v;
}
return $this->success($list);
}
/**
... ...
... ... @@ -369,6 +369,7 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\Template\BTemplateModuleController::class, 'lists'])->name('template_module_lists');
Route::any('/read', [\App\Http\Controllers\Bside\Template\BTemplateModuleController::class, 'read'])->name('template_module_read');
Route::any('/type', [\App\Http\Controllers\Bside\Template\BTemplateModuleController::class, 'getType'])->name('template_module_getType');
Route::any('/setModuleNumber', [\App\Http\Controllers\Bside\Template\BTemplateModuleController::class, 'setModuleNumber'])->name('template_module_setModuleNumber');
});
// 保存私有模块
... ... @@ -537,6 +538,12 @@ Route::middleware(['bloginauth'])->group(function () {
Route::prefix('tutorial')->group(function () {
Route::any('/', [\App\Http\Controllers\Bside\BCom\TutorialController::class, 'lists'])->name('tutorial_lists');
});
//oa教程
Route::prefix('template_label')->group(function () {
Route::any('/getUserLists', [\App\Http\Controllers\Bside\Template\BTemplateLabelController::class, 'getUserLists'])->name('template_label_getUserLists');
Route::any('/save', [\App\Http\Controllers\Bside\Template\BTemplateLabelController::class, 'save'])->name('template_label_save');
Route::any('/del', [\App\Http\Controllers\Bside\Template\BTemplateLabelController::class, 'del'])->name('template_label_del');
});
});
//无需登录验证的路由组
Route::group([], function () {
... ...