使用deepseek+cursor快速开发服务端

资料下载链接:https://linux.do/t/topic/512161

1. 从资料中找到部门管理的产品原型和需求文档

上传图片, 编写下述的提示词:

请根据提供的页面原型和需求说明, 帮我分析一下部门管理设计到几张表, 具体是什么表, 只需要给出设计到几张表即可, 不需要具体的字段及建表语句。(请严格根据页面原型和需求文档分析)

注意:ai回答后,一定要验证答案的正确性

部门管理模块只有一张表, 部门表

2. 从资料中找到员工管理的产品原型和需求文档

上传图片, 编写下述的提示词:

请根据提供的页面原型和需求说明, 再帮我分析一下员工管理设计到几张表, 具体是什么表, 只需要给出设计到几张表即可, 不需要具体的字段及建表语句。(请严格根据页面原型和需求文档分析)

注意:ai回答后,一定要验证答案的正确性

员工管理模块涉及到两张表, 包含员工表和员工经历表

3. 分析表之间的关系

编写下述的提示词:

好的, 我知道了部门管理及员工管理模块, 共涉及三张表, 分别是:部门表, 员工表, 员工经历表, 请帮我分析一下这三张表之间的关系。(一对一, 一对多, 多对多)

注意:ai回答后,一定要验证答案的正确性

部门表:员工表 = 1:n  员工表:员工经历表 = 1:n

注:在多的一方设置外键,ai的回答一般没啥问题

4. 设置建表语句

编写部门表的建表语句:

编写下述的提示词:

那接下来请根据提供的部门管理的页面和需求文档, 帮我设计一下部门表的表结构 , 注意:目前只考虑部门表, 请参照提供的需求说明,为部门表的每个字段设置 合适的字段类型和约束(严格根据页面原型和需求文档设计)。最终给出mysql数据 库的建表语句

调整建表语句:

编写下述的提示词:

部门表的建表语句, 需要做以下调整: 1. 表名改为 dept; 2. 再添加一个字段 create_time, 记录创建时间 其他信息不变;给出调整好的建表语句

编写员工表的建表语句:

部门表 dept 的表结构已经确定了, 那接下来, 请根据提供的员工模块的页面原型 和需求文档的截图, 帮我生成员工表emp, 已经员工工作经历表 emp_expr 的建表语句。 (注意:一定要结合页面原型和需求文档, 分析具体有那些字段,字段类型,约束)

5. 确定建表语句【同时插入测试数据】

