Browse Source

元宇宙孪生身份信息

lidongze 3 years ago
parent
commit
f95a9d3a1d

+ 21 - 0
src/main/java/com/izouma/nineth/domain/UserDetail.java

@@ -51,4 +51,25 @@ public class UserDetail extends BaseEntityNoID {
     @ApiModelProperty("个人签名")
     private String autograph;
 
+    @ApiModelProperty("nft数量")
+    private Long nftCount;
+
+    @ApiModelProperty("建筑总量")
+    private Long buildCount;
+
+    @ApiModelProperty("地块总量")
+    private Long plotCount;
+
+    @ApiModelProperty("粉丝数量")
+    private Long fansCount;
+
+    @ApiModelProperty("灵气总量")
+    private Long reikiCount;
+
+    @ApiModelProperty("勋章总量")
+    private Long medalCount;
+
+    @ApiModelProperty("个人热力值")
+    private Long personalheatCount;
+
 }

+ 38 - 0
src/main/java/com/izouma/nineth/repo/UserDetailRepo.java

@@ -0,0 +1,38 @@
+package com.izouma.nineth.repo;
+
+import com.izouma.nineth.domain.UserDetail;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+
+import javax.transaction.Transactional;
+
+public interface UserDetailRepo extends JpaRepository<UserDetail, Long>, JpaSpecificationExecutor<UserDetail> {
+    @Query("update UserDetail t set t.del = true where t.userId = ?1")
+    @Modifying
+    @Transactional
+    void softDelete(Long id);
+
+
+    @Query("select count(a) from Asset a where a.userId = ?1 and a.status = 'NORMAL'")
+    Long findNftCountById(Long id);
+
+    @Query("select count(a) from Asset a where a.userId = ?1 and a.status = 'NORMAL' and a.name like '%房产%' or a.name like '%建筑%'")
+    Long findBuildCountById(Long id);
+
+    @Query("select count(a) from Asset a where a.userId = ?1 and a.status = 'NORMAL' and a.name like '%土地%'")
+    Long findPlotCountById(Long id);
+
+    @Query("select u.followers from User u where u.id = ?1")
+    Long findFansCountById(Long id);
+
+    @Query("select count(a) from Asset a where a.userId = ?1 and a.status = 'NORMAL' and a.name like '%绿洲灵气%'")
+    Long findReikiCountById(Long id);
+
+    @Query("select count(a) from Asset a where a.userId = ?1 and a.status = 'NORMAL' and a.name like '%勋章%'")
+    Long findMedalCountById(Long id);
+
+    @Query("select sum(c.likes) from Collection c where c.ownerId = ?1")
+    Long findPersonalHeatCountById(Long id);
+}

+ 11 - 1
src/main/java/com/izouma/nineth/web/UserDetailController.java

@@ -58,7 +58,17 @@ public class UserDetailController extends BaseController {
 
     @GetMapping("/get/{id}")
     public UserDetail get(@PathVariable Long id) {
-        return userDetailRepo.findById(id).orElseThrow(new BusinessException("无记录"));
+        UserDetail userDetail =  userDetailRepo.findById(id).orElseThrow(new BusinessException("无记录"));
+        userDetail.setNftCount(userDetailRepo.findNftCountById(id));
+        userDetail.setBuildCount(userDetailRepo.findBuildCountById(id));
+        userDetail.setPlotCount(userDetailRepo.findPlotCountById(id));
+        userDetail.setFansCount(userDetailRepo.findFansCountById(id));
+        userDetail.setReikiCount(userDetailRepo.findReikiCountById(id));
+        userDetail.setMedalCount(userDetailRepo.findMedalCountById(id));
+        userDetail.setPersonalheatCount(userDetailRepo.findPersonalHeatCountById(id));
+
+        return userDetail;
+
     }
 
     @PostMapping("/del/{id}")