liaijie 3 роки тому
батько
коміт
9e558f1657

+ 7 - 0
src/main/java/com/izouma/nineth/domain/User.java

@@ -6,6 +6,7 @@ import com.fasterxml.jackson.annotation.JsonView;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.izouma.nineth.JsonView.UserView;
 import com.izouma.nineth.JsonView.UserView;
 import com.izouma.nineth.annotations.Searchable;
 import com.izouma.nineth.annotations.Searchable;
+import com.izouma.nineth.dto.UserBankCard;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.security.Authority;
 import com.izouma.nineth.security.Authority;
 import com.izouma.nineth.utils.UserAuthoritySerializer;
 import com.izouma.nineth.utils.UserAuthoritySerializer;
@@ -22,6 +23,7 @@ import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.HashSet;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 import java.util.Set;
 
 
 @Data
 @Data
@@ -169,4 +171,9 @@ public class User extends BaseEntityNoID implements Serializable {
 
 
     @ApiModelProperty(value = "风险提示")
     @ApiModelProperty(value = "风险提示")
     private Boolean riskWarning;
     private Boolean riskWarning;
+
+    @ApiModelProperty("用户是否绑定了银行卡")
+    private Boolean isUserBankCard;
+
+
 }
 }

+ 21 - 4
src/main/java/com/izouma/nineth/service/AssetService.java

@@ -15,10 +15,12 @@ import com.izouma.nineth.event.TransferAssetEvent;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.repo.*;
 import com.izouma.nineth.utils.JpaUtils;
 import com.izouma.nineth.utils.JpaUtils;
+import com.izouma.nineth.utils.PageUtil;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.SecurityUtils;
 import com.izouma.nineth.utils.TokenUtils;
 import com.izouma.nineth.utils.TokenUtils;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import net.coobird.thumbnailator.filters.Pipeline;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
 import org.apache.rocketmq.spring.core.RocketMQTemplate;
@@ -26,6 +28,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContext;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Pageable;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -417,7 +421,7 @@ public class AssetService {
         Page<TokenHistory> page = tokenHistoryRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
         Page<TokenHistory> page = tokenHistoryRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
             List<Predicate> and = JpaUtils.toPredicates(pageQuery, TokenHistory.class, root, criteriaQuery, criteriaBuilder);
             List<Predicate> and = JpaUtils.toPredicates(pageQuery, TokenHistory.class, root, criteriaQuery, criteriaBuilder);
             Map<String, Object> query = pageQuery.getQuery();
             Map<String, Object> query = pageQuery.getQuery();
-            String operation = (String) query.get("operation");
+            //String operation = (String) query.get("operation");
             if (ObjectUtils.isEmpty(query.get("toUserId")) && ObjectUtils.isEmpty(query.get("fromUserId"))) {
             if (ObjectUtils.isEmpty(query.get("toUserId")) && ObjectUtils.isEmpty(query.get("fromUserId"))) {
                 and.add(criteriaBuilder.or(criteriaBuilder.equal(root.get("toUserId"), userId), criteriaBuilder.equal(root.get("fromUserId"), userId)));
                 and.add(criteriaBuilder.or(criteriaBuilder.equal(root.get("toUserId"), userId), criteriaBuilder.equal(root.get("fromUserId"), userId)));
             } else {
             } else {
@@ -427,16 +431,18 @@ public class AssetService {
                     and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("fromUserId"), userId)));
                     and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("fromUserId"), userId)));
                 }
                 }
             }
             }
-            if (ObjectUtils.isNotEmpty(query.get("operation"))){
+            /*if (ObjectUtils.isNotEmpty(query.get("operation"))){
                 and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("operation"),operation)));
                 and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("operation"),operation)));
-            }
+            }*/
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
             return criteriaBuilder.and(and.toArray(new Predicate[0]));
         }), JpaUtils.toPageRequest(pageQuery));
         }), JpaUtils.toPageRequest(pageQuery));
 
 
         Set<String> tokenIds = page.stream().map(TokenHistory::getTokenId).collect(Collectors.toSet());
         Set<String> tokenIds = page.stream().map(TokenHistory::getTokenId).collect(Collectors.toSet());
         List<Asset> assets = tokenIds.isEmpty() ? new ArrayList<>() : assetRepo.findByTokenIdIn(tokenIds);
         List<Asset> assets = tokenIds.isEmpty() ? new ArrayList<>() : assetRepo.findByTokenIdIn(tokenIds);
