|
|
@@ -8,6 +8,7 @@ import com.dataeasy.server.atomic.service.ISubscriptionSourceService;
|
|
|
import com.dataeasy.server.atomic.service.ISubscriptionUserConfigService;
|
|
|
import com.dataeasy.server.common.exception.BusinessException;
|
|
|
import com.dataeasy.server.common.utils.Assert;
|
|
|
+import com.dataeasy.server.constant.CacheNameConstant;
|
|
|
import com.dataeasy.server.pojo.subscription.PushOptionRequest;
|
|
|
import com.dataeasy.server.pojo.subscription.SubscriptionSourcePlanVO;
|
|
|
import com.dataeasy.server.pojo.subscription.SubscriptionSourceVO;
|
|
|
@@ -21,6 +22,8 @@ import com.dataeasy.server.utiis.UserUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.cache.CacheManager;
|
|
|
+import org.springframework.cache.annotation.Cacheable;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
@@ -54,7 +57,11 @@ public class SubscriptionManagerImpl implements ISubscriptionManager {
|
|
|
@Autowired
|
|
|
private ISubscriptionUserConfigService subscriptionUserConfigService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CacheManager cacheManager;
|
|
|
+
|
|
|
@Override
|
|
|
+ @Cacheable(cacheNames = CacheNameConstant.SUBSCRIPTION_SOURCE_LIST)
|
|
|
public List<SubscriptionSourceVO> querySubscriptionSource() {
|
|
|
SubscriptionSourceQuery subscriptionSourceQuery = new SubscriptionSourceQuery();
|
|
|
List<SubscriptionSource> sourceList = subscriptionSourceService.getByCondition(subscriptionSourceQuery);
|
|
|
@@ -70,6 +77,7 @@ public class SubscriptionManagerImpl implements ISubscriptionManager {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Cacheable(cacheNames = CacheNameConstant.SUBSCRIPTION_SOURCE, key = "#id")
|
|
|
public SubscriptionSourceDetailVO querySubscriptionSourceDetail(Long id) {
|
|
|
SubscriptionSource subscriptionSource = subscriptionSourceService.getById(id);
|
|
|
Assert.isNullInBusiness(subscriptionSource, "找不到对应的订阅源");
|
|
|
@@ -106,10 +114,11 @@ public class SubscriptionManagerImpl implements ISubscriptionManager {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<SubscriptionUserConfigVO> querySubscriptionUserConfig() {
|
|
|
+ @Cacheable(cacheNames = CacheNameConstant.SUBSCRIPTION_USER_CONFIG_LIST, key = "#userId")
|
|
|
+ public List<SubscriptionUserConfigVO> querySubscriptionUserConfig(Long userId) {
|
|
|
// 查询当前用户拥有的订阅源
|
|
|
SubscriptionUserConfigQuery subscriptionUserConfigQuery = new SubscriptionUserConfigQuery();
|
|
|
- subscriptionUserConfigQuery.setUserId(UserUtils.getCurrentUserId());
|
|
|
+ subscriptionUserConfigQuery.setUserId(userId);
|
|
|
List<SubscriptionUserConfig> userConfigList = subscriptionUserConfigService.getByCondition(subscriptionUserConfigQuery);
|
|
|
if (CollectionUtils.isEmpty(userConfigList)) {
|
|
|
return List.of();
|
|
|
@@ -143,31 +152,11 @@ public class SubscriptionManagerImpl implements ISubscriptionManager {
|
|
|
}).toList();
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 根据条件查询订阅源
|
|
|
- * @return
|
|
|
- */
|
|
|
- private List<SubscriptionSourceDetailVO> querySubscriptionSourceVO(SubscriptionSourceQuery query) {
|
|
|
- if (Objects.isNull(query)) {
|
|
|
- return List.of();
|
|
|
- }
|
|
|
- List<SubscriptionSource> sourceList = subscriptionSourceService.getByCondition(query);
|
|
|
- if (CollectionUtils.isEmpty(sourceList)) {
|
|
|
- return List.of();
|
|
|
- }
|
|
|
- return sourceList.stream().map(source -> {
|
|
|
- SubscriptionSourceDetailVO sourceVO = new SubscriptionSourceDetailVO();
|
|
|
- BeanUtils.copyProperties(source, sourceVO);
|
|
|
- if (StringUtils.hasText(source.getPics())) {
|
|
|
- List<String> picList = Arrays.stream(source.getPics().split(",")).toList();
|
|
|
- sourceVO.setPics(picList);
|
|
|
- }
|
|
|
- return sourceVO;
|
|
|
- }).toList();
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public void modifyPushOption(PushOptionRequest request) {
|
|
|
+ // 清除缓存
|
|
|
+ cacheManager.getCache(CacheNameConstant.SUBSCRIPTION_USER_CONFIG_LIST).evict(UserUtils.getCurrentUserId());
|
|
|
+
|
|
|
SubscriptionUserConfig subscriptionUserConfig = new SubscriptionUserConfig();
|
|
|
subscriptionUserConfig.setId(request.getId());
|
|
|
subscriptionUserConfig.setPushOption(request.getPushOption());
|