02. 核心业务开发 (AI 辅助编码)¶
工程思维
AI 再聪明,也只是个“大脑”。如果后端没有提供执行任务的方法(Service),AI 就只能是个聊天机器人,干不了实事。
本节我们将编写 SmartBook 的核心业务逻辑,为下一节的 AI 智能体提供一双“灵巧的手”。
🔨 第一步:基础设施搭建 (Entity & Mapper)¶
在 01-design.md 中我们已经建立了数据库表。现在,利用工具一键生成 Java 代码。
1. 使用 MyBatisX 生成¶
如果你安装了 MyBatisX 插件:
1. 在 IDEA 连接 Database。
2. 右键 t_user, t_book, t_transaction 表。
3. 选择 "MyBatisX-Generator"。
4. 生成 Entity、Mapper 接口、Mapper XML。
2. 检查关键注解¶
生成后,请务必检查以下两点:
- 实体类:是否有
@Data(Lombok)。 - Mapper 接口:头上是否有
@Mapper,或者在启动类加了@MapperScan。
🔧 第二步:编写 TradeService (核心)¶
我们要创建一个 TradeService,它承载了系统最关键的两个动作:发布 和 购买。
1. 方法一:发布图书 (publishBook)¶
逻辑比较简单:验证卖家是否存在 -> 插入图书数据。
让 AI 写简单逻辑
Prompt:
"请基于 Spring Boot + MyBatis,帮我写一个
TradeService的方法publishBook。
参数:String sellerName,String title,BigDecimal price。
逻辑:
1. 调用UserMapper根据名字查用户,如果你找不到这个方法,请假设它叫selectByName。
2. 如果用户不存在,抛出异常。
3. 创建Book对象,状态设为 'ON_SALE'。
4. 调用BookMapper插入数据。
5. 返回插入后的 Book 对象。"
参考代码 (Java):
2. 方法二:购买图书 (buyBook) —— 事务实战¶
这是本章的重难点。买书涉及资金变动,必须保证数据一致性。
逻辑流转图:
graph LR
Start(开始购买) --> CheckBook{检查图书}
CheckBook -- "有效" --> CheckMoney{检查余额}
CheckBook -- "无效" --> Fail[❌ 抛异常]
CheckMoney -- "不足" --> Fail
CheckMoney -- "充足" --> Deduct[💸 扣减余额]
subgraph "事务保护区 (@Transactional)"
Deduct --> OffShelf[🔻 修改图书状态]
OffShelf --> Record[📝 插入订单记录]
end
Record --> Success[✅ 交易成功]
Fail --> Rollback[⏪ 事务回滚]
让 AI 写事务代码
Prompt:
"请在
TradeService中补充buyBook(String buyerName, Long bookId)方法。
核心要求:
1. 检查图书是否存在且状态为 'ON_SALE'。
2. 检查买家余额是否充足。
3. 原子操作:扣减买家余额、将图书状态改为 'SOLD'、向t_transaction表插入一条记录。
4. 必须加上@Transactional注解,确保余额不足或扣款失败时,图书状态不会被修改。"
参考代码 (Java):
🧪 第三步:自动化测试 (JUnit 5)¶
代码写完了,能不能跑?别急着写 Controller,先用单元测试验证 Service 的逻辑。这是专业开发者的习惯。
在 src/test/java 下新建 TradeServiceTest.java。
让 AI 生成测试用例
Prompt:
"请为
TradeService.buyBook方法生成 JUnit 5 单元测试。
假设使用@SpringBootTest。
请生成两个测试用例:
1.testBuySuccess: 模拟余额充足,断言交易成功,且图书状态变为 SOLD。
2.testBuyFail: 模拟余额不足,断言抛出异常,且图书状态依然是 ON_SALE(事务回滚验证)。
关键测试代码示例:
✅ 本节验收¶
- 代码无红线:Entity、Mapper、Service 编译通过。
- 测试全变绿:运行
TradeServiceTest,进度条显示绿色。 - 数据库验证:跑完成功的测试后,去数据库看一眼,
t_transaction表里是否多了一条数据?
下一步: 现在,你的系统已经具备了强大的交易能力,但还需要程序员写代码来调用。 下一节,我们将给系统装上 DeepSeek 大脑,让它学会自己调用这些方法,实现“对话即交易”。 下一节:智能体集成 (Tool Calling 实战)