Browse Source

Merge branch 'dev' of xiongzhu/raex_back into master

sunkean 3 years ago
parent
commit
3c545c5a7d

+ 6 - 0
src/main/java/com/izouma/nineth/domain/Asset.java

@@ -174,6 +174,12 @@ public class Asset extends CollectionBaseEntity {
     //地块ID
     private Long oasisId;
 
+    private Long raceId;
+
+    private Long groupId;
+
+    private Long itemId;
+
     @ApiModelProperty("类型")
     @Enumerated(EnumType.STRING)
     private CollectionType type;

+ 6 - 0
src/main/java/com/izouma/nineth/domain/BlindBoxItem.java

@@ -33,6 +33,12 @@ public class BlindBoxItem extends BaseEntity {
 
     private Long oasisId;
 
+    private Long raceId;
+
+    private Long groupId;
+
+    private Long itemId;
+
     @ApiModelProperty("名称")
     @Searchable
     private String name;

+ 6 - 0
src/main/java/com/izouma/nineth/domain/Collection.java

@@ -108,6 +108,12 @@ public class Collection extends CollectionBaseEntity {
 
     private Long oasisId;
 
+    private Long raceId;
+
+    private Long groupId;
+
+    private Long itemId;
+
     @ApiModelProperty("铸造者头像")
     private String ownerAvatar;
 

+ 6 - 0
src/main/java/com/izouma/nineth/domain/CompanyCollection.java

@@ -68,6 +68,12 @@ public class CompanyCollection extends BaseEntity {
 
     private Long oasisId;
 
+    private Long raceId;
+
+    private Long groupId;
+
+    private Long itemId;
+
     @Column(columnDefinition = "TEXT")
     @Convert(converter = PropertyListConverter.class)
     @ApiModelProperty("特性")

+ 2 - 6
src/main/java/com/izouma/nineth/domain/MetaBonusScene.java

@@ -1,6 +1,5 @@
 package com.izouma.nineth.domain;
 
-import com.izouma.nineth.enums.MetaBonusSceneEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -8,8 +7,6 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
 
 @Data
 @AllArgsConstructor
@@ -21,7 +18,6 @@ public class MetaBonusScene extends BaseEntity {
     @ApiModelProperty("玩家id")
     private Long userId;
 
-    @ApiModelProperty("彩蛋类型")
-    @Enumerated(EnumType.STRING)
-    private MetaBonusSceneEnum type;
+    @ApiModelProperty("按钮 1-15")
+    private int button;
 }

+ 5 - 0
src/main/java/com/izouma/nineth/domain/MetaPlayerInfo.java

@@ -33,7 +33,12 @@ public class MetaPlayerInfo {
     @ApiModelProperty("玩家上次离线的服饰信息")
     private List<MetaPlayerWear> metaPlayerWearList;
 
+    @ApiModelProperty("上次玩家所在的空间id")
+    private Long spaceId;
+
     @ApiModelProperty("玩家上次离线的皮肤编号,默认为0")
     private int skinId = 0;
 
+    @ApiModelProperty("离线时的角色id")
+    private Long roleId;
 }

+ 5 - 0
src/main/java/com/izouma/nineth/domain/MetaPlayerOfflineInfo.java

@@ -29,4 +29,9 @@ public class MetaPlayerOfflineInfo extends BaseEntity {
     @ApiModelProperty("离线时皮肤编号")
     private int skinId;
 
+    @ApiModelProperty("离线时的空间id")
+    private Long spaceId;
+
+    @ApiModelProperty("离线时的角色id")
+    private Long roleId;
 }

+ 1 - 1
src/main/java/com/izouma/nineth/domain/MetaSpatialInfo.java

@@ -39,7 +39,7 @@ public class MetaSpatialInfo extends BaseEntity {
     private CoordinateDTO coordinate;
 
     @ApiModelProperty("藏品id")
-    private Long collectionId;
+    private Long assetId;
 
     @ApiModelProperty("hash值")
     private String hcTxHash;

+ 6 - 1
src/main/java/com/izouma/nineth/domain/ShowCollection.java

@@ -38,4 +38,9 @@ public class ShowCollection extends BaseEntity {
     private BigDecimal price;
 
     private int sort;
-}
+
+    /**
+     * 购买url
+     */
+    private String saleUrl;
+}

+ 7 - 0
src/main/java/com/izouma/nineth/dto/MetaRestResult.java

@@ -41,6 +41,13 @@ public class MetaRestResult<T> {
         return result;
     }
 
+    public static <T> MetaRestResult<T> returnError(String errorMessage, T date) {
+        MetaRestResult<T> result = returnResult(date);
+        result.setMessage(errorMessage);
+        result.setCode(Constants.MetaRestCode.err);
+        return result;
+    }
+
     private static <T> MetaRestResult<T> returnResult(T data) {
         MetaRestResult<T> result = new MetaRestResult<>();
         result.setData(data);

+ 24 - 0
src/main/java/com/izouma/nineth/dto/oasis/OasisContactShowroomDto.java

@@ -0,0 +1,24 @@
+package com.izouma.nineth.dto.oasis;
+
+import lombok.Data;
+
+/**
+ * @ClassName OasisContactShowroomDto
+ * @description: 关联展厅dto
+ * @author: BiaoXuChen
+ * @createTime: 2022/6/21 10:27
+ * @Version 1.0
+ **/
+@Data
+public class OasisContactShowroomDto {
+
+    /**
+     * 绿洲平台商品id
+     */
+    private Long oasisId;
+
+    /**
+     * 展厅id
+     */
+    private Long id;
+}

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

@@ -1,10 +1,12 @@
 package com.izouma.nineth.dto.oasis;
 
+import com.izouma.nineth.domain.Showroom;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 @Data
 @AllArgsConstructor
@@ -24,4 +26,9 @@ public class OasisDistrictCollectionDTO {
     private boolean    scanOnly;
     private Long       collectionId;
     private String     url;
+
+    /**
+     * 展厅信息
+     */
+    private Showroom showroomInfo;
 }

+ 4 - 2
src/main/java/com/izouma/nineth/repo/MetaBonusSceneRepo.java

@@ -1,9 +1,9 @@
 package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.MetaBonusScene;
-import com.izouma.nineth.enums.MetaBonusSceneEnum;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
 
 import java.util.List;
 
@@ -11,6 +11,8 @@ public interface MetaBonusSceneRepo extends JpaRepository<MetaBonusScene, Long>,
 
     List<MetaBonusScene> findAllByUserId(Long userId);
 
-    MetaBonusScene findByUserIdAndType(Long userId, MetaBonusSceneEnum type);
+    MetaBonusScene findByUserIdAndButton(Long userId, int button);
 
+    @Query(nativeQuery = true, value = "select count(*) from (select count(*) num from meta_bonus_scene group by user_id )a where a.num >= 15")
+    long countNum();
 }

+ 3 - 1
src/main/java/com/izouma/nineth/repo/OrderRepo.java

@@ -104,8 +104,10 @@ public interface OrderRepo extends JpaRepository<Order, Long>, JpaSpecificationE
             "  and o.status = com.izouma.nineth.enums.OrderStatus.FINISH")
     Page<Order> byTag(Long tagId, Long userId, Pageable pageable);
 
-    @Query(value = "select user_id from asset where id = ?1",nativeQuery = true)
+    @Query(value = "select user_id from asset where id = ?1", nativeQuery = true)
     Long selectUserId(Long assetId);
 
     int countAllByUserIdAndCollectionIdAndStatusIn(Long userId, Long collectionId, Collection<OrderStatus> status);
+
+    Order findFirstByCollectionIdOrderByCreatedAtDesc(Long collectionId);
 }

+ 11 - 0
src/main/java/com/izouma/nineth/repo/ShowroomRepo.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.repo;
 
 import com.izouma.nineth.domain.Showroom;
+import com.izouma.nineth.dto.oasis.OasisContactShowroomDto;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -66,4 +67,14 @@ public interface ShowroomRepo extends JpaRepository<Showroom, Long>, JpaSpecific
 
     Optional<Showroom> findByOasisId(Long oasisId);
 
+    /**
+     * 关联展厅
+     *
+     * @param id      展厅id
+     * @param oasisId 绿洲平台商品id
+     */
+    @Query("update Showroom t set t.oasisId = ?2 where t.id = ?1")
+    @Modifying
+    @Transactional
+    void contactShowroomByOasisId(Long id, Long oasisId);
 }

+ 3 - 0
src/main/java/com/izouma/nineth/service/CollectionService.java

@@ -414,6 +414,9 @@ public class CollectionService {
                 blindBoxItem.setTotal(item.getTotal());
                 blindBoxItem.setStock(item.getTotal());
                 blindBoxItem.setRare(item.isRare());
+                blindBoxItem.setRaceId(collection.getRaceId());
+                blindBoxItem.setGroupId(collection.getGroupId());
+                blindBoxItem.setItemId(collection.getItemId());
                 blindBoxItem.setBlindBoxId(blindBox.getId());
                 blindBoxItem.setCompanyId(collection.getCompanyId());
                 blindBoxItemRepo.saveAndFlush(blindBoxItem);

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

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -34,6 +35,9 @@ public class CompanyCollectionService {
     private SysConfigService        sysConfigService;
     private AssetRepo               assetRepo;
     private GeneralProperties       generalProperties;
+    private ShowroomRepo            showroomRepo;
+    private ShowCollectionRepo      showCollectionRepo;
+    private OrderRepo               orderRepo;
 
     public Page<CompanyCollection> all(PageQuery pageQuery) {
         return companyCollectionRepo.findAll(JpaUtils.toSpecification(pageQuery, CompanyCollection.class), JpaUtils
@@ -122,6 +126,7 @@ public class CompanyCollectionService {
             oasisDistrictCollectionDTO.setOasisId(asset.getOasisId());
             oasisDistrictCollectionDTO.setCollectionName(asset.getName());
             oasisDistrictCollectionDTO.setOriginPrice(asset.getPrice());
+            oasisDistrictCollectionDTO.setSellPrice(asset.getSellPrice());
             oasisDistrictCollectionDTO.setScanOnly(false);
             oasisDistrictCollectionDTO.setOwnerId(asset.getOwnerId());
             oasisDistrictCollectionDTO.setOwnerName(asset.getOwner());
@@ -145,6 +150,19 @@ public class CompanyCollectionService {
                 }
             }
             oasisDistrictCollectionDTO.setSource("二手");
+            //查询展厅信息
+            Optional<Showroom> showroom = showroomRepo.findByOasisId(asset.getOasisId());
+            showroom.ifPresent(t -> {
+                //查询展厅内藏品
+                List<ShowCollection> showCollections = showCollectionRepo.findAllByShowroomId(t.getId());
+                showCollections.forEach(y -> {
+                    y.setSaleUrl(
+                            generalProperties.getHost() + "/9th/productDetail/" + y
+                                    .getCollectionId());
+                });
+                t.setCollections(showCollections);
+                oasisDistrictCollectionDTO.setShowroomInfo(t);
+            });
             oasisDistrictCollectionDTOS.add(oasisDistrictCollectionDTO);
         });
 
@@ -153,6 +171,7 @@ public class CompanyCollectionService {
             oasisDistrictCollectionDTO.setOasisId(collection.getOasisId());
             oasisDistrictCollectionDTO.setCollectionName(collection.getName());
             oasisDistrictCollectionDTO.setOriginPrice(collection.getPrice());
+            oasisDistrictCollectionDTO.setSellPrice(collection.getPrice());
             oasisDistrictCollectionDTO.setSalable(collection.isSalable());
             oasisDistrictCollectionDTO.setOwnerId(collection.getOwnerId());
             oasisDistrictCollectionDTO.setOwnerName(collection.getOwner());
@@ -175,6 +194,20 @@ public class CompanyCollectionService {
             } else {
                 oasisDistrictCollectionDTO.setStatus("未上架");
             }
+
+            //查询展厅信息
+            Optional<Showroom> showroom = showroomRepo.findByOasisId(collection.getOasisId());
+            showroom.ifPresent(t -> {
+                //查询展厅内藏品
+                List<ShowCollection> showCollections = showCollectionRepo.findAllByShowroomId(t.getId());
+                showCollections.forEach(y -> {
+                    y.setSaleUrl(
+                            generalProperties.getHost() + "/9th/productDetail/" + y
+                                    .getCollectionId());
+                });
+                t.setCollections(showCollections);
+                oasisDistrictCollectionDTO.setShowroomInfo(t);
+            });
             oasisDistrictCollectionDTOS.add(oasisDistrictCollectionDTO);
         });
 
@@ -189,8 +222,27 @@ public class CompanyCollectionService {
             oasisDistrictCollectionDTO.setSalable(false);
             oasisDistrictCollectionDTO.setStatus("审核中");
             oasisDistrictCollectionDTO.setSource("官方");
+            oasisDistrictCollectionDTO.setSellPrice(companyCollection.getPrice());
+
+            //查询展厅信息
+            Optional<Showroom> showroom = showroomRepo.findByOasisId(companyCollection.getOasisId());
+            showroom.ifPresent(t -> {
+                //查询展厅内藏品
+                List<ShowCollection> showCollections = showCollectionRepo.findAllByShowroomId(t.getId());
+                showCollections.forEach(y -> {
+                    y.setSaleUrl(
+                            generalProperties.getHost() + "/9th/productDetail/" + y
+                                    .getCollectionId());
+                });
+                t.setCollections(showCollections);
+                oasisDistrictCollectionDTO.setShowroomInfo(t);
+            });
             oasisDistrictCollectionDTOS.add(oasisDistrictCollectionDTO);
         });
         return oasisDistrictCollectionDTOS;
     }
