Sfoglia il codice sorgente

Merge branch 'dev'

xiongzhu 3 anni fa
parent
commit
6cebbea21a

+ 2 - 0
src/main/java/com/izouma/nineth/config/Constants.java

@@ -19,6 +19,8 @@ public interface Constants {
 
     String PAY_ERR_MSG = "绿洲宇宙冷却系统已启动,请稍后支付";
 
+    Long BLACK_HOLE_USER_ID = 1435297L;
+
     interface PayChannel {
         String SAND = "sandPay";
         String HM   = "hmPay";

+ 5 - 6
src/main/java/com/izouma/nineth/domain/UserAssetSummary.java

@@ -2,7 +2,6 @@ package com.izouma.nineth.domain;
 
 import com.izouma.nineth.annotations.Searchable;
 import com.izouma.nineth.converter.FileObjectListConverter;
-import com.izouma.nineth.enums.AssetShowStatus;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.CollectionType;
 import io.swagger.annotations.ApiModelProperty;
@@ -12,6 +11,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.persistence.*;
+import java.time.LocalDateTime;
 import java.util.List;
 
 @Data
@@ -70,10 +70,6 @@ public class UserAssetSummary {
     @ApiModelProperty("铸造者")
     private String minter;
 
-    @ApiModelProperty("状态")
-    @Enumerated(EnumType.STRING)
-    private AssetShowStatus assetStatus;
-
     private Long assetId;
 
     @Column(columnDefinition = "tinyint unsigned default 1")
@@ -100,6 +96,9 @@ public class UserAssetSummary {
     @ApiModelProperty("是否寄售")
     private boolean consignment;
 
+    @ApiModelProperty("最新创建时间")
+    private LocalDateTime createdAt;
+
     public UserAssetSummary(Asset asset) {
         this.assetId = asset.getId();
         this.userId = asset.getUserId();
@@ -113,8 +112,8 @@ public class UserAssetSummary {
         this.status = asset.getStatus();
         this.type = asset.getType();
         this.opened = asset.isOpened();
+        this.createdAt = asset.getCreatedAt();
         if (CollectionType.BLIND_BOX.equals(asset.getType()) && !asset.isOpened()) {
-            this.setAssetStatus(AssetShowStatus.BLIND_BOX);
             this.num = 1;
             if (AssetStatus.AUCTIONING.equals(asset.getStatus())) {
                 this.auctioningNum = 1;

+ 0 - 21
src/main/java/com/izouma/nineth/enums/AssetShowStatus.java

@@ -1,21 +0,0 @@
-package com.izouma.nineth.enums;
-
-
-public enum AssetShowStatus {
-
-    NORMAL("默认"),
-    BLIND_BOX("未开启盲盒"),
-    OPEN_SHOW("公开展示"),
-    CONSIGNMENT("寄售中"),
-    AUCTIONING("拍卖中");
-
-    private final String description;
-
-    AssetShowStatus(String description) {
-        this.description = description;
-    }
-
-    public String getDescription() {
-        return description;
-    }
-}

+ 3 - 2
src/main/java/com/izouma/nineth/repo/UserAssetSummaryRepo.java

@@ -17,9 +17,9 @@ public interface UserAssetSummaryRepo extends JpaRepository<UserAssetSummary, Lo
     @Modifying
     void deleteByUserId(Long userId);
     @Query(value = "SELECT " +
+            "  a.created_at created_at, " +
             "  a.id id, " +
             "  a.id asset_id, " +
-            "  'NORMAL' asset_status, " +
             "  a.user_id, " +
             "  a.prefix_name, " +
             "  a.pic, " +
@@ -51,7 +51,8 @@ public interface UserAssetSummaryRepo extends JpaRepository<UserAssetSummary, Lo
             "    name, " +
             "    public_show, " +
             "    consignment, " +
-            "    count(*) num  " +
+            "    count(*) num,  " +
+            "    max(created_at) created_at  " +
             "  FROM " +
             "    asset  " +
             "  WHERE " +

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

@@ -822,7 +822,7 @@ public class AssetService {
 //            cancelPublic(asset);
         }
 
-        User toUser = userRepo.findById(1435297L).orElseThrow(new BusinessException("无记录"));
+        User toUser = userRepo.findById(Constants.BLACK_HOLE_USER_ID).orElseThrow(new BusinessException("无记录"));
 
         TokenHistory tokenHistory = TokenHistory.builder()
                 .tokenId(asset.getTokenId())

+ 15 - 31
src/main/java/com/izouma/nineth/service/MintOrderService.java

@@ -124,7 +124,7 @@ public class MintOrderService {
     @Transactional
     public void create(Long userId, List<Long> assetIds) {
         User user = userRepo.findByIdAndDelFalse(userId).orElseThrow(new BusinessException("用户不存在"));
-        User blackHole = userRepo.findByIdAndDelFalse(1435297L).orElseThrow(new BusinessException("无法铸造"));
+        User blackHole = userRepo.findByIdAndDelFalse(Constants.BLACK_HOLE_USER_ID).orElseThrow(new BusinessException("无法铸造"));
         if (assetIds.size() != 3) {
             throw new BusinessException("数量不正确,请重新选择");
         }
@@ -239,11 +239,10 @@ public class MintOrderService {
 //            if (assets.stream().anyMatch(a -> a.isPublicShow() || a.isConsignment())) {
 //                throw new BusinessException("请先下架所选藏品");
 //            }
-
+            if (assets.stream().anyMatch(a -> a.getStatus() != AssetStatus.NORMAL)) {
+                throw new BusinessException("所选藏品不符和规则,请重新选择");
+            }
             if (!mintActivity.isAudit()) {
-                if (assets.stream().anyMatch(a -> a.getStatus() != AssetStatus.NORMAL)) {
-                    throw new BusinessException("所选藏品不符和规则,请重新选择");
-                }
                 if (!mintActivityService.matchRule(new ArrayList<>(assets), mintActivity.getRule())) {
                     throw new BusinessException("所选藏品不符和规则,请重新选择");
                 }
@@ -258,38 +257,23 @@ public class MintOrderService {
                 }
             }
 
-
             Map<Long, Long> privilegeIds = new HashMap<>();
             // 铸造特权
             if (!mintActivity.isConsume()) {
-                assets.forEach(asset -> {
-                    List<Privilege> privileges = asset.getPrivileges()
-                            .stream()
-                            .filter(p -> p.getName().equals("铸造"))
-                            .collect(Collectors.toList());
-                    if (privileges.size() == 0) {
-                        throw new BusinessException("无铸造特权");
-                    } else {
-                        boolean flag = false;
-                        for (Privilege privilege : privileges) {
-                            // 打开多次 或者 可打开一次但未使用
-                            if (!privilege.isOnce() || (privilege.isOnce() && !privilege
-                                    .isOpened())) {
-                                flag = true;
-                                privilegeIds.put(asset.getId(), privilege.getId());
-                                break;
-                            }
-                        }
-                        if (!flag) {
-                            throw new BusinessException("铸造特权已使用");
-                        }
+                assets.forEach(a -> {
+                    if (a.getPrivileges().stream().noneMatch(p ->
+                            "铸造".equals(p.getName())
+                                    && (!p.isOnce() || !p.isOpened()))) {
+                        throw new BusinessException(a.getName() + (a.getNumber() == null ? "" : (" #" + a.getNumber().toString())) + " 无铸造特权或特权已使用");
                     }
                 });
                 assets.forEach(asset -> {
                     asset.getPrivileges()
                             .stream()
-                            .filter(p -> p.getId().equals(privilegeIds.get(asset.getId())))
-                            .forEach(p -> {
+                            .filter(p -> !p.isOnce() || !p.isOpened())
+                            .findFirst()
+                            .ifPresent(p -> {
+                                privilegeIds.put(asset.getId(), p.getId());
                                 p.setOpened(true);
                                 p.setOpenTime(LocalDateTime.now());
                                 p.setOpenedBy(SecurityUtils.getAuthenticatedUser().getId());
@@ -298,7 +282,7 @@ public class MintOrderService {
                 });
             } else {
                 // 转让的用户
-                userRepo.findByIdAndDelFalse(1435297L).orElseThrow(new BusinessException("无法铸造"));
+                userRepo.findByIdAndDelFalse(Constants.BLACK_HOLE_USER_ID).orElseThrow(new BusinessException("无法铸造"));
 
                 // 消耗改为转赠
                 assets.forEach(asset -> {
@@ -569,7 +553,7 @@ public class MintOrderService {
             }
 
             if (mintOrder.isConsume()) {
-                User newOwner = userRepo.findByIdAndDelFalse(1435297L).orElseThrow(new BusinessException("无法铸造"));
+                User newOwner = userRepo.findByIdAndDelFalse(Constants.BLACK_HOLE_USER_ID).orElseThrow(new BusinessException("无法铸造"));
                 assets.forEach(asset -> assetService.transfer(asset, asset.getPrice(), newOwner, TransferReason.GIFT, null));
             }
             mintOrderRepo.save(mintOrder);

+ 1 - 0
src/main/java/com/izouma/nineth/service/RockRecordService.java

@@ -49,6 +49,7 @@ public class RockRecordService {
 
     @CacheEvict(value = "userStat", key = "#userId")
     public void addRock(Long userId, BigDecimal amount, String operation) {
+        if (amount == null) return;
         RockRecord rock = this.getRock(userId);
         rockRecordRepo.save(RockRecord.builder()
                 .lastRecord(rock.getRecord())

+ 0 - 35
src/main/java/com/izouma/nineth/service/UserAssetSummaryService.java

@@ -1,10 +1,8 @@
 package com.izouma.nineth.service;
 
-import com.alibaba.fastjson.JSONObject;
 import com.izouma.nineth.domain.Asset;
 import com.izouma.nineth.domain.UserAssetSummary;
 import com.izouma.nineth.dto.PageQuery;
-import com.izouma.nineth.enums.AssetShowStatus;
 import com.izouma.nineth.enums.CollectionType;
 import com.izouma.nineth.repo.AssetRepo;
 import com.izouma.nineth.repo.UserAssetSummaryRepo;
@@ -14,13 +12,10 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.Page;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
-import javax.transaction.Transactional;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 @Service
 @AllArgsConstructor
@@ -35,34 +30,6 @@ public class UserAssetSummaryService {
         return userAssetSummaryRepo.findAll(JpaUtils.toSpecification(pageQuery, UserAssetSummary.class), JpaUtils.toPageRequest(pageQuery));
     }
 
-    /**
-     * 当该分类下的资产数量为1的时候,添加相关状态
-     *
-     * @param userAssetSummary
-     */
-    private void setAssetStatus(UserAssetSummary userAssetSummary) {
-        if (userAssetSummary.getNum() != 1) {
-            return;
-        }
-        if (Objects.isNull(userAssetSummary.getAssetStatus())) {
-            return;
-        }
-        if (userAssetSummary.getAuctioningNum() == 1) {
-            userAssetSummary.setAssetStatus(AssetShowStatus.AUCTIONING);
-            return;
-        }
-        if (userAssetSummary.getConsignmentNum() == 1) {
-            userAssetSummary.setAssetStatus(AssetShowStatus.CONSIGNMENT);
-            return;
-        }
-        if (userAssetSummary.getOpenShowNum() == 1) {
-            userAssetSummary.setAssetStatus(AssetShowStatus.OPEN_SHOW);
-            return;
-        }
-        userAssetSummary.setAssetStatus(AssetShowStatus.NORMAL);
-    }
-
-    @Async
     public void calculateNum(Long userId) {
         log.info("开始重新计算用户:{}的资产数量", userId);
         List<UserAssetSummary> userAssetSummaries = new ArrayList<>();
@@ -83,8 +50,6 @@ public class UserAssetSummaryService {
         if (CollectionUtils.isNotEmpty(isExist)) {
             userAssetSummaryRepo.deleteByUserId(userId);
         }
-        userAssetSummaries.forEach(this::setAssetStatus);
-        log.info(JSONObject.toJSONString(userAssetSummaries), true);
         userAssetSummaryRepo.saveAll(userAssetSummaries);
     }
 

+ 0 - 1
src/main/java/com/izouma/nineth/web/AssetController.java

@@ -12,7 +12,6 @@ import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.AssetRepo;
 import com.izouma.nineth.repo.OrderRepo;
 import com.izouma.nineth.service.AssetService;
-import com.izouma.nineth.service.UserAssetSummaryService;
 import com.izouma.nineth.service.CacheService;
 import com.izouma.nineth.service.GiftOrderService;
 import com.izouma.nineth.utils.SecurityUtils;

+ 0 - 1
src/main/java/com/izouma/nineth/web/OrderController.java

@@ -13,7 +13,6 @@ import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.repo.AssetRepo;
 import com.izouma.nineth.repo.OrderRepo;
 import com.izouma.nineth.repo.UserRepo;
-import com.izouma.nineth.service.UserAssetSummaryService;
 import com.izouma.nineth.service.OrderService;
 import com.izouma.nineth.utils.DateTimeUtils;
 import com.izouma.nineth.utils.SecurityUtils;

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

@@ -150,7 +150,7 @@ aliyun:
   oss-domain: https://cdn.raex.vip
   sms-sign: 绿洲数字藏品中心
   sms-code: SMS_228870098
-  sell-out-code: SMS_232892483
+  sell-out-code: SMS_246085423
 
 general:
   host: https://test.raex.vip

+ 1 - 1
src/main/vue/.env.development

@@ -1 +1 @@
-VUE_APP_BASE_URL=https://hongmai.vip/prod/api/
+VUE_APP_BASE_URL=http://192.168.6.215:8080

+ 1 - 1
src/test/java/com/izouma/nineth/CommonTest.java

@@ -746,6 +746,6 @@ public class CommonTest {
 
     @Test
     public void decrypt() throws Exception {
-        System.out.println(AESEncryptUtil.decrypt("E148833F303245E7406C484ACCA4624EEC36F782EFB8AB16DF5692FC2377B08E"));
+        System.out.println(AESEncryptUtil.decrypt("946B7C9FB530401F25088C321D1322EA7D4C5B71BE30BF488CBCA0D34362682E"));
     }
 }

+ 2 - 2
src/test/java/com/izouma/nineth/service/MintOrderServiceTest.java

@@ -159,7 +159,7 @@ class MintOrderServiceTest extends ApplicationTests {
                                 tokenHistoryRepo.findByTokenIdOrderByCreatedAtDesc(asset.getTokenId()).stream()
                                         .findFirst()
                                         .ifPresent(tokenHistory -> {
-                                            if (tokenHistory.getToUserId().equals(1435297L)) {
+                                            if (tokenHistory.getToUserId().equals(Constants.BLACK_HOLE_USER_ID)) {
                                                 tokenHistoryRepo.delete(tokenHistory);
                                             }
                                         });
@@ -223,7 +223,7 @@ class MintOrderServiceTest extends ApplicationTests {
                     userRepo.updateAssetOwner(asset.getUserId());
                     tokenHistoryRepo.findByTokenIdOrderByCreatedAtDesc(asset.getTokenId()).stream().findFirst()
                             .ifPresent(tokenHistory -> {
-                                if (tokenHistory.getToUserId().equals(1435297L)) {
+                                if (tokenHistory.getToUserId().equals(Constants.BLACK_HOLE_USER_ID)) {
                                     tokenHistoryRepo.delete(tokenHistory);
                                 }
                             });