Это система для создания фруктового магазина на основе SpringBoot, JSP и Mybatis.
Назначение |
Кодирование |
Сервер |
Java-среда |
Инструмент развёртывания |
Браузер |
Рисунок
Сегодня, 3 июня 2022 года, в день праздника Дуаньу, я получил задание от одноклассника. Ему нужно было сделать проект курса, используя SpringBoot для разработки системы фруктовых магазинов. Я поискал в интернете и обнаружил, что в прошлом году я уже создал простой фруктовый магазин с помощью SpringBoot. Но одноклассник сказал, что это слишком просто, и его проект требует более пяти таблиц для фруктового магазина. Поэтому во время праздника Дуаньу я разработал систему фруктовых магазинов SpringBoot+jsp.
Эта система предназначена для предоставления удобного и быстрого онлайн-магазина фруктов. В эпоху информатизации недостатки физических фруктовых магазинов становятся очевидными. Ассортимент фруктов ограничен, трудно предсказать спрос на фрукты, чтобы определить объём закупок, и невозможно провести хороший статистический анализ ежемесячных продаж. Таким образом, эта система предоставляет пользователям удобный интерфейс для выбора товаров, позволяя им просматривать различные товары, изучать фотографии реальных товаров и отзывы покупателей перед покупкой. После совершения покупки пользователи могут в любое время проверить статус своего заказа, а также просмотреть свои покупки через несколько месяцев. Для продавцов система позволяет анализировать предпочтения клиентов и прогнозировать объём закупок, а также легко общаться с клиентами через веб-сайт. С помощью этой системы можно создать платформу для удовлетворения основных потребностей клиентов и продавцов.
Назначение | Инструмент |
---|---|
Средство кодирования | IDEA 2021.1.1 x64 |
Сервер | Apache Tomcat 8.5.71 (порт: 8080) |
Среда Java | JDK-1.8 |
Развёртывание инструмента | Apache Maven 3.5.3 |
Браузер | Google Chrome |
Структура проекта
Анализ требований к системе
Эта система может предоставить реальный процесс онлайн-покупок, включая просмотр товаров, добавление товаров в корзину, сбор товаров, оплату и просмотр статуса заказа после покупки. Администраторы могут управлять заказами клиентов в бэкэнде, включая отправку товаров, изменение информации о заказе и т. д. Они также могут управлять товарами в магазине, такими как размещение товаров, снятие товаров с продажи и обновление информации о товарах. Кроме того, они могут искать информацию о клиентах. Эта система может удовлетворить основные потребности платформы для торговли товарами.
Поток данных
Название потока данных: поток данных информации о товаре. Описание потока данных: информация о товаре используется в системе. Источник потока данных: создание и изменение товарных транзакций администратором. Средний поток данных: несколько десятков транзакций в день. Пиковый поток данных: более сотни транзакций в день.
Хранение данных
База данных хранит информацию о товаре в таблице информации о товаре. Таблица содержит информацию о товаре, используемую пользователями и администраторами для просмотра и других операций. Номер товара является уникальным идентификатором и увеличивается на единицу каждый раз. Данные поступают из потока данных создания и изменения товарных транзакций, инициированных администраторами. Выходные данные используются для поиска информации о товаре пользователями и администраторами. Структура данных включает информацию о товаре и информацию о типе товара. Объём данных составляет около 8 000 байт в день. Частота доступа и обновления — один раз в час. 12–18 раз, запрос — более 80 раз.
Способы доступа: последовательная вставка, онлайн-обработка, поиск и обновление, последовательный и произвольный поиск.
Структура данных «Информация о заказе»
Элементы структуры данных «Информация о заказе»:
Таблица 2-11 «Номер заказа»
Название | Номер заказа |
Псевдоним | Номер заказа |
Описание | Уникальный цифровой номер определённого заказа |
Определение | Целое число |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-12 «Номер товара»
Название | Номер товара |
Псевдоним | Товарный номер |
Описание | Уникальный цифровой номер определённого товара |
Определение | Целое число |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-13 «Номер пользователя»
Название | Номер пользователя |
Псевдоним | Пользовательский номер |
Описание | Уникальный цифровой номер определённого пользователя |
Определение | Целое число |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-14 «Номер заказа»
Название | Номер заказа |
Псевдоним | Номер заказа |
Описание | Номер, который присваивается заказу покупателем |
Определение | Символьное значение |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-15 «Дата создания заказа»
Название | Дата создания заказа |
Псевдоним | Дата создания заказа |
Описание | Дата, когда был создан заказ |
Определение | Символьное значение |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-16 «Общая сумма»
Название | Общая сумма |
Псевдоним | Общая сумма |
Описание | Сумма, которую нужно заплатить за заказ |
Определение | Символьное значение |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-17 «Статус заказа»
Название | Статус заказа |
Псевдоним | Статус заказа |
Описание | Указывает, был ли заказ отменён |
Определение | Символьное значение |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Таблица 2-18 «Общее количество заказов»
Название | Общее количество заказов |
Псевдоним | Общее количество заказов |
Описание | Количество заказов, созданных определённым пользователем |
Определение | Символьное значение |
Расположение | Таблица информации о товаре, таблица подробностей заказа |
Поток данных Название потока данных: поток данных «Информация о заказе». Описание: путь структуры «Информация о заказе» в системе. Источник потока данных: создание заказа пользователем. Средний объём потока: 200 заказов в день. Пиковый объём потока: до 500 заказов в день.
Хранение данных
Обработка данных
Структура данных «Информация о пользователе»
Элементы структуры данных «Информация о пользователе»:
Таблица 2-19 «Номер пользователя»
Название | Номер пользователя |
Псевдоним | Порядковый номер |
Описание | Уникальный номер определённого пользователя |
Определение | Целое число |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-20 «Имя пользователя»
Название | Имя пользователя |
Псевдоним | Имя пользователя |
Описание | Имя пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-21 «Пароль»
Название | Пароль |
Псевдоним | Пароль |
Описание | Пароль пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-22 «Номер телефона»
Название | Номер телефона |
Псевдоним | Номер телефона |
Описание | Телефонный номер пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-23 «Настоящее имя»
Название | Настоящее имя |
Псевдоним | Настоящее имя |
Описание | Настоящее имя пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-24 «Пол»
Название | Пол |
Псевдоним | Пол |
Описание | Пол пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-25 «Адрес»
Название | Адрес |
Псевдоним | Адрес |
Описание | Адрес пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Таблица 2-26 «Электронная почта»
Название | Электронная почта |
Псевдоним | Электронная почта |
Описание | Электронная почта пользователя |
Определение | Строка символов |
Местоположение | Таблица информации о товаре, таблица подробностей заказа, таблица информации о пользователе |
Пользовательская электронная почта.
Определение
Символьный тип.
Расположение
Таблица с информацией о товарах, таблица с деталями заказов, таблица с пользовательской информацией.
Поток данных
Хранение данных
Обработка данных
Таблица: item_category
№ | Наименование | Тип данных | Длина | Десятичные знаки | Разрешает NULL | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | — | — |
2 | name | varchar | 255 | 0 | Да | Нет | — | — |
3 | pid | int | 10 | 0 | Да | Нет | — | — |
4 | isDelete | int | 10 | 0 | Да | Нет | — | — |
Таблица: item_order
№ | Наименование | Тип данных | Длина | Десятичные знаки | Разрешает NULL | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | — | — |
2 | item_id | int | 10 | 0 | Да | Нет | — | — |
3 | user_id | int | 10 | 0 | Да | Нет | — | — |
4 | code | varchar | 255 | 0 | Да | Нет | — | — |
5 | addTime | datetime | 19 | 0 | Да | Нет | — | — |
6 | total | varchar | 255 | 0 | Да | Нет | — | — |
7 | isDelete | int | 10 | 0 | Да | Нет | — | — |
8 | status | int | 10 | 0 | Да | Нет | — | 0. Новый заказ; 1. Отменён; 2. Отправлен; 3. Получен; 4. Оценён |
Таблица: manage
№ | Наименование | Тип данных | Длина | Десятичные знаки | Разрешает NULL | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | — | — |
2 | userName | varchar | 255 | 0 | Да | Нет | — | — |
3 | passWord | varchar | 255 | 0 | Да | Нет | — | — |
4 | realName | varchar | 255 | 0 | Да | Нет | — | — |
Таблица: message
№ | Наименование | Тип данных | Длина | Десятичные знаки | Разрешает NULL | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | — | — |
2 | name | varchar | 255 | 0 | Да | Нет | — | — |
3 | phone | varchar | 255 | 0 | Да | Нет | — | — |
4 | content | varchar | 255 | 0 | Да | Нет | — | — |
Таблица: news
№ | Наименование | Тип данных | Длина | Десятичные знаки | Разрешает NULL | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | — | — |
2 | name | varchar | 255 | 0 | Да | Нет | — | — |
3 | content | text | 65535 | 0 | Да | Нет | — | — |
4 | addTime | datetime | 19 | 0 | Да | Нет | — | — |
Таблица: order_detail
№ | Наименование | Тип данных | Длина | Десятичные знаки | Разрешает NULL | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | — | — |
2 | item_id | int | 10 | 0 | Да | Нет | — | — |
3 | order_id | int | 10 | 0 | Да | Нет | — | — |
-------- | ------- | ---- | -- | --- | ---- | --- | --- | |
5 | num | int | 10 | 0 | Y | |||
6 | total | varchar | 255 | 0 | Y |
Таблица: sc
Номер | Наименование | Тип данных | Длина | Десятичные знаки | Разрешены пустые значения | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | ||
2 | item_id | int | 10 | 0 | Да | Нет | ||
3 | user_id | int | 10 | 0 | Да | Нет |
Таблица: user
Номер | Наименование | Тип данных | Длина | Десятичные знаки | Разрешены пустые значения | Первичный ключ | Значение по умолчанию | Описание |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Нет | Да | ||
2 | userName | varchar | 255 | 0 | Да | Нет | ||
3 | passWord | varchar | 255 | 0 | Да | Нет | ||
4 | phone | varchar | 255 | 0 | Да | Нет | ||
5 | realName | varchar | 255 | 0 | Да | Нет | ||
6 | sex | varchar | 255 | 0 | Да | Нет | ||
7 | address | varchar | 255 | 0 | Да | Нет | ||
8 | varchar | 255 | 0 | Да | Нет |
Модуль | Функциональное описание |
Пользовательский интерфейс магазина | Предоставляет основные функции для входа и регистрации пользователей, а также предоставляет доступ к просмотру и выбору товаров. Пользователи могут использовать этот модуль для завершения процесса покупки товара. |
Персонал | Модуль управления персоналом. Используется для просмотра информации о персонале и выполнения операций по изменению этой информации. |
Товар | Модуль управления товарами. Используется для просмотра, изменения и обновления информации о товарах. |
Заказ | Модуль управления заказами. Используется для просмотра заказов и обновления их статуса. |
Размещение товаров | Модуль размещения товаров. Используется для размещения товаров на сайте. |
Транзакции | Модуль транзакций. Используется для выполнения операций покупки товаров. |
Пользователи могут просматривать товары и добавлять их в корзину покупок в качестве гостей.
Если пользователь не зарегистрирован, ему будет предложено зарегистрироваться. Если пользователь уже зарегистрирован, он может сразу войти в систему. После пяти неудачных попыток ввода пароля система автоматически заблокирует учетную запись пользователя, запретив ему входить в систему.
После входа в систему пользователи могут просматривать список товаров на главной странице и выбирать товары для добавления в корзину. Выбранные товары добавляются в корзину с указанным количеством. В этом случае статус заказа в корзине — «ожидает оплаты». Когда все товары выбраны, пользователь может перейти к корзине, чтобы просмотреть количество выбранных товаров, общее количество товаров и общую сумму, а затем оплатить выбранные товары.
После оплаты заказа система передает заказ администратору для обработки. Когда администратор обновляет статус заказа до «отправлен — ожидает получения», пользователь получает уведомление об отправке товара. После получения товара пользователь может подтвердить получение, оценить товар и завершить заказ.
Войдя в систему, пользователи могут просматривать свою личную информацию в личном кабинете и изменять ее.
Также они могут управлять своими заказами, включая просмотр подробной информации о заказе, такой как название товара, количество, общая стоимость и общее количество, а также история обработки заказа. Они также могут обновлять статус заказа, например, подтверждать получение или завершать заказ. 1. Интерфейс getByUserId(Integer userId):
Получает информацию о товаре по идентификатору пользователя.
2. Интерфейс getCommoditySalesRecord(Integer commodityId):
Возвращает список заказов на продажу товара с указанным идентификатором.
3. Интерфейс getAll():
Возвращает все заказы.
4. Интерфейс UserBiz:
Предоставляет методы для работы с пользователями.
5. Интерфейс EvaluationBiz:
Предоставляет методы для работы с комментариями.
6. (1) Главная страница — верхняя панель навигации (после входа в систему):
Содержание: «Главная», «Выйти», «Моя корзина», «Личный кабинет».
Расположение: верхняя часть каждой страницы сайта.
Функции: предоставляет ссылки для перехода на главную страницу, выхода из системы, просмотра корзины и личного кабинета. В личном кабинете можно просматривать различные статусы заказов («Все заказы», «Отменённые», «Ожидают отправки», «Ожидающие получения», «Полученные»).
7. (2) Главная страница — верхняя панель навигации (до входа в систему):
Содержание: «Главная», «Регистрация», «Личный кабинет».
Расположение: верхняя часть каждой страницы сайта.
Функции: ссылки на главную страницу и регистрацию нового аккаунта. Если пользователь не вошёл в систему, при нажатии на «Личный кабинет» он будет перенаправлен на страницу входа.
8. (3) Главная страница — карусель изображений:
Содержание: изображения недавно популярных фруктов.
Расположение: в верхней части главной страницы.
Функция: предоставление информации о недавно популярных фруктах для удобства выбора.
9. (4) Главная страница — поле поиска:
Содержание: поле для поиска товаров.
Расположение: в центре верхней части главной страницы.
Функция: позволяет пользователям искать конкретные товары.
10. (5) Главная страница — товары со скидкой:
Содержание: демонстрация товаров, на которые действует скидка.
Расположение: нижняя центральная часть главной страницы.
Функция: показывает товары, находящиеся в состоянии скидки, позволяя пользователям быстро находить выгодные предложения.
11. (6) Главная страница — бестселлеры:
Содержание: товары с высоким уровнем продаж.
Расположение: нижняя центральная часть главной страницы.
Функция: предоставляет информацию о товарах, которые пользуются спросом у других пользователей, помогая пользователям определить типы фруктов для покупки.
12. (7) Корзина:
Содержание: информация о товарах, добавленных в корзину.
Вход: через верхнюю панель навигации «Моя корзина».
Функция: пользователи могут управлять количеством товаров в корзине и оплачивать их.
13. (8) Личный кабинет:
Содержание: просмотр моих заказов, личной информации.
Вход: через верхнюю навигационную панель «Личный кабинет».
Функция: личный кабинет позволяет просматривать личную информацию, изменять некоторые личные данные, просматривать различные этапы своих заказов и просматривать подробные записи своих заказов. Заказы могут быть разделены на этапы: «Ожидание оплаты», «Ожидание отправки», «Ожидание получения», «Ожидание оценки», «Завершено» и «Все».
14. (9) Информация о товаре:
Содержание: просмотр товара и покупка товара.
Вход: через карусель популярных товаров или бестселлеров.
Функция: страница с информацией о товаре, включая изображения и описания. Пользователи также могут использовать отзывы других покупателей для принятия решения о покупке. Можно добавить товар в корзину, нажав соответствующую кнопку.
15. (10) Мои заказы:
Содержание: просмотр информации о заказах после покупки товара.
Вход: в личном кабинете.
Функция: просмотр подробных записей о своих заказах. Заказы можно разделить на этапы: «Ожидание оплаты», «Ожидание отправки», «Ожидание получения», «Ожидание оценки» и «Завершено».
16. Модуль управления бэкендом:
(1) Модуль входа:
Этот модуль является частью модуля управления бэкенда и предназначен для управления информацией о пользователях и их классификации как администраторов или обычных пользователей.
Когда администратору необходимо войти в этот модуль, он должен сначала войти в систему управления бэкендом. Система управления бэкэндом имеет механизм безопасности для автоматического управления проверкой подлинности пользователей, то есть если администратор вводит неправильный пароль пять раз подряд, его учётная запись будет заблокирована, и он не сможет войти в систему или выполнить другие операции до снятия блокировки.
Модуль администратора в модуле управления персоналом содержит подмодуль управления администратором, который предоставляет информацию об администраторе, такую как имя и номер телефона, а также журналы операций и журналов входа администратора. Также можно изменить права администратора в этом модуле.
Модуль пользователя в модуле управления персоналом содержит подмодуль управления пользователем, который предоставляет информацию о пользователе, такую как имя, номер телефона и адрес, а также информацию о его заказах. Можно выполнять операции с заказами пользователя в этом модуле, а также блокировать, разблокировать и удалять пользователей или восстанавливать их учётные записи. Пользовательский интерфейс
Интерфейс администратора позволяет выполнять различные операции с пользователями: просматривать информацию о зарегистрированных пользователях, осуществлять поиск по пользователям и т. д.
Модуль товаров
Модуль товаров является частью системы управления бэкендом. Он предоставляет администраторам возможность просматривать и изменять информацию о товарах, а также выполнять операции с товарами.
Для входа в систему предусмотрена аутентификация. Если пользователь вводит неправильный пароль пять раз подряд, его учётная запись блокируется.
Модуль товаров включает два подмодуля: просмотр информации о товаре и операции с товаром.
Администраторы могут просматривать список товаров и переходить к подробной информации о каждом товаре. Они могут редактировать информацию о товаре, включая цену, количество на складе и описание. Также они могут изменять статус товара, что позволяет размещать товары на витрине или снимать их с продажи.
В модуле товаров можно создавать новые товары. Для этого необходимо заполнить информацию о товаре (название, цена, количество на складе, описание), после чего выбрать, когда товар будет размещён на витрине (сразу или позже).
/ Интерфейс товаров
public interface CommodityBiz {
// Добавить товар
void add(Commodity commodity);
// Изменить товар
void edit(Commodity commodity);
// Изменить статус товара
void changeStatus(Integer id);
// Удалить товар
void remove(Integer id);
// Получить товар по идентификатору
Commodity get(Integer id);
// Получить первые три товара с наибольшим объёмом продаж для каждой категории товаров
List<Commodity> getEveryTypeTopThree();
// Получить список товаров по категории
List<Commodity> getByType(Integer typeId);
// Получить список товаров по статусу
List<Commodity> getByStatus(String status);
// Получить товар из кэша по идентификатору
Commodity getDetailFromCache(Integer id);
// Получить все товары
List<Commodity> getAll();
}
// Интерфейс категорий товаров
public interface CommodityCategoryBiz {
// Добавить категорию товаров
void add(CommodityCategory commodityCategory);
// Редактировать категорию товаров
void edit(CommodityCategory commodityCategory);
// Удалить категорию товаров
void remove(Integer id);
// Получить информацию о категории товаров по идентификатору
CommodityCategory get(Integer id);
// Получить все категории товаров
List<CommodityCategory> getAll();
}
Статистика продаж: данные о продажах товаров представлены в виде диаграмм, что позволяет администраторам анализировать эти данные и принимать решения относительно товаров.
Управление категориями: администраторы могут добавлять новые категории, а затем создавать подкатегории внутри каждой категории. Они также могут изменять или удалять информацию о категориях.
Управление товарами: администраторы могут создавать товары, указывая их название, цену, наличие скидки, привязку к существующей категории товаров, а также загружая изображение и описание товара. Они могут выполнять поиск товаров по названию, изменять информацию о существующих товарах или снимать товары с продажи.
Управление заказами
Управление заказами — это ещё один модуль системы управления бэкендом, который позволяет администраторам управлять заказами. Основные функции модуля включают просмотр заказов и изменение статуса заказов.
Как и другие модули управления бэкендом, управление заказами имеет механизм безопасности, который блокирует учётную запись администратора после пяти неудачных попыток ввода пароля.
Этот модуль позволяет администраторам просматривать заказы на разных этапах обработки и видеть подробные записи о процессе обработки каждого заказа.
Также администраторы могут обновлять статус заказов. Например, если заказ находится в статусе «ожидает отправки», администратор может указать номер накладной и подтвердить отправку заказа. Интерфейс для работы с заказами:
Интерфейс для обработки заказов:
«Управление заказами»:
Администратор может просматривать заказы, созданные пользователями на сайте. Также можно использовать поиск по ключевым словам для точного определения заказа.
«Управление объявлениями»:
Администраторы могут редактировать объявления здесь, а пользователи могут просматривать их на главной странице сайта.
«Управление сообщениями»:
Администраторы могут просматривать сообщения пользователей на главной странице.
В процессе разработки системы используется комбинация SpringBoot и MyBatis. Это обеспечивает более лёгкую поддержку MVC архитектуры и упрощает работу с базой данных. После завершения проекта, если вам нужны документы в формате Word, дизайн базы данных MySQL и исходный код, вы можете найти их по адресу: https://download.csdn.net/download/weixin_44385486/85546809.
Некоторые функции не полностью реализованы, и вы можете внести изменения самостоятельно!
Если вам нужно разработать проект на Java с использованием SpringBoot, SpringCloud, Mybatis или Struts2, свяжитесь со мной!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )