|
|
@@ -0,0 +1,57 @@
|
|
|
+package com.mangoo.rating.recommend.manager.impl;
|
|
|
+
|
|
|
+import com.mangoo.rating.recommend.manager.RatingRecommendRuleManager;
|
|
|
+import com.mangoo.rating.recommend.mapper.RatingRecommendRuleMapper;
|
|
|
+import com.mangoo.rating.recommend.po.RatingRecommendRulePO;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 评级时效推荐规则 Manager 实现
|
|
|
+ *
|
|
|
+ * @author gengjintao
|
|
|
+ * @date 2026/06/24
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class RatingRecommendRuleManagerImpl implements RatingRecommendRuleManager {
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private RatingRecommendRuleMapper ratingRecommendRuleMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RatingRecommendRulePO selectByExact(String player, String year, String series, String cardSet) {
|
|
|
+ // L1 参与字段全部不为空才查询(避免无意义 SQL)
|
|
|
+ if (isBlank(player) || isBlank(year) || isBlank(series) || isBlank(cardSet)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return ratingRecommendRuleMapper.selectByExact(player, year, series, cardSet);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RatingRecommendRulePO selectBySeriesSetYear(String series, String cardSet, String year) {
|
|
|
+ // L2 三个参与字段不能为空
|
|
|
+ if (isBlank(series) || isBlank(cardSet) || isBlank(year)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return ratingRecommendRuleMapper.selectBySeriesSetYear(series, cardSet, year);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public RatingRecommendRulePO selectBySeriesSet(String series, String cardSet) {
|
|
|
+ // L3 两个参与字段不能为空
|
|
|
+ if (isBlank(series) || isBlank(cardSet)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ return ratingRecommendRuleMapper.selectBySeriesSet(series, cardSet);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 简单空白判断(避免引入 commons-lang 仅用一次)
|
|
|
+ */
|
|
|
+ private boolean isBlank(String s) {
|
|
|
+ return s == null || s.trim().isEmpty();
|
|
|
+ }
|
|
|
+}
|