+        Map<String, Object> query = pageQuery.getQuery();
+        String operation = (String) query.get("operation");
 
 
-        return page.map(tokenHistory -> {
+        Page<UserHistory> map = page.map(tokenHistory -> {
             UserHistory userHistory = new UserHistory();
             UserHistory userHistory = new UserHistory();
             BeanUtils.copyProperties(tokenHistory, userHistory);
             BeanUtils.copyProperties(tokenHistory, userHistory);
             Optional<Asset> asset = assets.stream().filter(a -> a.getTokenId().equals(tokenHistory.getTokenId()))
             Optional<Asset> asset = assets.stream().filter(a -> a.getTokenId().equals(tokenHistory.getTokenId()))
@@ -456,8 +462,19 @@ public class AssetService {
                     userHistory.setDescription("赠送");
                     userHistory.setDescription("赠送");
                     break;
                     break;
             }
             }
+            if (operation != null && operation != "") {
+                if (!userHistory.getOperation().equals(operation)) {
+                    return null;
+                }
+            }
             return userHistory;
             return userHistory;
         });
         });
+
+        List<UserHistory> content = map.getContent();
+        content.removeAll(Collections.singleton(null));
+        Pageable pageable = PageRequest.of(pageQuery.getPage() - 1, pageQuery.getSize());
+        Page<UserHistory> pageFromList = PageUtil.createPageFromList(content, pageable);
+        return pageFromList;
     }
     }
 
 
     public String mint(LocalDateTime time) {
     public String mint(LocalDateTime time) {

+ 6 - 0
src/main/java/com/izouma/nineth/service/UserService.java

@@ -713,6 +713,12 @@ public class UserService {
         User user = userRepo.findById(id).orElseThrow(new BusinessException("用户不存在"));
         User user = userRepo.findById(id).orElseThrow(new BusinessException("用户不存在"));
         user.setPassword(null);
         user.setPassword(null);
         user.setTradeCode(null);
         user.setTradeCode(null);
+        List<UserBankCard> byUserId = userBankCardRepo.findByUserId(id);
+        if (byUserId==null || byUserId.size()==0){
+            user.setIsUserBankCard(false);
+        }else {
+            user.setIsUserBankCard(true);
+        }
         return user;
         return user;
     }
     }
 
 

+ 32 - 0
src/main/java/com/izouma/nineth/utils/PageUtil.java

@@ -0,0 +1,32 @@
+package com.izouma.nineth.utils;
+
+
+
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageImpl;
+import org.springframework.data.domain.Pageable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public interface PageUtil {
+
+
+    /** * Create a {@link org.springframework.data.domain.Page} from a {@link java.util.List} of objects * * @param list List数据 * @param pageable 分页参数. * @param <T> 包含数据 * @return page */
+    static <T> Page<T> createPageFromList(List<T> list, Pageable pageable) {
+
+        if (list == null) {
+
+            throw new IllegalArgumentException("list不能为空");
+        }
+
+        int startOfPage = pageable.getPageNumber() * pageable.getPageSize();
+        if (startOfPage > list.size()) {
+
+            return new PageImpl<>(new ArrayList<>(), pageable, 0);
+        }
+
+        int endOfPage = Math.min(startOfPage + pageable.getPageSize(), list.size());
+        return new PageImpl<>(list.subList(startOfPage, endOfPage), pageable, list.size());
+    }
+}

+ 1 - 1
src/main/resources/application.yaml

@@ -221,7 +221,7 @@ adapay:
   wx-app-id:
   wx-app-id:
   notify-url: https://njnft.izouma.vip/notify/adapay
   notify-url: https://njnft.izouma.vip/notify/adapay
 rocketmq:
 rocketmq:
-  name-server: 47.99.219.80:9876
+  name-server: 47.96.38.242:9876
   producer:
   producer:
     group: my-producer-dev
     group: my-producer-dev
     send-message-timeout: 30000
     send-message-timeout: 30000