Code Monkey home page Code Monkey logo

e-shop's Introduction

e-shop

面临的一些问题

前端:

  • 防止按钮多次点击多次提交问题

后端:

  • Generation异常的JSON转化问题
  • 商品秒杀模块添加到项目该怎么做
技术 说明
SpringCloud 分布式架构
Spring Security 权限框架
MyBatis ORM框架
MyBatisGenerator mybatis逆向工程,代码生成器
Swagger-UI 文档生成器
SSO SSO单点登录
Redis 分布式缓存
Docker 容器化部署
Druid 数据库连接池
JWT JWT登陆支持
RabbitMQ 消息队列
Elasticsearch 搜索引擎

参数校验使用Hibernate Validator

前后端交互token问题

客户端拉起登陆验证,采用密码模式,正确输入账号密码后,后端返回token和刷新token,客户端每次请求都要带上token,如果访问需要登录的页面但是没有token,则进入登陆页面。如果服务端返回401,则token过期或者未验证授权,如果返回403则无权限,若返回码为401,向后端发送刷新token的请求(若存在刷新token),如果还是返回异常,则退出登录重新验证,反之则更新返回的token。

优惠券叠加券互斥券

-- ----------------------------


-- basic数据表


-- ----------------------------

-- 认证授权中心用户表,单点登录,类似拉取支付宝账号、微信账号、qq账号授权,授权服务器的用户信息。未来会分库分表。
DROP TABLE IF EXISTS sys_user;
CREATE TABLE sys_user (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `username` VARCHAR(64) UNIQUE NOT NULL,
        `password` VARCHAR(64) NOT NULL,
        `telephone` VARCHAR(64) COMMENT '电话号码',
        `avatar` VARCHAR(500) DEFAULT NULL COMMENT '头像',
        `email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
        `nickname` VARCHAR(200) DEFAULT NULL COMMENT '昵称',
        `note` VARCHAR(500) DEFAULT NULL COMMENT '备注信息',
        `create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
        `login_time` DATETIME DEFAULT NULL COMMENT '最后登录时间',
        `status` INT(1) DEFAULT 1 COMMENT '账户状态,1正常,0异常',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '认证授权中心用户表';

-- ----------------------------


-- 用户管理


-- ----------------------------

-- em用户表,e-mall系统不使用授权中心的用户信息,而是和em_user进行映射
DROP TABLE IF EXISTS em_user;
CREATE TABLE em_user (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `username` VARCHAR(64) UNIQUE NOT NULL,
        `password` VARCHAR(64) NOT NULL,
        `telephone` VARCHAR(64) COMMENT '电话号码',
        `avatar` VARCHAR(500) DEFAULT NULL COMMENT '头像',
        `email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
        `nickname` VARCHAR(200) DEFAULT NULL COMMENT '昵称',
        `note` VARCHAR(500) DEFAULT NULL COMMENT '备注信息',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		`login_way` INT(1) COMMENT '可选登陆方式, 0 -> 默认单点登录, 1 -> 用户名登录, 2 -> 电话登录, 3 -> 邮箱登录, 4 -> 会员号登录',
        `login_time` DATETIME DEFAULT NULL COMMENT '最后登录时间',
        `status` INT(1) DEFAULT 1 COMMENT '账户状态,1正常,0异常',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT 'em用户表';


-- 商家表
DROP TABLE IF EXISTS em_merchant;
CREATE TABLE em_merchant (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `user_id` BIGINT NOT NULL COMMENT '用户id',
        `shop_id` BIGINT NOT NULL COMMENT '店铺id',
		`username` VARCHAR(64) COMMENT '用户名',
		`receive_payment` VARCHAR(1600) COMMENT '收款信息',
        `status` INT(1) COMMENT '店铺状态, 0 -> 禁用, 1 -> 正常营业, 2 -> 店铺关闭',
        `create_time` DATETIME COMMENT '开店时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商家表';

-- 会员表
DROP TABLE IF EXISTS em_member;
CREATE TABLE em_member (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `user_id` BIGINT NOT NULL COMMENT '用户id',
        `member_id` VARCHAR(60) COMMENT '会员号',
		`username` VARCHAR(64) COMMENT '用户名',
        `create_time` DATETIME COMMENT '开始使用时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '会员表';

-- 角色表
DROP TABLE IF EXISTS `em_role`;
CREATE TABLE `em_role`(
		`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
		`name` VARCHAR(64) UNIQUE NOT NULL COMMENT '角色名称',
		`description` VARCHAR(500) DEFAULT NULL COMMENT '角色描述',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARSET=utf8mb4 COMMENT '角色表';

-- 权限表
DROP TABLE IF EXISTS `em_permission`;
CREATE TABLE `em_permission`(
		`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
		`name` VARCHAR(64) UNIQUE NOT NULL COMMENT '权限名称',
		`description` VARCHAR(500) DEFAULT NULL COMMENT '权限描述',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARSET=utf8mb4 COMMENT '权限表';

-- 用户角色表
DROP TABLE IF EXISTS `em_user_role`;
CREATE TABLE `em_user_role`(
		`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
		`user_id` BIGINT(20) DEFAULT NULL COMMENT '用户id',
		`role_id` BIGINT(20) DEFAULT NULL COMMENT '角色id',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARSET=utf8mb4 COMMENT '用户角色表';

-- 角色权限表
DROP TABLE IF EXISTS `em_role_permission`;
CREATE TABLE `em_role_permission`(
		`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
		`role_id` BIGINT(20) DEFAULT NULL COMMENT '角色id',
		`permission_id` BIGINT(20) DEFAULT NULL COMMENT '权限id',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARSET=utf8mb4 COMMENT='角色权限表';
		

-- 附加权限表
DROP TABLE IF EXISTS `em_add_permission`;
CREATE TABLE `em_add_permission`(
		`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
		`name` VARCHAR(64) UNIQUE NOT NULL COMMENT '权限名称',
		`description` VARCHAR(500) DEFAULT NULL COMMENT '权限描述',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARSET=utf8mb4 COMMENT='附加权限表';

-- 用户附加权限表
DROP TABLE IF EXISTS `em_user_add_permission`;
CREATE TABLE `em_user_add_permission`(
		`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
		`user_id` BIGINT(20) DEFAULT NULL COMMENT '用户id',
		`add_permission_id` BIGINT(20) DEFAULT NULL COMMENT '附加权限id',
		`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
		PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARSET=utf8mb4 COMMENT='用户附加权限表';





-- ----------------------------


-- 商品管理


-- ----------------------------

-- 商品分类表
DROP TABLE IF EXISTS em_product_category;
CREATE TABLE em_product_category (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `name` VARCHAR ( 64 ) COMMENT '产品分类名称',
        `count` INT COMMENT '产品数量',
        `keywords` VARCHAR ( 260 ) COMMENT '关键词',
        `show_status` INT ( 1 ) COMMENT '是否显示:0 不显示 1 显示',
        `show_image` VARCHAR ( 260 ) COMMENT '显示图片或图标',
        `description` TEXT COMMENT '描述',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品分类表';

-- 商品分类详情表
DROP TABLE IF EXISTS em_product_category_detail;
CREATE TABLE em_product_category_detail (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_category_id` BIGINT NOT NULL COMMENT '产品分类id',
        `product_spec` BIGINT COMMENT '产品规格id,在选择分类后自动加载规格',
        `name` VARCHAR ( 64 ) COMMENT '分类详情名称',
        `count` INT COMMENT '产品数量',
        `keywords` VARCHAR ( 260 ) COMMENT '关键词',
        `show_status` INT ( 1 ) COMMENT '是否显示:0 不显示 1 显示',
        `show_image` VARCHAR ( 260 ) COMMENT '显示图片或图标',
        `description` TEXT COMMENT '描述',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品分类详情表';

-- 店铺表
DROP TABLE IF EXISTS em_shop;
CREATE TABLE em_shop (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `name` VARCHAR ( 64 ) UNIQUE COMMENT '店铺名称',
        `show_status` INT ( 1 ) COMMENT '是否显示:0 不显示 1 显示',
        `product_count` INT COMMENT '产品数量',
        `logo` VARCHAR (260) COMMENT 'logo',
        `show_image` VARCHAR ( 260 ) COMMENT '展示图片',
        `description` TEXT COMMENT '店铺描述',
        `rank` INT COMMENT '排名',
        `hot` INT COMMENT '热度',
        `collection` INT COMMENT '收藏数',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '店铺表';


-- 商品规格表
DROP TABLE IF EXISTS em_product_spec;
CREATE TABLE em_product_spec (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `name` VARCHAR ( 64 ) COMMENT '规格名称',
        `child` INT (1) COMMENT '是否存在规格详情 0 -> 不存在,1 -> 存在',
		`standard` INT(1) COMMENT '是否标准规格,标准规格拥有默认选项,否则都是商家自己添加的属性',
        `description` VARCHAR ( 260 ) COMMENT '规格描述',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品规格表';

-- 规格详情表
DROP TABLE IF EXISTS em_product_spec_details;
CREATE TABLE em_product_spec_details (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_spec_id` BIGINT NOT NULL COMMENT '商品规格id',
        `name` VARCHAR ( 64 ) COMMENT '名称',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '规格详情表';

-- spu商品表
DROP TABLE IF EXISTS em_product;
CREATE TABLE em_product (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_category_detail_id` BIGINT NOT NULL COMMENT '商品分类详情id',
        `shop_id` BIGINT NOT NULL COMMENT '店铺id',
        `name` VARCHAR(64) NOT NULL COMMENT '商品名称',
        `show_image` VARCHAR(2600) COMMENT '展示图片,英文逗号隔开',
        `item_no` VARCHAR(64) NOT NULL COMMENT '货号',
        `delete_status` INT (1) COMMENT '删除状态 0 -> 删除, 1 -> 未删除',
        `shelf_status` INT (1) COMMENT '上架状态 0 -> 未上架, 1 -> 上架',
        `verify_status` INT (1) COMMENT '审核状态 0 -> 未审核, 1 -> 审核通过, 2 -> 审核不通过',
        `price` DECIMAL(10,2) COMMENT '价格',
        `growth_value` INT DEFAULT 0 COMMENT '成长值',
        `integral` INT DEFAULT 0 COMMENT '赠送积分',
        `sub_title` VARCHAR(260) COMMENT '副标题',
        `description` TEXT COMMENT '商品描述',
        `unit` VARCHAR(20) COMMENT '单位',
				
        `pre_status` INT(1) DEFAULT 0 COMMENT '是否为预告商品,0 -> 否, 1 -> 是',
				`sale_time` DATETIME COMMENT '开始出售时间',
        `keywords` VARCHAR(260) COMMENT '关键字',
        `detail` TEXT COMMENT '商品详情',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT 'spu商品表';


-- sku商品表
DROP TABLE IF EXISTS em_sku_product;
CREATE TABLE em_sku_product (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `product_spec_id` BIGINT COMMENT '商品规格id',
        `product_spec_details_id` BIGINT COMMENT '商品规格信息id',
        `name` VARCHAR(64) NOT NULL COMMENT '商品名称',
        `show_image` VARCHAR(260) COMMENT '展示图片',
        `stock` INT COMMENT '库存',
        `price` DECIMAL(10,2) COMMENT '价格',
        `sale` INT COMMENT '销量',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT 'sku商品表';


-- 促销表
DROP TABLE IF EXISTS em_promotion;
CREATE TABLE em_promotion (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `promotion_price` DECIMAL(10,2) COMMENT '促销价格',
        `promotion_start_time` DATETIME COMMENT '促销开始时间',
        `promotion_end_time` DATETIME COMMENT '促销结束时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '促销表';;


-- 商品评论表
DROP TABLE IF EXISTS em_comment;
CREATE TABLE em_comment (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `star` INT(1) COMMENT '评分',
        `show_status` INT COMMENT '是否显示,0 -> 不显示, 1 -> 显示',
        `public` INT(1) COMMENT '可选公开或匿名, 0 -> 不公开, 1 -> 公开',
        `content` TEXT COMMENT '评论内容',
        `create_time` DATETIME COMMENT '创建时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品评论表';


-- 商品评论回复表
DROP TABLE IF EXISTS em_comment_reply;
CREATE TABLE em_comment_reply (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `comment_id` BIGINT NOT NULL COMMENT '评论id',
        `merchant` INT(1) COMMENT '是否商家回复,0 -> 否, 1 -> 是',
        `content` VARCHAR(3600) COMMENT '回复内容',
        `create_time` DATETIME COMMENT '创建时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品评论回复表';


-- 商品审核表
DROP TABLE IF EXISTS em_product_verify;
CREATE TABLE em_product_verify (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `inspector` BIGINT NOT NULL COMMENT '审核人员',
        `status` INT(1) COMMENT '审核状态, 0 -> 审核不通过, 1 -> 通过',
        `remark` VARCHAR(3600) COMMENT '备注',
        `create_time` DATETIME COMMENT '创建时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品审核表';

-- ----------------------------


-- 订单管理


-- ----------------------------

-- 订单表
-- 一次付款可能包含多个店铺的商品,每个店铺生成一个订单
DROP TABLE IF EXISTS em_order;
CREATE TABLE em_order (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `order_number` BIGINT NOT NULL COMMENT '订单号',
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `receiver_address_id` BIGINT NOT NULL COMMENT '会员收货地址id',
        `freight` DECIMAL(10,2) COMMENT '运费总额',
        `total_price` DECIMAL(10,2) COMMENT '总价',
        `pay_type` INT(1) COMMENT '支付方式, 0 -> 未支付, 1 -> 支付宝, 2 -> 微信, 3 -> 其他',
        `order_source` VARCHAR(60) COMMENT '订单来源,网页 or App',
        `status` INT(1) COMMENT '订单状态, 0 -> 待付款, 1 -> 待发货, 2 -> 已发货, 3 -> 已完成, 4 -> 已关闭, 5 -> 无效订单',
        `order_type` INT(1) COMMENT '订单类型,0 -> 普通订单, 1 -> 秒杀订单',
        `pay_time` DATETIME COMMENT '支付时间',
        `create_time` DATETIME COMMENT '创建时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '订单表';

-- 订单商品表
DROP TABLE IF EXISTS em_order_product;
CREATE TABLE em_order_product (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `order_id` BIGINT NOT NULL COMMENT '订单id',
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `shop_id` BIGINT NOT NULL COMMENT '店铺id',
        `sku_id` BIGINT NOT NULL COMMENT 'sku id',
        `coupon_id` BIGINT NOT NULL COMMENT '优惠券id',
        `delivery_id` BIGINT NOT NULL COMMENT '物流id',
        `num` INT NOT NULL COMMENT '购买数量',
        `note` VARCHAR(500) COMMENT '订单备注',
        `confirm_status` INT(1) COMMENT '收货状态, 0 -> 未确认, 1 -> 已确认',
        `delivery_time` DATETIME COMMENT '发货时间',
        `receive_time` DATETIME COMMENT '确认收货时间',
        `product_status` INT(1) COMMENT '商品状态, 0 -> 待付款, 1 -> 待发货, 2 -> 已发货, 3 -> 已完成, 4 -> 已关闭, 5 -> 无效订单',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '订单商品表';

-- 物流表
DROP TABLE IF EXISTS em_delivery;
CREATE TABLE em_delivery (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `order_id` BIGINT NOT NULL COMMENT '订单id',
        `shop_id` BIGINT NOT NULL COMMENT '店铺id',
        `delivery_company` VARCHAR(60) COMMENT '物流公司',
        `delivery_number` VARCHAR(60) COMMENT '物流单号',
        `delivery_status` VARCHAR(60) COMMENT '物流状态',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '物流表';

-- 订单设置表
DROP TABLE IF EXISTS em_order_setting;
CREATE TABLE em_order_setting (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `seckill_overtime` INT COMMENT '秒杀订单超时时间',
        `normal_order_overtime`INT COMMENT '正常订单超时时间',
        `confirm_overtime` INT COMMENT '订单发货后自动确认收货时间',
        `return_overtime` INT COMMENT '退货自动回款时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '订单设置表';



-- 购物车商品表
DROP TABLE IF EXISTS em_cart_product;
CREATE TABLE em_cart_product (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `coupon_id` BIGINT NOT NULL COMMENT '优惠券id',
        `num` INT NOT NULL COMMENT '购买数量',
        `create_time` DATETIME COMMENT '创建时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '购物车商品表';

-- 收货地址表
DROP TABLE IF EXISTS em_receiver_address;
CREATE TABLE em_receiver_address (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `user_id` BIGINT NOT NULL COMMENT '用户id',
        `receiver_name` VARCHAR(100) COMMENT '收货人姓名',
        `receiver_tel` VARCHAR(20) COMMENT '收货人电话',
        `receiver_postcode` VARCHAR(20) COMMENT '收货人邮编',
        `receiver_province` VARCHAR(60) COMMENT '省份',
        `receiver_city` VARCHAR(60) COMMENT '',
        `receiver_region` VARCHAR(60) COMMENT '地区',
        `receiver_detail_address` VARCHAR(200) COMMENT '详细地址',
				`default_status` INT(1) COMMENT '是否默认收获地址, 0 -> 否, 1 -> 是',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '收货地址表';

-- 退货申请表
DROP TABLE IF EXISTS em_order_return;
CREATE TABLE em_order_return (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `order_product_id` BIGINT NOT NULL COMMENT '订单商品id',
        `handler_id` BIGINT NOT NULL COMMENT '处理人',
        `member_address_id` BIGINT NOT NULL COMMENT '会员收货地址',
        `shop_address_id` BIGINT NOT NULL COMMENT '店铺收货地址,退回地址id',
        `status` INT(1) COMMENT '退货状态, 0 -> 待处理, 1 -> 退货中, 2 -> 已退货, 3 -> 拒绝退货',
        `handle_time` DATETIME COMMENT '处理时间',
        `reason` VARCHAR(200) COMMENT '退货原因',
        `description` VARCHAR(500) COMMENT '退货描述',
        `certificate_image` VARCHAR(1000) COMMENT '退货凭证(图片,以英文,隔开)',
        `handle_note` VARCHAR(200) COMMENT '处理备注',
        `create_time` DATETIME COMMENT '创建时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '退货申请表';

-- 退货原因表
DROP TABLE IF EXISTS em_order_return_reason;
CREATE TABLE em_order_return_reason (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `name` VARCHAR(100) COMMENT '退货原因',
        `status` INT(1) COMMENT '显示状态, 0 -> 不显示, 1 -> 显示',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '退货原因表';



-- ----------------------------


-- 营销管理


-- ----------------------------

-- 商品优惠券表
DROP TABLE IF EXISTS em_coupon;
CREATE TABLE em_coupon (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT COMMENT '商品id',
        `shop_id` BIGINT COMMENT '店铺id',
        `category_id` BIGINT COMMENT '分类id',
        `range` INT(1) COMMENT '适用范围, 0 -> 指定商品, 1 -> 无门槛, 2 -> 店铺商品, 3 -> 分类商品',
        `name` VARCHAR(260) NOT NULL COMMENT '优惠券名称',
        `type` INT(1) NOT NULL COMMENT '优惠券类型,0 -> 打折券, 1 -> 立减券',
        `discount` INT(10) COMMENT '折扣',
        `reduction` DECIMAL(10,2) COMMENT '立减金额',
        `start` DECIMAL(10,2) COMMENT '优惠券使用起点',
        `start_time` DATETIME COMMENT '开始时间',
        `deadline` DATETIME COMMENT '过期时间',
        `num` INT COMMENT '优惠券数量',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '商品优惠券表';

-- 优惠券拥有表
DROP TABLE IF EXISTS em_coupon_ower;
CREATE TABLE em_coupon_ower (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `coupon_id` BIGINT NOT NULL COMMENT '优惠券id',
        `member_id` BIGINT NOT NULL COMMENT '会员id',
        `code` VARCHAR(60) COMMENT '券码',
        `status` INT(1) COMMENT '使用状态, 0 -> 未使用, 1 -> 已使用, 2 -> 已失效',
        `use_time` DATETIME COMMENT '使用时间',
        `create_time` DATETIME COMMENT '创建时间',
				`get_way` VARCHAR(160) COMMENT '获取途径',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '优惠券拥有表';


-- 秒杀商品表
DROP TABLE IF EXISTS em_seckill_product;
CREATE TABLE em_seckill_product (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `seckill_price` DECIMAL(10,2) COMMENT '秒杀价',
        `stock_count` INT COMMENT '库存',
        `start_time` DATETIME COMMENT '开始时间',
        `end_time` DATETIME COMMENT '结束时间',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '秒杀商品表';


-- 首页店铺(品牌)推荐表
DROP TABLE IF EXISTS em_home_shop;
CREATE TABLE em_home_shop (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `shop_id` BIGINT NOT NULL COMMENT '店铺id',
        `shop_name` VARCHAR(60) COMMENT '店铺名称',
        `status` INT(1) COMMENT '推荐状态, 0 -> 不推荐, 1 -> 推荐',
        `power` INT COMMENT '权重',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '首页店铺(品牌)推荐表';


-- 新品推荐表
DROP TABLE IF EXISTS em_new_product_recommend;
CREATE TABLE em_new_product_recommend (
        `id` BIGINT NOT NULL AUTO_INCREMENT,
        `product_id` BIGINT NOT NULL COMMENT '商品id',
        `product_name` VARCHAR(60) COMMENT '商品名称',
        `status` INT(1) COMMENT '推荐状态, 0 -> 不推荐, 1 -> 推荐',
        `power` INT COMMENT '权重',
        PRIMARY KEY ( id )
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8mb4 COMMENT '新品推荐表';

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.