wangqifan %!s(int64=4) %!d(string=hai) anos
pai
achega
f76b557b21

+ 2 - 0
src/main/java/com/izouma/nineth/dto/oasis/OasisDistrictCollectionDTO.java

@@ -15,7 +15,9 @@ public class OasisDistrictCollectionDTO {
     private BigDecimal originPrice;
     private BigDecimal sellPrice;
     private String     status;
+    private String     source;
     private Long       ownerId;
+    private String     owner;
     private String     ownerName;
     private String     ownerAvatar;
     private boolean    salable;

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

@@ -82,4 +82,6 @@ public interface AssetRepo extends JpaRepository<Asset, Long>, JpaSpecificationE
                   String ownerAvatar, String detail);
 
     Page<Asset> findByUserIdAndStatusAndNameLike(Long userId, AssetStatus status, String name, Pageable pageable);
+
+    List<Asset> findAllByOasisIdInAndStatusIn(List<Long> oasisIds, List<AssetStatus> assetStatuses);
 }

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

@@ -168,4 +168,6 @@ public interface CollectionRepo extends JpaRepository<Collection, Long>, JpaSpec
     String lowestPrice(String search);
 
     Collection findFirstByOnShelfAndAssetId(boolean onShelf, Long assetId);
+
+    List<Collection> findAllByOasisIdInAndSourceAndSaleLessThan(List<Long> oasisIds, CollectionSource source, int sale);
 }

+ 52 - 8
src/main/java/com/izouma/nineth/service/CompanyCollectionService.java

@@ -95,27 +95,70 @@ public class CompanyCollectionService {
         companyCollectionRepo.save(companyCollection);
     }
 
+
     public List<OasisDistrictCollectionDTO> oasisSearch(List<Long> oasisIds) {
         List<OasisDistrictCollectionDTO> oasisDistrictCollectionDTOS = new ArrayList<>();
-        List<Collection> collections = collectionRepo
-                .findAllByOasisIdInAndStockGreaterThan(oasisIds, 0);
+        List<AssetStatus> assetStatuses = new ArrayList<>();
+        assetStatuses.add(AssetStatus.NORMAL);
+        assetStatuses.add(AssetStatus.AUCTION_TRADING);
+        assetStatuses.add(AssetStatus.GIFTING);
+        assetStatuses.add(AssetStatus.TRADING);
+        assetStatuses.add(AssetStatus.MINTING);
+        assetStatuses.add(AssetStatus.AUCTIONING);
+        List<Asset> assets = assetRepo
+                .findAllByOasisIdInAndStatusIn(oasisIds, assetStatuses);
         List<CompanyCollection> companyCollections = companyCollectionRepo
                 .findAllByOasisIdInAndStatusNot(oasisIds, CollectionStatus.SUCCESS);
+        List<Collection> officialCollections = collectionRepo
+                .findAllByOasisIdInAndSourceAndSaleLessThan(oasisIds, CollectionSource.COMPANY, 1);
+
+        assets.forEach(asset -> {
+            OasisDistrictCollectionDTO oasisDistrictCollectionDTO = new OasisDistrictCollectionDTO();
+            oasisDistrictCollectionDTO.setOasisId(asset.getOasisId());
+            oasisDistrictCollectionDTO.setCollectionName(asset.getName());
+            oasisDistrictCollectionDTO.setOriginPrice(asset.getPrice());
+            oasisDistrictCollectionDTO.setOwnerId(asset.getOwnerId());
+            oasisDistrictCollectionDTO.setOwnerName(asset.getOwner());
+            oasisDistrictCollectionDTO.setOwnerAvatar(asset.getOwnerAvatar());
+            oasisDistrictCollectionDTO.setCollectionId(asset.getId());
+            if (!asset.getStatus().equals(AssetStatus.NORMAL)) {
+                oasisDistrictCollectionDTO.setStatus(asset.getStatus().getDescription());
+            } else {
+                if (asset.isPublicShow()) {
+                    if (asset.isConsignment()) {
+                        oasisDistrictCollectionDTO.setStatus("寄售中");
+                    } else {
+                        oasisDistrictCollectionDTO.setStatus("仅展示");
+                    }
+                } else {
+                    oasisDistrictCollectionDTO.setStatus("未展示");
+                }
+            }
+            oasisDistrictCollectionDTO.setSource("二手");
+            oasisDistrictCollectionDTOS.add(oasisDistrictCollectionDTO);
+        });
 
-        collections.forEach(collection -> {
+        officialCollections.forEach(collection -> {
             OasisDistrictCollectionDTO oasisDistrictCollectionDTO = new OasisDistrictCollectionDTO();
             oasisDistrictCollectionDTO.setOasisId(collection.getOasisId());
             oasisDistrictCollectionDTO.setCollectionName(collection.getName());
             oasisDistrictCollectionDTO.setOriginPrice(collection.getPrice());
-            oasisDistrictCollectionDTO.setSalable(collection.isSalable());
             oasisDistrictCollectionDTO.setOwnerId(collection.getOwnerId());
             oasisDistrictCollectionDTO.setOwnerName(collection.getOwner());
             oasisDistrictCollectionDTO.setOwnerAvatar(collection.getOwnerAvatar());
             oasisDistrictCollectionDTO.setCollectionId(collection.getId());
-            if (collection.getSource() != CollectionSource.TRANSFER) {
-                oasisDistrictCollectionDTO.setStatus("官方库存");
+            oasisDistrictCollectionDTO.setSource("官方");
+            if (collection.isOnShelf()) {
+                if (collection.isSalable()) {
+                    oasisDistrictCollectionDTO.setStatus("在售");
+                    if (collection.getStock() == 0) {
+                        oasisDistrictCollectionDTO.setStatus("已有订单,订单处理中");
+                    }
+                } else {
+                    oasisDistrictCollectionDTO.setStatus("仅展示");
+                }
             } else {
-                oasisDistrictCollectionDTO.setStatus("用户展示");
+                oasisDistrictCollectionDTO.setStatus("未上架");
             }
             oasisDistrictCollectionDTOS.add(oasisDistrictCollectionDTO);
         });
@@ -128,7 +171,8 @@ public class CompanyCollectionService {
             oasisDistrictCollectionDTO.setOwnerName(companyCollection.getMinter());
             oasisDistrictCollectionDTO.setCollectionId(companyCollection.getId());
             oasisDistrictCollectionDTO.setSalable(false);
-            oasisDistrictCollectionDTO.setStatus("平台审核");
+            oasisDistrictCollectionDTO.setStatus("审核中");
+            oasisDistrictCollectionDTO.setSource("官方");
             oasisDistrictCollectionDTOS.add(oasisDistrictCollectionDTO);
         });
         return oasisDistrictCollectionDTOS;