前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >电商设计手册之用户体系

电商设计手册之用户体系

作者头像
用户1093396
发布于 2020-10-29 03:17:01
发布于 2020-10-29 03:17:01
65400
代码可运行
举报
运行总次数:0
代码可运行

前言

一直从事互联网电商开发三年多的时间了,回头想想却对整个业务流程不是很了解,说出去很是惭愧。但是身处互联网电商的环境中,或多或少接触了其中的各个业务,其次周边还有很多从事电商的同事和朋友,这都是资源。于是,我决定和我的同事、盆友们、甚至还有你们去梳理整个流程并分享出来,谈不上结果要做的多么好,至少在每一个我们有能力去做好的地方,一定会细致入微。

除此之外,同时为了满足我们自身在工作中可能得不到的技术满足感,我们在做整个系统设计的过程中,会去使用我们最想用的技术栈。技术栈这一点我们借助docker去实现,所以最终的结果:一方面我们掌握了业务的东西,另一方面又得到了技术上的满足感,二者兼得。

最后,出于时间的考虑,我们提出了一个想法Do design No code【只设计不码码】这句话的意思:最终我们设计出来整个系统的数据模型,接口文档,甚至交互过程,以及环境部署等,但是最后我们却不写代码。是吧?如果这样了写代码还有什么意义。当然,也不全是这样,出于时间的考虑当然也会用代码实现出来的,说不定最后正是对面的你去实现的。

其次,这些内容肯定有考虑不全面或者在上规模的业务中存在更复杂的地方,欢迎指出,我们也希望学习和分享您的经验。

今天,我们开始第一部分用户体系的设计。本文分为如下四大模块:

  • 架构设计
  • 数据模型设计
  • 交互设计
  • 接口设计

架构设计

简单来看用户体系

当你第一次接触和用户相关的互联网产品时,或者曾今在我眼里。用户体系无非就是“登录”和“注册”,“修改用户信息”这些,等。简单来做的话,无非我们需要一张表去记录用户的身份信息:注册时(insert操作),往表里插入一个数据;登录时(select&update操作),通过用户标识(手机号、邮箱等)判断用户的密码是否正确;修改用户信息(select&update操作),就是直接update这个uid的用户信息(头像、昵称等)。

这样设计的确没什么问题,很简单不是么。但是随着业务的发展,一方面我们需要提供统一的用户管理(高内聚),又要提高系统的可扩展性,所以我想呈现出来的是我理解的一个基本用户体系应该有的东西

一个基本用户体系应该有的东西

首先我们对原有的用户表进行再一次的抽象(抽离用户注册、登录依赖的字段、第三方登陆) -> 账户表,为什么这么做?随着业务的发展,以前只维护一个产品,也许某一天又开发新的产品,这样我们就可以统一的维护我们公司所有产品的注册登录逻辑,不同的产品只维护该产品和用户相关的信息即可(具体依赖产品形态)。如下图所示:

上图中,还提到了第三方登陆/员工表/后台权限管理,这些都是一些用户体系基本必备的结构。

第三方登录:第三方也是登陆方式的一种,我们也把它抽象到账户的一部分,如上图所示。其次,关于第三方登录这里存在一个交互方式设计存在的问题,后面交互设计时会提到。

员工:因为上面我们抽离了账户表,所以内部的管理系统后台也可以统一的使用账户表的登录逻辑,这样全公司在账号这个事情上达到了真正的高内聚。

提到了员工,我们的内部各种系统后台肯定涉及各种的权限管理,所以这里提到了简单的RBAC(基于角色的权限控制),具体的逻辑数据模型设计会提到。

最终的架构

随着业务产品形态的越来越复杂,在设计架构的时候,我们需要分析其中的变与不变

  • 变:越来越多的产品个性化用户需求
  • 不变:注册登陆的逻辑

最终的结果,我们把原有的用户拆成了账户用户,同时我们也要在这里明确这两个概念的区别:

  • 账户:整个体系唯一生产uid的地方,内聚注册登陆逻辑,不涉及产品业务需求
  • 用户:不同产品个性化的用户需求信息

最终的架构图如下:

  • 第一部分:账户(服务层)
  • 第二部分:用户(应用层,无限水平扩展)
  • 第三部分:员工(应用层,员工权限体系)

数据模型设计

