For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 在管理后台建立供应商销售体系,支持多体系管理、成员、商品关联、结算
Architecture: 4 张新表 (supply_system, supply_system_member, supply_settlement, supply_settlement_detail) + 扩展现有 product_orders 表。后端 Spring Boot 2.7.18 新增 4 Entity + 4 Mapper + 2 Service + 2 Controller。前端 Vue 2 + Element UI 新增 3 页面 + 修改 3 个现有页面。
Tech Stack: Spring Boot 2.7.18 / MyBatis-Plus / Vue 2 / Element UI
| 文件 | 职责 |
|---|---|
entity/SupplySystem.java |
供应商体系实体 |
entity/SupplySystemMember.java |
体系成员实体 |
entity/SupplySettlement.java |
结算记录实体 |
entity/SupplySettlementDetail.java |
结算明细实体 |
mapper/SupplySystemMapper.java |
体系 Mapper |
mapper/SupplySystemMemberMapper.java |
成员 Mapper |
mapper/SupplySettlementMapper.java |
结算 Mapper |
mapper/SupplySettlementDetailMapper.java |
结算明细 Mapper |
service/SupplySystemService.java |
体系 + 成员业务逻辑 |
service/SupplySettlementService.java |
结算业务逻辑 |
controller/admin/SupplySystemController.java |
体系/成员 API |
controller/admin/SupplySettlementController.java |
结算 API |
| 文件 | 修改内容 |
|---|---|
entity/ProductOrder.java |
加 supplySystemId, supplierUserId 字段 |
entity/Product.java |
已有 distributionSystemId, profitRate — 确认可用 |
| 文件 | 职责 |
|---|---|
src/views/admin/supply-system/List.vue |
体系列表 |
src/views/admin/supply-system/Form.vue |
新建/编辑体系 |
src/views/admin/supply-system/Detail.vue |
体系详情(4 Tab) |
| 文件 | 修改内容 |
|---|---|
src/api/admin.js |
新增 supply-system CRUD API |
src/views/admin/ProductEdit.vue |
增加「所属供应商体系」下拉框 |
src/views/admin/ProductEdit.vue |
选择体系后自动填充 profit_rate |
src/views/Layout.vue |
侧边栏新增「供应商体系」菜单 |
src/router/index.js |
新增 supply-system 路由 |
文件: 在 cfc-backend/src/main/resources/ 下创建 supply_system_schema.sql
product_orders 语句(加两个字段 + 索引)文件:
entity/SupplySystem.java, entity/SupplySystemMember.javaentity/SupplySettlement.java, entity/SupplySettlementDetail.javamapper/SupplySystemMapper.java, mapper/SupplySystemMemberMapper.javamapper/SupplySettlementMapper.java, mapper/SupplySettlementDetailMapper.javaEntity 模板 (以 SupplySystem 为例,使用 @Data + @TableName + @TableId(type = IdType.AUTO),实现 Serializable):
@Data
@TableName("supply_system")
public class SupplySystem implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
private String name;
private Long adminId;
private Integer settlementPeriodDays;
private BigDecimal platformProfitRate; // 百分比,如 5.00
private String description;
private String status; // active/disabled
private Date createdAt;
private Date updatedAt;
}
extends BaseMapper<Entity>,加 @Mapper)cd cfc-backend && mvn clean compile → 通过[ ] 在 ProductOrder.java 中新增:
private Long supplySystemId;
private Long supplierUserId;
[ ] 确认 Product.java 已有 distributionSystemId 和 profitRate 字段
[ ] 编译通过
文件: Create service/SupplySystemService.java
方法:
list(params) — 分页查询(支持 keyword 模糊搜索 name,status 过滤)detail(id) — 按 ID 查询create(params) — 创建体系,创建者自动成为 admin 成员update(params) — 更新体系toggleStatus(id) — 切换 active/disabledlistAll() — 查询所有 active 体系(供前端下拉框)memberList(systemId) — 查询成员列表(联表 User 取 nickname/phone)addMember(systemId, userId) — 添加成员(role=member)removeMember(memberId) — 移除成员changeRole(memberId, role) — 变更角色DI: @Resource SupplySystemMapper, SupplySystemMemberMapper, UserMapper
文件: Create service/SupplySettlementService.java
方法:
list(params) — 分页查询(支持 systemId, status 过滤)detail(id) — 按 ID 查询detailItems(settlementId) — 查询结算明细列表createSettlement(params) — 创建结算单confirm(id) — 确认结算(pending → settled)
[ ] 创建 Service
[ ] 编译通过
文件: Create controller/admin/SupplySystemController.java
路由 /api/admin/supply-system,提供端点:
| 端点 | 方法 |
|---|---|
/list |
list |
/create |
create |
/update |
update |
/detail |
detail |
/toggle-status |
toggleStatus |
/list-all |
listAll |
/member/list |
memberList |
/member/add |
addMember |
/member/remove |
removeMember |
/member/change-role |
changeRole |
文件: Create controller/admin/SupplySettlementController.java
路由 /api/admin/supply-settlement,提供端点:
| 端点 | 方法 |
|---|---|
/list |
list |
/detail |
detail |
/detail-items |
detailItems |
/create |
createSettlement |
/confirm |
confirm |
文件: Modify cfc-web/src/api/admin.js
在 商品管理 API 之前添加 15 个 API 函数(对应后端所有端点)。
关键函数:
getSupplySystemList, createSupplySystem, updateSupplySystemgetSupplySystemDetail, toggleSupplySystemStatuslistAllSupplySystems — 供 ProductEdit 下拉框使用getSupplySystemMembers, addSupplySystemMember, removeSupplySystemMember, changeSupplySystemMemberRolegetSupplySettlementList, getSupplySettlementDetail, getSupplySettlementDetailItemscreateSupplySettlement, confirmSupplySettlement
[ ] 在 admin.js 末尾添加 15 个 API 导出函数
文件: Create src/views/admin/supply-system/List.vue
文件: Create src/views/admin/supply-system/Form.vue
/supply-system/create) vs 编辑模式 (/supply-system/:id/edit)文件: Create src/views/admin/supply-system/Detail.vue
4 个 el-tab-pane:
distribution_system_id 查询商品列表{ path: '/supply-system', label: '供应商体系', icon: 'el-icon-s-management', perm: 'supply:system' }cd cfc-backend && mvn clean compile — 0 errorcd cfc-web && npm run build — Build complete