原 SecondGoodsServiceImpl 类有 2164行代码,职责过多,违反单一职责原则。现已按功能模块拆分为 6个独立服务类。
alien-second/src/main/java/shop/alien/second/service/impl/SecondGoodsServiceImpl.javasaveAsDraft)createBasicInfo)shelveSecondGoods)checkUserPublishLimit, checkUserPublishSameCategoryLimit)recordGoodsOperation)saveStoreImages)batchShelveGoodsByIds)shop.alien.second.service.SecondGoodsAuditServiceshop.alien.second.service.impl.SecondGoodsAuditServiceImplperformImageReviews)performTextReview)performVideoReviews)processVideoModerationResult)approveAndListGoods)createGoodsAudit)extractVideoUrls)parseVideoModerationFailureReason)VideoModerationService (视频审核)TextModerationUtil (文本审核)ImageModerationUtil (图片审核)SecondGoodsNotificationService (消息通知)shop.alien.second.service.SecondGoodsQueryServiceshop.alien.second.service.impl.SecondGoodsQueryServiceImplgetHotSellingRanking, getHotSellingRankingTop10)getCollectGoodsPage, getCollectTop10)searchGoodsList)getSecondGoodsById)getShieldedGoodsPage, getShieldedGoodsListByType)getBuyGoodsPage)getSellGoodsPage)getUserGoodsPage)getMyGoodsPage)getDraftList)getLikeGoodsPage)getTransactionList)getGoodsListByUserId)SecondGoodsDataEnricher (数据增强)shop.alien.second.service.SecondGoodsAdminServiceshop.alien.second.service.impl.SecondGoodsAdminServiceImplgetAdminGoodsDetail)getAdminGoodsRecordDetail)dealSecondGoodsInfo)dealSecondGoodsRecordInfo)getAdminGoodsList)convertReportsToVos)processReportImages)PlatformSecondTradeService (交易服务)SecondGoodsDataEnricher (数据增强)shop.alien.second.service.SecondGoodsNotificationServiceshop.alien.second.service.impl.SecondGoodsNotificationServiceImplsendMessage)sendFailedMsg)sendShelveMessage)sendNotice - 私有方法)AlienStoreFeign (Feign调用)shop.alien.second.service.SecondGoodsDataEnrichershop.alien.second.service.impl.SecondGoodsDataEnricherImplbatchSetSearchUserInfo, batchSetSellUserInfo)batchSetGoodsImages, batchSetGoodsImagesForAdmin)batchSetCollectStatus)batchSetLikeStatus)batchSetUserInfo - 私有泛型方法)每个服务类只负责一个明确的业务领域:
SecondGoodsDataEnricher) 可被多个服务复用SecondGoodsServiceImpl (主服务)
├── SecondGoodsAuditService (审核服务)
│ └── SecondGoodsNotificationService (通知服务)
├── SecondGoodsQueryService (查询服务)
│ └── SecondGoodsDataEnricher (数据增强服务)
├── SecondGoodsAdminService (管理后台服务)
│ └── SecondGoodsDataEnricher (数据增强服务)
└── SecondGoodsNotificationService (通知服务)
@Autowired
private SecondGoodsService secondGoodsService;
public void createGoods(SecondGoodsVo goodsVo) {
// 内部会自动调用审核服务、通知服务等
secondGoodsService.createBasicInfo(goodsVo, 0);
}
@Autowired
private SecondGoodsService secondGoodsService;
public IPage<SecondGoodsVo> searchGoods(SecondGoodsVo searchVo) {
// 内部委托给查询服务
return secondGoodsService.searchGoodsList(page, userId, searchVo);
}
@Autowired
private SecondGoodsAuditService auditService;
public void auditGoods(SecondGoods goods, SecondGoodsVo goodsVo) {
// 可以单独调用审核服务
auditService.performContentReview(goodsVo, goods);
}
@Autowired
private SecondGoodsDataEnricher dataEnricher;
public void enrichData(IPage<SecondGoodsVo> goodsList) {
// 批量设置用户信息
dataEnricher.batchSetSearchUserInfo(goodsList);
// 批量设置图片信息
dataEnricher.batchSetGoodsImages(goodsList);
}
SecondGoodsService 接口方法保持不变cp SecondGoodsServiceImpl.java SecondGoodsServiceImpl_backup.java
mv SecondGoodsServiceImpl_refactored.java SecondGoodsServiceImpl.java
mvn clean compile
mvn test
SecondGoodsAuditService 需要调用 SecondGoodsService.recordGoodsOperation()@Autowired 延迟注入避免循环依赖SecondGoodsAuditServiceImpl 中正确处理@Transactional@Slf4j 注解SecondGoodsQueryService 中添加 Redis 缓存RiskControlProperties 实现)如有问题或建议,请联系开发团队。
文档版本: 1.0
创建日期: 2025-11-07
最后更新: 2025-11-07