Skip to content

Commit 15f6cc8

Browse files
committed
新增:TimeUtil::monitorTick 方法,方便记录调试时间
1 parent 871e260 commit 15f6cc8

82 files changed

Lines changed: 1104 additions & 190 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/Constant/AppConstant.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ class AppConstant
66
{
77
const APP = 'cms9';
88
const APP_NAME = 'ModStartCMS9';
9-
const VERSION = '7.8.0';
9+
const VERSION = '7.9.0';
1010
}

module/Cms/Admin/Controller/ConfigController.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use ModStart\Admin\Layout\AdminConfigBuilder;
99
use ModStart\Form\Form;
1010
use Module\Cms\Type\ContentUrlMode;
11+
use Module\Vendor\Provider\Recommend\RecommendProvider;
1112

1213
class ConfigController extends Controller
1314
{
@@ -36,6 +37,7 @@ public static function setting(AdminConfigBuilder $builder)
3637
'list' => '只显示一级',
3738
])->defaultValue('list');
3839
$builder->switch('Cms_LikeAnonymityEnable', '匿名点赞')->defaultValue(false);
40+
$builder->select('Cms_RecommendProvider', '内容推荐驱动')->options(RecommendProvider::allDefaultMap());
3941
});
4042

4143
$builder->formClass('wide');

module/Cms/Admin/Controller/ContentController.php

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,17 @@
3030
use ModStart\Repository\Filter\RepositoryFilter;
3131
use ModStart\Support\Manager\FieldManager;
3232
use ModStart\Widget\TextLink;
33+
use Module\Cms\Core\CmsRecommendBiz;
3334
use Module\Cms\Field\CmsField;
3435
use Module\Cms\Type\CmsContentVerifyStatus;
3536
use Module\Cms\Type\CmsMode;
3637
use Module\Cms\Type\CmsModelContentStatus;
38+
use Module\Cms\Util\CmsCatUtil;
3739
use Module\Cms\Util\CmsContentUtil;
3840
use Module\Cms\Util\CmsModelUtil;
3941
use Module\Cms\Util\CmsTemplateUtil;
4042
use Module\Member\Util\MemberFieldUtil;
41-
use Module\TagManager\Model\TagManager;
43+
use Module\TagManager\Util\TagManagerUtil;
4244

4345
class ContentController extends Controller
4446
{
@@ -376,6 +378,13 @@ function (Form $form) use ($catOptions) {
376378
$recordDataValue[$field['name']] = isset($data[$field['name']]) ? $data[$field['name']] : null;
377379
}
378380
}
381+
$recommendTags = [];
382+
if ($recordValue['catId']) {
383+
$cat = CmsCatUtil::get($recordValue['catId']);
384+
if ($cat) {
385+
$recommendTags[] = $cat['title'];
386+
}
387+
}
379388
ModelUtil::transactionBegin();
380389
if (!empty($record['id'])) {
381390
ModelUtil::update($this->modelTable, $record['id'], $recordValue);
@@ -386,16 +395,26 @@ function (Form $form) use ($catOptions) {
386395
]));
387396
}
388397
if (modstart_module_enabled('TagManager')) {
389-
TagManager::updateTags('cms', $record['_tags'], $recordValue['tags']);
398+
TagManagerUtil::updateTags('cms', $record['_tags'], $recordValue['tags']);
390399
}
400+
CmsRecommendBiz::itemUpdate(
401+
$record['id'],
402+
$recordValue['modelId'],
403+
$recommendTags
404+
);
391405
} else {
392406
$recordValue['modelId'] = $this->model['id'];
393407
$recordValue = ModelUtil::insert($this->modelTable, $recordValue);
394408
$recordDataValue['id'] = $recordValue['id'];
395409
ModelUtil::insert($this->modelDataTable, $recordDataValue);
396410
if (modstart_module_enabled('TagManager')) {
397-
TagManager::putTags('cms', $recordValue['tags']);
411+
TagManagerUtil::putTags('cms', $recordValue['tags']);
398412
}
413+
CmsRecommendBiz::itemUpdate(
414+
$recordValue['id'],
415+
$recordValue['modelId'],
416+
$recommendTags
417+
);
399418
}
400419
ModelUtil::transactionCommit();
401420
return Response::redirect(CRUDUtil::jsDialogCloseAndParentGridRefresh());
@@ -417,8 +436,9 @@ public function delete($modelId)
417436
ModelUtil::delete($this->modelTable, $record['id']);
418437
ModelUtil::delete($this->modelDataTable, $record['id']);
419438
if (modstart_module_enabled('TagManager')) {
420-
TagManager::deleteTags('cms', $record['_tags']);
439+
TagManagerUtil::deleteTags('cms', $record['_tags']);
421440
}
441+
CmsRecommendBiz::itemDelete($record['id']);
422442
ModelUtil::transactionCommit();
423443
}
424444
return Response::redirect(CRUDUtil::jsGridRefresh());

