|
|
@@ -1,15 +1,13 @@
|
|
|
# Augment Guidelines for KKU Laravel Project
|
|
|
|
|
|
## 项目概述
|
|
|
-这是一个基于Laravel的农场游戏系统,包含35个模块,使用Docker运行,访问地址:http://kku_laravel.local.gd
|
|
|
+这是一个基于Laravel的农场游戏系统,本地使用Docker运行,访问地址:http://kku_laravel.local.gd
|
|
|
|
|
|
## 工作流程规范
|
|
|
|
|
|
### 任务开始前
|
|
|
1. 获取当前时间:使用 `date` 命令
|
|
|
2. 检查git状态:`git status`
|
|
|
-3. 加载项目偏好习惯:查看 `AiWork/偏好习惯.md`
|
|
|
-4. 使用codebase-retrieval工具获取相关代码信息
|
|
|
|
|
|
### 任务执行中
|
|
|
1. 使用MCP测试网页修改
|
|
|
@@ -46,14 +44,12 @@
|
|
|
- 为模型创建独立Cast类,不同模型不共用Cast类
|
|
|
- 不使用数据库迁移类,直接提供SQL语句修改数据库结构
|
|
|
|
|
|
-### 后台控制器层 (Controller)
|
|
|
-- 后端控制器继承自 `UCore\DcatAdmin\AdminController`
|
|
|
+### 后台(Admin)
|
|
|
+- 后台控制器继承自 `UCore\DcatAdmin\AdminController`
|
|
|
- 使用Grid/Show/Form的'make'方法实例化
|
|
|
- 使用GridHelper/ShowHelper/FormHelper/FilterHelper辅助类
|
|
|
- 后台控制器添加路由注释,加入后台菜单适当位置
|
|
|
- 后台列表页面来源表名列可点击跳转到对应详情页面
|
|
|
-
|
|
|
-### 仓库层 (Repository)
|
|
|
- Repository类参考Fund模块实现,内部不包含方法,仅供后台管理数据访问
|
|
|
- 仓库层仅供后台控制器使用
|
|
|
|
|
|
@@ -61,7 +57,7 @@
|
|
|
- 服务层:对外Service(静态方法),内部Logic类
|
|
|
- 服务层直接使用逻辑层和模型,仓库层仅供后台控制器使用
|
|
|
- 服务层返回DTO对象而非Model,Handler中将DTO转换为protobuf格式
|
|
|
-- 逻辑层不能开启事务
|
|
|
+- 逻辑层不能开启事务,需要事务进行事务开启检查
|
|
|
|
|
|
### DTO层
|
|
|
- DTO类继承自 `UCore\Dto\BaseDto`
|
|
|
@@ -69,15 +65,12 @@
|
|
|
- 使用驼峰命名公共属性
|
|
|
|
|
|
### 验证层 (Validation/Validator)
|
|
|
-- 使用Validation和Validator类处理验证逻辑,参考GodActivationValidation模式
|
|
|
-- Validator类实现单一验证逻辑,使用addError方法而非throwMessage
|
|
|
-- Validator类字段Key使用$arg参数传入,不直接硬编码
|
|
|
+- 使用Validation和Validator类处理验证逻辑,参考'docs/Validation使用示例.md'
|
|
|
- Validation类禁止动态属性赋值,需先定义属性并声明类型
|
|
|
|
|
|
### Handler层
|
|
|
- Handler类参考PesticideHandler模式:先验证再执行操作
|
|
|
- Handler类不设置异常处理,继续抛出异常交由框架处理
|
|
|
-- Handler成功时使用RESPONSE_CODE常量设置响应码,不使用魔法数字0
|
|
|
|
|
|
## 包管理规范
|
|
|
- 始终使用包管理器进行依赖管理,不手动编辑包配置文件
|
|
|
@@ -89,47 +82,9 @@
|
|
|
- 建议为新功能编写测试并执行验证
|
|
|
|
|
|
## 文档规范
|
|
|
-- 自动生成目录下添加README.md声明内容自动生成不可修改
|
|
|
- README.md使用可点击目录结构,包含锚点链接和状态图标
|
|
|
- 文档偏好包含流程图和图表以便更好地可视化
|
|
|
|
|
|
-## 核心模块特殊规范
|
|
|
-
|
|
|
-### Fund模块(资金系统)
|
|
|
-- 全面采用小数存储模式:DECIMAL(30,10)直接存储小数值
|
|
|
-- 精度配置硬编码到FUND_CURRENCY_TYPE枚举中
|
|
|
-- 支持冻结账户功能,钻石币种支持10位小数精度
|
|
|
-- '币种ID'指FUND_CURRENCY_TYPE枚举value值(1=金币,2=钻石,3=人民币,4=美元)
|
|
|
-
|
|
|
-### GameItem模块(物品系统)
|
|
|
-- 物品冻结功能采用拆堆模式
|
|
|
-- ItemUser表增加is_frozen字段标识冻结状态
|
|
|
-- 冻结记录表使用source_id和source_type而非order_id
|
|
|
-- 不需要自动解冻逻辑(由冻结发起方处理)
|
|
|
-
|
|
|
-### Mex模块(农贸市场交易系统)
|
|
|
-- 挂单时无价格验证,最低价和最高价仅为参考
|
|
|
-- 挂单不会立即成交,所有订单先创建后由撮合任务处理成交
|
|
|
-- 大额订单应该卡住小额订单(业务需求而非要避免的问题)
|
|
|
-
|
|
|
-### UrsPromotion模块(URS推广系统)
|
|
|
-- 使用独立命名空间App\Module\UrsPromotion和数据库表前缀urs_promotion_
|
|
|
-- 三代推广系统:支持直推、间推、三推三代推广关系
|
|
|
-- 分离映射关系设计:独立用户映射表 + 纯URS推荐关系表
|
|
|
-- 推荐关系只存储urs_user_id,通过映射表关联农场用户
|
|
|
-
|
|
|
-### Cleanup模块(数据清理系统)
|
|
|
-- 创建专门的Cleanup模块实现数据清理功能
|
|
|
-- 设计为独立数据清理系统,提供后台管理界面配置每个表的清理条件
|
|
|
-- 包含完整安全机制:多重确认、预览模式、权限控制、操作审计、分批处理
|
|
|
-- 支持完全自由的表选择,不局限于模块边界
|
|
|
-
|
|
|
-### ThirdParty模块(第三方服务对接)
|
|
|
-- 专门处理接入第三方服务需求,与OpenAPI模块互补
|
|
|
-- 实现标准化基础架构:BaseRequest请求基类、BaseWebhook基类
|
|
|
-- 路由规则:/thirdParty/webhook/{包名}/{Handler路由}
|
|
|
-- 一个Request类只完成一种请求,遵循单一职责原则
|
|
|
-
|
|
|
## 调试和错误处理
|
|
|
- 接口数据问题时优先检查数据结构字段名匹配
|
|
|
- 注意Logic层返回字段名与Handler中访问字段名一致
|