wangqifan 3 лет назад
Родитель
Сommit
0da3ba2341

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

@@ -186,6 +186,8 @@ public class Order extends BaseEntityNoID {
 
     private Long assetId;
 
+    private Long resultAssetId;
+
     private boolean hide;
 
     private Long couponId;

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

@@ -62,10 +62,12 @@ public class AssetService {
 
 
     public Page<Asset> all(PageQuery pageQuery) {
-        Page<Asset> all = assetRepo.findAll(JpaUtils.toSpecification(pageQuery, Asset.class), JpaUtils.toPageRequest(pageQuery));
+        Page<Asset> all = assetRepo
+                .findAll(JpaUtils.toSpecification(pageQuery, Asset.class), JpaUtils.toPageRequest(pageQuery));
         Map<String, Object> query = pageQuery.getQuery();
         if (query.containsKey("userId")) {
-            List<Long> orderId = orderRepo.findAllByUserIdAndOpenedFalse(Convert.convert(Long.class, query.get("userId")));
+            List<Long> orderId = orderRepo
+                    .findAllByUserIdAndOpenedFalse(Convert.convert(Long.class, query.get("userId")));
             return all.map(asset -> {
                 if (orderId.contains(asset.getOrderId())) {
                     asset.setOpened(false);
@@ -380,7 +382,7 @@ public class AssetService {
         newAsset.setOrderId(orderId);
         newAsset.setFromAssetId(asset.getId());
         newAsset.setType(CollectionType.DEFAULT);
-        assetRepo.save(newAsset);
+        Asset result = assetRepo.save(newAsset);
 
         tokenHistoryRepo.save(TokenHistory.builder()
                 .tokenId(asset.getTokenId())
@@ -403,7 +405,11 @@ public class AssetService {
         asset.setOwnerAvatar(toUser.getAvatar());
         assetRepo.save(asset);
 
+
         if (orderId != null) {
+            Order order = orderRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
+            order.setResultAssetId(result.getId());
+            orderRepo.save(order);
             applicationContext.publishEvent(new TransferAssetEvent(this, true, newAsset));
         }
     }
@@ -479,16 +485,21 @@ public class AssetService {
     public Page<UserHistory> userHistory(Long userId, PageQuery pageQuery) {
         Map<String, Object> query = pageQuery.getQuery();
         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);
             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)));
                 log.error("假如没有传userids");
             } else {
-                if (ObjectUtils.isNotEmpty(query.get("operation"))){
+                if (ObjectUtils.isNotEmpty(query.get("operation"))) {
                     String operation = (String) query.get("operation");
-                    switch (operation){
+                    switch (operation) {
                         case "已购买":
-                            and.add(criteriaBuilder.or(criteriaBuilder.equal(root.get("operation"), "已出售"),criteriaBuilder.equal(root.get("operation"), "转让"),criteriaBuilder.equal(root.get("operation"), "空投")));
+                            and.add(criteriaBuilder
+                                    .or(criteriaBuilder.equal(root.get("operation"), "已出售"), criteriaBuilder
+                                            .equal(root.get("operation"), "转让"), criteriaBuilder
+                                            .equal(root.get("operation"), "空投")));
                             and.add(criteriaBuilder.and(criteriaBuilder.equal(root.get("toUserId"), userId)));
                             break;
                         case "卖出":
@@ -507,9 +518,9 @@ public class AssetService {
         }), JpaUtils.toPageRequest(pageQuery));
 
         Set<String> tokenIds = page.stream().map(TokenHistory::getTokenId).collect(Collectors.toSet());
-        log.error("是否有数据:" +tokenIds.isEmpty());
+        log.error("是否有数据:" + tokenIds.isEmpty());
         List<Asset> assets = tokenIds.isEmpty() ? new ArrayList<>() : assetRepo.findByTokenIdIn(tokenIds);
-        log.error("数据长度:" +assets.size());
+        log.error("数据长度:" + assets.size());
         Page<UserHistory> map = page.map(tokenHistory -> {
             UserHistory userHistory = new UserHistory();
             BeanUtils.copyProperties(tokenHistory, userHistory);