В предыдущем разделе мы завершили подробную страницу продукта и использовали вторичный кэш Hibernate для загрузки подробной страницы для повышения производительности системы. Нажмите на статью, чтобы просмотреть:. В этом разделе мы начинаем делать корзину для покупок.
1. Добавить новую таблицу
Сначала мы добавляем несколько таблиц в базу данных: таблица пользователя, таблица состояния заказа, таблица заказов (таблица корзины покупок) и таблицу товаров для покупок. Основная информация пользователя хранится в таблице пользователей. В таблице состояния заказа в основном хранится статус заказа, такой как отправленный. В таблице заказа в основном хранится информация пользователя и статус заказа, поэтому она связана с таблицей пользователя и таблицей состояния заказа. В таблице товаров для покупок хранится определенный продукт и порядок, которому он принадлежит, поэтому он связан с таблицей продуктов и таблицей заказов. Для конкретной информации о таблице см. Следующий оператор SQL:
/*=================================================================================== ================================================================================== Создать пользователь таблицы ( /* номер пользователя, автоматический рост* / id int Первичный ключ, а не null auto_increment, /* Имя входа в систему* / login varchar (20), /* Пользовательское реальное имя* / Имя varchar (20), /* Пароль для входа в систему* / pass varchar (20), /* Пользовательский гендер* / sex varhar (20), /* Пользовательский телефон* / телефон (20), /* Пользовательский адрес по электронной почте); /*================================================================== ===================================================================== /* Таблица: корзина для покупок (заказ) Структура таблицы* / /*========================================================================== ============================================================================ ============================================================================ ============================================================================ Создание таблицы Forder ( /* Номер заказа, автоматический рост* / id int Первичный ключ, а не null auto_increment, /* Имя получателя* / Имя VARCHAR (20), /* Номер телефона получателя* / varchar (20), /* Информация о доставке* / Замечание varch VARCHAR (20), /* Поступочный код получателя* / Адрес Varchar (200), /* Статус заказа* / sid int default 1, /* Номер члена* / uid int, ограничение SID_FK Иностранный ключ (SID) Ссылки (ID), ограничение UID_FK Foreign Key (UID) Ссылки пользователь (id)); /*========================================================================================================= ======================================================================================================== ======================================================================================================== ============================================================================================================= Цена продукта во время покупки*/ Десятичная цена (8,2),/*купленное количество*/ number int nut,/*номер продукта*/ pid int,/*Эта строка, номер заказа*/ FID int, ограничение PID_FK Foreign Key (ID);
Затем мы преобразуем эти таблицы в POJO через реверс -инженерию, поэтому мы не будем вдаваться в подробности.
2. Закулисная логика корзины для покупок
2.1 Логика сервисного уровня
Когда пользователь добавляет продукт в корзину для покупок, нам сначала необходимо получить информацию о продукте через идентификатор продукта, а затем добавить продукт в корзину. Перед добавлением мы должны сначала определить, есть ли корзина для покупок в текущем сеансе. Если нет, мы должны сначала создать корзину. Если это так, мы добавим текущий предмет покупок в корзину. Перед добавлением нам нужно определить, существует ли предмет покупок в корзине. Если он существует, просто увеличьте соответствующее количество покупок. Если его не существует, добавьте его, затем рассчитайте общую цену покупок и, наконец, сохраните корзину на сеанс. Смотрите диаграмму ниже для всего процесса:
Далее, давайте внедрим конкретную логику, сначала создадим два новых сервисных интерфейса: Sorderservice и Forderservice. Существует два метода, в основном определенные в Sorderservice: преобразовать предметы, добавленные пользователем в предметы покупки, а затем добавить покупки в корзину для покупок; Forderservice в основном определяет метод расчета общей цены корзины, следующим образом:
// интерфейс Sorderservice Общественный интерфейс Sorderservice Extens BaseService <Sorder> {// Добавить предмет покупок и вернуть новый корзин для корзины для корзины для корзины Forder Addssord (Forder Forder, продукт продукт); // Преобразовать данные о продукте в товары для покупок Public Sorder ProductToSorder (продукт продукта); } // ForderService Interface Public Interface Forderservice Extens BaseService <forder> {// Рассчитайте общую цену покупки общественное двойное Clutotal (Forder Forder); } Затем мы подробно реализуем эти два интерфейса:
// sorderserviceimpl Class @service ("sorderservice") открытый класс Sorderserviceimpl расширяет baseServiceImpl <sorder> реализует Sorderservice {@Override public forder addssordsord (forder forder, продукт продукт) {boolean ishave = false; // используется, чтобы отметить, есть ли дублируемые предметы для покупок // Получить текущие товары для покупок Sorder SOORD = ProductToSord (Product); // Судите, является ли текущий предмет покупок дублировать. Если он дублирует, добавьте количество для (sorder old: forder.getSorders ()) {if (old.getProduct (). GetId (). Equals (sorder.getProduct (). GetId ())) {// Существуют дубликаты для предметов для покупок, добавьте количество Old.setNumber (old.getnumber () + soorder. ishave = true; перерыв; }} // Текущий предмет покупок не существует в корзине покупок, просто добавьте его, если (! Ishave) {forder.getSorders (). Add (Sorder); } вернуть Forder; } @Override public sorder producttosorder (продукт продукт) {sorder soorder = new Sorder (); soorder.setname (product.getName ()); soorder.setnumber (1); SOORDE.SetPrice (product.getPrice ()); soorder.setProduct (продукт); вернуть SOORD; }} // Реализации ForderServiceImpl @Service ("ForderService") открытый класс ForderServiceImpl Extends BaseServiceImpl <forder> реализует ForderService {@Override public Double Clutotal (Forder Forder) {Double Total = 0,0; for (sorder soorder: forder.getSorders ()) {total += soorder.getNumber () * soorder.getPrice (); } return Total; }} Тогда нам нужно ввести эти два боба в базазакцию для использования путем сордезации:
@Controller ("baseaction") @scope ("прототип") открытый класс Baseaction <t> расширяет действия. @Resource защищен Sorderservice Sorderservice; } Хорошо, логика сервисного уровня закончена, а затем мы собираемся сделать часть действия:
2.2 Логика действия
Мы создаем новое сордеп и следуем процессу, показанную на приведенной выше логической диаграмме, чтобы завершить логику добавления корзин для покупок. Код выглядит следующим образом:
@Controller @scope ("Прототип") Открытый сордезация Class Extens Baseaction <sorder> {public String addsorder () {// 1. Получить соответствующие данные о продукте в соответствии с продуктом product.id продукт = Productservice.get (model.getProduct (). GetId ()); // 2. Определите, есть ли корзина на текущей сеансе. Если нет, создать if (session.get ("forder") == null) {// Создать новую корзину для покупок и хранить ее в сеансе Session.put ("Forder", новый Forder (новый хэшсет <sorder> ())); } // 3. Преобразовать информацию о продукте в SOORDER и добавить ее в корзину (судя по дублированию покупок) Forder Forder = (Forder) Session.Get («Forder»); forder = soorderservice.addsorder (Forder, продукт); // 4. Рассчитайте общую цену покупки Forder.SetTotal (ForderService.clutotal (Forder)); // 5. Хранить новую корзину в сеансе Session.put («Forder», Forder); вернуть "ShowCart"; }} Настройте файл struts.xml:
<name Action = "sorder_*" method = "{1}"> <name = "showcart">/showcart.jsp </result> </action>Затем перейдите к странице отображения корзины для покупок ShowCart.jsp. Фронтальная программа о части корзины в Showcart.jsp выглядит следующим образом:
3. Прыжки на стойке регистрации
Все фоновые части сделаны. Далее добавьте страницу на стойке регистрации.
Это будет прыгать правильно. Давайте посмотрим на специфический эффект отображения корзины:
Таким образом, основные функции нашей корзины для покупок будут завершены, и мы сделаем некоторые улучшения в нее позже.
Оригинальный адрес: http://blog.csdn.net/eson_15/article/details/51418350
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.