WORK2.md 5.2 KB

问题:

  1. 目前代码中没有 is_random /random_count 的使用,代表该功能未实现 (查实,无需修改)
  2. 这个和奖励项中的数量有什么关系

先提交代码; 商店商品-列表,增加加'消耗组详情,奖励组详情'列,展示消耗组内容/奖励组内容 修改后浏览器后进行查看,确认显示正常才可以完成任务 本系统没有任何Api,你写的Api是干嘛的; shop_items 的 $max_buy 最大购买数量(0表示无限制)是否已经被完全替代,期望是被新的限购替代; shop_items 的 $max_buy 确认被替代后移除,使用mcp执行sql

看日志,修复问题,使用下面命令进行验证 php artisan debug:reproduce-error 68991486 请求 request_1749722768045 cd /data/wwwroot/urs/kku_laravel

php artisan debug:reproduce-error 68994830 68994830 用户10004登陆

php artisan debug:reproduce-error 68994846 68994846 用户10003登陆

Fund模块扩展,资金数储存 从bigint 改用 DECIMAL(30,10);依旧沿用 硬编码的精度设置,精度设置是为了处理php的运算精度,不同的币种采用的精度不同,与数据库精度兼容

挂单没有价格限制,挂单要冻结资金(买入) /物品(卖出);冻结到 用户的 冻结账户 资金 流转方向 : 用户自己的基本账户 -》用户自己的这个货币的冻结账户 -》 成交 -》
维护文档

目前的GameItem模块,遇到了一个问题;在实现匹配交易的过程中,卖出物品,需要冻结该物品,但是物品的冻结,没有实现;给一个思路,总结到物品模块的 ‘冻结实现’ 文档中;不进行代码开发,只处理文档

ItemInstance 的扩展没有意义,因为ItemInstance是物品实例表,记录的是物品信息,而不存在物品归属的概念 维护文档,不进行开发

冻结记录表,order_id 替换为 source_id 操作方记录ID 和 source_type 操作类型 ;自动解冻 逻辑不存在;解冻是由冻结发起方处理的; 同样 ItemUser扩展也不需要‘冻结过期时间‘、‘冻结数量’、’冻结原因‘、‘冻结时间’;‘关联的订单ID(如果是因订单冻结)’ 替换为 ‘冻结日志ID’

交易日志,不记录冻结相关信息,冻结信息由冻结表记录,冻结本质没有改变物品归属,所以交易日志中不记录 ItemUser 的扩展,让我们采用冻结即拆‘堆’的模式实现,对于 1000个的堆叠,冻结200个,则拆分为两个堆,一个200个 (冻结),一个800个可用;增加 是否冻结 字段;冻结的堆,不能使用

Protobuf的 DataItem 已经更新(堆id 是 item_user表的id),完成适配,包括:DataHanlder的查询,Lastdata 数据变更的同步

完善 资金/物品的流向 的内容,增加图表到文档,不修改带代码

  1. 用户买入物品
    • 挂单: 资金从 本用户的.可用账户 =》 用户的.冻结账户(用户总资金不变)
    • 取消挂单 资金从 用户的.冻结账户 =》用户的.可用账户 (用户总资金不变)
    • 挂单成交
      • 资金从 用户的.冻结账户 =》仓库账号.可用账户 (用户总资金减少)
      • 物品从 仓库账号 =》 用户.可用状态 (用户物品总数增加)
  2. 用户卖出物品
    • 挂单: 物品从 用户物品.可用状态 =》 用户物品.冻结状态(用户物品总数不变)
    • 取消挂单 物品从 用户物品.冻结状态 =》用户物品.可用状态 (用户物品总数不变)
    • 挂单成交
      • 资金从 仓库账号.可用账户 =》 用户的.可用账户(用户总资金增加)
      • 物品从 用户物品.可用状态 =》 仓库账号(用户物品总数减少)

用户买入物品撮合算法 修正

  • 获取待撮合,价格符合,且不超量的用户买入物品订单
  • 二级排序(mysql获取时就排序):价格 和 时间
  • 遇到库存不足,不再跳过处理下一个订单,而是结束本次处理(被大数额挂单卡单)

Fund 模块的 小数 适配还未完成 ,比如 \App\Module\Fund\Services\FundService::balance 返回还是 int ,应该是 float 检查 Fund模块其他位置的小数适配问题

在非Fund模块外,不应该自行处理资金数值问题,从Fund模块服务层返回的资金数值是可信的;

需要增加1个‘开放平台’的模块,用于处理第三方应用的接入 处理第三方应用的接入信息 和 处理接入第三方应用的信息 ,适合一个模块么? OpenAPI模块 - 专门处理对外开放API的需求 OpenAPI模块 加入到后台菜单(数据库,而不是硬编码),创建新的顶级菜单‘外接管理’

ThirdParty模块 - 专门处理接入第三方服务的需求

URS团队收益记录表 扩展,增加 :‘产生收益的农场用户id’字段 目前处于开发阶段,直接修改,修改代码,修改文档,不处理旧数据

农场模块,增加农场配置,先规划文档到 农场模块/Docs

返回数据 ResponsePromotionInfo 增加了 star_level ,修改handler

App\Module\Game\Services\ConsumeService::executeConsume(): Argument #4 ($sourceId) must be of type int, string given, called in /www/wwwroot/kku.wooyo.cc/kku_laravel/app/Module/Farm/Logics/LandLogic.php on line 207",