|
|
@@ -1,13 +1,18 @@
|
|
|
package com.izouma.nineth.web;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.fasterxml.jackson.annotation.JsonView;
|
|
|
import com.izouma.nineth.TokenHistory;
|
|
|
import com.izouma.nineth.domain.Asset;
|
|
|
+import com.izouma.nineth.domain.Collection;
|
|
|
import com.izouma.nineth.domain.GiftOrder;
|
|
|
import com.izouma.nineth.dto.*;
|
|
|
+import com.izouma.nineth.enums.CollectionSource;
|
|
|
import com.izouma.nineth.enums.CollectionType;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
import com.izouma.nineth.repo.AssetRepo;
|
|
|
+import com.izouma.nineth.repo.CollectionRepo;
|
|
|
import com.izouma.nineth.repo.OrderRepo;
|
|
|
import com.izouma.nineth.service.AssetService;
|
|
|
import com.izouma.nineth.service.CacheService;
|
|
|
@@ -21,6 +26,7 @@ import org.springframework.data.domain.Page;
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.cache.annotation.Cacheable;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
@@ -42,6 +48,7 @@ public class AssetController extends BaseController {
|
|
|
private OrderRepo orderRepo;
|
|
|
private CacheService cacheService;
|
|
|
private UserAssetSummaryService userAssetSummaryService;
|
|
|
+ private CollectionRepo collectionRepo;
|
|
|
|
|
|
//@PreAuthorize("hasRole('ADMIN')")
|
|
|
// @PostMapping("/save")
|
|
|
@@ -240,6 +247,41 @@ public class AssetController extends BaseController {
|
|
|
public void recal(@RequestParam Long userId) {
|
|
|
userAssetSummaryService.calculateNum(userId, 1L);
|
|
|
}
|
|
|
+
|
|
|
+ @GetMapping("/topTen")
|
|
|
+ @Cacheable(value = "transactionTopTen")
|
|
|
+ public List<TransactionTopTenDTO> transactionTopTen() {
|
|
|
+ LocalDateTime localDateTime = LocalDateTime.now().plusDays(-7);
|
|
|
+ List<Map<String, String>> map = orderRepo.transactionTopTen(localDateTime);
|
|
|
+ JSONArray jsonArray = new JSONArray();
|
|
|
+ if (CollectionUtil.isEmpty(map)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ jsonArray.addAll(map);
|
|
|
+ List<TransactionTopTenDTO> transactionTopTenDTOS = jsonArray.toJavaList(TransactionTopTenDTO.class);
|
|
|
+ if (CollectionUtil.isEmpty(transactionTopTenDTOS)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ transactionTopTenDTOS.forEach(transactionTopTenDTO -> {
|
|
|
+ if (Objects.nonNull(transactionTopTenDTO.getId())) {
|
|
|
+ if (transactionTopTenDTO.getSource().equals(CollectionSource.OFFICIAL)) {
|
|
|
+ Collection collection = collectionRepo.findById(transactionTopTenDTO.getId()).orElse(null);
|
|
|
+ if (Objects.nonNull(collection)) {
|
|
|
+ transactionTopTenDTO.setPic(collection.getPic());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (transactionTopTenDTO.getSource().equals(CollectionSource.TRANSFER)) {
|
|
|
+ Asset asset = assetRepo.findById(transactionTopTenDTO.getId()).orElse(null);
|
|
|
+ if (Objects.nonNull(asset)) {
|
|
|
+ transactionTopTenDTO.setPic(asset.getPic());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ transactionTopTenDTO.setId(null);
|
|
|
+ transactionTopTenDTO.setSource(null);
|
|
|
+ });
|
|
|
+ return transactionTopTenDTOS;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|