对应上面的架构,我们很容易设计出我们的数据模型(这里假设我们目前只有一个对C端的应用):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
账户 -> 1.账户表
用户 -> 2.用户表
员工 -> 3.员工表

除了上面三张表外,还需要我们的R(role)B(base)A(access)C(control)权限管理,RBAC基于角色的权限管理大家应该很熟悉,这里我就不详细说了,简单的RBAC首先需要:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
4.系统菜单表(菜单即权限),系统的uri路径
5.权限表(菜单即权限),具体的权限就是访问系统的菜单
6.角色表,一个角色具有哪些权限
7.员工和角色的关联表,一个员工属于哪个角色

好了一个简单的RBAC涉及的表基本罗列出来了,但是在我的工作经历中大家实现的权限管理往往只针对某个系统,这样对于众多的系统后台来说就是乱、重复造轮子、权限管理效率低。所以我在上面的架构设计中把权限作为了一个服务为全系统提供基础服务能力。而达到这个目的的结果我只需要再增加一张表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
8.后台管理系统表, 登记所有的后台管理系统(这样通过系统id和系统资源uri的id就可以全局构成唯一性,单纯的uri存在重复的可能性,用uri不用url的原因是域名存在变动的可能性)

最后我们的用户体系应该基本就上面8张表。咦,貌似漏掉了第三方登陆,我们加上吧,很简单如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
9. 第三方用户登陆表,记录不同第三方的用户标示

最最后就是上面的9张表了,具体的表结构和sql如下:

表sql

账户模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 账户模型
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='账户';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 第三方账户
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='第三方用户信息';

用户模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 用户模型
CREATE TABLE `skr_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='账户信息';

员工模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 员工表
CREATE TABLE `staff_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='员工信息(这里列了大概的信息,多的可以垂直拆表)';

系统权限管理模型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- 权限管理: 系统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(登记目前存在的后台系统信息)';

-- 权限管理: 系统menu
CREATE 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_item` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
    `ms_id` tinyint(11) unsigned NOT NULL DEFAULT '0' COMMENT '系统id',
    `menu_id` varchar(255) NOT NULL DEFAULT '0' COMMENT '页面/接口uri',
    `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_ms_menu` (`ms_id`, `menu_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统权限';

-- 权限管理: 系统权限(权限的各个集合)
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='权限角色与员工关系';

交互设计

友情提示:一大波图片即将到来,此处图片较多,不清楚的可点击大图查看

注册

注册成功之后存在至少两种交互方式:

  1. 注册成功 -> 跳转到登陆页面
  2. 注册成功 -> 自动登陆 -> 跳转到应用首页(或者其他页面)

具体交互流程如下:


登陆

快捷登陆

快捷登录的流程基本和上面一致只是验证密码换成了验证验证码


第三方登陆

第三方登录的交互其实存在这样的问题:

  1. 第三方账户登陆成功后还需要绑定手机号/Email吗?

因为我发现有些PM为了提高用户使用的简单快捷性,往往第三方登陆成功后会直接产生uid,而不进行账号的绑定。这样之后在再进行账号绑定就涉及账号合并的问题,很麻烦(如果有钱包等)。如果我们一开始就进行绑定操作,这样未来账号的关系就清晰明了便于维护,第三方登陆其实就相当于普通账号的别名。最后这个事情做不做的结果就是,账户表account_user和第三方用户信息表account_platform是的一对多还是一对一的关系。

  1. 如果绑定,已经注册的手机号/Email是否可以绑定?

这个还好说,一般来说绑定的选择基本是正确的。最后具体的流程图如下:

交互界面图如下:


后台权限管理

首先,我们的后台管理系统需要个响亮的称号,想了一会以前公司用过apollo,于是我准备用mars但突然冒出来个earth,地球万物之根,刚好我们这又是个全业务的基础服务管理系统,哈哈就这样吧~ Earth System

Earth System的权限管理功能主要分为以下四部分:

  • 系统管理(The manage system page)
    • 编辑页面
    • 列表页面
  • 菜单管理(The menu page)
    • 编辑页面
    • 列表页面
  • 角色管理(The role page)
    • 编辑页面
    • 列表页面
  • 员工与角色关联管理(The role staff map page)
    • 编辑页面
    • 列表页面

具体交互如下:

接口设计

应用层接口(对外)

1.注册接口

请求参数:

字段

类型

是否必传

描述

username

string

非必传

用户账号

email

string

