You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2.8 KiB

业务逻辑层

在这里主要实现项目业务逻辑,原则上不能在【Wood.Service】中直接写需要的业务逻辑,这里是系统自带的一些业务的实现,可以新建一个Service,对其进行引用。这里有两种Service父类,一个Manager父类,Service实现里边的方法会被注册为接口,Manager实现则会被自动依赖注入。

ApiCRUDService

这个父类提供了简单增删改查实现,继承了之后,自动提供简单增删改查接口,如有需要可以在子类中重写,实现自己的功能。

  • T:实体
  • TDTO:实体Detail查询的dto
  • TAddParam:新增参数
  • TUpdateParam:更新参数
  • 提供方法:
    • GetDetail 获取单个明细
    • Add 新增
    • Update 修改
    • Delete 删除 接受数组参数,支持批量删除
/// <summary>
/// 职位管理
/// </summary>
public class PositionService : ApiCRUDService<PositionEntity, PositionEntity, PositionAddParam, PositionUpdateParam>
{
	public PositionService(SqlSugarRepository<PositionEntity> repository) : base(repository)
	{
	}

	/// <summary>
	/// 分页查询职位
	/// </summary>
	/// <param name="param"></param>
	/// <returns></returns>
	public async Task<TDataPaged<PositionEntity>> Paged(PositionPagedParam param)
	{
		return await _repository.AsQueryable()
			.WhereIF(!string.IsNullOrEmpty(param.Name), it => it.PositionName.Contains(param.Name!) || it.FormCode.Contains(param.Name!))
			.ToPagedListAsync(param);
	}
}

ApiService

这个父类标记目标类为需要注册为api,这个父类里边没有任何实现,当然你也可以自定义实现。

/// <summary>
/// 用户管理
/// </summary>
public class UserService : ApiService
{
	......
}

ApiManager

Manager用于封装一些在service中反复需要使用的功能。对实体进行Manager封装后,只用注入Manager即可,不需要再注入Repository。

  • T:entity实体
  • 封装Manager后必须要标注,注入类型,当然所有标注这些注入类型的类都会被自动扫描注入。
    • IScoped 注册为Scoped
    • ITransient 注册为Transient
    • ISingleton 注册为Singleton
    • ApiManager中的方法
      • AsQueryable() 获取 ISugarQueryable
      • AsRepository() 获取 SqlSugarRepository
// 用户管理 ,瞬时生命周期注入
public class UserManager : ApiManager<UserEntity>, ITransient
{
     ......
}

一些接口说明

继承这些接口会实现相应的功能

  • IScoped 注册为Scoped
  • ITransient 注册为Transient
  • ISingleton 注册为Singleton
  • IDiff 标记,记录差异日志,用于实体
  • IntegrationEvent 事件总线,事件类型
  • IntegrationEventHandler 事件处理器,T:(IntegrationEvent实现类)
  • IEventLog 标记,记录事件日志,用于开启记录目标事件的事件日志