# 智慧豆工具方案设计 v1.0 ## 一、成员&权限管理 ### 1、基本定义 1)角色定义:1-高级管理员,2-智慧豆审核员,3-智慧豆录入员 2)模块定义:1001-成员管理菜单,1002-智慧豆管理菜单,1003-版块角色管理 这里的模块即页面菜单栏,前端根据用户权限点列表。展示对应的菜单里。 3)权限数据列表: ^ 菜单模块 ^ 权限id ^ 权限点 ^ 高级管理员 ^ 智慧豆审核员 ^ 智慧豆录入员 ^ 说明 ^ | 成员管理菜单(1001) | 1001001 | 查看权限 | 有 | 无 | 无 | | | 成员管理菜单(1001) | 1001002 | 编辑权限 | 有 | 无 | 无 | 操作包括:新建、修改、删除、启用 | | 智慧豆管理菜单(1002) | 1002001 | 智慧豆录入权限 | 有 | 无 | 有 | 包括:增加智慧豆和扣减智慧豆操作 | | 智慧豆管理菜单(1002) | 1002002 | 智慧豆审核权限列表 | 有 | 有 | 无 | 审核列表的查询,编辑权限 | | 版块角色管理(1003) | 1003001 | 查看权限 | 有 | 有 | 有 | | | 版块角色管理(1003)) | 1003002 | 编辑权限 | 有 | 无 | 无 | 增、删、改 | ### 2、模型设计 #### 2.1 、实体关系 {{:jsb:2.png?600|}} #### 2.2、表结构 ###### 2.2.1、后台账户表 ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键 | | nick\_name | varchar | N | 必经之路昵称 | | phone\_no | varchar | Y | 手机号 | | user\_no | varchar | Y | 必经之路学号 | | role\_id | varchar | N | 角色id | | password | varchar | N | 密码 | | status | int | N | 状态:0未启用,1已启用 | | is\_deleted | int | N | 是否已删除:0未删除,1已删除 | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | 【**问题**】 * 目前无法根据学号直接查到志愿者个人信息。因为还没有志愿者个人信息的数据。 ###### 2.2.2、角色表 ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键 | | role\_id | varchar | Y | 角色id | | name | varchar | Y | 角色名称 | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | ###### 2.2.3、权限点表 ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键 | | function\_id | varchar | N | 模块id | | permission\_id | varchar | Y | 权限id | | name | varchar | Y | 权限点名称 | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | ###### 2.2.4、角色与权限点关系表 ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键 | | role\_id | varchar | Y | 角色id | | permission\_id | varchar | N | 权限id | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | ## 二、版块和角色管理 ### 1、基本定义 1)版块角色表格:[https://doc.weixin.qq.com/sheet/e3\_Ab0AnQb8ADwvjvkPucESUGBng3SrG?scode\=ANgA\_QeGAA8Ebz010uAb0AnQb8ADw\&force\_open\_in\_wx\=1](https://doc.weixin.qq.com/sheet/e3_Ab0AnQb8ADwvjvkPucESUGBng3SrG?scode=ANgA_QeGAA8Ebz010uAb0AnQb8ADw\&force_open_in_wx=1 "dfd") 2)定义版块和角色是最多**三级**的层级关系。即:【版块】-【子版块】-【角色】或者【版块】-【角色】 3)角色是最小单位,是具体的岗位。 4)**特别说明**:福田区打卡任务。版块是【福田区】,角色是【打卡】。具体是什么打卡,通过备注说明。 5)自然村每一期新手村都是一个【子板块】。即,【新手村】-【金刚村001期】-【向导】 5)所有智慧豆录入必须有角色关联。 ### 2、模型设计 #### 2.1、实体关系 {{:jsb:45.png?400|}} #### 2.2、表结构 ###### 2.2.1、版块表(department) ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键 | | name | varchar | Y | 版块名称 | | type | int | N | 版块类型:1:一级版块,2:二级版块 | | parent\_id | bigint | N | 上级版块id | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | 【**说明**】 1. 版块表,包含1级版块和2级版块。 2. 版块表数据,系统上线后,数据库直接初始化当前必经之路所有的版块。后台暂不支持录入。后续新增版块信息需要技术支持。 3. 新手村的自然村是二级版块。每一期新手村的2级版块都需技术录入。比较麻烦。 4. 版块名称必须有实际的业务含义,且不可重复。因为版块名称即是版块的唯一标识。 ###### 2.2.2、角色表(job) ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键 | | name | varchar | Y | 岗位名称 | | department\_id | bigint | N | 版块id | | bean\_amount | int | N | 智慧豆数量 | | payment\_frequency | int | N | 与bean\_count字段搭配使用。结算频率:0、每次 1、每月 | | description | varchar | N | 岗位介绍 | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | 【**说明**】 1. 角色,即必经之路的各个具体岗位(工作)。 2. 角色都有对应的智慧豆奖励,仅供智慧豆录入人员参考。智慧豆录入的时候,不会用角色里的智慧豆数量去做强校验。 3. 角色名也是角色类型区分的标识。所以,表里不会有类型字段。 4. 角色与板块关联。同一板块下的角色名不可重复。 ## 三、智慧豆管理 ### 1、表结构 ###### 1.1、用户智慧豆账户表 ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键id | | name | varchar | N | 必经之路昵称 | | user\_no | varchar | Y | 必经之路学号 | | bean\_total | Int | N | 智慧豆数量 | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | 【**说明**】 1. 每位同学的智慧豆总数,查此表 2. 智慧豆录入(扣除)时,会更新此表 3. 该表与智慧豆明细表联动更新。 ###### 1.2、智慧豆明细表 ^ 字段 ^ 类型 ^ 唯一性 ^ 说明 ^ | id | bigint | Y | 主键id | | user\_no | String | N | 必经之路学号 | | bean\_amount | Int | N | 智慧豆数量 | | type | Int | N | 0:录入,1:扣除 | | job\_id | bigint | N | 当type\=0时,表示从哪个角色工作获得的智慧豆 | | job\_num | Int | N | 岗位服务次数 | | job\_time | datetime | N | 在岗时间 | | description | String | N | 描述信息 | | audit\_status | int | N | 审核状态。0:待审核,1:已通过,2:未通过 | | ctime | datetime | N | 创建时间 | | mtime | datetime | N | 更新时间 | 【**说明**】 1. 在岗时间是不是需要开始时间和结束时间。 2. 录入智慧豆必须关联一个岗位id(角色) 3. 扣除智慧豆,没有关联岗位。目前只能通过`description`字段说明。 ### 2、智慧豆审核 ###### 2.1、状态机 {{:jsb:3.png?400|}} 【**说明**】 1. 【待审核】---> 【已通过】,重新计算用户智慧豆总数,即原来是录入智慧豆,则加入智慧豆。如果是扣除智慧豆,则扣除智慧豆 2. 【待审核】---> 【未通过】,不计算用户智慧豆总数 3. 【已通过】---> 【未通过】,重新计算用户智慧豆总数,即原来是录入智慧豆,则扣除之前录入的智慧豆。如果是扣除智慧豆,则重新加回智慧豆数量 4. 【未通过】---> 【已通过】,重新计算用户智慧豆总数,即原来是录入智慧豆,则加入智慧豆。如果是扣除智慧豆,则扣除智慧豆