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

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

@@ -37,6 +37,7 @@ import java.util.List;
         @Index(columnList = "collectionId"),
         @Index(columnList = "transactionId"),
         @Index(columnList = "minterId"),
+        @Index(columnList = "createdAt")
 })
 @AllArgsConstructor
 @NoArgsConstructor

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

@@ -146,9 +146,9 @@ public class User extends BaseEntity implements Serializable {
 
     @Column(columnDefinition = "bit default false")
     @ApiModelProperty("使用藏品图片")
-    private boolean useCollectionPic;
+    private boolean useCollectionPic = false;
 
     @Column(columnDefinition = "int(11) default 0")
     @ApiModelProperty("白名单积分")
-    private int vipPoint;
+    private int vipPoint = 0;
 }

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

@@ -30,7 +30,7 @@ public interface CollectionRepo extends JpaRepository<Collection, Long>, JpaSpec
             "c.schedule_sale = ?5, c.sort = ?6, c.detail = ?7, c.privileges = ?8, " +
             "c.properties = ?9, c.model3d = ?10, c.max_count = ?11, c.count_id = ?12, c.scan_code = ?13, " +
             "c.no_sold_out = ?14, c.assignment = ?15, c.coupon_payment = ?16, c.share_bg = ?17," +
-            "c.register_bg = ?18, c.vip_quoto = ?19, c.time_delay = ?20, c.sale_time = ?21 " +
+            "c.register_bg = ?18, c.vip_quota = ?19, c.time_delay = ?20, c.sale_time = ?21 " +
             "where c.id = ?1", nativeQuery = true)
     @CacheEvict(value = {"collection", "recommend"}, allEntries = true)
     void update(@Nonnull Long id, boolean onShelf, boolean salable, LocalDateTime startTime,

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

@@ -171,7 +171,7 @@ public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExe
 
     List<User> findAllByCollectionIdAndCollectionInvitor(Long collectionId, Long collectionInvitor);
 
-    long countAllByCollectionIdAndCollectionInvitor(Long collectionId, Long collectionInvitor);
+    int countAllByCollectionIdAndCollectionInvitor(Long collectionId, Long collectionInvitor);
 
     long countAllByAuthoritiesContainsAndDelFalse(Authority authority);
 

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

@@ -196,7 +196,7 @@ public class CollectionService {
                 if (collection.getType() == CollectionType.BLIND_BOX) {
                     collectionDTO.setAppointment(appointmentRepo.findFirstByBlindBoxId(collection.getId()).isPresent());
                 }
-                if (showVip && user.getVipPurchase() > 0) {
+                if (showVip && collection.getAssignment() > 0 && user.getVipPurchase() > 0) {
                     int purchase = orderRepo.countByUserIdAndCollectionIdAndVipTrueAndStatusIn(user.getId(), collection.getId(), Arrays.asList(OrderStatus.FINISH, OrderStatus.NOT_PAID, OrderStatus.PROCESSING));
                     collectionDTO.setVipSurplus(user.getVipPurchase() - purchase);
                 }

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

@@ -186,7 +186,7 @@ public class OrderService {
             int usePoint = 0;
             if (collection.getSource() != CollectionSource.TRANSFER && collection.getAssignment() > 0) {
                 //延迟销售
-                if (collection.getTimeDelay()){
+                if (collection.getTimeDelay()) {
                     if (collection.getSaleTime().isAfter(LocalDateTime.now())) {
                         throw new BusinessException("当前还未开售");
                     }

+ 17 - 11
src/main/java/com/izouma/nineth/service/UserService.java

@@ -196,18 +196,24 @@ public class UserService {
 
         // 加积分
         if (collectionId != null && invitor != null) {
+            // 额度
             if (collection.getVipQuota() > 0) {
-                int point = pointRecordRepo.countByUserIdAndCollectionId(invitor, collectionId);
-                if (point <= 0) {
-                    long count = userRepo.countAllByCollectionIdAndCollectionInvitor(collectionId, invitor);
-                    if (count >= collection.getAssignment()) {
-                        userRepo.updateVipPoint(invitor, 1);
-                        pointRecordRepo.save(PointRecord.builder()
-                                .collectionId(collectionId)
-                                .userId(invitor)
-                                .type("VIP_POINT")
-                                .point(1)
-                                .build());
+                int countUser = userRepo.countAllByCollectionIdAndCollectionInvitor(collectionId, invitor);
+                // 邀请人数
+                if (countUser >= collection.getAssignment()) {
+                    int point = pointRecordRepo.countByUserIdAndCollectionId(invitor, collectionId);
+                    // 是否已有积分
+                    if (point <= 0) {
+                        long count = userRepo.countAllByCollectionIdAndCollectionInvitor(collectionId, invitor);
+                        if (count >= collection.getAssignment()) {
+                            userRepo.updateVipPoint(invitor, 1);
+                            pointRecordRepo.save(PointRecord.builder()
+                                    .collectionId(collectionId)
+                                    .userId(invitor)
+                                    .type("VIP_POINT")
+                                    .point(1)
+                                    .build());
+                        }
                     }
                 }
             }

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

@@ -244,8 +244,8 @@ public class OrderServiceTest extends ApplicationTests {
 
     @Test
     public void test() {
-        orderService.create(9850L, 196308L, 1, null, null, null,
-                945378720611303424L, true, 2, 1);
+        orderService.create(9972L, 83346L, 1, null, null, null,
+                112342311L, false, 2, 1);
     }
 
     @Test

+ 5 - 0
src/test/java/com/izouma/nineth/service/UserServiceTest.java

@@ -122,4 +122,9 @@ public class UserServiceTest extends ApplicationTests {
     public void switchAccount() {
         userService.checkSettleAccount();
     }
+
+    @Test
+    public void phoneRegister() {
+        userService.phoneRegister("18100004444", "1234", "123456", null, 9972L, 206925L);
+    }
 }