来自 技术 2019-04-17 00:00 的文章

QQ批发设计

八年Java开发的感悟:什么才是程序员的立身之本>>>   

RBAC权限管理
管理员权限商品管理商品列表发布商品(一期不做"设置热销标签","手动上货","游客购买权限"功能)修改商品删除商品属性管理商品属性列表(长度,等级,Q龄等)修改属性值删除属性值订单管理订单列表取消订单管理员管理管理员列表管理员修改管理员删除操作日志列表(一期不提供)会员管理会员列表资料修改设置黑名单(根据IP/会员账号等)会员权限资料管理(一期不做手机绑定)基本资料购物车管理查看列表删除商品订单管理订单列表RABC数据表DDL
核心:管理员表

-- 管理员表CREATE TABLE `admin_info` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '管理员id', `uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '账号id', `email` varchar(30) NOT NULL DEFAULT '' COMMENT '邮箱', `phone` varchar(15) NOT NULL DEFAULT '' COMMENT '手机号', `name` varchar(30) NOT NULL DEFAULT '' COMMENT '姓名', `nickname` varchar(30) NOT NULL DEFAULT '' COMMENT '昵称', `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像(相对路径)', `gender` enum('male','female','unknow') NOT NULL DEFAULT 'unknow' COMMENT '性别', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_uid` (`uid`), KEY `idx_email` (`email`), KEY `idx_phone` (`phone`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工信息(这里列了大概的信息,多的可以垂直拆表)';核心:会员表

-- 会员模型CREATE TABLE `xlcqq_member` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户id', `uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '账号id', `nickname` varchar(30) NOT NULL DEFAULT '' COMMENT '昵称', `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像(相对路径)', `gender` enum('male','female','unknow') NOT NULL DEFAULT 'unknow' COMMENT '性别', `role` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '角色 0:普通用户 1:vip', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_uid` (`uid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='会员信息';核心:系统权限管理模型

-- 权限管理: 系统menuCREATE TABLE `auth_ms_menu` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `ms_id` smallint(11) unsigned NOT NULL DEFAULT '0' COMMENT '系统id', `parent_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '父菜单id', `menu_name` varchar(255) NOT NULL DEFAULT '0' COMMENT '菜单名称', `menu_desc` varchar(255) NOT NULL DEFAULT '0' COMMENT '菜描述', `menu_uri` varchar(255) NOT NULL DEFAULT '0' COMMENT '菜单uri', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `is_show` enum('yes','no') NOT NULL DEFAULT 'no' COMMENT '是否展示菜单', `create_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建人staff_id', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', `update_by` int(11) NOT NULL DEFAULT '0' COMMENT '修改人staff_id', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted', PRIMARY KEY (`id`), KEY `idx_ms_id` (`ms_id`), KEY `idx_parent_id` (`parent_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统menu';

以下数据表预留功能扩展,暂不启用

角色及用户与角色关联表(暂不启用)

本系统暂定两级用户管理(及管理员和会员),固定用两张表存储不同用户,因此不需要动态管理用的角色关联关系,以下两张表暂不启用。

-- 权限管理: 系统权限(权限的各个集合)CREATE TABLE `auth_role` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `name` varchar(255) NOT NULL DEFAULT '0' COMMENT '角色名称', `desc` varchar(255) NOT NULL DEFAULT '0' COMMENT '角描述', `auth_item_set` text COMMENT '权限集合 多个值,号隔开', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `create_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建人staff_id', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', `update_by` int(11) NOT NULL DEFAULT '0' COMMENT '修改人staff_id', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工角色';-- 权限管理: 角色与员工关系CREATE TABLE `auth_role_staff` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `staff_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '员工id', `role_set` text COMMENT '角色集合 多个值,号隔开', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `create_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建人staff_id', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', `update_by` int(11) NOT NULL DEFAULT '0' COMMENT '修改人staff_id', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted', PRIMARY KEY (`id`), KEY `idx_staff_id` (`staff_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限角色与员工关系';账户模型(预留三方登录,暂不启用)

