refactoring

This commit is contained in:
aisensiy
2017-08-25 11:34:41 +08:00
parent aa4f40ba74
commit cea03e01b9
16 changed files with 31 additions and 50 deletions

View File

@@ -3,7 +3,7 @@ package io.spring.api;
import com.fasterxml.jackson.annotation.JsonRootName;
import io.spring.api.exception.InvalidRequestException;
import io.spring.application.UserQueryService;
import io.spring.application.UserWithToken;
import io.spring.application.data.UserWithToken;
import io.spring.application.data.UserData;
import io.spring.core.user.User;
import io.spring.core.user.UserRepository;

View File

@@ -3,7 +3,7 @@ package io.spring.api;
import com.fasterxml.jackson.annotation.JsonRootName;
import io.spring.api.exception.InvalidRequestException;
import io.spring.application.UserQueryService;
import io.spring.application.UserWithToken;
import io.spring.application.data.UserWithToken;
import io.spring.application.data.UserData;
import io.spring.core.service.JwtService;
import io.spring.core.user.EncryptService;

View File

@@ -2,10 +2,11 @@ package io.spring.application;
import io.spring.application.data.ArticleData;
import io.spring.application.data.ArticleDataList;
import io.spring.application.data.ArticleFavoriteCount;
import io.spring.core.user.User;
import io.spring.infrastructure.mybatis.readservice.ArticleFavoritesReadService;
import io.spring.infrastructure.mybatis.readservice.ArticleReadService;
import io.spring.infrastructure.mybatis.readservice.UserRelationshipQueryService;
import lombok.Value;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -22,15 +23,15 @@ import static java.util.stream.Collectors.toList;
public class ArticleQueryService {
private ArticleReadService articleReadService;
private UserRelationshipQueryService userRelationshipQueryService;
private ArticleFavoritesQueryService articleFavoritesQueryService;
private ArticleFavoritesReadService articleFavoritesReadService;
@Autowired
public ArticleQueryService(ArticleReadService articleReadService,
UserRelationshipQueryService userRelationshipQueryService,
ArticleFavoritesQueryService articleFavoritesQueryService) {
ArticleFavoritesReadService articleFavoritesReadService) {
this.articleReadService = articleReadService;
this.userRelationshipQueryService = userRelationshipQueryService;
this.articleFavoritesQueryService = articleFavoritesQueryService;
this.articleFavoritesReadService = articleFavoritesReadService;
}
public Optional<ArticleData> findById(String id, User user) {
@@ -89,7 +90,7 @@ public class ArticleQueryService {
}
private void setFavoriteCount(List<ArticleData> articles) {
List<ArticleFavoriteCount> favoritesCounts = articleFavoritesQueryService.articlesFavoriteCount(articles.stream().map(ArticleData::getId).collect(toList()));
List<ArticleFavoriteCount> favoritesCounts = articleFavoritesReadService.articlesFavoriteCount(articles.stream().map(ArticleData::getId).collect(toList()));
Map<String, Integer> countMap = new HashMap<>();
favoritesCounts.forEach(item -> {
countMap.put(item.getId(), item.getCount());
@@ -98,7 +99,7 @@ public class ArticleQueryService {
}
private void setIsFavorite(List<ArticleData> articles, User currentUser) {
Set<String> favoritedArticles = articleFavoritesQueryService.userFavorites(articles.stream().map(articleData -> articleData.getId()).collect(toList()), currentUser);
Set<String> favoritedArticles = articleFavoritesReadService.userFavorites(articles.stream().map(articleData -> articleData.getId()).collect(toList()), currentUser);
articles.forEach(articleData -> {
if (favoritedArticles.contains(articleData.getId())) {
@@ -108,8 +109,8 @@ public class ArticleQueryService {
}
private void fillExtraInfo(String id, User user, ArticleData articleData) {
articleData.setFavorited(articleFavoritesQueryService.isUserFavorite(user.getId(), id));
articleData.setFavoritesCount(articleFavoritesQueryService.articleFavoriteCount(id));
articleData.setFavorited(articleFavoritesReadService.isUserFavorite(user.getId(), id));
articleData.setFavoritesCount(articleFavoritesReadService.articleFavoriteCount(id));
articleData.getProfileData().setFollowing(
userRelationshipQueryService.isUserFollowing(
user.getId(),
@@ -129,8 +130,3 @@ public class ArticleQueryService {
}
}
@Value
class ArticleFavoriteCount {
private String id;
private Integer count;
}

View File

@@ -1,7 +1,6 @@
package io.spring.application;
import io.spring.application.data.UserData;
import io.spring.core.service.JwtService;
import io.spring.infrastructure.mybatis.readservice.UserReadService;
import org.springframework.stereotype.Service;
@@ -10,11 +9,9 @@ import java.util.Optional;
@Service
public class UserQueryService {
private UserReadService userReadService;
private JwtService jwtService;
public UserQueryService(UserReadService userReadService, JwtService jwtService) {
public UserQueryService(UserReadService userReadService) {
this.userReadService = userReadService;
this.jwtService = jwtService;
}
public Optional<UserData> findById(String id) {

View File

@@ -0,0 +1,9 @@
package io.spring.application.data;
import lombok.Value;
@Value
public class ArticleFavoriteCount {
private String id;
private Integer count;
}

View File

@@ -1,6 +1,5 @@
package io.spring.application;
package io.spring.application.data;
import io.spring.application.data.UserData;
import lombok.Getter;
@Getter

View File

@@ -1,5 +1,6 @@
package io.spring.application;
package io.spring.infrastructure.mybatis.readservice;
import io.spring.application.data.ArticleFavoriteCount;
import io.spring.core.user.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -10,7 +11,7 @@ import java.util.Set;
@Mapper
@Component
public interface ArticleFavoritesQueryService {
public interface ArticleFavoritesReadService {
boolean isUserFavorite(@Param("userId") String userId, @Param("articleId") String articleId);
int articleFavoriteCount(@Param("articleId") String articleId);

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="io.spring.application.ArticleFavoritesQueryService">
<mapper namespace="io.spring.infrastructure.mybatis.readservice.ArticleFavoritesReadService">
<select id="isUserFavorite" resultType="java.lang.Boolean">
select count(1) from article_favorites where user_id = #{userId} and article_id = #{articleId}
</select>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="transfer.data">
<resultMap id="favoriteCount" type="io.spring.application.ArticleFavoriteCount">
<resultMap id="favoriteCount" type="io.spring.application.data.ArticleFavoriteCount">
<constructor>
<idArg column="id" javaType="string"/>
<arg column="favoriteCount" javaType="integer"/>