浏览代码

refactor(second-goods): 调整商品发布限制检查时机

- 将用户发布商品频率限制检查移至审核通过后执行
- 确保仅对成功发布的商品进行发布限制校验- 避免在商品保存前进行不必要的限制检查- 统一处理商品发布与审核流程中的限制逻辑
- 优化日志记录位置,使其更准确反映业务状态
- 提高代码可读性和维护性
wxd 1 月之前
父节点
当前提交
1082458e17
共有 1 个文件被更改,包括 22 次插入10 次删除
  1. 22 10
      alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

+ 22 - 10
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.java

@@ -569,16 +569,6 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
                 return false; // 如果获取不到ID,视为操作失败
             }
 
-            // 检查用户是否在24小时内发布同类商品超过阈值
-            if (!checkUserPublishSameCategoryLimit(goods)) {
-                log.warn("用户 {} 在24小时内发布同类商品次数超过限制", goodsDTO.getUserId());
-            }
-
-            // 检查用户是否在24小时内发布商品超过阈值
-            if (!checkUserPublishLimit(goods)) {
-                log.warn("用户 {} 在24小时内发布商品次数超过限制", goodsDTO.getUserId());
-
-            }
             // 保存商品图片信息
             if (!saveStoreImages(savedGoodsId, goodsDTO )) {
                 return false;
@@ -719,6 +709,17 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
         }
         // 审核通过后上架商品
         approveAndListGoods(goods);
+
+        // 检查用户是否在24小时内发布同类商品超过阈值
+        if (!checkUserPublishSameCategoryLimit(goods)) {
+            log.warn("用户 {} 在24小时内发布同类商品次数超过限制", goodsDTO.getUserId());
+        }
+
+        // 检查用户是否在24小时内发布商品超过阈值
+        if (!checkUserPublishLimit(goods)) {
+            log.warn("用户 {} 在24小时内发布商品次数超过限制", goodsDTO.getUserId());
+
+        }
     }
 
     /**
@@ -1609,6 +1610,17 @@ public class SecondGoodsServiceImpl extends ServiceImpl<SecondGoodsMapper, Secon
                     operationName = "首次发布";
                 }
                 recordGoodsOperation(goods, operationName);
+
+                // 检查用户是否在24小时内发布同类商品超过阈值
+                if (!checkUserPublishSameCategoryLimit(goods)) {
+                    log.warn("用户 {} 在24小时内发布同类商品次数超过限制", goods.getUserId());
+                }
+
+                // 检查用户是否在24小时内发布商品超过阈值
+                if (!checkUserPublishLimit(goods)) {
+                    log.warn("用户 {} 在24小时内发布商品次数超过限制", goods.getUserId());
+
+                }
             } else {
                 // 审核不通过
                 goods.setGoodsStatus(SecondGoodsStatusEnum.REVIEW_FAILED.getCode());