Информация об изменениях

Сообщение Re[36]: DDD для небольших проектов. от 25.02.2020 8:03

Изменено 25.02.2020 8:04 takTak

Re[36]: DDD для небольших проектов.
T>>велик соблазн выделить оперaцию чтения и , соответственно, калькуляции в отдельную операцию типа чего-то такого: http://www.codinginstinct.com/2011/04/queries-aggregates-ddd.html, но всё-таки ценообразование — , поэтому надо ещё посмотреть, куда это относится

T>>вот само управление скидками-надценками интереснее. как это сейчас реализовано? как эта информация сохраняется? т.е. это было бы реальной задачей агрегата

S>Сейчас? Сейчас у ентити "Реселлер" есть атрибут "Markup". Если он Null, то берётся дефолтный маркап, если не null — то берётся он.
S>Плюс есть ентити "ResellerProductGroupMarkup", которая сопоставляет реселлеру И группе наценку.
S>Так что для каждого товара выполняется следующий алгоритм:
S>1. Если есть запись в ResellerProductGroupMarkup где ResellerID = @CurrentReseller and @ProductGroupID = @ProductGroup, то берём из markup из неё.
S>2. Иначе, если Reseller.Markup is not null там, где Reseller.Id = @CurrentReseller, то берём его
S>3. Иначе берём DefaultMarkup.

S>Как-то так.


это какие-то заранее агрегированные, т.е. заранее подсчитанные величины или они сцитаются на лету для каждого продукта в списке?

и что будет, когда , например, понадобится менять скидку/надценку в зависимости от суммы сделанных покупок или статуса покупателя?
Re[36]: DDD для небольших проектов.
T>>велик соблазн выделить оперaцию чтения и , соответственно, калькуляции в отдельную операцию типа чего-то такого: http://www.codinginstinct.com/2011/04/queries-aggregates-ddd.html, но всё-таки ценообразование — , поэтому надо ещё посмотреть, куда это относится

T>>вот само управление скидками-надценками интереснее. как это сейчас реализовано? как эта информация сохраняется? т.е. это было бы реальной задачей агрегата

S>Сейчас? Сейчас у ентити "Реселлер" есть атрибут "Markup". Если он Null, то берётся дефолтный маркап, если не null — то берётся он.
S>Плюс есть ентити "ResellerProductGroupMarkup", которая сопоставляет реселлеру И группе наценку.
S>Так что для каждого товара выполняется следующий алгоритм:
S>1. Если есть запись в ResellerProductGroupMarkup где ResellerID = @CurrentReseller and @ProductGroupID = @ProductGroup, то берём из markup из неё.
S>2. Иначе, если Reseller.Markup is not null там, где Reseller.Id = @CurrentReseller, то берём его
S>3. Иначе берём DefaultMarkup.

S>Как-то так.


это какие-то заранее агрегированные, т.е. заранее подсчитанные величины или они считаются на лету для каждого продукта в списке?

и что будет, когда , например, понадобится менять скидку/надценку в зависимости от суммы сделанных покупок или статуса покупателя?