必经之路

抄一部心经,点一盏心灯

用户工具

站点工具


jsb:zhihuidou

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
jsb:zhihuidou [2024/06/25 23:44] – 移除 - 外部编辑 (未知日期) 127.0.0.1jsb:zhihuidou [2024/06/26 16:46] (当前版本) admin
行 1: 行 1:
 +## 智慧豆工具设计文档
  
 +时间:2024年 6 月 25 日
 +
 +是时候给智慧豆做个工具了。
 +
 +这里是 Judy 玉洁同学做的需求设计:[智慧豆需求设计](https://ixx707y5ij.feishu.cn/docx/FImLdNkrWoDgtax2O3vc7C6Pnif?from=from_copylink)
 +
 +### 1. 一些想法:
 +我们每个月记录智慧豆,应该不用那么精细化,只是为了方便以后查询用,同学也不会“豆豆必较”。
 +
 +按照现在的理解,每条记录记一个总数,然后附加一个说明,应该就 可以满足现有的需求。
 +例如:
 +
 +^ 记录 ^ 姓名 ^ 豆豆数 ^ 原因      ^ 时间  ^
 +| 1   | 秀秀  | 120  | 金刚村村长 | 202405 |
 +| 2   | 秀秀  | 7  | 福田区7天日行一善   | 202405 |
 +| 3 | haitao | 80 | data analyze | 202406 |
 +| 4 | ... | ... | ... | ... |
 +
 +有两个方案可以考虑,是不同的方向。
 +
 +1. 尽量把字段设置的细一点,例如有许多的 job\_id,每个不同的板块、不同的角色,会形成不同的 Job\_id 。每个 Job\_id 都有标注的智慧豆数。每次登记智慧豆,都要有对应的 job\_id,如果是新增的工作内容,就由管理员添加 Job\_id. 好处是各种细节统计查询很方便,坏处是有点复杂。
 +
 +2. 每次只用记录基本的信息,就是姓名+豆豆数,然后做一个简单的说明就好。这种方式的好处就是简单,不足是,以后细节统计查询不方便。
 +
 +或者两者可以组合,对于那些固定的任务角色,我们可以设置 Job_id, 那些比较复杂的逻辑,我们就直接登记一个姓名/豆豆数/人工说明 就好。
 +
 +我想的是,可以分成两个角色:
 +
 +1. 申请智慧豆。相当于录入的过程,提供工具,由各个板块自己提交申请。
 +
 +2. 审核智慧豆。爱豆组看见的是各个板块提交上来的智慧豆申请,然后核实后就点击动过。有问题就做补充。
 +
 +类似,公司里,每个员工出差回来要提交报销单,自己填写花了多少钱,每一项花费的明细等,提交后,财务做审批,审批通过了,就把报销款打给员工。
 +
 +咱们可以在每个板块培养一个专门申报智慧豆的同学,通过工具填写申请,提交。爱豆组进行审核,有问题,需要告诉他如何重新提交等等。
 +
 +还有自动扣智慧豆和自动增加智慧豆的功能设计。
 +### 2. 现有的智慧豆如何录入?
 +
 +已经存在的智慧豆,如果录入到系统?
 +
 +大体思路:
 +
 +1. 之前的不用录入那么细致,暂时只用按月录入就好。把一个月的信息,按照一条记录录入。
 +2. 如果以后有具体需求,也有时间和人力,可以把之前的细节的录入进去。因此问题也不大。
 +3. 之后的数据,都按照新要求录入。
 +
 +{{ :jsb:zhihuidou.png|}}
 +
 +### 3. 设计想法:
 +有几个工具需要设计:
 +
 +1. 智慧豆申请(录入工具)
 +2. 智慧豆审核
 +3. 智慧豆查询
 +
 +涉及到权限管理,
 +
 +1. 所有人默认只能查询自己的智慧豆
 +1. 爱豆组同学有审核权限,有增加 Job\_id 的权限
 +1. 板块数据服务同学有申请权限
 +1. 管理员Admin,有所有权限,分配用户。
 +1. 数据分析团队,有查询权限。
 +
 +前期设计和开发,可能不用用户权限,安全性方面,不用过多考虑。实现基本功能,功能没问题了,大家都觉得挺好用的,再把用户权限,用户管理加上。
 +
 +智慧豆查询部分,有多种需求:
 +
 +1. 个人查询自己的智慧豆情况
 +1. 数据分析组,根据各种组合条件查询智慧豆,
 +   1. 按照月汇总
 +   1. 本月智慧豆排序
 +   1. 按照>100 智慧豆的过滤
 +   1. ……
 +1. 每次查询可以下载,或者生成 pdf 文件。优先级不高
 +1. 还有别的查询需求吗?
 +
 +智慧豆审核方面,有写细节:
 +
 +1. 可以修改每一条记录
 +1. 可以退回申请
 +1. 可以通过申请
 +1. 可以添加某个 job\_id
 +1. 可以删除某个申请
 +1. 所有操作,需要有后台记录。
 +### 4 chatGPT 根据文档的设计:
 +
 +
 +{{:jsb:pasted:20240626-160907.png}}
 +
 +{{:jsb:pasted:20240626-160924.png}}
 +
 +{{:jsb:pasted:20240626-160942.png}}
 +
 +```sql
 +CREATE TABLE Users (
 +    user_id INT AUTO_INCREMENT PRIMARY KEY,
 +    username VARCHAR(50) NOT NULL,
 +    password_hash VARCHAR(255) NOT NULL,
 +    name VARCHAR(50) NOT NULL,
 +    role VARCHAR(20) NOT NULL,
 +    bean_total INT DEFAULT 0,
 +    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
 +    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 +);
 +INSERT INTO Users (username, password_hash, name, role, bean_total) VALUES ('admin', '$5$j0XLA1mfecbiZlcX$wVFoj7F1fbbxoSWOfwnxZkVcTW/.yUj5WZzhyt/SmK0', 'Admin User', 'admin', 0);
 +```
 +
 +```sql
 +CREATE TABLE Jobs (
 +    job_id INT AUTO_INCREMENT PRIMARY KEY,
 +    job_name VARCHAR(50) NOT NULL,
 +    default_bean INT NOT NULL,
 +    description TEXT,
 +    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
 +    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
 +);
 +```
 +
 +```sql
 +CREATE TABLE WisdomBeanRecords (
 +    record_id INT AUTO_INCREMENT PRIMARY KEY,
 +    user_id INT NOT NULL,
 +    bean_num INT NOT NULL,
 +    description TEXT,
 +    status VARCHAR(20) NOT NULL,
 +    job_id INT,
 +    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
 +    update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 +    FOREIGN KEY (user_id) REFERENCES Users(user_id),
 +    FOREIGN KEY (job_id) REFERENCES Jobs(job_id)
 +);
 +```
 +
 +```sql
 +CREATE TABLE AutoBeanAdjustments (
 +    adjustment_id INT AUTO_INCREMENT PRIMARY KEY,
 +    user_id INT NOT NULL,
 +    bean_num INT NOT NULL,
 +    reason TEXT,
 +    create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
 +    FOREIGN KEY (user_id) REFERENCES Users(user_id)
 +);
 +```