# 项目结构
### WoodAdmin 解决方案
- 01 Framework 基础设施层
- Cache 数据缓存接口
- Wood.Cache.Interface 缓存抽象接口
- Wood.MemoryCache 内存缓存
- Wood.RedisCache Redis缓存
- Wood.EventBus 事件总线
- Wood.Util 工具类
- 02 DataAccess数据库核心层
- Wood.Data.Repository 数据库
- 03 Entity实体层
- Wood.Entity 实体
- 04 Business 业务逻辑层
- Wood.AutoJob 定时任务
- Wood.Service 核心服务
- Wood.Test.Service 示例
- 05 WebHost
- Wood.Admin.WebApi WebApi
# 快速开始
1. 在【03 Entity实体层】添加需要映射的实体
```csharp
///
/// 测试信息
///
[SugarTable("SysTest", "测试信息")]
public class TestEntity : EntityBaseExtra
{
///
/// 名称
///
[SugarColumn(ColumnDescription = "名称",Length =64)]
[Required(ErrorMessage = "必须填写名称!")]
public string Name { get; set; } = "";
///
/// 编码
///
[SugarColumn(ColumnDescription = "编码", Length = 32)]
[Required]
[UniqueValue(ErrorMessage ="编码不能重复!")]
public string FormCode { get; set; } = "";
///
/// 排序
///
[SugarColumn(ColumnDescription = "排序")]
public int Sort { get; set; } = 0;
}
```
2. 在【04 Business 业务逻辑层】新建项目(名称以Service为结尾),添加对【Wood.Service】引用。
3. 在【04 Business 业务逻辑层】新建Service,继承【ApiService】。
```csharp
///
/// 测试服务
///
public class TestService : ApiService
{
///
/// 分页获取用户数据
///
///
///
public TDataPaged Paged(Pagination param)
{
return new TDataPaged();
}
///
/// 是否存在
///
///
public bool GetExist()
{
return false;
}
///
/// 获取树形结构
///
/// 树形结构
public List TreeList()
{
return new List();
}
///
/// 获取明细
///
///
public TestEntity GetDetail(BaseIdParam param)
{
return new TestEntity();
}
}
```
4. 在WebApi项目引用新建项目
5. 运行即可看到api列表,Get开头自动注册get请求,否则为post请求,特殊需要可以进行[HttpGet][HttpPost]标记。
### 项目约定:
- 实体 放在【Wood.Entity】
- Service类放在以Service为后缀的项目中
- AutoJob放在【Wood.AutoJob】
- 工具放在【Wood.Util】
- 自定义事件放在【Wood.EventBus】