#mysql #laravel
Вопрос:
Задание Cron или один запрос mysql для расчета суммы выставления счета
предположим, у меня есть стол
Школа
ID | Имя | Адрес электронной почты | адрес | контактный номер | идентификатор подписки (может быть аннулирован) |
---|---|---|---|---|---|
1 | LA | la@gmail.com | НЬЮ-ЙОРК | ххххххх | 1 |
план
ID | Имя | Единица Измерения Интервала | Количество интервалов | за_студент_пер_месяц |
---|---|---|---|---|
1 | Базовые модели | Месяц | 1 | 25 |
подписка
ID | plan_id | идентификатор школы | предыдущая_дуе_счет | предыдущая балансовая_счет | trial_end_at | конец_ат |
---|---|---|---|---|---|---|
1 | 1 | 1 | 1000 | 0 | нулевой | 2022/12/12 |
subscription_транзакция
ID | идентификатор подписки | plan_id | идентификатор школы | сумма | payment_id | тип платежа |
---|---|---|---|---|---|---|
1 | 1 | 1 | 1 | 2000 | нулевой | наличные в кассе |
пользователь
ID | Имя | Адрес электронной почты | Пароль | адрес | контактный номер | role_id | идентификатор школы | created_at |
---|---|---|---|---|---|---|---|---|
1 | Джон | johndoe@gmail.com | a2324324adsad1212xx | НЬЮ-ЙОРК | ххххххх | 1 (предположим, роль-студент) | 1 | 2021/03/03 |
Вопрос в том, «как создать сумму счета, зависит от использования плана отдельными школьниками».
Напр.:
- Июль 2021 (Месяц Пробной Фазы)
Общее Количество Зачисленных Студентов: 100
Месяц: 5 (Июль 2021 — Декабрь 2021 @Дата Окончания подписки)
Общая Стоимость: 7500 (Всего 100 Зачисленных Студентов * 15 На студента * 5 Месяцев) - Август 2021 года
Общее Количество Зачисленных Студентов: 50 Месяцев: 5 (Август 2021 — Декабрь 2021 @Дата Окончания подписки)
Общая Стоимость: 3000 (Всего 50 Зачисленных Студентов * 15 На студента * 4 Месяца) - Сентябрь 2021 года
Общее Количество Зачисленных Студентов: 50 Месяцев: 5 (Июль 2021 — Декабрь 2021 @Дата Окончания подписки)
Общая Стоимость: 2250 (Всего 50 Зачисленных Студентов * 15 На студента * 3 Месяца)
Total Bill Amount Per Student = 12750 (7500 3000 2250)
Вариант 1: Добавление дополнительных столбцов «bill_amount» и «received_amount» в таблице подписки. Затем после этого используйте задание cron для обновления атрибута таблицы подписки — bill_amount и received_amount.
Вариант 2: в api , напрямую вызывая один запрос mysql с помощью sum (), чтобы получить bill_amount и received_amount.