16 KiB
修改记录
只记大改动:一个需求 / 一个模块算一条;同一件事的多轮微调合并成一条,不逐轮记。 排序:最新在最上面。 展开细节看
docs/updata_sql.md(数据库改动,含完整可执行 SQL)与.workbuddy/memory/YYYY-MM-DD.md(过程与踩坑)。 维护:完成一个大改动后,在顶部按日期加一条;同一天追加在该日期块末尾。
2026-09-22
-
docker 配置命名统一:
changzhou→henan(全套henan_前缀)起因:
docker/下的编排文件里到处是changzhou,是从同源项目拷贝模板时的命名残留。查实本机docker volume ls/docker ps -a:从未跑过 changzhou 这套(只存在 hunan 项目的容器与卷hunan_mysql_db/hunan_redis_cache/hunan_rabbitmq_server,3 个月前创建、均已 Exited)⇒ 改名无数据迁移包袱。统一为henan全套前缀,与实跑的 hunan 命名风格对齐。改动 7 个文件:
docker/compose/docker-compose.yml——MYSQL_DATABASE/MYSQL_USER→henan;三个container_name→henan_mysql_db/henan_redis_cache/henan_rabbitmq_server;网络 →henan_app_network;external 卷 →henan_mysql_datadocker/compose/deploy.sh—— 自动建卷的卷名docker/compose/migrate-mysql-volume.sh——NEW_VOL与旧卷候选列表;docker stop henan_mysql_dbdocker/WINDOWS_QUICKSTART.md—— 卷名 / 库名 / 容器名;顺带修正 3 处本身就是错的路径d:\changzhou_app\changzhou_backend\...→D:\henan_background\henan-backend\docker\compose;第 4 节「和 chengdu 项目切换」→ hunanruoyi-admin/src/main/resources/application-dev.yml—— jdbc url 库名 +usernameruoyi-admin/src/main/resources/application-pro.yml—— 同上bin/logtool.js——-uhenan、-D henan、容器名henan_mysql_db
验证:
docker compose -f docker-compose.yml config解析通过、零报错,name段全部已生效(库henan、三个henan_*容器名、网络henan_app_network、external 卷henan_mysql_data)。零 SQL 变更、零后端代码改动。刻意没改:①
chengduhipay—— 第三方支付通道名不是地名,application-dev/pro.yml与updata_sql.md里几十处,动了支付会挂;②docs/updata_sql.md里历史条目的USE changzhou;—— 台账回改会失真,需要留痕就新加一条;③ 各target/dist*/.lststats.html—— 里面是D:/changzhou_app/...的编译期绝对路径,属产物,重新构建自然消失;④docs/DEPLOYMENT.md、docs/README.md、docs/麻将胡了设计方案.md(D:\changzhou-cocos\...是客户端仓库路径)—— 旧项目文档。上线前必做两件事:① 卷是
external: true,必须先docker volume create henan_mysql_data,否则报external volume not found直接起不来(deploy.sh up -d会自动建,手敲docker-compose up不会);② 新卷首次初始化会建出空的henan库 ——MYSQL_DATABASE/MYSQL_USER/MYSQL_PASSWORD只在数据卷首次初始化时生效,原有数据需另行导入,否则应用连上的是空库。遗留待定:网络没固定
name:,实际名会随执行目录变(在docker/compose下执行时是compose_henan_app_network)。卷已用external+ 固定name规避「换目录丢数据」,网络是否同样钉死成henan_app_network待定。 -
下架三个玩法:删除「奥林匹斯 / 荒野争锋 / 极速糖果」的后台菜单与页面
起因:这三个玩法不再需要,要求从后台左侧菜单移除。
关键前提:RuoYi 的左侧菜单是数据库驱动的(
sys_menu→/getRouters→ 前端sidebarRouters),代码里没有菜单清单,所以必须"先删数据、再删页面文件",只删前端文件的话菜单依然在。改动清单(完整 SQL 见
docs/updata_sql.md):- 数据库(库
henan,已执行):sys_menu删 22 行(3 个顶级 M + 19 个子页面 C);sys_role_menu删 22 行授权(全属role_id=103)。无'F'按钮权限行。- 3130 奥林匹斯
olympus→ 子菜单 3131~3137 - 2105 荒野争锋
bullet→ 子菜单 2106~2110、2112 - 2125 极速糖果
sweet→ 子菜单 2126~2131
- 3130 奥林匹斯
- 前端文件(38 个,删前已确认全部被 git 跟踪):
ruoyi-ui/src/views/game/{olympus,bullet,sweet}/(7+6+6)与ruoyi-ui/src/api/game/{olympus,bullet,sweet}/(7+6+6)。 - 文档:本条 +
docs/updata_sql.md新条目。
验证:
- 删除后
sys_menu/sys_role_menu命中行数均为 0(printf实测);SELECT ... WHERE parent_id = 0复查剩余 20 个一级菜单,三个玩法已消失。 - 全量搜索
game/olympus|game/bullet|game/sweet|api/game/...残留引用 = 0。 ruoyi-ui生产构建exitcode=0/DONE Build complete(删掉页面后仍能编译,说明没有别处静态引用它们)。
刻意没动:
- 后端 Java 代码。这些玩法名在后端出现在跨模块共享的文件里 ——
TtAccountRecordSource(流水来源码 60=奥林匹斯)、TtboxRecordSource、RedisConstants、MessageCategoryEnum、PromoTurnover*、ApiUserPackSackServiceImpl、WebsiteSetupServiceImpl。删它们会波及其他玩法与推广/发货链路,不在「删页面」范围内。 - 数据库业务表:
game_olympus_*/game_sweet_*等原样保留,未 TRUNCATE、未 DROP。数据还在,随时可回。 ruoyi-ui/src/views/game/sugar/(5 api + 5 页面)—— 没有任何菜单引用。菜单「极速糖果」指向的是game/sweet/*,而docs/cleanup_records.sql又把game_sugar_*标注为「极速糖果」,两套并存;后端还存在GameSugarWin/User/StepInfo/Spin实体。疑似遗留或未接入的开发分支,未确认前不删。
遗留待定:① 仪表盘「实时 RTP」卡片与「流水统计」折线里仍有 玫瑰女郎(=olympus) 一条 —— 已于下一轮处理;②
game/sugar/*是否清理待定。③ 是否需要把game_olympus_*/game_sweet_*业务表也清掉(现在只是入口没了,数据仍在库里占空间)——实查确认不存在%olympus%业务表,无需处理。 - 数据库(库
-
彻底清理「玫瑰女郎」(olympus)的后端:枚举、返利统计链路与前端列
起因:上一轮只下架了菜单与页面,后端仍保留整套 olympus 常量、统计列与返利计算。本轮要求「和后端相关的都删掉,包括返利的统计」。
顺手修掉一个构建阻塞:
skins-service/pom.xml仍声明<module>game-olympus-service</module>、ruoyi-admin/pom.xml仍依赖该 artifact,而该模块目录早已不存在 ⇒ 这是当时 Maven 构建必挂的隐藏故障(本次删掉引用后构建才通过)。全仓已无任何文件名含 olympus。改动面:2 个 pom + 21 个后端文件 + 13 个前端文件
层 文件 改动 pom skins-service/pom.xml、ruoyi-admin/pom.xml删 game-olympus-service的 module / dependency常量 TtAccountRecordSource.java删 OLYMPUS_SPIN(60)/OLYMPUS_REWARD(61)枚举项,并从 6 处集合与判断中移除(推广福利流水、返利游戏类型、今日投注、今日赢奖、流水抽奖条件);删isSpecialGameConsume/isNewGameConsumeForCommission,isGameConsumeForCommission简化为只判经典常量 TtboxRecordSource.java删 OLYMPUS_BOX(13)常量 MessageCategoryEnum.java删 GAME_OLYMPUS常量 RedisConstants.java删 3 个 OLYMPUS_*缓存键配置 ParameterSettingBody.java、WebsiteSetupServiceImpl.java删 olympusMaintenance字段与读写(数据库侧见updata_sql.md)仪表盘 TtRechargeRecordController.java折线 chartData整条roseladyList链删除;实时 RTP 的gameConfig/gameNames去掉第 8 项(保留索引 5 = Roll 房,if (i == 5)依赖它)用户报表 TtUserBlendErcashMapper.xml、TtUserSourceReportMapper.xml、TtUserAmountRecordsController.java删 olympusGame列 ×2 + 排序分支;总流水 source 列表去 60开箱统计 TtBoxRecordsMapper.xml返奖总额 source IN (...)去 13返利 PromoTurnoverMapper.xml删 todayOlympus/yesterdayOlympus/weekOlympus/totalOlympus四列、todayNewGame/yesterdayNewGame、newGameConsume×2,source 列表去 60返利 PromoTurnoverMapper.java删 getSubNewGameConsumeByDate/getSpecialGameConsumeByUserId两个专属查询返利 PromoTurnoverServiceImpl.java看板 buildPeriod去掉 olympus 周期项与 4 个调用点参数;下级佣金去掉新游戏分项返利 PromoTurnoverController.java三处 olympusConsume统计链删除;businessGameRate统一取经典费率返利 PromoAdminManageController.java删 specialGameTurnover输出与sumNewGameConsume返利 CommissionSettlementTask.java周结佣金去掉新游戏分项 其他 TtUserServiceImpl.java实时返佣分支去掉「新游戏」,只判经典 其他 ApiUserPackSackServiceImpl.java、ApiProfileRecordsServiceImpl.java、TaskUpdate.java、TtBoxServiceImpl.java映射 / 筛选集合 / 发奖公式 / 注释 前端 ruoyi-ui utils/accountSource.js、ttSetting/index.vue、ttuser/{userTurnover,userPack,creditsRecords,amountRecords,blendErcashArchive}.vue删流水来源码 60/61 与 13 的字典与筛选项、删「玫瑰女郎维护」开关、删用户流水表的 olympusGame列与排序标签前端 promo-ui2 Home、FlowRecord、BusinessManage、AnchorManage、subFlow/transaction、CommissionReport删费率卡 / 周期列 / 玫瑰女郎列 ×3 / 特殊游戏流水列 ×2 / 日特殊游戏消费列 / 来源码字典 验证(产物级断言,不是看代码):
- 后端
mvn -B clean install -DskipTests→BUILD SUCCESS,Total time: 04:13 min,无BUILD FAILURE/COMPILATION ERROR;ruoyi-admin.jar正常产出(6 个模块全链打通)。 target/classes里 5 个关键 class(TtAccountRecordSource/TtboxRecordSource/MessageCategoryEnum/RedisConstants/PromoTurnoverServiceImpl)搜OLYMPUS命中 = 0。target中 3 个 mapper XML 搜olympus/newGame/source 60命中全 0。- 数据库:
sys_config里%olympus%残留 = 0;一级菜单 20 个(与上轮一致)。 ruoyi-ui生产构建通过;promo-ui2因node_modules缺esbuild无法构建(环境问题,非本次改动),改做静态校验。
刻意保留:
- 历史数据(
tt_user_blend_ercash47 行、tt_box_records293 行、tt_user_source_report14 行)—— 属账目,未删。副作用:流水来源码字典删了,这些历史流水在后台显示不出中文名。 ruoyi-ui/src/views/index.vue的hidden数组仍留「玫瑰女郎」、.rtp-theme-4样式保留 —— 后端已不再返回,留作二层防护。newGameCommissionRate(新游戏返佣比例)字段保留 —— 它挂在tt_user表上,属用户配置字段而非统计,删除涉及 DDL 与用户管理页,且语义上不点名玫瑰女郎。现状:无任何消费来源指向它,相关分项恒为 0。
- 后端
-
新增「麻将胡了」玩法:以「新游戏」类型接入,复用原玫瑰女郎的整套统计口径
起因:玫瑰女郎下架后,用户引入新游戏「麻将胡了」(后端
mahjong玩法),要求「以新游戏的类型把相应的统计都加上」。 本轮是上一轮删除动作的完整镜像 —— 把上一轮删掉的 olympus 分支,按 mahjong 重新接回全部统计链路。口径映射(沿用原语义,未改结构):
概念 olympus 旧值 mahjong 新值 消费来源码 OLYMPUS_SPIN = 60MAHJONG_SPIN = 68奖励来源码 OLYMPUS_REWARD = 61MAHJONG_REWARD = 69开箱产出码 TtboxRecordSource13MAHJONG_BOX = 15新游戏返佣费率 tt_user.newGameCommissionRate同名沿用(未动 DDL) 返佣流水来源 GAME_CONSUME_COMMISSION(47)「特殊游戏返利」同 改动清单(后端 21 个文件 + 前端 7 个 + DB 3 张表):
层 文件 改了什么 枚举 TtAccountRecordSource/TtboxRecordSource/MessageCategoryEnum/RedisConstants新增 68 / 69 / 15 及消息分类、缓存键 仪表盘 TtRechargeRecordControllerchartData加mahjongList;realTimeRtp加第 8 项「麻将胡了」(追加在末尾,不动i == 5的 Roll 房下标)开箱统计 TtBoxRecordsMapper.xml3 处返奖口径 source IN加15用户报表 TtUserBlendErcashMapper.xml/TtUserSourceReportMapper.xml/TtUserAmountRecordsController加 mahjongGame列 ×2 + 排序分支 +AGG_SORT_FIELDS返利 PromoTurnoverMapper.xmlgetBatchedCommissionData/getGameCommissionData/getWeeklyCommissionDataWithSnapshot/getWeeklyDailyCommissionData/businessGameConsumeRows全部加 68 与 newGame/mahjong 列返利 PromoTurnoverServiceImpl/PromoTurnoverController/PromoAdminManageController/CommissionSettlementTask看板费率卡与周期项、三处 *Consume统计链、businessGameRate新游戏分支、specialGameTurnover、sumNewGameConsume、周结分项其他 TtUserServiceImpl(实时返佣新游戏分支)、ApiProfileRecordsServiceImpl(69 / 68)、ApiUserPackSackServiceImpl(15 → 69 映射)、TaskUpdate(特殊游戏消费 + 0.01 系数)、TtBoxServiceImpl(注释)配置 ParameterSettingBody+WebsiteSetupServiceImplmahjongMaintenance读写(键mahjongMaintenance,兜底"0")前端 ruoyi-ui views/index.vue(折线加「麻将胡了流水」)、utils/accountSource.js(68 / 69)、skins/ttSetting/index.vue(麻将胡了维护)、skins/ttuser/{amountRecords,creditsRecords,blendErcashArchive,userPack,userTurnover}来源码字典与筛选 68 / 69、开箱码 15、 mahjongGame列与排序标签前端 promo-ui2 Home(费率卡 + 周期列)、FlowRecord(麻将胡了列 ×2)、BusinessManage/AnchorManage(特殊游戏流水列)、subFlow/transaction(日特殊游戏消费)、CommissionReport(68 → 麻将胡了)数据库:
sys_menu+8(麻将胡了目录3200+ 7 子页)、sys_role_menu+8(role 103)、sys_config+1(mahjongMaintenance)。完整 SQL 见docs/updata_sql.md。验证(产物级断言):
- 后端
mvn -B clean install -DskipTests→BUILD SUCCESS,19 个模块全过,Total time: 03:55 min。 ruoyi-ui生产构建 →DONE Build complete。promo-ui2生产构建 → 本轮把环境修好了,构建通过(修法见「踩坑」)。- 数据库实测:
sys_menu3200~3207 = 8 行、sys_role_menu= 8 行、sys_config.mahjongMaintenance= 1 行。
踩坑(记一次,下次别重踩):
promo-ui2/node_modules是残缺的扁平布局 —— 绝大多数包只在node_modules/.pnpm/node_modules/里有,顶层没有软链 ⇒ vite 一启动就ERR_MODULE_NOT_FOUND(先esbuild、再@rollup/rollup-win32-x64-msvc、再@babel/core…… 逐个补是打地鼠)。 一次性修法:把.pnpm/node_modules下所有包(含@scope子目录)在顶层批量建 junction (本次补了 800+ 个链接)后构建即通过。根因是当初pnpm install没跑完/被裁过,属环境问题、非代码问题。刻意未做:麻将胡了的 11 张
game_mahjong_*游戏表尚未落库(DDL + 种子在mahjong-py/schema.sql)。 这 7 个新菜单页面依赖它们,未建表前打开会报「表不存在」。属「游戏本体」前置依赖、且 generator 还没写完 (见mahjong-py/README.md),待用户确认后再执行。 - 后端