xiongzhu hace 4 años
padre
commit
c726a5a53f

+ 0 - 2
src/main/java/com/izouma/nineth/TokenHistory.java

@@ -35,6 +35,4 @@ public class TokenHistory extends BaseEntity {
     private Long   toUserId;
 
     private String toAvatar;
-
-    private String assetName;
 }

+ 16 - 0
src/main/java/com/izouma/nineth/dto/UserHistory.java

@@ -0,0 +1,16 @@
+package com.izouma.nineth.dto;
+
+import com.izouma.nineth.TokenHistory;
+import com.izouma.nineth.domain.FileObject;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class UserHistory extends TokenHistory {
+    private String description;
+
+    private String assetName;
+
+    private List<FileObject> pic;
+}

+ 2 - 0
src/main/java/com/izouma/nineth/repo/AssetRepo.java

@@ -26,4 +26,6 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
     List<Asset> findByCreatedAtBefore(LocalDateTime localDateTime);
 
     List<Asset> findByConsignmentTrue();
+
+    List<Asset> findByTokenIdIn(Iterable<String> tokenId);
 }

+ 20 - 0
src/main/java/com/izouma/nineth/service/AssetService.java

@@ -3,6 +3,7 @@ package com.izouma.nineth.service;
 import com.izouma.nineth.TokenHistory;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.dto.PageQuery;
+import com.izouma.nineth.dto.UserHistory;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.CollectionSource;
 import com.izouma.nineth.enums.CollectionType;
@@ -19,6 +20,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.context.ApplicationContext;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.AsyncResult;
 import org.springframework.stereotype.Service;
@@ -27,7 +29,10 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
+import java.util.Set;
 import java.util.concurrent.Future;
+import java.util.stream.Collectors;
 
 @Service
 @AllArgsConstructor
@@ -315,4 +320,19 @@ public class AssetService {
             }
         });
     }
+
+    public Page<UserHistory> userHistory(Long userId, Pageable pageable) {
+        Page<TokenHistory> page = tokenHistoryRepo.userHistory(userId, pageable);
+        Set<String> tokenIds = page.stream().map(TokenHistory::getTokenId).collect(Collectors.toSet());
+        List<Asset> assets = tokenIds.isEmpty() ? new ArrayList<>() : assetRepo.findByTokenIdIn(tokenIds);
+        return page.map(tokenHistory -> {
+            UserHistory userHistory = new UserHistory();
+            BeanUtils.copyProperties(tokenHistory, userHistory);
+            Optional<Asset> asset = assets.stream().filter(a -> a.getTokenId().equals(tokenHistory.getTokenId()))
+                    .findAny();
+            userHistory.setAssetName(asset.map(Asset::getName).orElse(null));
+            userHistory.setPic(asset.map(Asset::getPic).orElse(new ArrayList<>()));
+            return userHistory;
+        });
+    }
 }

+ 3 - 2
src/main/java/com/izouma/nineth/web/AssetController.java

@@ -4,6 +4,7 @@ import com.izouma.nineth.TokenHistory;
 import com.izouma.nineth.domain.Asset;
 import com.izouma.nineth.domain.GiftOrder;
 import com.izouma.nineth.dto.PageQuery;
+import com.izouma.nineth.dto.UserHistory;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.AssetRepo;
 import com.izouma.nineth.repo.TokenHistoryRepo;
@@ -111,8 +112,8 @@ public class AssetController extends BaseController {
 
     @GetMapping("/userHistory")
     @ApiOperation("交易历史")
-    public Page<TokenHistory> userHistory(Pageable pageable) {
-        return tokenHistoryRepo.userHistory(SecurityUtils.getAuthenticatedUser().getId(), pageable);
+    public Page<UserHistory> userHistory(Pageable pageable) {
+        return assetService.userHistory(SecurityUtils.getAuthenticatedUser().getId(), pageable);
     }
 }