SellerTool.PhoneApp
4 месяца назад
5 месяцев назад
4 месяца назад
4 месяца назад
5 месяцев назад
README.md
SellerTool Mobile App - Интеграция с API
Обзор
Мобильное приложение SellerTool.PhoneApp интегрировано с серверным API SellerTool для получения и отображения данных дашборда в реальном времени.
Реализованные функции
1. Авторизация
- LoginPage - страница входа с полями email и пароль
- JWT токен сохраняется в
для автоматического входаPreferences - При запуске приложения проверяется валидность токена
2. API Endpoints
Приложение использует следующие эндпоинты из :DashboardController
| Endpoint | Метод | Описание |
|---|---|---|
| POST | Авторизация пользователя |
| GET | Проверка валидности токена |
| GET | Получение названия организации |
| GET | Получение баланса |
| GET | Получение лимитов товаров (Current/Total) |
| GET | Количество товаров в карантине |
| GET | Количество товаров без скидки |
3. Отображаемые данные на главной странице
Верхние карточки:
- Товары - текущее количество и лимит (Current/Total)
- Карантин - количество товаров в карантине
- Без скидки - количество товаров без скидки
- В корзине - (заглушка, требуется эндпоинт)
Дополнительные секции (требуют реализации эндпоинтов):
- Взаимодействия: отзывы, вопросы, заявки на скидки
- Сообщения: непрочитанные, новые за сегодня
- Отправления FBS: ожидает сборки, сортировано, готово к выдаче, доставлено
- Возвраты FBS: отменено, отменено клиентом, бракованные
Баланс:
- Отображается в нижней части экрана
Структура проекта
SellerTool.PhoneApp/
├── DTOs/
│ └── ApiDTOs.cs # DTO для запросов/ответов API
├── Models/
│ └── DashboardData.cs # Модели данных дашборда
├── Services/
│ ├── IApiService.cs # Интерфейс API сервиса
│ └── ApiService.cs # Реализация API сервиса
├── ViewModels/
│ └── MainViewModel.cs # ViewModel главной страницы
├── Views/
│ ├── LoginPage.xaml # Страница входа
│ └── LoginPage.xaml.cs
├── MainPage.xaml # Главная страница
├── MainPage.xaml.cs
├── AppShell.xaml # Навигация
├── App.xaml.cs # Точка входа с проверкой аутентификации
└── MauiProgram.cs # Dependency Injection
Конфигурация
Базовый URL API
В файле :ApiService.cs
Использование
1. Запуск приложения
При запуске приложение автоматически проверяет наличие сохраненного JWT токена:
- Если токен валиден → переход на MainPage
- Если токена нет или он невалиден → переход на LoginPage
2. Авторизация
- Введите email и пароль
- Нажмите "Войти"
- При успешной авторизации токен сохраняется и происходит переход на главную страницу
3. Главная страница
- Данные загружаются автоматически при открытии страницы
- Используйте pull-to-refresh для обновления данных
Dependency Injection
В настроены следующие зависимости:MauiProgram.cs
Требуется реализовать
Для полной функциональности требуются дополнительные эндпоинты на сервере:
-
Взаимодействия:
- количество отзывов/api/dashboard/reviews- количество вопросов/api/dashboard/questions- заявки на скидки/api/dashboard/discountrequests
-
Сообщения:
- непрочитанные сообщения/api/dashboard/unreadmessages- новые сообщения за сегодня/api/dashboard/newmessagestoday
-
FBS Отправления:
- /api/dashboard/fbs/awaitingassembly
- /api/dashboard/fbs/sorted
- /api/dashboard/fbs/readyforpickup
- /api/dashboard/fbs/delivered
-
FBS Возвраты:
- /api/dashboard/fbs/cancelled
- /api/dashboard/fbs/cancelledbyclient
- /api/dashboard/fbs/defective
-
Корзина:
- товары в корзине/api/dashboard/inbasket
Безопасность
- JWT токен сохраняется в
(безопасное хранилище MAUI)Preferences - Токен автоматически добавляется к каждому запросу через HttpClient.DefaultRequestHeaders.Authorization
- При ошибке авторизации пользователь перенаправляется на страницу входа
Обработка ошибок
- Все методы API оборачиваются в try-catch блоки
- Ошибки логируются в консоль
- При ошибках возвращаются значения по умолчанию
- Пользователю показываются понятные сообщения об ошибках
Следующие шаги
- ✅ Интегрировать основные эндпоинты (balance, limits, quarantine, withoutdiscount)
- ⏳ Добавить эндпоинты для остальных секций (взаимодействия, сообщения, FBS)
- ⏳ Добавить страницу профиля
- ⏳ Добавить страницу настроек
- ⏳ Реализовать push-уведомления
- ⏳ Добавить графики и аналитику