jianghaifeng
|
f2103f6604
|
feat(cover): 短剧新增横版封面字段并在进度接口下发
backend-ci / test (push) Canceled after 0s
- Drama/DramaSaveReqVO/DramaRespVO 新增 horizontalCover,打通后台上传链路
- AppDramaCardVO/AppDramaDetailVO 新增 coverLandscape
- ProgressRespVO 新增 dramaCoverLandscape,继续观看横幅可直接取横版图
|
2026-10-29 17:32:49 +08:00 |
|
jianghaifeng
|
0d4d510aee
|
feat(content): 标签增加语义码并随卡片下发
backend-ci / test (push) Canceled after 0s
标签名称会随语言和运营文案变化,客户端按名称判断板块(如推荐页「上新」
横滑)一改名就失效。content_tag 新增 code 列并在后台维护,
卡片与详情以 tagCode 下发,已有「上新 / 热剧 / 新剧 / 热播」一并回填。
|
2026-10-29 15:45:34 +08:00 |
|
Zhou Weidong
|
4d796089a0
|
ops(grafana): 告警规则入库(服务下线/响应慢/磁盘满)
backend-ci / test (push) Failing after 4m38s
|
2026-10-29 10:53:07 +08:00 |
|
Zhou Weidong
|
f71498339c
|
ci: 新增 Gitea Actions 流水线(测试/分析/构建门禁)
backend-ci / test (push) Failing after 7m31s
|
2026-10-29 10:47:44 +08:00 |
|
Zhou Weidong
|
e4fe82283c
|
docs: 更新第一阶段进度表与尚未完成清单(C2/C3 标记已实现)
|
2026-10-29 10:47:44 +08:00 |
|
Zhou Weidong
|
26102332ac
|
fix(deploy): 看门狗改由用户会话任务启动 Docker Desktop
以 SYSTEM 身份直接 Start-Process Docker Desktop.exe 会命中 WSL_E_LOCAL_SYSTEM_NOT_SUPPORTED,把 docker-desktop 发行版搞成僵死状态(VHD 已挂载无法终止),导致登录用户自己也起不来。改为触发以登录用户身份运行的 FruitShorts-DockerDesktop 计划任务(先停再起,规避 IgnoreNew)。
|
2026-10-29 10:11:02 +08:00 |
|
Zhou Weidong
|
aa5954ef6a
|
chore(merge): 合并 main 的印尼语敏感词库种子到 develop
|
2026-10-29 09:21:19 +08:00 |
|
Zhou Weidong
|
963bf5c0da
|
test(playback): 补充合并预写缓冲与迟到条目丢弃用例
|
2026-10-28 19:02:33 +08:00 |
|
Zhou Weidong
|
a71d2701d1
|
fix(playback): 登录合并前预写设备缓冲,迟到条目不得复活已删记录
- 新增 flushIdentity:把某身份缓冲里未落库的进度立即写进权威表;
mergeDeviceIntoUser 先调用它再扫库,否则登录前 2 秒内的上报会被漏掉,
稍后落库还会生成一条登录用户看不到的匿名孤儿行;合并完清掉设备侧缓冲。
- planOne 增加判定:逻辑删除会刷新 updated_at,上报时间不晚于它的条目直接丢弃,
防止删除瞬间已 drain 的在途引用把 deleted 写回 0。
- 去掉 save(Long userId, ...) 上多余的 @Transactional(缓冲路径白开事务)。
|
2026-10-28 19:02:32 +08:00 |
|
Zhou Weidong
|
025fbe73f0
|
perf(playback): 上报改用 Lua 单次往返写入缓冲
原先 HSET、EXPIRE、LPUSH、LTRIM 分四次往返,进程若死在写状态与入队之间,
该剧进度只留在 HASH 里永远不落库、12 小时后被 TTL 清掉。合并成一个脚本后
热路径只需 1 次往返,脚本顺带返回 HLEN 是否超 30 决定要不要补裁剪。
|
2026-10-28 19:02:32 +08:00 |
|
Zhou Weidong
|
0d161f318f
|
chore(merge): 合并 origin/develop 的看门狗周期巡检与 admin-api Redis 配置
watchdog.ps1 冲突取本地实现:计数落盘用 Import/Export 函数,另含 Webhook
三级兜底与告警节流,为远程内联版本的超集。
|
2026-10-28 18:53:11 +08:00 |
|
Zhou Weidong
|
2eac1fe31d
|
test(playback): 补充缓冲删除双写、已删剧不读回与失效条目丢弃用例
|
2026-10-28 18:51:52 +08:00 |
|
Zhou Weidong
|
09b0f89e8d
|
fix(deploy): 看门狗失败计数落盘并补齐告警 Webhook 兜底
计划任务每 2 分钟起新进程,进程内计数永远到不了阈值,告警静默哑火;计数改
JSON 落盘跨进程累加,达阈值后只在首达与每 30 轮提醒。Webhook 支持参数、环境
变量、deploy/feishu-webhook.txt 三级兜底,密钥文件不入库。
|
2026-10-28 18:51:52 +08:00 |
|
Zhou Weidong
|
8fb1f52777
|
fix(config): 调度线程池扩到 4 条,避免落库与其它定时任务互相排队
|
2026-10-28 18:51:52 +08:00 |
|
Zhou Weidong
|
44b7abcd0f
|
fix(playback): 删除观看历史时同步清理进度缓冲
缓冲已是读接口的权威来源,只删库行会被读覆盖层读回、并被下一次落库把行复活。
缓冲补 remove/clear(HDEL/DEL),删除路径先清缓冲再删库行,读覆盖层按库行
deleted 过滤;落库时缓冲状态已失效的条目直接丢弃,不再整批退回队列。
|
2026-10-28 18:51:52 +08:00 |
|
Zhou Weidong
|
181b338780
|
fix(ops): 修复管理端 Redis 未配置与看门狗未真正周期巡检
- admin-api 的 application.yml 缺少 spring.data.redis 配置,容器内默认连
127.0.0.1 导致 /actuator/health 返回 DOWN(redis 组件不可用);
补齐后与 app-api 共用 REDIS_HOST/REDIS_PORT,健康检查恢复 UP
- 计划任务原先用 BootTrigger 挂 Repetition,Windows 不生效(Next Run Time
为 N/A,9 小时只跑过一次),看门狗形同虚设;改为 TimeTrigger + PT2M
无限重复 + StartWhenAvailable,实测每 2 分钟稳定巡检
- watchdog.ps1 的连续失败计数改为落盘 watchdog-state.json,避免每轮进程
重启后清零导致「连续 3 次失败告警」永不触发
|
2026-10-28 18:23:48 +08:00 |
|
Zhou Weidong
|
657190d5a8
|
chore(deploy): 加入服务看门狗脚本与 Windows 计划任务注册文件
- watchdog.ps1:每 2 分钟健康检查,Docker/DB/Redis/API/Grafana 任一
不健康自动重启,连续 3 次失败发飞书告警,C 盘超 85% 也告警
- backend-watchdog-task.xml:开机触发、2 分钟循环的计划任务配置
|
2026-10-28 15:00:58 +08:00 |
|
Zhou Weidong
|
3e2d6a06d9
|
perf(playback): 观看进度上报异步化(Redis write-behind 批量落库)
- POST /app/watch/progress 只写 Redis 缓冲立即返回(p95 75ms→2ms),
WatchProgressFlusher 每 2s 把 watch:pg:dirty 队列按身份合并批量 UPSERT,
Redis 异常自动回退同步写库,接口契约不变
- 读接口用缓冲覆盖 DB 行保证读己之写;Caffeine 缓存剧集校验免去上报路径两条 DB 查询
- 落库按「新增进度/新增流水/更新行」分组攒批(MyBatis BATCH 只合并连续同形状语句),
配合 reWriteBatchedInserts 多值 INSERT,12.4 万积压 45 秒消化完,
1650 QPS 持续压测队列稳态归零
|
2026-10-28 14:59:09 +08:00 |
|
Zhou Weidong
|
fc9e429187
|
feat(monitoring): 接入 Loki + Promtail 日志采集,Grafana 可直接搜索容器日志
|
2026-10-28 10:38:41 +08:00 |
|
Zhou Weidong
|
5d139783c9
|
fix(media): 缩略图唯一索引改为部分索引,避免软删行占用 episode_id 导致登记冲突
|
2026-10-27 21:07:10 +08:00 |
|
Zhou Weidong
|
ddd2406f32
|
fix(build): Docker 构建阶段固定阿里云 Maven 中央镜像
容器内从 Maven Central 拉依赖时 maven-filtering:3.3.1 解析失败,
且 dependency:go-offline 被 || true 静默吞掉,导致发布时才暴露。
构建阶段写入 settings.xml 走阿里云 central 镜像,并让 go-offline 失败即中断。
|
2026-10-27 20:14:19 +08:00 |
|
Vicky
|
272aa62434
|
feat: phase1 UI prep — P1 安全(XFF防护), P2 规模化(平台索引+region保护), P3 文档补全
P1 安全: WebUtils.getClientIp 改为 remoteAddr 优先 + 可信代理 CIDR 配置
P2 规模化: DISTINCT ON 查询补匹配排序的部分索引 (migrate-k113)
P2 一致性: syncCountryByIp regionCode 同语言/时区/币种加保护,不覆盖用户自定义
P3 文档: api-phase1.md 新增 platform 参数说明, IpRegionService 新增集成测试 + VERSION
新增: CountryProfile 52 国映射 + IpRegionService 离线 ip2region 解析
平台筛选: app-users/favorites/likes/watch-history 按最近一次会话 ANDROID/IOS 筛选
v0.9.0
|
2026-10-27 15:45:15 +08:00 |
|
jianghaifeng
|
a41ab18636
|
perf(admin): 优化观看记录列表并统一时间格式
- 新增 watched_at 索引,默认倒序翻页走 Merge Append 而不是全表排序
- 装配只取展示所需列,会话查询不再拉 refresh_token_hash
- 关键词预检索加 2000 条上限
- admin-api 的 LocalDateTime 统一输出 yyyy-MM-dd HH:mm:ss
|
2026-10-27 14:39:13 +08:00 |
|
jianghaifeng
|
8999ff395d
|
feat(admin): 收藏/点赞/观看记录支持按客户端平台筛选
- 设备画像按 device_id 命中,登录用户按最近一次登录会话的平台命中
- 修正 orderBy 先于动态条件导致 SQL 拼接错误的问题
|
2026-10-27 14:27:10 +08:00 |
|
jianghaifeng
|
229f1d0198
|
refactor(device): 设备平台只记 iOS/Android
去掉系统版本、机型与版本号上报,表结构收敛为 device_id + platform。
|
2026-10-27 14:00:12 +08:00 |
|
jianghaifeng
|
2dadca6288
|
chore(merge): 合并设备画像与后台系统展示
|
2026-10-27 13:53:49 +08:00 |
|
Vicky
|
2cf8f9a1c3
|
feat(device): 按 device_id 记录客户端系统与机型
- 新增 app_device_profile 表与 upsert,匿名请求同样建档
- app-api 设备画像过滤器,同设备 60 秒节流写一次
- 收藏/点赞/观看列表优先用设备画像,缺失回退最近会话
|
2026-10-27 13:53:47 +08:00 |
|
jianghaifeng
|
d9a1670a72
|
chore(merge): 合并互动计数校准
|
2026-10-27 13:29:09 +08:00 |
|
Vicky
|
5ff4626b33
|
chore(sql): 校准被压测数据污染的互动计数
剧集点赞数与剧收藏数改回按实际未删除互动行重算,可重复执行。
|
2026-10-27 13:29:09 +08:00 |
|
jianghaifeng
|
6bbde0b100
|
chore(merge): 合并剧级点赞历史数据清理
|
2026-10-27 13:28:15 +08:00 |
|
Vicky
|
884324b8fd
|
chore(sql): 清理历史遗留的剧级点赞数据
客户端点赞入口只作用于剧集,13 条 DRAMA 记录为旧模型遗留;
软删并同步校准 drama.like_count。
|
2026-10-27 13:28:15 +08:00 |
|
jianghaifeng
|
7baaeddf26
|
chore(merge): 合并点赞筛选说明文档
|
2026-10-27 13:25:52 +08:00 |
|
Vicky
|
99d49a1765
|
docs(admin): 说明点赞列表三种目标与 episodeId 筛选边界
- 明确客户端点赞落 EPISODE,DRAMA 为历史数据
- 说明 episodeId 只命中该集及该集评论,不含对短剧本身的点赞
|
2026-10-27 13:25:51 +08:00 |
|
jianghaifeng
|
92f7606f65
|
chore(merge): 合并收藏与点赞列表查询加固
|
2026-10-27 13:23:23 +08:00 |
|
Vicky
|
c2ba3df47c
|
fix(admin): 加固收藏与点赞列表查询
- 关键词/剧名预检索加 2000 条上限,避免 IN 列表超限并给出可操作提示
- 新增 created_at 分页索引迁移,避免无条件列表退化为全表排序
- dramaPublished 改为三态,短剧已不存在时不再误报未发布
|
2026-10-27 13:23:21 +08:00 |
|
Zhou Weidong
|
226dc275bb
|
merge(admin): 合并收藏与点赞只读查询
|
2026-10-27 12:32:23 +08:00 |
|
Zhou Weidong
|
7a2ff3f80e
|
feat(admin): 新增收藏与点赞只读查询接口
|
2026-10-27 12:32:23 +08:00 |
|
Zhou Weidong
|
23321a0b0c
|
feat(favorites): 支持设备批量取消收藏
|
2026-10-27 10:33:59 +08:00 |
|
Zhou Weidong
|
5d44ac239b
|
fix(watch): 修复匿名进度查询参数类型
|
2026-10-27 10:01:21 +08:00 |
|
Zhou Weidong
|
848c746505
|
feat(watch): 支持设备观看与登录合并
|
2026-10-27 09:54:47 +08:00 |
|
Zhou Weidong
|
4b0fbd73d3
|
feat(interaction): 支持游客互动与登录合并
|
2026-10-26 22:34:14 +08:00 |
|
Zhou Weidong
|
2fe24b9db7
|
feat(interaction): 新增分集计数统计接口
|
2026-10-26 21:31:17 +08:00 |
|
Zhou Weidong
|
15b540cdd6
|
chore(merge): 合并内容多语言与转码通知
|
2026-10-24 16:57:31 +08:00 |
|
Zhou Weidong
|
50b3dd4a8e
|
docs(api): 同步多语言筛选与转码通知契约
|
2026-10-24 16:53:26 +08:00 |
|
Zhou Weidong
|
1d34e47673
|
feat(admin): 增加工作台指标和转码通知
|
2026-10-24 16:53:26 +08:00 |
|
Zhou Weidong
|
2367a5d12b
|
feat(app): 全部短剧改为请求体分页
|
2026-10-24 16:53:26 +08:00 |
|
Zhou Weidong
|
ebc5f890fd
|
feat(playback): 观看记录返回标题多语言
|
2026-10-24 16:53:26 +08:00 |
|
Zhou Weidong
|
e60c47123c
|
feat(content): 短剧分类和标签支持多语言
|
2026-10-24 16:53:26 +08:00 |
|
Zhou Weidong
|
5c20cf1ab9
|
Merge branch feat/app-version-and-c-end
|
2026-10-23 16:45:55 +08:00 |
|
Zhou Weidong
|
45cf405285
|
feat(api): 加C端分类频道和剧单详情接口
|
2026-10-23 16:45:28 +08:00 |
|