email/phone两者择一

用户邮箱

phone

string

email/phone两者择一

用户手机号

code

int

必传

验证码

交互方式一(跳转到登陆页面)响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "msg": "OK",
    "result": []
}

交互方式二(跳转到首页页面)响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "msg": "OK",
    "result": {
        "s_token": "string, 用户会话标示",
        "s_token_expire": "string, 用户会话标示过期时间,0不过期",
        "username": "string, 用户名",
        "nickname": "string, 用户昵称",
        "avatar": "string, 用户头像",
        "gender": "string, 用户性别,male:男,female:女,other:未知",
    }
}

2.登录接口

请求参数:

字段

类型

是否必传

描述

username

string

username/email/phone三者择一

用户账号

email

string

username/email/phone三者择一

用户邮箱

phone

string

username/email/phone三者择一

用户手机号

password

string

必传

密码

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "result": {
        "s_token": "string, 用户会话标示",
        "s_token_expire": "string, 用户会话标示过期时间,0不过期",
        "nickname": "string, 用户昵称",
        "username": "string, 用户名",
        "avatar": "string, 用户头像",
        "gender": "string, 用户性别,male:男,female:女,other:未知",
    }
}

3.快捷登录接口

请求参数:

字段

类型

是否必传

描述

email

string

email/phone两者择一

用户邮箱

phone

string

email/phone两者择一

用户手机号

code

int

必传

验证码

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "result": {
        "s_token": "string, 用户会话标示",
        "s_token_expire": "string, 用户会话标示过期时间,0不过期",
        "nickname": "string, 用户昵称",
        "username": "string, 用户名",
        "avatar": "string, 用户头像",
        "gender": "string, 用户性别,male:男,female:女,other:未知",
    }
}

4.第三方登录接口

请求参数:

字段

类型

是否必传

描述

type

string

必传

平台类型 1:facebook,2:google,3:wechat,4:qq,5:weibo,6:twitter

platform_id

string

必传

第三方平台用户ID

platform_token

string

必传

第三方平台令牌

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "result": {
        "s_token": "string, 用户会话标示",
        "s_token_expire": "string, 用户会话标示过期时间,0不过期",
        "username": "string, 用户名",
        "nickname": "string, 用户昵称",
        "avatar": "string, 用户头像",
        "gender": "string, 用户性别,male:男,female:女,other:未知",
    }
}

5.用户信息修改接口

请求参数:

字段

类型

是否必传

描述

username

string

非必传

用户账号

nickname

string

非必传

昵称

avatar

string

非必传

头像url

gender

string

非必传

用户性别,male:男,female:女,other:未知

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "result": {
        "username": "string, 用户名",
        "nickname": "string, 用户昵称",
        "avatar": "string, 用户头像",
        "gender": "string, 用户性别,male:男,female:女,other:未知",
    }
}

6.用户登录状态校验

请求参数:

字段

类型

是否必传

描述

s_token

string

必传

用户会话标示

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "result": {
        "s_token_expire": "string, 用户会话标示过期时间,0不过期, -1登陆失效",
    }
}

服务接口(基础服务,对内)

账户服务:

  1. 注册

请求参数:

字段

类型

是否必传

描述

username

string

非必传

用户账号

email

string

email/phone两者择一

用户邮箱

phone

string

email/phone两者择一

用户手机号

交互方式一(跳转到登陆页面)响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "msg": "OK",
    "result": {
        "uid": "string, 账户ID"
    }
}
  1. 登陆

请求参数:

字段

类型

是否必传

描述

username

string

非必传

用户账号

email

string

email/phone两者择一

用户邮箱

phone

string

email/phone两者择一

用户手机号

password

string

必传

密码

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "msg": "OK",
    "result": {
        "uid": "string, 账户ID"
    }
}
  1. 第三方登录

请求参数:

字段

类型

是否必传

描述

type

string

必传

平台类型 1:facebook,2:google,3:wechat,4:qq,5:weibo,6:twitter

platform_id

string

必传

第三方平台用户ID

platform_token

string

必传

第三方平台令牌

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "result": {
        "uid": "string, 账户ID",
        "nickname": "string, 用户昵称",
        "avatar": "string, 用户头像",
    }
}

权限服务

  1. 获取系统菜单

请求参数:

字段

类型

是否必传

描述

ms_id

string

必传