+
+    public Order checkOasisIdOrder(Long collectionId) {
+        return orderRepo.findFirstByCollectionIdOrderByCreatedAtDesc(collectionId);
+    }
 }

+ 6 - 0
src/main/java/com/izouma/nineth/web/CompanyCollectionController.java

@@ -1,6 +1,7 @@
 package com.izouma.nineth.web;
 
 import com.izouma.nineth.domain.CompanyCollection;
+import com.izouma.nineth.domain.Order;
 import com.izouma.nineth.dto.oasis.OasisDistrictCollectionDTO;
 import com.izouma.nineth.dto.oasis.OasisDistrictDTO;
 import com.izouma.nineth.enums.CollectionStatus;
@@ -105,6 +106,11 @@ public class CompanyCollectionController extends BaseController {
         return companyCollectionService.oasisSearch(oasisIds);
     }
 
+    @PostMapping("/findOrderByCollectionId")
+    public Order oasisSearch(@RequestParam Long collectionId) {
+        return companyCollectionService.checkOasisIdOrder(collectionId);
+    }
+
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")

+ 14 - 8
src/main/java/com/izouma/nineth/web/MetaBonusSceneController.java

@@ -24,20 +24,26 @@ public class MetaBonusSceneController {
     }
 
     @PostMapping("/save")