module/Cms/Api/Controller/DetailController.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use ModStart\Core\Input\Response;
1010
use ModStart\Core\Util\ArrayUtil;
1111
use ModStart\Module\ModuleBaseController;
12+
use Module\Cms\Core\CmsRecommendBiz;
1213
use Module\Cms\Type\CmsContentVerifyStatus;
1314
use Module\Cms\Util\CmsCatUtil;
1415
use Module\Cms\Util\CmsContentUtil;
@@ -70,6 +71,9 @@ public function index()
7071
BizException::throws('记录未审核');
7172
}
7273
}
74+
if (MemberUser::isLogin()) {
75+
CmsRecommendBiz::itemFeedbackVisit($record['id'], MemberUser::id());
76+
}
7377
return Response::generateSuccessData($viewData);
7478
}
7579
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
3+
4+
namespace Module\Cms\Core;
5+
6+
7+
use Module\Cms\Model\CmsContent;
8+
use Module\Vendor\Provider\Recommend\AbstractRecommendBiz;
9+
10+
class CmsRecommendBiz extends AbstractRecommendBiz
11+
{
12+
const NAME = 'Cms';
13+
14+
public function name()
15+
{
16+
return self::NAME;
17+
}
18+
19+
public function title()
20+
{
21+
return 'CMS';
22+
}
23+
24+
public function providerName()
25+
{
26+
return modstart_config('Cms_RecommendProvider', '');
27+
}
28+
29+
public function syncBatch($nextId, $param = [])
30+
{
31+
$recordList = CmsContent::with(['cat'])
32+
->where('id', '>', $nextId)
33+
->orderBy('id', 'asc')
34+
->limit(100)
35+
->get()->toArray();
36+
$records = [];
37+
foreach ($recordList as $record) {
38+
$tags = [];
39+
if ($record['cat']) {
40+
$tags[] = $record['cat']['title'];
41+
}
42+
$records[] = [
43+
'biz' => self::NAME,
44+
'bizId' => $record['id'],
45+
'sceneId' => $record['modelId'],
46+
'tags' => $tags,
47+
];
48+
$nextId = $record['id'];
49+
}
50+
return [
51+
'records' => $records,
52+
'nextId' => $nextId,
53+
];
54+
}
55+
56+
57+
}

module/Cms/Core/ModuleServiceProvider.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
use ModStart\Core\Util\TreeUtil;
1111
use ModStart\Layout\Row;
1212
use ModStart\Module\ModuleClassLoader;
13-
use ModStart\Module\ModuleManager;
1413
use Module\Banner\Biz\BannerPositionBiz;
1514
use Module\Cms\Provider\CmsHomePageProvider;
1615
use Module\Cms\Provider\Theme\CmsThemeProvider;
@@ -21,6 +20,7 @@
2120
use Module\Vendor\Admin\Widget\AdminWidgetDashboard;
2221
use Module\Vendor\Admin\Widget\AdminWidgetLink;
2322
use Module\Vendor\Provider\HomePage\HomePageProvider;
23+
use Module\Vendor\Provider\Recommend\RecommendBiz;
2424
use Module\Vendor\Provider\SearchBox\QuickSearchBoxProvider;
2525
use Module\Vendor\Provider\SearchBox\SearchBoxProvider;
2626
use Module\Vendor\Provider\SiteUrl\SiteUrlBiz;
@@ -37,6 +37,9 @@ public function boot(Dispatcher $events)
3737
if (method_exists(ModuleClassLoader::class, 'addClass')) {
3838
ModuleClassLoader::addClass('MCms', __DIR__ . '/../Helpers/MCms.php');
3939
}
40+
if (class_exists(RecommendBiz::class)) {
41+
RecommendBiz::register(CmsRecommendBiz::class);
42+
}
4043
SearchBoxProvider::register(
4144
QuickSearchBoxProvider::make('cms', '内容', modstart_web_url('search'), 100)
4245
);

module/Cms/Docs/release.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
- 新增:CMS备份和恢复增加备份配置选项,支持多主题快速切换
88
- 新增:CMS备份增加内容区块模块处理逻辑
99
- 新增:内容管理增加一键复制功能
10+
- 新增:数据库模型 CmsCat 和 CmsContent
1011
- 优化:系统响应默认处理函数优化处理方式
1112
- 优化:CMS自定义字段编辑标识每次刷新问题
1213
- 优化:前端表单提交字段类型数组自动转换检测

module/Cms/Helpers/MCms.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
<?php
22

33
use Illuminate\Support\Facades\DB;
4+
use Module\Cms\Core\CmsRecommendBiz;
45
use Module\Cms\Util\CmsCatUtil;
56
use Module\Cms\Util\CmsContentUtil;
67
use Module\Cms\Util\CmsMemberPermitUtil;
8+
use Module\Vendor\Provider\Recommend\RecommendProvider;
79

810
/**
911
* @Util CMS操作
@@ -616,6 +618,28 @@ public static function randomContentByCat($catId, $limit = 10)
616618
return $records;
617619
}
618620

621+
/**
622+
* @Util 获取模型内容推荐列表(使用的是推荐服务)
623+
* @param $modelId int 模型ID
624+
* @param $limit int 数量
625+
* @return array
626+
* @returnExample
627+
* [
628+
* [Placeholder.CmsContent|indent:2,trim],
629+
* ...
630+
* ]
631+
*/
632+
public static function recommendContentByModel($modelId, $limit = 10)
633+
{
634+
$contentIds = RecommendProvider::randomItemBizIds(
635+
CmsRecommendBiz::NAME,
636+
\Module\Member\Auth\MemberUser::id(),
637+
$limit,
638+
[$modelId]
639+
);
640+
return CmsContentUtil::allIds($contentIds);
641+
}
642+
619643
/**
620644
* @Util 获取栏目置顶内容列表
621645
* @param $catId int 栏目ID

module/Cms/Model/CmsCat.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
4+
namespace Module\Cms\Model;
5+
6+
7+
use Illuminate\Database\Eloquent\Model;
8+
9+
class CmsCat extends Model
10+
{
11+
protected $table = 'cms_cat';
12+
}

module/Cms/Model/CmsContent.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
4+
namespace Module\Cms\Model;
5+
6+
7+
use Illuminate\Database\Eloquent\Model;
8+
9+
class CmsContent extends Model
10+
{
11+
protected $table = 'cms_content';
12+
13+
public function cat()
14+
{
15+
return $this->hasOne(CmsCat::class, 'id', 'catId');
16+
}
17+
}

0 commit comments

Comments
 (0)