系统ID

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "msg": "OK",
    "result": {
        "ms_name": "string, 系统名称",
        "ms_desc": "string, 系统描述",
        "ms_domain": "string, 系统域名",
        "list": [
            {
                "parent_id": "string, 父菜单ID",
                "menu_id": "string, 菜单ID",
                "menu_name": "string, 菜单ID",
                "menu_desc": "string, 菜单描述",
                "menu_uri": "string, 菜单uri",
                "child" : [
                    {
                        "parent_id": "string, 父菜单ID",
                        "menu_id": "string, 菜单ID",
                        "menu_name": "string, 菜单ID",
                        "menu_desc": "string, 菜单描述",
                        "menu_uri": "string, 菜单uri",
                        "child" : []
                    }
                ]
            }
        ]
    }
}
  1. 权限校验

请求参数:

字段

类型

是否必传

描述

menu_id

string

必传

菜单ID

响应内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
    "code": "200",
    "msg": "OK",
    "result": []
}

结语

如果有写的不对或者不完善的地方,希望大家多多评论,互相学习互相进步~

项目地址: https://github.com/skr-shop/manuals

skr-shop项目成员简介

排名不分先后,字典序

昵称

简介

个人博客

AStraw

研究生创业者, 现于小米科技海外商城组从事商城后端研发工作

--------

大愚Dayu

国内大多人使用的PHP第三方支付聚合项目Payment作者,创过业,现于小米科技海外商城组从事商城后端研发工作

大愚Talk

lwhcv

曾就职于百度/融360, 现于小米科技海外商城组从事商城后端研发工作

--------

TIGERB

PHP框架EasyPHP作者,拥有A/B/C轮电商创业公司工作经验,现于小米科技海外商城组从事商城后端研发工作