CREATE DATABASE tb_1;
USE tb_1;
-- 创建部门表
CREATE TABLE dept (
                      id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
                      name VARCHAR(10) NOT NULL UNIQUE COMMENT '部门名称,长度2-10位',
                      create_time DATETIME NOT NULL COMMENT '创建时间',
                      update_time DATETIME NOT NULL COMMENT '最后操作时间',
                      INDEX idx_update_time (update_time DESC) COMMENT '按最后操作时间倒序索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';

-- 插入测试数据
INSERT INTO dept (name, create_time, update_time) VALUES
                                                      ('财务部门', '2023-01-21 12:06:00', '2023-01-21 12:06:00'),
                                                      ('技术部门', '2023-01-21 12:06:00', '2023-01-21 12:06:00'),
                                                      ('人事部门', '2023-01-21 12:06:00', '2023-01-21 12:06:00'),
                                                      ('市场部门', '2023-01-21 12:06:00', '2023-01-21 12:06:00');


-- 创建员工表
CREATE TABLE emp (
                     id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
                     username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名,2-20位字母,必填,唯一',
                     password VARCHAR(64) DEFAULT '123456' COMMENT '登录密码',
                     name VARCHAR(10) NOT NULL COMMENT '姓名,2-10位汉字,必填',
                     gender TINYINT NOT NULL COMMENT '性别:1-男,2-女',
                     phone CHAR(11) NOT NULL COMMENT '手机号,11位数字,必填',
                     position TINYINT COMMENT '职位, 1: 班主任, 2:讲师, 3:学工主管, 4:教研主管,5:咨询师',
                     salary INT COMMENT '薪资,数字,选填',
                     img VARCHAR(255) COMMENT '头像路径',
                     hire_date DATE NOT NULL COMMENT '入职日期,必填',
                     dept_id INT NOT NULL COMMENT '部门ID,关联dept表',
                     create_time DATETIME NOT NULL COMMENT '创建时间',
                     update_time DATETIME NOT NULL COMMENT '最后操作时间',
                     INDEX idx_update_time (update_time DESC) COMMENT '按最后操作时间倒序索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工表';

-- 创建员工工作经历表
CREATE TABLE emp_expr (
                          id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
                          emp_id INT NOT NULL COMMENT '员工ID,关联emp表',
                          company VARCHAR(100) COMMENT '公司名称',
                          position VARCHAR(50) COMMENT '职位',
                          start_date DATE COMMENT '开始时间',
                          end_date DATE COMMENT '结束时间',
                          create_time DATETIME NOT NULL COMMENT '创建时间',
                          update_time DATETIME NOT NULL COMMENT '最后操作时间',
                          FOREIGN KEY (emp_id) REFERENCES emp(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工工作经历表';

-- 插入测试数据
INSERT INTO emp (username, password, name, gender, phone, position, salary, hire_date, dept_id, create_time, update_time) VALUES
                                                                                                                              ('phaomin', '123456', '赵敏', 2, '15589128904', 1, 4200, '2023-04-05', 1, '2023-04-05 10:00:00', '2023-04-05 10:00:00'),
                                                                                                                              ('zhangsan', '123456', '张三', 1, '13812345678', 2, 5000, '2023-03-01', 2, '2023-03-01 09:00:00', '2023-03-01 09:00:00');

-- 插入工作经历测试数据
INSERT INTO emp_expr (emp_id, company, position, start_date, end_date, create_time, update_time) VALUES
                                                                                                     (1, '普通巴巴账号管理公司', '权限及操作流程管理', '2019-02-01', '2023-06-15', '2023-04-05 10:00:00', '2023-04-05 10:00:00'),
                                                                                                     (1, '电子科技操作系统公司', '产品经理', '2019-06-01', '2019-01-15', '2023-04-05 10:00:00', '2023-04-05 10:00:00');
SELECT * FROM emp;
SELECT * FROM emp_expr;

-- 为员工表插入10条数据
INSERT INTO emp (username, password, name, gender, phone, position, salary, hire_date, dept_id, create_time, update_time) VALUES
                                                                                                                              ('wangwu', '123456', '王五', 1, '13912345678', 2, 5500, '2023-02-15', 2, '2023-02-15 08:30:00', '2023-02-15 08:30:00'),
                                                                                                                              ('lisi', '123456', '李四', 2, '13612345678', 1, 4500, '2023-01-10', 1, '2023-01-10 09:15:00', '2023-01-10 09:15:00'),
                                                                                                                              ('zhaoliu', '123456', '赵六', 1, '13712345678', 3, 6000, '2022-12-01', 3, '2022-12-01 10:20:00', '2022-12-01 10:20:00'),
                                                                                                                              ('qianqi', '123456', '钱七', 2, '13512345678', 4, 7000, '2022-11-05', 4, '2022-11-05 14:45:00', '2022-11-05 14:45:00'),
                                                                                                                              ('sunba', '123456', '孙八', 1, '13412345678', 5, 4800, '2023-03-20', 5, '2023-03-20 11:10:00', '2023-03-20 11:10:00'),
                                                                                                                              ('zhoujiu', '123456', '周九', 2, '13312345678', 2, 5200, '2023-02-28', 2, '2023-02-28 16:30:00', '2023-02-28 16:30:00'),
                                                                                                                              ('wushi', '123456', '吴十', 1, '13212345678', 1, 4300, '2023-01-25', 1, '2023-01-25 13:25:00', '2023-01-25 13:25:00'),
                                                                                                                              ('zhengshiyi', '123456', '郑十一', 2, '13112345678', 3, 5800, '2022-10-15', 3, '2022-10-15 15:40:00', '2022-10-15 15:40:00'),
                                                                                                                              ('fengshier', '123456', '冯十二', 1, '13012345678', 4, 6500, '2022-09-08', 4, '2022-09-08 09:50:00', '2022-09-08 09:50:00'),
                                                                                                                              ('chenshisan', '123456', '陈十三', 2, '15912345678', 5, 4600, '2023-03-15', 5, '2023-03-15 17:20:00', '2023-03-15 17:20:00');

-- 为工作经历表插入5条数据
INSERT INTO emp_expr (emp_id, company, position, start_date, end_date, create_time, update_time) VALUES
                                                                                                     (2, '科技发展有限公司', 'Java开发工程师', '2020-03-01', '2022-12-31', '2023-02-15 08:30:00', '2023-02-15 08:30:00'),
                                                                                                     (3, '教育咨询集团', '班主任', '2018-07-01', '2022-11-30', '2023-01-10 09:15:00', '2023-01-10 09:15:00'),
                                                                                                     (4, '互联网科技有限公司', '技术主管', '2017-05-01', '2022-10-31', '2022-12-01 10:20:00', '2022-12-01 10:20:00'),
                                                                                                     (5, '金融信息服务公司', '咨询顾问', '2019-09-01', '2023-02-28', '2022-11-05 14:45:00', '2022-11-05 14:45:00'),
                                                                                                     (6, '软件研发中心', '高级讲师', '2018-03-01', '2023-01-15', '2023-03-20 11:10:00', '2023-03-20 11:10:00');

6. 生成各个模块的接口文档

上传接口文档和产品原型图片,资料中的接口文档模版

请严格根据提供的部门管理的页面原型和需求说明, 以及提供的接口文档的模板, 参照提供的部门表dept的表结构, 基于Restful 风格, 帮我设计部门管理模块涉及到接口文档。dept部门表的表结构如下:

-- 创建部门表
CREATE TABLE dept (
                      id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
                      name VARCHAR(10) NOT NULL UNIQUE COMMENT '部门名称,长度2-10位',
                      create_time DATETIME NOT NULL COMMENT '创建时间',
                      update_time DATETIME NOT NULL COMMENT '最后操作时间',
                      INDEX idx_update_time (update_time DESC) COMMENT '按最后操作时间倒序索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';

验证:

查看接口文档中是否包含,增删改查的接口:

eg: 基于rest, 包含根据id查询单条部门数据,根据id 删除单条数据,查询所有部门,部门信息分页查询,添加部门,修改部门,前面ssm那篇详细讲了

请严格根据提供的员工管理的页面原型和需求说明, 以及提供的接口文档的模板, 参照提供的员工表emp和员工工作经历表emp_expr的表结构, 基于Restful 风格, 帮我设计部门管理模块涉及到接口文档。表结构如下:

.......

特殊的包含上传员工头像的接口,可以用OSS/集成平台【sealos】存储图片数据

7. 编写代码

将数据库表和接口文档,提供给cursor, 

编写下述的提示词:

使用Springboot + mybatis ,根据上面的数据库表和接口文档,进行代码的开发,jdk版本设置为17

一般一次提问就能编写完毕【网速好】

注:如果过程中出现报错,根据控制台的报错信息,跟cursor多交互几次就行

感觉cursor写代码, 代码比较老,拓展性没那么好【反正不用自己写】

开发完成后,使用postman进行接口测试

编写下述的提示词:

使用vue3 , 根据提供图片的样式进行,页面的开发

修改页面效果:直接提供原页面截图,然后提供需求即可

8. 登录模块开发

基本思路:输入员工表中的用户名和密码登录,初次登录后端生成JWT令牌,返回给前端,前端存储到本地,后续每次登录携带令牌,进行校验

编写下述的提示词:

接口需求文档
1. 登录接口基本信息
请求路径:/login

请求方式:POST

接口描述:该接口用于员工登录留学云帆-教学管理系统,登录完毕后,系统下发JWT令牌。

2. 请求参数样例
json
{
  "username": "songjiang",
  "password": "123456"
}
3. 响应数据样例
3.1 登录成功
json
{
  "code": 1,
  "msg": "success",
  "data": {
    "id": 2,
    "username": "songjiang",
    "name": "未订",
    "token": "eyJhbGciOiJIUzI1NiJ9.eyJpZCI6MiwidXNlcm5hbWUiOiJzb2

5namlhbmciLCJleHAiOjE2OTg3NDE3NjJ9.

wB6EkRXTep65rvMns3w5Rke79De7fdWhBLK-MKY"
  }
}
3.2 登录失败
json
{
  "code": 0,
  "msg": "用户名或密码错误",
  "data": null
}
4. 备注说明
用户登录成功后,系统会自动下发JWT令牌

在后续的每次请求中,都需要在请求头header中携带到服务器端

请求头的名称为 token,值为登录时下发的JWT令牌

如果检测到用户未登录,则直接响应401状态码

9. 完整项目链接

https://gitee.com/a-fish-v/zxyf-all/tree/master/

感谢大家的点赞和关注,你们的支持是我创作的动力!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值