文章目录
1、数据库设计
1.1 数据库表关系
1.2 表的建立
drop database if exists lucky_draw;
create database lucky_draw character set utf8mb4;
use lucky_draw;
drop table if exists user;
create table user(
id int primary key auto_increment,
username varchar(20) not null unique comment '用户账号',
password varchar(20) not null comment '密码',
nickname varchar(20) comment '用户昵称',
email varchar(50) comment '邮箱',
age int comment '年龄',
head varchar(255) comment '头像url',
create_time timestamp default NOW() comment '创建时间'
) comment '用户表';
drop table if exists setting;
create table setting(
id int primary key auto_increment,
user_id int not null comment '用户id',
batch_number int not null comment '每次抽奖人数',
create_time timestamp default NOW() comment '创建时间',
foreign key (user_id) references user(id)
) comment '抽奖设置';
drop table if exists award;
create table award(
id int primary key auto_increment,
name varchar(20) not null comment '奖项名称',
count int not null comment '奖项人数',
award varchar(20) not null comment '奖品',
setting_id int not null comment '抽奖设置id',
create_time timestamp default NOW() comment '创建时间',
foreign key (setting_id) references setting(id)
) comment '奖项';
drop table if exists member;
create table member(
id int primary key auto_increment,
name varchar(20) not null comment '姓名',
no varchar(20) not null comment '工号',
setting_id int not null comment '抽奖设置id',
create_time timestamp default NOW() comment '创建时间',
foreign key (setting_id) references setting(id)
) comment '抽奖人员';
drop table if exists record;
create table record(
id int primary key auto_increment,
member_id int not null comment '中奖人员id',
award_id int not null comment '中奖奖项id',
create_time timestamp default NOW() comment '创建时间',
foreign key (member_id) references member(id),
foreign key (award_id) references award(id)
) comment '中奖记录';
2、前后端接口设计
2.1 用户登录
请求:POST api/user/login
Content-Type: application/json
{
username: "abc", password: "123"}
响应:
{
"success" : true }
2.2 用户注册
请求:POST api/user/register
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundarypOUwkGIMUyL0aOZT
username: abc
password: 123
nickname: 权志龙
email: 666@163.com
age: 66
headFile: (binary)
响应:
{
"success" : true }
2.3 查询抽奖设置
请求:GET api/setting/query
响应:
{
"success" : true,
"data" : {
"id" : 1,
"userId" : 1,
"batchNumber" : 8,
"createTime" : "2020-08-14 08:16:31",
"user" : {
"id" : 1,
"username" : "123",
"password" : "123",
"nickname" : "蜡笔小新",
"email" : "[email protected]",
"age" : 18,
"head" : "img/test-head.jpg",
"createTime" : "2020-08-14 08:16:31",
"settingId" : 1
},
"awards" : [ {
"id" : 1,
"name" : "一等奖",
"count" : 1,
"award" : "火箭",
"settingId" : 1,