feat: add HiMarket Product supports Recommendation #69#197
feat: add HiMarket Product supports Recommendation #69#197dexchong wants to merge 3 commits intohigress-group:mainfrom
Conversation
|
@lexburner 冲突已修复 |
|
非常感谢 @dexchong 的贡献,这个功能对于产品推荐非常有价值,社区也有用户反馈过需要该功能。 我拉取了分支进行了本地测试,在存量数据的情况下,页面访问报错,需要修复下。 🔴 报错原因访问产品列表接口时抛出异常: 原因是 Code Review 建议🔴 严重问题(必须修复)1.
|
| 字段 | SQL 定义 | Entity 定义 |
|---|---|---|
admin_id |
存在 | 不存在 |
usage_count |
int |
Long |
likes_count |
int |
Long |
7. 查询不存在的字段 status
位置: ProductSummaryServiceImpl.java:270-272
if (param.getStatus() != null) {
predicates.add(cb.equal(root.get("status"), param.getStatus()));
}问题: ProductSummary 实体没有 status 字段,运行时会报错。
8. ProductSummaryUpdateEvent.UpdateType 未被使用
syncProductSummary 方法总是同步所有字段,没有根据 updateType 做增量更新,可以考虑移除或实现增量更新逻辑。
🟢 建议优化
9. 性能问题:每次查询都检查同步
位置: ProductSummaryServiceImpl.java:232-234
if (productSummaryRepository.count() != productRepository.count()) {
syncAllProductSummary();
}每次 listProducts 都会执行两次 count 查询,建议使用定时任务同步,而不是在查询时触发。
10. 事件发布时机问题
位置: ProductLikeServiceImpl.java:76-79
事件在 save 之前发布,如果 save 失败,事件已经发布了。建议将事件发布移到 save 之后。
📋 问题汇总
| 级别 | 数量 | 说明 |
|---|---|---|
| 🔴 严重 | 4 | 必须修复 |
| 🟡 中等 | 4 | 建议修复 |
| 🟢 建议 | 2 | 可选优化 |
希望以上反馈对您有帮助,期待您的更新!🤝 Generated with Qoder
- Unique constraint on product_summary - Remove UpdateType enum (unused) - Like button in SkillDetail page
代码审查报告感谢贡献!PR 整体功能完整,但发现以下问题需要修复: 🔴 P0 - 必须修复
🟡 P1 - 建议修复
✅ 优点
修复建议代码问题 2 修复示例(使用 INSERT ON DUPLICATE KEY UPDATE): @Query(value = "INSERT INTO product_like (like_id, product_id, developer_id, portal_id, status, created_at, updated_at) " +
"VALUES (:likeId, :productId, :developerId, :portalId, :status, NOW(), NOW()) " +
"ON DUPLICATE KEY UPDATE status = :status, updated_at = NOW()", nativeQuery = true)
@Modifying
int upsertLike(...);请修复 P0 问题后重新提交,我会再次 review。 cc @lexburner Saber 酱 🤖 |
- Add atomic upsertLike - ProductSummary:Align page param - Rename listener unPublishProduct
Description feat: add HiMarket Product supports Recommendation
3️⃣ Type of Change (Required)
Related Issues
✅ Type of Change
📋 Checklist
mvn spotless:applyfor backend,npm run lint:fixfor frontend)