ypsdf1
|
1238c6a20c
|
修复: core.php web_area_permissions 添加 UNIQUE(land_id,player_name) 约束
- 根因: core.php 创建表时缺少 UNIQUE 约束,导致 sync.php 的 ON CONFLICT 永远不触发,每次同步插入新行
- 新增迁移逻辑: 检测旧表缺少 UNIQUE 时自动重建表并迁移数据
|
2026-07-10 12:52:44 +08:00 |
|
ypsdf1
|
ae1ff5ffd8
|
异地登录检测/账号冻结解冻 + 公共邮件辅助函数
- core.php: 新增smtpSendEmail/queryLoginIpLocation/getBaseUrl/sendLocationAlertEmail
- security_alert.php: 接收Java通知比对IP归属并发送提醒邮件(含冻结/改密链接)
- freeze.php: 验证freeze_token冻结账号并写freeze指令
- sync.php: 冻结账号禁止Web登录; smtpSendEmail上移至core.php统一复用
- reset_password.php: 改密成功后解冻(清frozen+写unfreeze)
|
2026-07-09 17:09:35 +08:00 |
|
ypsdf1
|
1ea6f4963f
|
修复: web.db initTables中cashiers.can_cash冗余加列用@抑制挡不住SQLite3Exception,导致每条请求抛duplicate column并刷爆debug.log(33MB)写满磁盘阻断FTP上传——改为try/catch幂等兜底
|
2026-07-08 00:27:56 +08:00 |
|
ypsdf1
|
02dc706635
|
修复: orders.db冗余ALTER加列导致duplicate column name异常、getOrdersDB首调失败订单丢失——改为幂等兜底try/catch
|
2026-07-07 23:39:37 +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 |
|
ypshidifu
|
6359830105
|
修复: orders.php的esc()未定义报错(core.php补齐PHP版esc) + 收银台底部保留5条最新订单(独立页orders.php仍展示全部)
|
2026-07-07 12:38:37 +08:00 |
|
ypsdf1
|
9456f787f8
|
优化: 收银台购物延迟压至15秒内(busy_timeout 60s→8s、移除热路径冗余DDL、合并配置批量读取)
|
2026-07-07 10:39:17 +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
|
59701d1627
|
新增独立收银台页面与收银员账号体系:支持收银员/管理员登录、手动折扣(服务端强制上限)、订单记录;同步修复代购≥1000仍误报需玩家密码问题(#733 #734)
|
2026-07-06 19:27:14 +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
|
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
|
5f3bd70987
|
fix: SQLite只读数据库修复+远程权限修复API
- getDB(): 新增自动chmod修复数据库文件/WAL/SHM权限
- getDB(): initTables和migrateDatabase加try-catch容错,防止写入失败导致500
- 新增fixDbPermissions()远程修复API: 可修复目录/数据库/WAL文件权限+写入测试
- sync.php: 注册fix_db_permissions action
|
2026-06-28 10:45:33 +08:00 |
|
ypsdf1
|
967feb9b94
|
修复领地设置不同步:PHP端完整接收所有字段
问题1:handleSyncLands只存13个基础字段,30+权限字段全部丢弃
修复:INSERT扩展到63列,完整接收Java推送的所有deny_*、效果、传送点字段
问题2:web_area_lands表缺少权限列
修复:initLandTables添加46个ALTER TABLE迁移,兼容已有表
问题3:validateWebAccess检查窗口不匹配
修复:web_login_verified检查改用token实际有效期(非硬编码5分钟)
|
2026-06-27 13:37:29 +08:00 |
|
ypsdf1
|
57fbc1ffc1
|
fix: Web自动登录安全+领地同步
1. validateWebAccess的view操作增加web_login_verified检查(5分钟有效)
2. pushPlayerLoginStatus在online=1时同步写入web_login_verified
3. 防止偷token自动登录: 未通过Java验证的token要求密码
|
2026-06-26 19:18:40 +08:00 |
|
ypsdf1
|
8edc94b848
|
v12: PHP密码验证安全修复 + land_api GET参数支持
安全修复:
- sync.php: 删除verify_web_password端点,禁止PHP自验证密码
- core.php: validateWebAccess大额交易密码验证改为检查web_login_verified(Java验证结果)
- 密码验证强制走web_login_request流程
其他:
- land_api.php: handleAckAdminChanges支持GET参数ids(避免POST Content-Type问题)
|
2026-06-25 14:19:08 +08:00 |
|
ypsdf1
|
98f9cb6410
|
@
领地系统大重构:全局配置+数据入库+新权限+传送点+安全删除+容器扩展
- 全局配置改为area_config表(替代txt文件)
- area_lands扩展到61列,新增10个权限布尔+5个传送点坐标
- 新增投掷物/发光/红石/门禁/音频/拴绳/农作物/剪毛/投喂等权限
- /protect settp/tp传送点系统
- 删除1分钟延迟+二次确认
- 安全传送判定(空气+实体+边界3格)
- 容器权限覆盖所有UI类型
- .gitignore清理敏感文件
@
|
2026-06-23 16:51:30 +08:00 |
|
ypsdf1
|
4c7ec7490f
|
fix: 修复库存不同步bug(item_id字段名不匹配); 新增库存高频轮询; 新增工单系统; 修复admin_stock竞态条件; 修复opcache_reset竞态
|
2026-06-22 16:54:13 +08:00 |
|
ypsdf1
|
885e70f0f5
|
添加Web前端代码
|
2026-06-19 16:02:14 +08:00 |
|
ypsdf1
|
9bae160ce0
|
Java:新增ip推送端口,后端可以查看玩家ip及归属
php:新增ip属地、实时在线数据,可以查看玩家ip、归属和实时在线情况
|
2026-06-18 12:35:22 +08:00 |
|
ypsdf1
|
54cd3c4f59
|
feat: 初始提交 Web 管理后台源码 (PHP)
|
2026-06-14 16:35:07 +08:00 |
|