-    public MetaRestResult<MetaBonusScene> save(@RequestBody MetaBonusScene metaBonusScene) {
+    public MetaRestResult<Boolean> save(@RequestBody MetaBonusScene metaBonusScene) {
         if (Objects.nonNull(metaBonusScene.getId())) {
-            return MetaRestResult.returnError("参数错误:id必须为空");
+            return MetaRestResult.returnSuccess("参数错误:id必须为空", false);
         }
         if (Objects.isNull(metaBonusScene.getUserId())) {
-            return MetaRestResult.returnError("参数错误:缺少用户id");
+            return MetaRestResult.returnError("参数错误:缺少用户id", false);
         }
-        if (Objects.isNull(metaBonusScene.getType())) {
-            return MetaRestResult.returnError("参数错误:缺少彩蛋类型");
+        if (!(0 < metaBonusScene.getButton())) {
+            return  MetaRestResult.returnError("参数错误:缺少按钮信息", false);
         }
-        MetaBonusScene dbMetaBonusScene = metaBonusSceneRepo.findByUserIdAndType(metaBonusScene.getUserId(), metaBonusScene.getType());
+        MetaBonusScene dbMetaBonusScene = metaBonusSceneRepo.findByUserIdAndButton(metaBonusScene.getUserId(), metaBonusScene.getButton());
         if (Objects.nonNull(dbMetaBonusScene)) {
-          return MetaRestResult.returnError("该玩家已经触发过同类型彩蛋,无法多次触发");
+          return MetaRestResult.returnError("该玩家已经触发过同一个彩蛋,无法多次触发", false);
         }
-        return MetaRestResult.returnSuccess(metaBonusSceneRepo.save(metaBonusScene));
+        return MetaRestResult.returnSuccess("触发成功", true);
+    }
+
+    @GetMapping("/count")
+    public MetaRestResult<Integer> count() {
+        long num = metaBonusSceneRepo.countNum();
+        return MetaRestResult.returnSuccess(Integer.parseInt(String.valueOf(num)));
     }
 }

+ 2 - 0
src/main/java/com/izouma/nineth/web/MetaPlayerInfoController.java

@@ -51,7 +51,9 @@ public class MetaPlayerInfoController {
         if (Objects.isNull(metaPlayerOfflineInfo)) {
             return MetaRestResult.returnSuccess(metaPlayerInfo);
         }
+        metaPlayerInfo.setSpaceId(metaPlayerOfflineInfo.getSpaceId());
         metaPlayerInfo.setSkinId(metaPlayerOfflineInfo.getSkinId());
+        metaPlayerInfo.setRoleId(metaPlayerOfflineInfo.getRoleId());
         List<Long> clothesId = metaPlayerOfflineInfo.getClothesId();
         if (CollectionUtil.isEmpty(clothesId)) {
             return MetaRestResult.returnSuccess(metaPlayerInfo);