ShenNiusModularity项目源码学习(13:ShenNius.Domain项目分析)

  ShenNius.Domain项目主要定义实体类、数据库表类、数据操作接口、枚举等数据,几乎没有业务操作类或者函数,本文记录ShenNius.Domain项目中主要文件的用途。
ShenNiusModularity项目源码学习(13:ShenNius.Domain项目分析)_第1张图片
  Entity文件夹内保存的是与数据库表对应的实体类,同时定义了通用的接口及基础类供实体类表继承。

序号 文件名 说明 路径
1 AdvList 对应表Cms_AdvList,记录广告数据 Entity\Cms
2 Article 对应表Cms_Article,记录文章数据 Entity\Cms
3 Column 对应表Cms_Column,记录栏目数据 Entity\Cms
4 Keyword 对应表Cms_Keyword,记录关键词 Entity\Cms
5 Message 对应表Cms_Message,记录留言数据 Entity\Cms
6 BaseEntity 定义实体基类,定义实体类通用属性,,避免重复定义,继承了第7-第13的多个接口 Entity\Common
7 IAggregateRoot 空接口定义,暂时没有看到用途 Entity\Common
8 IEntity 实体接口定义,仅包含ID属性 Entity\Common
9 IGlobalTenant 多租户接口定义,仅包含TenantId属性,所有支持多租户的实体类都需直接或间接继承该接口 Entity\Common
10 IHasCreateTime 创建时间接口定义,仅包含CreateTime属性 Entity\Common
11 IHasDeleteTime 删除时间接口定义,仅包含DeleteTime属性 Entity\Common
12 IHasModifyTime 编辑事件接口定义,仅包含ModifyTime属性 Entity\Common
13 ISoftDelete 置删除标记接口定义,包含IsDeleted属性及SoftDelete函数 Entity\Common
14 AppUser 对应表shop_appuser ,记录商城模块的用户信息 Entity\Shop
15 AppUserAddress 对应表shop_appuser_address ,记录商城模块的用户的地址信息 Entity\Shop
16 Cart 对应表shop_cart,应该是记录购物车信息,但数据库中没有该表 Entity\Shop
17 Category 对应表shop_category,记录商品分类信息 Entity\Shop
18 Goods 对应表shop_Goods ,记录商品信息 Entity\Shop
19 GoodsSpec 对应表shop_Goods_Spec,记录每种商品规格的销售及库存数据 Entity\Shop
20 GoodsSpecRel 对应表 shop_goods_spec_rel,记录商品和每种规格销售数据之间的关联关系 Entity\Shop
21 Order 对应表shop_order,记录商城模块的订单数据 Entity\Shop
22 OrderAddress 对应表shop_order_address,记录订单管理的具体收货地址信息 Entity\Shop
23 OrderGoods 对应表shop_order_goods,记录订单关联的商品清单 Entity\Shop
24 Spec 对应表shop_Spec ,记录商品规格名称 Entity\Shop
25 SpecValue 对应表shop_Spec_Value,记录商品规格名称对应的值 Entity\Shop
26 Config 对应表Sys_Config,维护菜单管理功能的添加/编辑菜单页面的按钮列表数据 Entity\Sys
27 Log 对应表Sys_Log ,记录用户操作日志 Entity\Sys
28 Menu 对应表Sys_Menu,维护自媒体内容管理系统的多级菜单 Entity\Sys
29 R_Role_Menu 对应表Sys_R_Role_Menu,记录角色可访问的菜单权限数据 Entity\Sys
30 R_User_Role 对应表Sys_R_User_Role,记录用户具备的角色清单 Entity\Sys
31 Recycle 对应表Sys_Recycle,记录自媒体内容管理系统的用户删除操作的内容、还原sql语句及彻底删除的sql语句 Entity\Sys
32 Role 对应表Sys_Role,记录自媒体内容管理系统的角色清单 Entity\Sys
33 Tenant 对应表Sys_Tenant,记录自媒体内容管理系统的多租户清单 Entity\Sys
34 User 对应表Sys_User,维护自媒体内容管理系统的用户清单 Entity\Sys

  Dtos文件夹内分为好几个子文件夹,其中Common文件夹定义通用实体父类或查询父类(下表中列出);input文件夹中定义的实体类主要用在ShenNius.Admin.API项目的控制器类函数的输入参数,通常作为客户端的输入传递给控制器类函数,其类定义与Entity文件夹内数据库表中的类定义强关联,从类名即可看出对应关系,下表中不再一一列出;Output文件夹中定义的实体类,要么保存数据库表中查询的组合数据、要么作为控制器类函数返回值返回给客户端,异或通过AutoMapper与数据库实体类相互转换,通过类名也能看出用途,下表中也不再列出。

