предисловие
Предыдущая статья«Анализ спроса на инструменты общей лотереи»С помощью некоторых распространенных сценариев лотереи мы получили пять элементов лотерейных инструментов, которые соответствуют этим сценариям лотереи:
Пять элементов лотереи | имя функции |
---|---|
первый элемент | Мероприятия |
второй элемент | Показы |
третий элемент | приз |
Четвертый элемент | Вероятность выигрыша |
Пятый элемент | Равномерное голосование |
И 5 основных шагов для создания лотереи, а именно:
- Активная конфигурация
- Конфигурация сцены
- Конфигурация приза
- Конфигурация вероятности выигрыша приза
- Конфигурация голосования за приз
Обзор предыдущей статьи«Анализ спроса на инструменты общей лотереи»
Спрос был проанализирован.Сегодня мы рассмотрим конкретный дизайн этого общего лотерейного инструмента, который разделен на следующие три части:
- Дизайн БД
- Настройте дизайн бэкенда
- дизайн интерфейса
Дизайн БД
первый элемент活动配置
из抽奖活动表
:
-- 通用抽奖工具(万能胶Glue) glue_activity 抽奖活动表
CREATE TABLE `glue_activity` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '活动ID',
`serial_no` char(16) unsigned NOT NULL DEFAULT '' COMMENT '活动编号(md5值中间16位)',
`name` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT '活动名称',
`description` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT '活动描述',
`activity_type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '活动抽奖类型1: 按时间抽奖 2: 按抽奖次数抽奖 3:按数额范围区间抽奖',
`probability_type` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '中奖概率类型1: static 2: dynamic',
`times_limit` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '抽奖次数限制,0默认不限制',
`start_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '活动开始时间',
`end_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '活动结束时间',
`create_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`create_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建人staff_id',
`update_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`update_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改人staff_id',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 -1:deleted, 0:disable, 1:enable',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖活动表';
второй элемент场次配置
из抽奖场次表
:
-- 通用抽奖工具(万能胶Glue) glue_session 抽奖场次表
CREATE TABLE `glue_session` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '场次ID',
`activity_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '活动ID',
`times_limit` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '抽奖次数限制,0默认不限制',
`start_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '场次开始时间',
`end_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '场次结束时间',
`create_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`create_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建人staff_id',
`update_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`update_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改人staff_id',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 -1:deleted, 0:disable, 1:enable',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖场次表';
Третий и четвертый элементы奖品配置
из抽奖场次奖品表
:
-- 通用抽奖工具(万能胶Glue) glue_session_prizes 抽奖场次奖品表
CREATE TABLE `glue_session_prizes` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`session_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '场次ID',
`node` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT '节点标识 按时间抽奖: 空值, 按抽奖次数抽奖: 第几次参与值, 按数额范围区间抽奖: 数额区间上限值',
`prize_type` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '奖品类型 1:优惠券, 2:积分, 3:实物, 4:空奖 ...',
`name` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT '奖品名称',
`pic_url` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT '奖品图片',
`value` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT '奖品抽象值 优惠券:优惠券ID, 积分:积分值, 实物: sku ID',
`probability` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '中奖概率1~100',
`create_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`create_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建人staff_id',
`update_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`update_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改人staff_id',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 -1:deleted, 0:disable, 1:enable',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖场次奖品表';
Пятый элемент均匀投奖
из抽奖场次奖品定时投放器表
:
-- 通用抽奖工具(万能胶Glue) glue_session_prizes_timer 抽奖场次奖品定时投放器表
CREATE TABLE `glue_session_prizes_timer` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`session_prizes_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '抽奖场次奖品ID',
`delivery_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '定时投放奖品数量的时间',
`prize_quantity` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '奖品数量',
`create_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`create_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建人staff_id',
`update_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`update_by` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改人staff_id',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 -1:deleted, 0:wait, 1:success',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖场次奖品定时投放器表';
Другие таблицы, таблица записи лотереи и таблицы распределения призов:
-- 通用抽奖工具(万能胶Glue) glue_user_draw_record 用户抽奖记录表
CREATE TABLE `glue_user_draw_record` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`activity_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '活动ID',
`session_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '场次ID',
`prize_type_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '奖品类型ID',
`user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建人user_id',
`create_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_at` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 -1:未中奖, 1:已中奖 , 2: 发奖失败 , 3: 已发奖',
`log` text COMMENT '操作信息等记录',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户抽奖记录表';
Настройте дизайн бэкенда
Создать событие
Создать время события - лотерея по диапазону суммы
Список событий
дизайн интерфейса
- Получить информацию об активности GET {версия}/клей/активность
Параметры запроса:
поле | тип | Это обязательно | описывать |
---|---|---|---|
serial_no | string | Y | номер события |
Содержание ответа:
{
"code": "200",
"msg": "OK",
"result": {
"serial_no": "string, 活动编号",
"type": "number, 活动抽奖类型1: 按时间抽奖 2: 按抽奖次数抽奖 3:按数额范围区间抽奖",
"name": "string, 活动名称",
"description": "string, 活动描述",
"start_time": "number, 活动开始时间",
"end_time": "number, 活动开始时间",
"remaining_times": "number, 活动抽奖次数限制,0不限制",
"sessions_list":[
{
"start_time": "number, 场次开始时间",
"end_time": "number, 场次开始时间",
"remaining_times": "number, 场次抽奖次数限制,0不限制",
"prizes_list": [
{
"name": "string, 奖品名称",
"pic_url": "string, 奖品图片"
}
]
}
]
}
}
- Нарисуйте POST {версия}/клей/активность/нарисуйте
Параметры запроса:
поле | тип | Это обязательно | описывать |
---|---|---|---|
serial_no | string | Y | номер события |
uid | number | Y | Идентификатор пользователя |
Содержание ответа:
// 中奖
{
"code": "200",
"msg": "OK",
"result": {
"serial_no": "string, spu id",
"act_remaining_times": "number, 本活动抽奖剩余次数,0不限制",
"session_remaining_times": "number, 本场次抽奖剩余次数,0不限制",
"prizes_info":
{
"name": "string, 奖品名称",
"pic_url": "string, 奖品图片"
}
}
}
// 未中奖
{
"code": "401",
"msg": "",
"result": {
}
}
Эпилог
Первая система слов в системе событийного маркетингаУниверсальный инструмент для проведения лотереиНа этом сегодняшняя беседа подошла к концу, я надеюсь всем помочь или вдохновить.
пасхальные яйца
Дизайн кода универсального лотерейного инструмента особенно подходит для模板模式
, как вы думаете 😏😏😏. Итак, в новом году я напишу еще статью "[Skr-Shop] Дизайн кода универсального лотерейного инструмента"?
(O_O)?
2020
Наконец, я желаю всем счастливого Нового 2020 года 🆕~
[Skr Shop] Нажмите и удерживайте адрес проекта, чтобы ввести:GitHub.com/payee-shop/лошадь…
Другие статьи из серии Skr Shop:
- Системный дизайн Skr Shop Universal Lucky Draw Tool
- Анализ спроса на дизайн корзины покупок Skr Shop
- coder, спроектируете торговую систему (практическую)?
- coder, вы будете разрабатывать торговую систему (концепцию)?
- Анализ процесса и сводка сторонних платежей
- Основная информация о продукте Информация о руководстве по электронной коммерции
- Пользовательская система руководства по дизайну электронной коммерции