licailing 3 лет назад
Родитель
Сommit
6e2c7595ac

+ 32 - 0
src/main/java/com/izouma/nineth/domain/PurchaserPrivilege.java

@@ -0,0 +1,32 @@
+package com.izouma.nineth.domain;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+public class PurchaserPrivilege extends BaseEntity {
+    private Long userId;
+
+    @ApiModelProperty("头衔")
+    private String title;
+
+    @ApiModelProperty("拍卖证书")
+    private String certificate;
+
+    @ApiModelProperty("展厅服务")
+    private Long showroomId;
+
+    @ApiModelProperty("优先拍卖")
+    private boolean priority;
+
+    @ApiModelProperty("优先拍卖结束时间")
+    private LocalDateTime priorityExpireAt;
+}

+ 5 - 2
src/main/java/com/izouma/nineth/domain/User.java

@@ -157,9 +157,12 @@ public class User extends UserBaseEntity implements Serializable {
     @Column(columnDefinition = "tinyint unsigned")
     private boolean minter;
 
+    /**
+     * 0 无光 1 绿光 2 金光
+     */
     @ApiModelProperty("使用藏品图片")
-    @Column(columnDefinition = "tinyint unsigned")
-    private boolean useCollectionPic;
+    @Column(columnDefinition = "tinyint unsigned default 0")
+    private int useCollectionPic;
 
     @Column(columnDefinition = "int(11) default 0")
     @ApiModelProperty("白名单积分")

+ 34 - 0
src/main/java/com/izouma/nineth/service/AuctionOrderService.java

@@ -68,6 +68,8 @@ public class AuctionOrderService {
     private UserBalanceRepo               userBalanceRepo;
     @Autowired
     private BalanceRecordRepo             balanceRecordRepo;
+    @Autowired
+    private ShowroomRepo                  showroomRepo;
 
     public Page<AuctionOrder> all(PageQuery pageQuery) {
         return auctionOrderRepo
@@ -516,4 +518,36 @@ public class AuctionOrderService {
         auctionOrder.setStatus(AuctionOrderStatus.FINISH);
         auctionOrderRepo.save(auctionOrder);
     }
+
+    public void privilege(AuctionOrder order) {
+        int maxCollection = sysConfigService.getInt("max_collection");
+
+        //Bider特殊拍卖展厅服务
+        Showroom.builder()
+                .userId(order.getUserId())
+                .nickname(order.getNickname())
+                .status(AuthStatus.SUCCESS)
+                .type("AUCTION")
+                .maxCollection(maxCollection)
+                .build();
+
+        //一个月的优先拍卖权
+        PurchaserPrivilege.builder()
+                .userId(order.getUserId())
+                .title("元宇宙Bider")
+                .priority(true)
+                .priorityExpireAt(LocalDateTime.now().plusMonths(1))
+                .build();
+
+        BigDecimal totalPrice = order.getTotalPrice();
+        //手续费
+        BigDecimal serviceCharge = totalPrice.multiply(new BigDecimal("20"))
+                .divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
+
+        //奖励费用
+        BigDecimal subtract = totalPrice.subtract(serviceCharge);
+        subtract.multiply(new BigDecimal("50")).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP);
+
+
+    }
 }