项目

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
在本文档中