170 похожих чатов

Подскажите, есть у меня Postgres таблица например заказов, каждый заказ

со своей суммой. Нужно посчитать итоговую сумму за период, т.е. простейший SELECT SUM(...) .. Но вот такой вопрос, а где этот запрос у меня должен быть в приложении написан? В репозитории? В сервисе? Просто вроде же репозиторий занимается сущностями, а тут ему просто запрос на агрегацию 1 числа дают.

18 ответов

26 просмотров

метод в сервисе заказов

Пишите в сервисе )

Шо за хфигню вы спрашиваете?)))) Вы аналитический запрос хотите не в админке, а в приложении зафигачить?)

зря быкуете)) да, потому что есть акция которая действует для магазина если он продал за период на сумму больше Х

зучит так, будто бы админка это отдельный слой

бестпрактис вынести админку в отдельный сервер, отдельный сайт и бд ему предоставить чисто на чтение и желательно на слейве какомто))

и там всё сделать без слоёв? и репозиторий, и сервисы - всё в одном файле?

Хто быкует?)) Да бросьте вы)) Делайте что хотите))) Рамок нет)))

можно просто не мешать api роуты юзера и админа, убирать crud

Та можно сделать что угодно, было бы желание 😅

хех тогда проще сделать отдельный сервис для накопления заказов в период акции: + к юзабилити и меньше запросов к бд

вопрос же в 1 запросе который считает сумму 1 поля, а вы предлагаете целый сервис сделать, чтобы в коде который накапливает заказы еще больше ошибок сделать)

ну как я понял у вас есть инстанс магазинов (маркетплейс?), тогда подойдет поле в бд, которое ++ сумму заказов в период акции. при создании заказа можно проверять доступность акции и ++ к конкретному магазину. а сервис, чтобы слать уведомления "Few orders left to get a reward" + можно сами заказы еще отдельно в жсончик

блин, вы правы что акцию в таком случае и надо реализовать, но давайте вернемся к вопросу, что если это просто НЕ CRUD запрос? аналитика какая то допустим

это буква R

че так и писать получается: OrdersRepository.countTotalSumForRange(from, to) ?

(from, to, shop_id)? но я бы честно заюзал бы для акций отдельное поле в бд у каждого маркета, больше полета фантазии

так там конечно лучше всего наверное отдельной таблицей promotions/discounts

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта