Анализ таблицы базы данных модуля заказа (2)

MySQL

Адрес фактического проекта электронной коммерции SpringBoot (18k+star):GitHub.com/macro-positive/…

Резюме

В этой статье в основном анализируется соответствующая таблица функций корзины покупок и представлен весь процесс от добавления продукта в корзину до размещения заказа, включая процесс расчета скидки корзины, процесс создания подтверждения заказа, процесс размещения заказа и процесс отмены заказа.

корзина стол

Он используется для хранения информации о каждом продукте в корзине и может использоваться для расчета суммы скидки на продукт.

create table oms_cart_item
(
   id                   bigint not null auto_increment,
   product_id           bigint comment '商品的id',
   product_sku_id       bigint comment '商品sku的id',
   member_id            bigint comment '会员id',
   quantity             int comment '购买数量',
   price                decimal(10,2) comment '添加到购物车的价格',
   sp1                  varchar(200) comment '销售属性1',
   sp2                  varchar(200) comment '销售属性2',
   sp3                  varchar(200) comment '销售属性3',
   product_pic          varchar(1000) comment '商品主图',
   product_name         varchar(500) comment '商品名称',
   product_brand        varchar(200) comment '商品品牌',
   product_sn           varchar(200) comment '商品的条码',
   product_sub_title    varchar(500) comment '商品副标题(卖点)',
   product_sku_code     varchar(200) comment '商品sku条码',
   member_nickname      varchar(500) comment '会员昵称',
   create_date          datetime comment '创建时间',
   modify_date          datetime comment '修改时间',
   delete_status        int(1) default 0 comment '是否删除',
   product_category_id  bigint comment '商品的分类',
   product_attr         varchar(500) comment '商品销售属性:[{"key":"颜色","value":"银色"},{"key":"容量","value":"4G"}]',
   primary key (id)
);

Процесс заказа покупок

Общая схема процесса

展示图片

Отображение процесса мобильного терминала

  • Участник выбирает характеристики продукта
    展示图片
  • Выберите товары в корзине для оформления заказа
    展示图片
  • Посмотреть подтверждение
    展示图片
  • Оплатить заказ
    展示图片
  • оплата прошла успешно
    展示图片
  • проверить заказ
    展示图片

реализовать логику

добавить в корзину

Основной функцией корзины покупок является хранение информации о продукте, выбранном пользователем, и расчет скидок на товары в корзине.

Процесс расчета скидки в корзине

展示图片

Соответствующие точки внимания
  • Поскольку скидки на товары рассчитываются в единицах товаров, а не в единицах товара, скидки на товары должны рассчитываться в единицах товаров;
  • Логику реализации кода см. в методе calcCartPromotion в классе OmsPromotionServiceImpl.

Создать подтверждение

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

Создать процесс подтверждения заказа

展示图片

Соответствующие точки внимания
  • Расчет общей суммы: общая стоимость всех товаров в корзине;
  • Расчет скидки за активность: суммируется сумма скидки всех товаров в корзине;
  • Расчет суммы к оплате: сумма к оплате = общая сумма - скидка за активность;
  • Логику реализации кода см. в методе generateConfirmOrder в классе OmsPortalOrderServiceImpl.

Генерировать заказы

Информация в корзине обрабатывается, и заказ формируется путем синтеза информации о пользователе, разместившем заказ.

Процесс заказа

展示图片

Соответствующие точки внимания
  • Блокировка инвентаря: инвентарь был удален изpms_sku_stockТаблица запрашивается, поле lock_stock указывает количество заблокированных запасов, а количество элементов, видимых участниками, представляет собой реальный запас за вычетом заблокированного запаса;
  • Обработка дезагрегированного количества купонов: Рассчитайте дезагрегированное количество купонов, общих для всех сайтов, определенных категорий и определенных продуктов:
    • Универсальность: все заказанные товары в корзине будут разделены поровну;
    • Указанная категория: Товары соответствующей категории в корзине распределяются поровну;
    • Указанные товары: указанные товары, включенные в корзину, распределяются поровну.
  • Расчет фактической суммы оплаты для каждого товара в заказе: исходная цена - акционная скидка - вычет по купону - вычет баллов, акционная скидка - это сумма скидки, рассчитанная в процессе расчета скидки в корзине;
  • Генерация номера заказа: используйте Redis для генерации, правила генерации: 8-значная дата + 2-значный номер платформы + 2-значный способ оплаты + 6-значный идентификатор автоинкремента;
  • После использования купона необходимо изменить статус использования купона;
  • Логика реализации кода может ссылаться на метод generateOrder в классе OmsPortalOrderServiceImpl.

отменить заказ

После создания заказа необходимо запустить задачу задержки, чтобы отменить заказ на сверхурочную работу.

Процесс отмены заказа

展示图片

Соответствующие точки внимания
  • Логику реализации кода см. в методе cancelOrder в классе OmsPortalOrderServiceImpl.

публика

проект торгового центраПолный набор учебных пособий сериализуется,Обратите внимание на общедоступный номерПолучите это прямо сейчас.

公众号图片