必经之路

抄一部心经,点一盏心灯

用户工具

站点工具


jsb:zhihuidou

智慧豆工具设计文档

时间:2024年 6 月 25 日

是时候给智慧豆做个工具了。

这里是 Judy 玉洁同学做的需求设计:智慧豆需求设计

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. 之后的数据,都按照新要求录入。

3. 设计想法:

有几个工具需要设计:

  1. 智慧豆申请(录入工具)
  2. 智慧豆审核
  3. 智慧豆查询

涉及到权限管理,

  1. 所有人默认只能查询自己的智慧豆
  2. 爱豆组同学有审核权限,有增加 Job_id 的权限
  3. 板块数据服务同学有申请权限
  4. 管理员Admin,有所有权限,分配用户。
  5. 数据分析团队,有查询权限。

前期设计和开发,可能不用用户权限,安全性方面,不用过多考虑。实现基本功能,功能没问题了,大家都觉得挺好用的,再把用户权限,用户管理加上。

智慧豆查询部分,有多种需求:

  1. 个人查询自己的智慧豆情况
  2. 数据分析组,根据各种组合条件查询智慧豆,
  3. 按照月汇总
  4. 本月智慧豆排序
  5. 按照>100 智慧豆的过滤
  6. ……
  7. 每次查询可以下载,或者生成 pdf 文件。优先级不高
  8. 还有别的查询需求吗?

智慧豆审核方面,有写细节:

  1. 可以修改每一条记录
  2. 可以退回申请
  3. 可以通过申请
  4. 可以添加某个 job_id
  5. 可以删除某个申请
  6. 所有操作,需要有后台记录。 ### 4 chatGPT 根据文档的设计:

snippet.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);
snippet.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
);
snippet.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)
);
snippet.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)
);
jsb/zhihuidou.txt · 最后更改: 2024/06/26 16:46 由 admin