-- 账户模型CREATE TABLE `account_user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '账号id', `email` varchar(30) NOT NULL DEFAULT '' COMMENT '邮箱', `phone` varchar(15) NOT NULL DEFAULT '' COMMENT '手机号', `username` varchar(30) NOT NULL DEFAULT '' COMMENT '用户名', `password` varchar(32) NOT NULL DEFAULT '' COMMENT '密码', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `create_ip_at` varchar(12) NOT NULL DEFAULT '' COMMENT '创建ip', `last_login_at` int(11) NOT NULL DEFAULT '0' COMMENT '最后一次登录时间', `last_login_ip_at` varchar(12) NOT NULL DEFAULT '' COMMENT '最后一次登录ip', `login_times` int(11) NOT NULL DEFAULT '0' COMMENT '登录次数', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted', PRIMARY KEY (`id`), KEY `idx_email` (`email`), KEY `idx_phone` (`phone`), KEY `idx_username` (`username`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账户';-- 第三方账户CREATE TABLE `account_platform` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `uid` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '账号id', `platform_id` varchar(60) NOT NULL DEFAULT '' COMMENT '平台id', `platform_token` varchar(60) NOT NULL DEFAULT '' COMMENT '平台access_token', `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '平台类型 0:未知,1:facebook,2:google,3:wechat,4:qq,5:weibo,6:twitter', `nickname` varchar(60) NOT NULL DEFAULT '' COMMENT '昵称', `avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), KEY `idx_uid` (`uid`), KEY `idx_platform_id` (`platform_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='第三方用户信息';权限管理: 系统map (三方登录,暂不启用)

CREATE TABLE `auth_ms` ( `id` smallint(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id', `ms_name` varchar(255) NOT NULL DEFAULT '0' COMMENT '系统名称', `ms_desc` varchar(255) NOT NULL DEFAULT '0' COMMENT '系描述', `ms_domain` varchar(255) NOT NULL DEFAULT '0' COMMENT '系统域名', `create_at` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间', `create_by` int(11) NOT NULL DEFAULT '0' COMMENT '创建人staff_id', `update_at` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', `update_by` int(11) NOT NULL DEFAULT '0' COMMENT '修改人staff_id', `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted', PRIMARY KEY (`id`), KEY `idx_domain` (`domain`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统map(登记目前存在的后台系统信息)';购物板块模型设计


由于本系统只包含单类产品,且没有复用商品属性的需求因此不需要严格的spu,sku设计,产品模块仅需如下两张表,

product_spu 商品主表(直接关联所有属性,库存由product_sku_qq表汇总)product_sku_qq QQ商品表,product_spu表的product_spu字段用来关联此表,1-N关系

CREATE TABLE `product_spu` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'SPU ID', `name` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT 'spu名称', `desc` varchar(255) unsigned NOT NULL DEFAULT '' COMMENT 'spu描述', `price_fee` int unsigned NOT NULL DEFAULT 0 COMMENT '售价,整数方式保存', `tag` int unsigned NOT NULL DEFAULT 0 COMMENT '商品标签:1特价/2推荐/3新品', `buy_limit` int unsigned NOT NULL DEFAULT 0 COMMENT '购买限制:1游客/2会员', `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) unsigned NOT NULL DEFAULT '0' COMMENT '状态 1:enable, 0:disable, -1:deleted', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT AUTO_INCREMENT=666666 CHARSET=utf8mb4 COMMENT='spu表';RABC接口设计


systemmember/admin/member/members/memberproductorder

由于系统固定死只有两种类型的账号,即管理员和会员,因此权限接口只需要提供

管理员管理 /system/admin分配管理员账号 /add管理员列表 /list管理员修改 /update管理员删除 /delete会员管理 /system/member (复用前台member接口)会员列表 /member/list资料修改 /member/update (复用member模块)设置黑名单(根据IP/会员账号等)会员功能 /member会员注册 /add会员登录 /login会员登出 /logout资料修改 /update权限接口 /system/auth所有权限列表后台接口管理员管理 /system/admin分配账号 /add管理员列表 /list管理员修改 /update管理员删除 /delete会员管理 /system/member (复用前台member接口)会员列表 /member/list资料修改 /member/update设置黑名单(根据IP/会员账号等)权限接口 /system/auth所有权限列表前台接口会员管理 /member会员注册 /add会员登录 /login会员登出 /logout资料修改 /update权限接口 /auth当前用户权限列表 /list 返回授权菜单树权限校验 /check