CMS Kit:评分系统
CMS Kit 提供评分系统,可为博客文章、评论等各类资源添加评分功能。以下为评分组件在示例页面中的展示效果:
启用评分功能
CMS Kit功能模块默认处于禁用状态。在使用前,您需要先启用所需功能。开发阶段可通过全局功能系统控制CMS Kit功能的启用/禁用,也可在运行时使用ABP的功能系统禁用特定功能。
请参阅CMS Kit模块文档的"如何安装"章节了解开发阶段启用/禁用功能的详细说明。
配置选项
评分系统提供按实体类型分组评分的机制。例如若需为商品启用评分功能,需先定义名为Product的实体类型,随后即可在已定义类型下添加评分。
可在领域层的模块ConfigureServices方法中配置CmsKitRatingOptions:
Configure<CmsKitRatingOptions>(options =>
{
options.EntityTypes.Add(new RatingEntityTypeDefinition("Product"));
});
若使用博客功能,ABP会自动为博客功能预定义实体类型。您可通过上述配置方法轻松覆写或移除预定义类型。
CmsKitRatingOptions属性说明:
EntityTypes:评分系统中已定义的实体类型列表(RatingEntityTypeDefinition)
RatingEntityTypeDefinition属性说明:
EntityType:实体类型名称
评分组件
评分系统提供可视化组件,允许用户在公开网站中对资源进行评分。可通过以下方式在页面中嵌入组件:
@await Component.InvokeAsync(typeof(RatingViewComponent), new
{
entityType = "Product",
entityId = "entityId",
isReadOnly = false
})
其中entityType对应前文所述的实体类型,entityId在此示例中应为商品唯一标识符。若存在Product实体,可直接使用其Id属性。
内部实现
领域层
聚合根
本模块遵循实体最佳实践与规范。
评分记录
Rating(聚合根):代表系统中的单次评分记录
仓储层
本模块遵循仓储最佳实践与规范。
为此功能定制的仓储接口:
IRatingRepository
领域服务
本模块遵循领域服务最佳实践与规范。
评分管理器
RatingManager用于执行Rating聚合根的相关操作
应用层
应用服务
RatingPublicAppService(实现IRatingPublicAppService):实现评分系统的业务用例
数据库支持
通用配置
数据表/集合前缀与架构
默认所有数据表/集合均使用Cms前缀。如需修改表前缀或设置架构名(取决于数据库提供商支持),可设置CmsKitDbProperties类的静态属性。
连接字符串
本模块使用CmsKit作为连接字符串名称。若未定义该名称的连接字符串,将回退至Default连接字符串。
详细说明请参阅连接字符串文档。
Entity Framework Core
数据表
- CmsRatings
MongoDB
集合
- CmsRatings
抠丁客



