1.3 KiB
1.3 KiB
修复:产品上架/下架切换接口 500
服务: hl-product-service-v2 (端口 8083) PR: #726 Issue: #725 日期: 2026-04-17 影响范围: 管理端产品上架/下架操作
现象(前端感知)
点击产品「上架」/「下架」按钮后,后端返回 {"code":500, "message":"服务器内部错误"},操作失败。
根因
ProductStatusService.togglePublish 内部调用 this.doTogglePublishInTx(...) 是 Spring AOP 自调用,绕过代理,@Transactional 注解失效 → 方法内的 registerAfterCommit 拿不到事务上下文,抛 IllegalStateException: Transaction synchronization is not active。
修复
@Lazysetter 注入自身代理selftogglePublish改用self.doTogglePublishInTx(...)走 AOP 代理,@Transactional生效
接口契约
无变化。仅修复原本应该 200 却误返 500 的 bug,接口路径/参数/响应结构未变动。
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /admin/product/item/{id}/toggle-publish |
上架/下架切换(修复后正常 200) |
前端适配
无需改动。原本的调用代码现在能正常工作。
重启提示
需要重启 hl-product-service-v2(端口 8083)—— 通过 Deploy Panel 重新部署最新 jar。