序号 文件名 说明 路径
1 BaseTenant 定义多租户实体基类,input文件夹中的实体类大多继承了该类,以支持多租户操作 Dtos\Common
2 DeletesTenantInput 定义控制器类删除函数的输入参数类,包括待删除数据的id集合 Dtos\Common
3 DetailQuery 定义详情查询的基类,包含数据id,租户id等属性,用在控制器类的查询函数或者编辑函数内 Dtos\Common
4 ListQuery 定义列表查询基类,文件中包含多个查询基类定义,用在控制器类的查询函数或者数据导出函数内 Dtos\Common

  Repository文件夹内按业务版块定义数据操作接口,这些接口的实现类在ShenNius.Infrastructure项目内。

序号 文件名 说明 路径
1 IGoodsRepository 定义商品相关的数据操作接口 Repository\Shop
2 IOrderRepository 定义订单相关的数据操作接口 Repository\Shop
3 IMenuRepository 定义与系统菜单相关的数据操作接口 Repository\Sys
4 IRecycleRepository 定义与回收站相关的数据操作接口 Repository\Sys

  ValueObjects的Enums文件夹按业务版块定义业务板块相关功能所需的枚举值,主要用在ShenNius.Admin.Mvc、ShenNius.Admin.API项目的控制器类中。

序号 文件名 说明 路径
1 AdvEnum 定义广告位类型 ValueObjects\Enums\Cms
2 DeductStockTypeEnum 定义库存计算方式 ValueObjects\Enums\Shop
3 GenderEnum 定义人员性别 ,该枚举在项目中没看到使用之处 ValueObjects\Enums\Shop
4 GoodsStatusEnum 定义商品状态(上架/下架) ValueObjects\Enums\Shop
5 OrderStatusEnum 定义订单状态 ValueObjects\Enums\Shop
6 PayStatusEnum 定义订单的支付状态 ValueObjects\Enums\Shop
7 ReceiptStatusEnum 定义订单的发货/收获状态 ValueObjects\Enums\Shop
8 SpecTypeEnum 定义商品的规格形式(单规格/多规格) ValueObjects\Enums\Shop
9 StoreSetting 看着像定义商品页面的设置类型,该枚举在项目中没看到使用之处 ValueObjects\Enums\Shop
10 BtnEnum 定义按钮类型,主要用于ShenNius.Admin.API项目内删除或授权相关的控制器函数的访问控制 Enums\Sys
11 ConfigEnum 字典表配置类型,定义Sys_Config表中的字典配置所属类型 ValueObjects\Enums\Sys
12 LogEnum 定义日志记录时的操作类型 ValueObjects\Enums\Sys
13 RoleEnum 定义角色类型,整个项目内角色只有3个,普通用户,管理员、超级管理员 ValueObjects\Enums\Sys
14 ConfigType 该枚举在项目中没看到使用之处,暂不清楚用途 ValueObjects
15 SysSetting 记录系统的名称、版权、图标等信息,支持将信息序列化到wwwroot/system.ini文件,及从其中反序列化 ValueObjects

  除了上述文件夹内的文件,项目下还定义了IShenNiusContext接口,其内包括当前用户信息、登录信息、数据库连接对象等,该接口的实现类位于ShenNius.Infrastructure项目内。

参考文献:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity

你可能感兴趣的:(网页编程,ShenNius)