【发布时间】:2020-05-16 13:31:08
【问题描述】:
我在 NodeJs 中使用 CQRS、DDD 和 Clean 架构,在我的查询方面,我需要使用一些业务规则(计算,这里是 getNetRealEstateAssets())从我的 API 返回一些信息。
我有一个 GetTenantsQuery 和一个 GetTenantsHandler 类:
export default class GetPerformancesHandler {
async execute(query) {
const tenants = tenantRepository.find();
return tenants; // array of TenantQueryModel
}
}
class TenantQueryModel {
constructor(){
this.rents = [];
this.grossAssets = xxx;
this.liabilities = xxx;
}
getNetRealEstateAssets = () => {
if (!this.grossAssets || !this.liabilities) return null;
const round = (amount, roundLevel) => (amount / roundLevel).toFixed() * roundLevel;
let netRealEstateAssets = this.grossAssets - this.liabilities;
netRealEstateAssets =
netRealEstateAssets > 10000 ? round(netRealEstateAssets, 1000) : round(netRealEstateAssets, 100);
return netRealEstateAssets;
};
}
查询不使用域层,那么我可以把这个业务规则放在哪里? (也许稍后在命令的域层中相同)
谢谢。
【问题讨论】:
标签: architecture domain-driven-design cqrs