kate522
740bd48f42
refactor(users): drop dead WeChat notify settings surface
...
users/wechat schema 页写入 aksrt_settings 的 wechat_notify_* / wechat_app_* / wechat_template_* 等 15 个键全仓无任何消费方,与活配置面 aksrt_wechat_settings(WeChatNotify 读取、/users/wechat-template 页管理)构成双路;PHP 与 JS 两份 schema 的字段集早已不一致(15 vs 10),是死面腐烂的直接证据。
移除 SchemaUsers 的 wechat 分组、JS schema 文件及其注册、菜单 schema 页条目,微信配置收敛为单一自定义页入口;契约测试锁定死键零残留与活配置面唯一。
2026-10-13 21:00:49 +08:00
kate522
6037ca184b
fix(sms): collapse provider settings by default
2026-10-05 02:29:42 +08:00
kate522
5091da6a60
feat(sms): align provider and verification flow
2026-10-05 02:13:52 +08:00
kate522
88661e1574
fix(identity): preserve HTML in application intro
2026-10-04 22:02:20 +08:00
kate522
59901b9e10
feat(identity): align auth flow with reference theme
2026-10-04 21:10:12 +08:00
kate522
66f8bb933d
feat(admin): replicate reference post-page settings page 1:1
...
- rewrite post_list.page schema (JS+PHP 2.0.0) with the reference field set:
three cover types with option fieldsets (image 20-200% / slide CFS_Module::slide
full config with nested dependsOn / video 0-200%), hide-time, p_indent,
breadcrumbs (home-text as switcher), prevnext, authordesc, maxheight slider,
yiyan block, copyright, button toptext, front/after content, related posts
- migrate share_s to share page basic group and post_rewards_* to users
features rewards group (runtime keys unchanged)
- remap get_post_page_settings() to reference keys, normalize slide cover
option, hardcode non-reference runtime flags (reading progress, favorites,
author card), drop dual-path legacy aliases
- wire slide option into aksrt_render_slider (effect/direction/spaceBetween/
speed/interval/loop/autoplay/nav/pagination, scale vs fixed-height modes),
clamp image scale 20-200 and video scale 0-200 with 16:9 fallback,
wire p_indent container class + CSS, resync frontend-tags fallback and
FacadeBulk fallback, remap PostMetaBox cover keys
- add post-page reference contract test; update stale cover-height and
user-features contract tests
Validation: node --test 464/464 pass, audit-admin-contracts errors=0,
vite build ok, build-public-assets ok, php -l clean.
2026-09-24 16:13:00 +08:00
kate522
3dd3f71c97
feat(invite-code): one-time invite codes with rewards, usage log, import/export
...
- 一次性邀请码:批量生成(次数/有效期/备注/四类奖励)、原子消费防超发、
开启注册验证时奖励延迟发放(账本幂等键)
- Zibll 兼容文本导入(points/balance/vip/vip_time/level_integral,分隔符可自定义,
第三段标识存为备注)、CSV 全字段导出与可回流文本导出
- 使用记录表 aksrt_invite_code_usage + 后台使用者列;注册表单 400ms 防抖实时校验
- 注册门控三模式(close/open/must)设置链路(PHP schema + admin SPA schema)
- 契约测试覆盖建表/消费竞态/导入导出/备注全链路
2026-09-21 20:53:36 +08:00
kate522
381256ed59
feat(admin): host the ban/report settings page in the SPA schema
...
The users-interaction sidebar entry 禁封/举报 was a redirect stub; it is
now a schema-driven settings page replicating the reference theme
field-for-field:
- user_ban_s / user_report_s switches, ban_preset_reason and
ban_appeal_keys as repeatable group rows ({t}), ban_appeal_desc and
user_report_desc HTML textareas with the reference default copy, and
user_report_img_s — keys, labels, help texts, defaults and ordering
all mirrored in SchemaUsers.php and the SPA report.js schema
- UserRuntime::ban_settings()/report_settings() and
BanAppeal::settings() read the new group-array values with fallback
to the previous line/comma formats
- delete the self-built SPA queue pages (UsersBan, UsersReport,
ReportDetailDrawer, UsersMessages) that the reference theme does not
have; legacy /users/report bookmarks still redirect to the native page
- contract tests: lock the schema keys/labels, the schemaPage mount and
the deleted-file state; drop reads of removed components
2026-09-19 22:24:55 +08:00
kate522
64ed47165d
fix(payment): 卡密兑换开关收敛为唯一总开关
...
- 问题:积分卡密兑换报「积分卡密兑换未开启」,因 asset_points_card_enabled
与总开关并存为双重闸门;会员卡同样存在隐藏的第二开关 pay_vip_pass_charge_s。
- 修复:ChargeCard 类型闸门统一只消费后台「余额充值 → 卡密兑换」总开关;
积分卡仅额外要求积分系统可用(系统级依赖,非独立开关)。
- 死代码清理:PaymentRuntime 删除 benefit.pass_charge/pass_charge_desc 映射;
后台 schema 删除「卡密兑换会员」独立开关组与「启用积分卡密兑换」开关(双源同步);
vip options 收敛为仅 only_password 展示配置。
- 验证:php -l 4 文件无错;契约测试 59/59 通过;容器内探针实测
credits 类型闸门放行;SPA 已重建并同步运行副本。
2026-09-17 19:18:54 +08:00
kate522
3481620ed0
feat(payment): 通用卡密兑换弹窗并修正核销订单实付与订单名称
...
- /user/balance/ 余额卡片入口改为通用「卡密兑换」弹窗:请求不带类型,
后端按卡密自动识别余额/会员/积分;卡号输入恒展示且选填
- 后台「余额充值 → 卡密充值」语义更新为「卡密兑换」,开关更名
「启用卡密兑换功能」(设置键不变),双源 schema 同步并重建 SPA
- 删除死代码:credits-vip.php 死文件、credits-balance.php 内联积分
兑换块、/pay/card-pass/options 路由与 rest_options、labels 数组、
asset_points_card_description/password_only 死字段及内联块专属 CSS
- 卡密核销订单实付恒 0:create_redeem_order 源头写 0,UserOrders
对 card_pass 订单视图层归零覆盖历史行(不迁移数据)
- 订单名称按 note.meta 生成:卡密兑换-余额充值X / 卡密兑换-积分充值X /
购入[会员档位名]X天(永久)
- 新增契约 card-pass-universal-redeem.test.cjs,收紧 user-assets-layout
契约(禁 .uc-card-pass 根类回潮)
2026-09-17 19:04:47 +08:00
kate522
780e1eba21
优化了一些问题
2026-08-29 22:03:48 +08:00
kate522
3dbd196e06
修复了一些问题
2026-08-25 18:31:49 +08:00
kate522
c8d199a694
修复了一些问题
2026-08-25 18:22:30 +08:00
kate522
5cae5b5c93
积分与余额账务系统硬切重构
2026-08-24 15:59:11 +08:00
kate522
86692ff3f9
用户功能设置收口与废弃后台链路清理
2026-08-23 22:09:12 +08:00
kate522
af52f9e94d
登录注册体系的源码级硬切换
2026-08-23 20:30:01 +08:00
kate522
c6c2c0af6d
删除私信分支链路
2026-08-23 13:42:35 +08:00
kate522
9375b1c30c
refactor(assets): vendor 资产迁入标准目录并全仓去除 zibll 标识
...
- assets/vendor 全量迁移: fontawesome5→assets/fontawesome5, css→assets/css,
js→assets/js/runtime(避开 14 个同名自有文件), img 合并去重→assets/img,
fonts→assets/fonts; 删除 assets/vendor
- libs 五个与 widgets/third-party 字节相同的库不重复入库, loader paths 改指向
- 运行时切换: _win.uri=assets 根, loader baseUrl=/js/runtime, enlighter 注入
路径同步; PHP 7 个引用文件切换并改名 $zibll_*→$runtime_*
- 去品牌: Qinver 头注释/品牌 console.log/演示链接清除, 默认文案中性化
- 功能标识符改名: zib__→aksrt__, zib_ajax→aksrt_ajax, window.zib→
window.aksrtLegacy, zibllblock/*→aksrtblock/*, .zib-widget→.aksrt-panel,
.zib-slider→.aksrt-slider, zib_menu_options meta 键等
- 自有 CSS 改名: legacy-utilities/compat-vars/footer shell
- admin SPA 重建; 契约测试同步(路径/断言/文件更名)
- 例外保留: tests/visual 对照环境与 fixtures 前缀(外部 Zibll 产品引用)
验证: php -l 133 个改动文件通过; runtime 86 个 JS node --check 通过;
契约测试 68/70(2 个失败经 stash 对照确认为存量问题)
2026-08-22 16:16:30 +08:00
kate522
b501cf4611
feat: unify invite flow with referral ref
2026-08-17 13:49:59 +08:00
kate522
1247f9bf4e
feat(credits): exchange balance for points
...
Replace the legacy points-to-balance and external points purchase flows
with direct integer balance-to-points exchange. Enforce exchange and
points-transfer limits and capability checks across the UI and REST API.
2026-08-13 15:20:06 +08:00
kate522
8241570ca2
feat(users): govern profiles and access
...
Normalize fixed profile fields, profile actions, and the five-column capability matrix for comments, uploads, and downloads.
2026-08-13 00:24:54 +08:00
kate522
7cca472fe9
fix(payment): close creator income contract gaps
2026-08-07 13:30:37 +08:00
kate522
e991f1a0c6
fix(badges): complete full-chain badge circuit and preset icons
...
Close the full circuit break in the badge/medal system and replace
empty default icons with preset SVG assets so badges render out of
the box:
- Add aksrt_get_worn_medal_icon() helper that renders the worn medal
image inline (with settings fallback when the Badges class is
unavailable).
- Profile header (UC) now shows the worn medal icon beside the name,
matching zibll's name row order (display_name → VIP → Medal → Level → Verify).
- Add .medal-icon / .aksrt-identity-medal vertical-align rules in UC shell.css.
- Extract SchemaUsers::default_medal_args() and preset 6 badges (rookie,
checkin-30, writer, popular, annual-star, vip-member) with real icon
URLs from assets/img/medal/ (medal-1/2/5/9/12/15.svg).
- Vue badge.js: add MEDAL_BASE helper + preset icons matching PHP defaults.
2026-08-04 10:36:50 +08:00
kate522
49c12b761f
feat(users): merge promotion into revenue center
2026-08-03 15:38:17 +08:00
kate522
d138c05f77
feat(users): add inline promotion center
2026-08-03 13:40:54 +08:00
kate522
8c5b1555c9
refactor: flatten src/AKSRT → src (drop theme-identifier dir)
...
Move all domain folders from src/AKSRT/{Domain} to src/{Domain}; remap
Composer PSR-4 "AKSRT\\": "src/"; update audit script + README + ADR
paths; remove dead tools/build-psr4-map.php (scanned deleted inc/classes).
2026-08-02 22:06:06 +08:00