ypsdf1
|
8286a4c09c
|
新增: 商品目录定时镜像同步接口 set_shop_catalog(支持删分类/加商品) + 修复 getShopConfigSync 未定义函数500错误
|
2026-07-07 19:40:47 +08:00 |
|
ypsdf1
|
6775465c21
|
修复: 订单页JS语法错误导致永久转圈(onclick内联JSON引号冲突改data属性+事件委托)
|
2026-07-07 16:52:59 +08:00 |
|
ypsdf1
|
9c269cc184
|
重构: 收银台订单库彻底独立于web.db,根除订单加载卡死
根因:订单记录原写在 web.db,与 Java 经 sync.php 高频写入共享同一 SQLite 文件,
产生文件级锁竞争(database is locked)。原 62f5323 用 busy_timeout=15s + 重试 hack
缓解,但 Java 持续写入仍会顶住 PHP 订单读查询,导致订单页长期转圈。
改动:
- 新增独立 orders.db 常量(ORDERS_DB_PATH),Java 永不读写此库
- core.php 新增 getOrdersDB() 连接独立库(WAL + busy_timeout=5s),建表并幂等迁移 web.db 历史订单
- recordCashierOrder() 改写写入 orders.db,订单写失败仅记日志返回空单号,绝不阻断购买主流程
- shop.php 将订单记录移出 web.db 事务,放到 COMMIT 之后写独立库
- cashier.php cashierOrderList() 直接读 orders.db,去掉 busy_timeout 与 5 次重试兜底 hack
- web.db 内旧 cashier_orders 表保留为历史死表(仅作迁移源),不再被读写
效果:订单查询与 Java 写入完全解耦,订单页不再受 CF/Java 锁影响而卡死。
|
2026-07-07 15:25:25 +08:00 |
|
ypsdf1
|
62f53234e7
|
修复: 订单记录页opcache失效确保新版生效 + 订单查询放宽busy_timeout至15s并增加重试(规避database is locked)
|
2026-07-07 14:26:45 +08:00 |
|
ypsdf1
|
a72bbfd970
|
修复: 订单记录页加载卡死(增加请求超时与重试) + 订单接口释放会话锁并对database is locked重试
|
2026-07-07 13:38:00 +08:00 |
|
ypshidifu
|
6359830105
|
修复: orders.php的esc()未定义报错(core.php补齐PHP版esc) + 收银台底部保留5条最新订单(独立页orders.php仍展示全部)
|
2026-07-07 12:38:37 +08:00 |
|
ypsdf1
|
7a4aad46c6
|
功能: 订单记录独立页+小票书+packmoney/green修复(??替代||)
1. 新增 orders.php 独立订单记录页面(搜索/筛选/详情弹窗)
2. 收银台底部订单区改为跳转链接(→orders.php)
3. buy_cart 成功后推送 give_receipt_book 到 Java 队列(发放 Written Book)
4. 修复 packmoney/green_discount 前端 JS || falsy 回退 bug(改用 ??)
5. 费率从后端 shop_config 动态读取(不再硬编码 RATES)
6. cashierGetConfig 扩展读取 cart_backpack_rate/cart_shulker_rate
|
2026-07-07 12:28:26 +08:00 |
|
ypsdf1
|
fdd8ccb340
|
优化: 收银台新增打包小票(小票弹窗+打印) + buy_cart返回order_no
|
2026-07-07 11:37:48 +08:00 |
|
ypsdf1
|
9456f787f8
|
优化: 收银台购物延迟压至15秒内(busy_timeout 60s→8s、移除热路径冗余DDL、合并配置批量读取)
|
2026-07-07 10:39:17 +08:00 |
|
ypsdf1
|
6634fdefa0
|
修复收银台SQLite3Stmt::fetch崩溃并应用环保单减免配置
|
2026-07-07 00:33:24 +08:00 |
|
ypsdf1
|
f32c7cfe86
|
收银台双模式收款与打包配置全链路实现
- 收银员新增 can_cash 现金收款权限字段(登录/列表/新增/编辑全链路)
- 购物车结算支持 pay_mode=cash/bond 双模式,现金模式跳过余额校验与扣债券
- 收银台前端读取可配置 packmoney 实时报价,修复此前硬编码+2元与实际收费不符
- 管理后台新增打包费(packmoney)与环保减免(green_discount)配置端口
- 同步接口新增 get/set_shop_config,Java端定时器拉取配置
- 购物小票书塞入首个潜影盒,免费潜影盒订正为原色(SHULKER_BOX)
|
2026-07-06 23:48:44 +08:00 |
|
ypsdf1
|
86b2d6ebdf
|
收银台前端样式统一:输入框/下拉框深色主题、自定义滚动条,修复与背景质感不搭
|
2026-07-06 21:48:42 +08:00 |
|
ypsdf1
|
c22386b8fc
|
修复收银台角色标签CSS样式缺失问题
- 补充 .tag-admin / .tag-cashier 标签样式定义,统一管理员与收银员角色标签颜色与边框
- 同步修正HTML初始span与JS动态赋值的class,消除无样式标签
|
2026-07-06 20:01:49 +08:00 |
|
ypsdf1
|
59701d1627
|
新增独立收银台页面与收银员账号体系:支持收银员/管理员登录、手动折扣(服务端强制上限)、订单记录;同步修复代购≥1000仍误报需玩家密码问题(#733 #734)
|
2026-07-06 19:27:14 +08:00 |
|
ypsdf1
|
0e1f26508b
|
管理后台用户组页新增全局传送点上限(maxhome)配置入口(#726)
- loadUserGroups拉取get_config展示全局home上限卡片
- 新增showHomeConfig/saveHomeConfig弹窗,POST update_config(key=max_home_per_player)
- 复用现有area_config通路,与Java端max_home_per_player配置项对应
|
2026-07-06 18:10:36 +08:00 |
|
ypsdf1
|
8de2cffe82
|
新增管理后台独立收银台模式:管理员可为指定玩家代购商品(商品浏览+购物车+背包/潜影盒结算+颜色可选收费+≥1000债券密码确认)
|
2026-07-06 17:54:55 +08:00 |
|
ypsdf1
|
dd425f4946
|
修复商城database is locked;购物车结算增强:≥1000元强制密码校验、潜影盒颜色可选收费(默认紫色免费);玩家端新增购物车模式与颜色选择器
|
2026-07-06 17:33:15 +08:00 |
|
ypsdf1
|
7a283ae4e0
|
商城购物车模式+收银台结算+后台折扣配置:前端购物车FAB/抽屉/结算弹窗,后端buy_cart接口事务批量购买,admin购物车配置卡片,cart_config/save_shop_config接口
|
2026-07-06 16:39:47 +08:00 |
|
ypsdf1
|
e46ee109d3
|
修复PHP管理面板相关问题
|
2026-07-06 11:22:31 +08:00 |
|
ypsdf1
|
ffb6e24d5f
|
fix: PHP到期时间解析修正秒→分钟的单位换算
|
2026-07-03 23:37:37 +08:00 |
|
ypsdf1
|
31493de10d
|
feat: PHP管理面板到期时间改为智能解析,支持数字/中文单位/日期格式,玩家只需填'30'表示30分钟
|
2026-07-03 22:41:34 +08:00 |
|
ypsdf1
|
1277c1fdf3
|
feat: php管理面板添加用户组成员时增加到期时间输入框 - 管理员可手动设置expiry_time - 成员表格展示到期时间列 - 到期为0表示按用户组duration_minutes自动计算
|
2026-07-03 19:37:05 +08:00 |
|
ypsdf1
|
5fa59b71b2
|
fix: PHP删除用户组同步 + handleDeleteUserGroup先删成员表再删组表
|
2026-07-03 14:27:27 +08:00 |
|
ypsdf1
|
591d71ede0
|
fix: PHP数据库锁修复 + 用户组添加/移除错误处理
1. initTables()统一创建所有核心表(web_user_groups, web_user_group_members等)
2. handleAddGroupMember改用playerExists()本地验证替代异步validatePlayerViaJava()
3. handleRemoveGroupMember增加错误处理和affected行数检查
4. 移除validation_callback/visitor中的CREATE TABLE IF NOT EXISTS
|
2026-07-03 13:41:22 +08:00 |
|
ypsdf1
|
4927aaed01
|
fix: Java推送成员变更到PHP新增add/remove_group_member_by_java接口; Java端调用改名加_java后缀
|
2026-07-03 01:16:23 +08:00 |
|
ypsdf1
|
6337bc3e75
|
fix: player.php添加自定义玻璃拟态确认对话框showConfirm(),替换原生confirm()
|
2026-07-02 23:48:37 +08:00 |
|
ypsdf1
|
d394bd0ec8
|
fix: PHP购买用户组流程完善 - 1. 修复duration=0永久验证(从<=0改为<0) - 2. 替换原生alert/confirm为自定义toast玻璃拟态UI - 3. 添加bond记录同步(handleSyncBondRecord) - 4. 前端购买弹窗使用玻璃拟态确认对话框 - 5. 修复可用用户组列表SQL缺失列自动迁移
|
2026-07-02 22:41:15 +08:00 |
|
ypsdf1
|
60151dc1d0
|
修复handleListAvailableGroups迁移缺失列+修复领地禁止点燃双方向检查
|
2026-07-02 20:15:12 +08:00 |
|
ypsdf1
|
35eb054e4f
|
清理仓库:移除误提交的Java编译产物
- 移除.idea/目录(IDE配置文件)
- 移除target/目录(Java编译产物)
- 移除Sdf1_login.iml(IDE模块文件)
|
2026-07-02 16:57:22 +08:00 |
|
ypsdf1
|
bcc68aa4e5
|
feat: 实现TimerE用户组续费轮询完整流程 - poll_group_renews action + renew_group_callback + web_group_renew表
|
2026-07-01 20:36:17 +08:00 |
|
youpaishidifu
|
b9ca56ff7f
|
feat: 修复用户组权限检查 - 所有玩家可查看购买用户组 + 修复JavaScript语法错误
|
2026-07-01 11:22:51 +08:00 |
|
youpaishidifu
|
fc6a46597d
|
fix: 修复JavaScript模板字符串中的Unicode字符²语法错误
|
2026-07-01 11:04:19 +08:00 |
|
youpaishidifu
|
1bc97f6980
|
feat: 领地管理增强 - 毛玻璃改主弹窗 + pending队列 + 同步状态查询 + 玩家前端UI
|
2026-07-01 01:20:15 +08:00 |
|
ypsdf1
|
6d68c4a05b
|
feat: 改主弹窗替换为毛玻璃居中弹窗 (glassPrompt)
|
2026-06-29 20:57:03 +08:00 |
|
ypsdf1
|
3dacc80fe1
|
feat: 领地删除走pending队列 + sync清理PHP残留
- land_api: handleDeleteLand改为写web_admin_changes队列
- land_api: 新增delete_land_callback处理Java回调
- sync.php: syncLands增加删除PHP中不存在的领地
- 修复admin面板过户按钮(同步到plugin目录)
|
2026-06-29 20:45:38 +08:00 |
|
ypsdf1
|
62798f2a90
|
添加改主状态查询API,PHP前端轮询机制
|
2026-06-29 20:06:27 +08:00 |
|
ypsdf1
|
64ed1e6ada
|
修复改主认证: admin.php改用secret认证, 移除不存在的transfer_land_admin函数, secret认证时设置isAdmin=true
|
2026-06-29 19:39:55 +08:00 |
|
ypsdf1
|
5403479a2c
|
修复PHP改主校验流程:Java失败时PHP自动回退+前端不立即刷新
1. PHP handleUpdateLandOwner: 不再直接更新web_area_lands,写入pending队列,返回pending=true
2. PHP handleOwnerChangeCallback失败时:回退owner为旧值,记录日志
3. PHP admin.php adminTransferLand: 收到pending=true时不立即刷新列表,改为5秒后轮询
4. 按钮禁用防重复提交,等待回调后恢复
|
2026-06-29 16:38:31 +08:00 |
|
ypsdf1
|
e9bd63a1e4
|
修复过户面板:移除独立过户按钮改为主改主、adminTransferLand/deleteLand函数修复、改主流程改为pending等待Java验证、添加owner_change_callback回调
|
2026-06-29 15:24:04 +08:00 |
|
ypsdf1
|
866b5abe15
|
refactor: 过户流程重构 - PHP暂存等Java验证
1. handleTransferLand: 不再立即改owner,改为status=pending等Java验证
2. 新增handleTransferCallback: Java验证成功→改owner+cooldown;失败→标记failed
3. handleCancelTransfer: 支持pending状态撤回+cooldown状态回退
4. handleTransferStatus: 增加id字段
5. transfer_callback加入syncFromPhpActions
|
2026-06-29 12:12:10 +08:00 |
|
ypsdf1
|
2237f6c855
|
feat: 领地过户功能 + 管理面板改主修复
1. 领地过户: 添加web_land_transfers冷却表,handleTransferLand/handleCancelTransfer/handleTransferStatus
2. 管理面板改主: 移除异步验证,直接写入web_admin_changes让Java端执行(管理员操作可信任)
3. admin.php: 过户按钮+adminTransferLand JS函数+confirm二次确认
4. 玩家名正则统一为3-16位
|
2026-06-29 11:48:51 +08:00 |
|
ypsdf1
|
3925dea586
|
修复: sync.php新增check_player_registered action,解决Java端拉取注册数据报'未知操作'
|
2026-06-28 23:55:43 +08:00 |
|
ypsdf1
|
02c2e91531
|
fix: admin.php modal重复叠加导致ugNewMember获取失败 + 异步验证pending处理
- admin.php showModal: 新增[data-modal-overlay]清理逻辑防止多次打开modal导致元素复用
- doAddGroupMember: 固定player名正则3-16位, 改善错误提示文案, 处理pending响应
- admin.php modal: 移除旧的querySelectorByStyle选择器改为data属性
|
2026-06-28 17:12:08 +08:00 |
|
ypsdf1
|
c0afb47535
|
feat: PHP玩家验证改为异步模式
- land_api.php: 新增 pending_player_validations 表(待验证队列)
- validatePlayerViaJava(): 改为异步模式(查缓存→写pending→返回null)
- 新增 handleGetPendingValidations: Java拉取待验证列表
- 新增 handleValidationCallback: Java推送验证结果
- handleAddGroupMember/UpdateLandOwner/AddVisitor: 适配异步验证
- 改善错误提示文案
|
2026-06-28 15:59:42 +08:00 |
|
ypsdf1
|
f6265dd994
|
feat: 玩家验证改调Java回调服务器(替代直接读login.db)
- land_api.php: 新增 validatePlayerViaJava() 函数
POST http://GAME_SERVER_HOST:9090/validate_player
- handleAddGroupMember: 替换直接读login.db为Java验证
- handleAddVisitor: 替换playerExists()为Java验证
- handleUpdateLandOwner: 替换playerExists()为Java验证
- config.php: 新增 GAME_SERVER_HOST (默认127.0.0.1)
|
2026-06-28 15:30:09 +08:00 |
|
ypsdf1
|
2342cc2cab
|
fix: 用户组成员添加校验(玩家名格式+login.db存在性检查)
|
2026-06-28 15:16:36 +08:00 |
|
ypsdf1
|
35f15db034
|
feat: 用户组成员变更写入admin_changes通知Java同步
|
2026-06-28 14:27:04 +08:00 |
|
ypsdf1
|
1f97e3b969
|
修复clear_all_bad字段名不一致+handleUpdateLandField整数列类型
|
2026-06-28 12:17:21 +08:00 |
|
ypsdf1
|
72d2032f95
|
fix: PHP admin统计接口catch(Exception)改为catch(\Throwable),修复PHP8兼容性导致概率性unknown
|
2026-06-28 11:47:13 +08:00 |
|
ypsdf1
|
d568a2ce5d
|
feat: PHP效果选择器+管理员角色切换+JSON编码修复
- player.php: 新增glassSelect()毛玻璃选择器弹窗(29种MC药水效果)
- player.php: addClearEffect/addGiveEffect从手动输入改为效果选择器
- player.php: 访客表格角色列改为可点击标签,点击切换管理员/访客
- land_api.php: 新增change_visitor_role API + handleChangeVisitorRole()
- land_api.php: handleListUserGroups添加JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES
|
2026-06-28 10:48:09 +08:00 |
|