TIGERB.cn

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 TIGERB的技术博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
DCMM认证评估官方解答
DCMM是《数据管理能力成熟度评估模型》GB/T 36073-2018国家标准,英文简称:(Data management Capability Maturity Model)。是我国首个数据管理领域正式发布的国家标准。旨在帮助企业利用先进的数据管理理念和方法,建立和评价自身数据管理能力,持续完善数据管理组织、程序和制度,充分发挥数据在促进企业向信息化、数字化、智能化发展方面的价值。
CloudBest
2022/05/25
8780
DCMM认证评估官方解答
DCMM助力企业实现数字化转型
根据国务院国资委印发的《关于加快推进国有企业数字化转型工作的通知》要求,明确指出了数据治理是国企数字化转型的必经之路,数据治理被推向了“风口浪尖”。数字化转型,是当今时代企业的机遇,也是挑战。企业亟需一套符合中国国情,符合中国企业文化,并且能够指导企业开展数字化“基础设施”建设的参考框架,而DCMM(数据管理能力成熟度评估模型)或许就是一个合适的参考框架。
CloudBest
2022/05/25
8830
DCMM助力企业实现数字化转型
一文读懂数据管理能力成熟度模型DCMM
DCMM是国家标准《GB/T36073-2018 数据管理能力成熟度评估模型》(Data management Capability Maturity Model)的英文简称。
CloudBest
2022/05/25
8.6K0
一文读懂数据管理能力成熟度模型DCMM
关于数据治理的读书笔记 - 数据治理能力成熟度评估
数据治理能力成熟度反映了企业在数据治理方面所具备的条件和水平。这个就和现在非常流行的DevOps能力成熟度很像,都是通过一系列方法、关键指标和工具来评价企业数据管理的现状,帮助企业进行基准评测,找到优势和差距,指出方向,提供实施建议,以利用数据资产提高业务的绩效。
bisal
2022/03/12
9230
关于数据治理的读书笔记 - 数据治理能力成熟度评估
DCMM知识分享 一起来学习吧!
可能很多人还不了解DCMM是什么,DCMM是国家标准《数据管理能力成熟度评估模型GB/T36073-2018》(Data management Capability Maturity Model)的英文简称,是我国在数据管理领域首个正式发布的国家标准,旨在帮助企业利用先进的数据管理理念和方法,建立和评价自身数据管理能力,持续完善数据管理组织、程序和制度,充分发挥数据在促进企业向信息化、数字化、智能化发展方面的价值。
CloudBest
2022/09/26
8020
DCMM贯标能给企业带来什么益处?
发展数字经济产业已经成为各国经济增长和实现创新发展的新动能、新扒手,日前我国数字经济正蓬勃发展,产业规模快速扩大,新模式快速涌现,企业数据总量呈几何性增长,数据资源已经成为国民经济建设的基础性、战略性、先导性资源,有力地支撑着数字经济建设,加大数据治理工作是优化数字生态环境、发展数字经济的重中之重。DCMM标准作为我国数据管理领域中的首个国家标准,是夯实数据治理工作的重要方式,可以加快数据红利释放、促进数字经济高质量发展。那么DCMM贯标成效有哪些呢?下面给大家一一介绍。
CloudBest
2022/05/25
9750
DCMM贯标能给企业带来什么益处?
DCMM标准之数据安全域解读(二):数据安全管理
《数据管理能力成熟度评估模型》(以下简称DCMM)是我国在数据管理领域首个正式发布的国家标准,旨在帮助企业利用先进的数据管理理念和方法,建立和评价自身数据管理能力,持续完善数据管理组织、程序和制度,充分发挥数据在促进企业向信息化、数字化、智能化发展方面的价值。
AIGC新知
2024/10/08
4040
DCMM标准之数据安全域解读(二):数据安全管理
数据治理是什么?该如何入门呢?
大家好,我是独孤风,一位曾经的港口煤炭工人,目前在某国企任大数据负责人,公众号大数据流动主理人。
大数据流动
2023/07/21
6530
数据治理是什么?该如何入门呢?
关于数据治理的读书笔记 - 数据治理、数据管理和数据管控的理解
最近在读石秀峰老师的《一本书讲透数据治理》,很多名词都听过,但是没串起来,正借此机会,系统性地学习补充一下,针对一些混淆的知识点,做下笔记,需要的时候,算是有个参考,
bisal
2022/01/29
4680
关于数据治理的读书笔记 - 数据治理、数据管理和数据管控的理解
“数实融合”新时代,解读数据治理的新风向!
导语 | 数据作为国际数字主权竞争的核心资源,是国家明确增列的新型生产要素。数据质量的高低、数据价值的挖掘,是影响企业发展的关键要素之一。今天我们邀请到了中国信息通信研究院 大数据与区块链部副主任、腾讯云 TVP 姜春宇老师,带领我们解读数据治理的发展新趋势,一起洞见行业的数字化未来。
TVP官方团队
2023/01/05
7500
“数实融合”新时代,解读数据治理的新风向!
如何写好企业数据管理制度
随着近几年国家数字化转型政策的全面铺开,很多企业已经逐步展开了数字化转型的尝试和部署,其中不乏成功案例,但失败案例也不少,失败的原因有很多,既有企业内部原因也有外部原因。转型成功不易,实质上数字化转型是一项极其复杂的系统工程,它本质上是企业自身的一次产业升级,很多企业数字化转型的失败不是资金不足,而是未结合企业自身管理特性做好嵌入,导致转型难以落地。要想成功的需要做好很多重要性工作,但这里不得不提到其中一个重要的内容,制定有效的企业数据管理制度。
CloudBest
2022/09/26
5240
观点 | 数据治理与数据安全治理思考
大数据经过多年发展,在不同的业务场景下得到深入应用,在企业提升经营目标、促进经营决策,以及通过大数据应用促进经济发展、优化民生工程、解决生活服务便捷等场景起到了重要作用。特别是十九届四中全会史无前例的将“数据”作为新型生产要素参与收益分配,一时间,各指导部门及高校、研究及咨询机构、行业企业纷纷开始研究和实践数据有效利用的数字化转型探索。通过数据的有效利用,实现数字化转型,加快数字化发展,成为整个社会共识。 数据治理作为基础性工作和第一步,受到高度重视。数据的确权、数据质量、数据跨境流通、数据开放与共享、数据
FB客服
2023/03/30
1.8K0
观点 | 数据治理与数据安全治理思考
2022大数据十大关键词,重磅发布!
6月28日,为进一步加速推动我国数据智能转型进程,推动“十四五”期间数据智能产业交流与合作,由中国信息通信研究院、中国通信标准化协会指导,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)主办的2022大数据产业峰会在京召开。 在峰会主论坛上,中国信通院云大所所长何宝宏发布了《2022大数据十大关键词》。 大数据十大关键词是基于我们长期对于产业的研究观察,以及与一线专家的研讨交流完成。如图所示,本年度十大关键词涉及数据从计算机语言到成为生产要素的全生命周期,包括 【数据资源化】,即数据从计
张俊红
2022/07/08
6860
2022大数据十大关键词,重磅发布!
腾讯WeTest通过CMMI3级认证,研发管理能力获国际权威认可!
近日,腾讯WeTest成功通过CMMI 3级认证,技术研发管理能力获国际权威机构认可!这标志着WeTest产品及平台朝国际水平迈出了坚实的一步,将进一步巩固WeTest在云测试领域领航者的地位。 CMMI(Capability Maturity Model Integration,即能力成熟度模型集成)是由美国国防部与卡耐基梅隆大学软件工程研究院共同研究与开发,并在全世界推广实施的一种软件能力成熟度评估体系,是国际上用于评价软件企业能力成熟度和工程开发能力的重要标准。CMMI认证是对研发和管理能力的双
WeTest质量开放平台团队
2021/10/20
5850
常见的行业认证和资质清单介绍
获得行业认证或资质可以证明企业或产品在某个领域具备一定的能力和资质,如下是技术社区提供的行业认证和资质清单,仅供参考。
bisal
2023/05/03
1.4K0
国有商业银行 DevOps 标准评估情况概览(22Q1)
在数字化转型的大背景下,企业选择实践 DevOps 来提升IT效能,由中国信息通信研究院牵头的《研发运营一体化(DevOps)能力成熟度模型》系列标准具有较高的指导意义,各行业头部企业在参与中国信息通信研究院组织的 DevOps 能力成熟度模型评估的过程中,提升改进 IT 能力,整合团队资源及人才,更好的支持业务系统,其实践经验对于行业有很好的借鉴价值。 中国工商银行、中国农业银行、中国银行、建信金科、交通银行(包含交通银行信用卡中心)和中国邮政储蓄银行等国有商业银行通过 DevOps 能力成熟度模型评估的
DevOps时代
2022/03/04
2K0
标准推广 | DCMM之数据战略理解
“十四五”时期,信息化进入加快数字化发展、建设数字中国的新阶段。中央提出了要立足新发展阶段,完整、准确、全面贯彻新发展理念,构建新发展格局,紧扣制造业高质量发展要求,以供给侧结构性改革为主线,以智能制造为主攻方向,以数字化转型为主要抓手,推动工业互联网创新发展,培育融合发展新模式、新业态,加快重点行业领域数字化转型,激发企业融合发展活力,打造数据驱动、软件定义、平台支撑、服务增值、智能主导的现代化产业体系。
CloudBest
2022/09/26
5370
[数据知识]IBM 数据治理成熟度评估模型
数据被认为是推动企业增长和商业创新引擎的燃料。数据无疑被组织认定且拥有的资产之一,但是由于其海量数据的增加,复杂度随之增加,管理和控制的难度越来越大。
物流IT圈
2019/09/25
5.6K0
[数据知识]IBM 数据治理成熟度评估模型
[数据思维]数据师的目标
关于数据师的目标,这里就先从"目标"的概念入手,强化其内涵的认知。为什么这样做呢?说下笔者的理解,"目标"作为连接数据师战略和数据师日常行为活动的中间环节,其关键性不言而喻!一方面对接数据师战略,保证其价值、愿景、使命的一致性,另一方面则指导数据师的日常行为准则,使其不偏离轨道。
CDO首席数据官
2019/04/21
6120
[数据思维]数据师的目标
一图梳理企业数据治理的8项举措
导读:在企业数据治理的战术层面,有一套完整的数据治理实施方法论,包括理现状与定目标、能力成熟度评估、路线图规划、保障体系建设、技术体系建设、策略执行与监控、绩效考核以及长效运营。
IT阅读排行榜
2022/04/14
1.6K0
一图梳理企业数据治理的8项举措
推荐阅读
相关推荐
DCMM认证评估官方解答
更多 >
LV.0
北京亿信华辰软件有限责任公司
目录
  • 前言
  • 架构设计
    • 简单来看用户体系
    • 一个基本用户体系应该有的东西
    • 最终的架构
  • 数据模型设计
    • 表sql
  • 交互设计
    • 注册
    • 登陆
    • 第三方登陆
    • 后台权限管理
  • 接口设计
    • 应用层接口(对外)
    • 服务接口(基础服务,对内)
  • 结语
  • skr-shop项目成员简介
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档