Browse Source

探索官

sunkean 3 years ago
parent
commit
47eb759306

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

@@ -266,4 +266,6 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
     @Query(nativeQuery = true, value ="SELECT user.avatar avatar, user.nickname nickname, user.level level FROM user WHERE user.id = ?1 AND user.del = false")
     Map<String, String> websocketQuery(Long userId);
 
+    @Query(nativeQuery = true, value = "select id as userId, nickname as nickname, avatar as avatar from user where id in ?1")
+    List<Map<String, String>> newTop(List<Long> ids);
 }

+ 29 - 15
src/main/java/com/izouma/nineth/web/UserHoldCountController.java

@@ -1,8 +1,10 @@
 package com.izouma.nineth.web;
 
-import com.alibaba.excel.util.CollectionUtils;
+import com.alibaba.fastjson.JSONArray;
 import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.dto.UserHoldDTO;
+import com.izouma.nineth.repo.UserRepo;
+import com.izouma.nineth.service.SysConfigService;
 import com.izouma.nineth.service.UserHoldCountCache;
 import com.izouma.nineth.service.UserHoldCountService;
 import com.izouma.nineth.utils.excel.ExcelUtils;
@@ -12,8 +14,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
 
 @RestController
 @RequestMapping("/userHold")
@@ -24,6 +25,10 @@ public class UserHoldCountController {
 
     private UserHoldCountCache userHoldCountCache;
 
+    private SysConfigService sysConfigService;
+
+    private UserRepo userRepo;
+
     @PostMapping("/all")
     public Page<UserHoldDTO> all(@RequestBody PageQuery pageQuery) {
         return userHoldCountService.all(pageQuery).toPage();
@@ -41,19 +46,28 @@ public class UserHoldCountController {
 
     @GetMapping("/app/top")
     public List<UserHoldDTO> appTop() {
-        List<UserHoldDTO> top = top(30);
-        if (CollectionUtils.isEmpty(top)) {
-            return null;
-        }
-        top.forEach(userHoldDTO -> {
-            userHoldDTO.setNum(0);
-            userHoldDTO.setUsername(null);
-            userHoldDTO.setPrefixName(null);
-            userHoldDTO.setName(null);
-            userHoldDTO.setPrice(null);
-            userHoldDTO.setUserId(null);
+//        List<UserHoldDTO> top = top(30);
+//        if (CollectionUtils.isEmpty(top)) {
+//            return null;
+//        }
+//        top.forEach(userHoldDTO -> {
+//            userHoldDTO.setNum(0);
+//            userHoldDTO.setUsername(null);
+//            userHoldDTO.setPrefixName(null);
+//            userHoldDTO.setName(null);
+//            userHoldDTO.setPrice(null);
+//            userHoldDTO.setUserId(null);
+//        });
+//        return top;
+        String appTop = sysConfigService.getString("APP_TOP");
+        List<Long> ids = new ArrayList<>();
+        Arrays.stream(appTop.split(" ")).forEach(id -> {
+            ids.add(Long.parseLong(id));
         });
-        return top;
+        List<Map<String, String>> assets = userRepo.newTop(ids);
+        JSONArray jsonArray = new JSONArray();
+        jsonArray.addAll(assets);
+        return jsonArray.toJavaList(UserHoldDTO.class);
     }
 
     @GetMapping("/excel")