---
description: Java类、方法、数据库表、接口路径、权限标识全量命名规范（若依微服务+达梦8，无会议/BPM）
globs: ["**/*.java","**/*.sql","**/*.yml"]
alwaysApply: false
---
# 冲突优先级声明
达梦数据库规范、Java编码禁令优先级高于本文件。

# 全项目统一命名规范
## 一、Java类命名
| 类类型 | 命名格式 | 示例 |
| ---- | ---- | ---- |
| 数据库DO实体 | {业务}DO | GoodsDO |
| 创建更新请求VO | {业务}SaveReqVO | GoodsSaveReqVO |
| 分页查询请求VO | {业务}PageReqVO | GoodsPageReqVO |
| 响应VO | {业务}RespVO | GoodsRespVO |
| Feign远程DTO | {业务}DTO | GoodsDTO |
| Service接口 | {业务}Service | GoodsService |
| Service实现 | {业务}ServiceImpl | GoodsServiceImpl |
| Mapper接口 | {业务}Mapper | GoodsMapper |
| 转换类Convert | {业务}Convert | GoodsConvert |
| 枚举类 | {业务}Enum | GoodsStatusEnum |
| 错误码常量 | ErrorCodeConstants | 统一文件追加 |
| Controller后台 | {业务}AdminController | GoodsAdminController |
| Controller移动端APP | {业务}AppController | GoodsAppController |

## 二、Service方法命名统一标准
| 功能 | 方法名 | 返回值 |
| ---- | ---- | ---- |
| 新增创建 | create{Entity} | String（雪花ID） |
| 更新 | update{Entity} | void |
| 删除单条 | delete{Entity} | void |
| 批量删除 | delete{Entity}ListByIds | void |
| 根据ID查询（不存在抛异常） | get{Entity} | DO实体 |
| 根据ID查询（允许空） | get{Entity}IfExists | DO实体 |
| 分页查询 | get{Entity}Page | PageResult<DO> |

## 三、达梦8数据库命名规范
1. 业务表前缀 `business_`，格式 `business_{模块}_{业务}`，全小写蛇形；
   示例：`business_goods_info`、`business_user_address`
2. 字段全小写蛇形，与DO驼峰字段一一映射；
3. 索引命名：普通索引 `idx_字段名`；唯一索引 `uk_字段名`；
4. 字典系统表复用若依自带 `sys_dict_type`、`sys_dict_data`，不新建字典表。

## 四、微服务接口路径命名
1. 管理后台接口：`/api/admin/{模块}/{业务}`
   示例：`/api/admin/business/goods`
2. APP移动端接口：`/api/app/{模块}/{业务}`
   示例：`/api/app/business/goods`
3. CRUD固定后缀：
   创建 POST `/create`；更新 PUT `/update`；删除 DELETE `/delete`；
   查询单条 GET `/get`；分页 GET `/page`；导出 GET `/export-excel`

## 五、权限标识命名（Sa-Token）
格式：`{模块}:{业务}:{操作}`
操作固定枚举：create / update / delete / query / export
示例：`business:goods:create`、`business:goods:query`

## 六、常量&魔法值命名
1. 业务状态全部枚举类，禁止硬编码数字；
2. 全局固定阈值、模板ID、字典Key统一放入XXXConstants常量类；
3. 错误码分段规范：
   - system系统模块：1_001_xxx_xxx
   - business业务模块：1_100_xxx_xxx

## 七、前端文件命名
1. Vue后台列表页面：index.vue；表单抽屉：XxxFormDrawer.vue；详情抽屉：XxxDetailDrawer.vue；
2. UniApp APP页面：短横线kebab-case命名；
3. API类型文件：types.ts；接口请求文件：index.ts。
