licailing 4 лет назад
Родитель
Сommit
ccbbf10326

+ 3 - 0
src/main/java/com/izouma/nineth/domain/AirDrop.java

@@ -15,6 +15,9 @@ import java.util.List;
 
 
 @Data
 @Data
 @Entity
 @Entity
+@Table(name = "air_drop", indexes = {
+        @Index(columnList = "name")
+})
 @AllArgsConstructor
 @AllArgsConstructor
 @NoArgsConstructor
 @NoArgsConstructor
 @Builder
 @Builder

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

@@ -131,9 +131,9 @@ public class User extends BaseEntity implements Serializable {
 
 
     @Column(columnDefinition = "int(11) default 0")
     @Column(columnDefinition = "int(11) default 0")
     @ApiModelProperty(value = "邀请数量")
     @ApiModelProperty(value = "邀请数量")
-    private int inviteNum =0;
+    private int inviteNum = 0;
 
 
     @Column(columnDefinition = "int(11) default 0")
     @Column(columnDefinition = "int(11) default 0")
     @ApiModelProperty(value = "获得得空投数量")
     @ApiModelProperty(value = "获得得空投数量")
-    private int inviteAirDrop=0 ;
+    private int inviteAirDrop = 0;
 }
 }

+ 3 - 0
src/main/java/com/izouma/nineth/repo/AirDropRepo.java

@@ -7,10 +7,13 @@ import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.jpa.repository.Query;
 
 
 import javax.transaction.Transactional;
 import javax.transaction.Transactional;
+import java.util.List;
 
 
 public interface AirDropRepo extends JpaRepository<AirDrop, Long>, JpaSpecificationExecutor<AirDrop> {
 public interface AirDropRepo extends JpaRepository<AirDrop, Long>, JpaSpecificationExecutor<AirDrop> {
     @Query("update AirDrop t set t.del = true where t.id = ?1")
     @Query("update AirDrop t set t.del = true where t.id = ?1")
     @Modifying
     @Modifying
     @Transactional
     @Transactional
     void softDelete(Long id);
     void softDelete(Long id);
+
+    List<AirDrop> findAllByUserIdsAndName(String userIds, String name);
 }
 }

+ 20 - 10
src/main/java/com/izouma/nineth/service/IdentityAuthService.java

@@ -1,5 +1,6 @@
 package com.izouma.nineth.service;
 package com.izouma.nineth.service;
 
 
+import cn.hutool.core.collection.CollUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.github.kevinsawicki.http.HttpRequest;
 import com.github.kevinsawicki.http.HttpRequest;
 import com.izouma.nineth.domain.AirDrop;
 import com.izouma.nineth.domain.AirDrop;
@@ -9,6 +10,7 @@ import com.izouma.nineth.dto.PageQuery;
 import com.izouma.nineth.enums.AirDropType;
 import com.izouma.nineth.enums.AirDropType;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.exception.BusinessException;
 import com.izouma.nineth.exception.BusinessException;
+import com.izouma.nineth.repo.AirDropRepo;
 import com.izouma.nineth.repo.IdentityAuthRepo;
 import com.izouma.nineth.repo.IdentityAuthRepo;
 import com.izouma.nineth.repo.UserRepo;
 import com.izouma.nineth.repo.UserRepo;
 import com.izouma.nineth.utils.JpaUtils;
 import com.izouma.nineth.utils.JpaUtils;
@@ -26,6 +28,7 @@ public class IdentityAuthService {
     private UserRepo         userRepo;
     private UserRepo         userRepo;
     private AdapayService    adapayService;
     private AdapayService    adapayService;
     private AirDropService   airDropService;
     private AirDropService   airDropService;
+    private AirDropRepo      airDropRepo;
 
 
     public Page<IdentityAuth> all(PageQuery pageQuery) {
     public Page<IdentityAuth> all(PageQuery pageQuery) {
         return identityAuthRepo.findAll(JpaUtils.toSpecification(pageQuery, IdentityAuth.class), JpaUtils.toPageRequest(pageQuery));
         return identityAuthRepo.findAll(JpaUtils.toSpecification(pageQuery, IdentityAuth.class), JpaUtils.toPageRequest(pageQuery));
@@ -60,18 +63,25 @@ public class IdentityAuthService {
             if (user.getInvitor() != null) {
             if (user.getInvitor() != null) {
                 userRepo.findByIdAndDelFalse(user.getInvitor()).ifPresent(user1 -> {
                 userRepo.findByIdAndDelFalse(user.getInvitor()).ifPresent(user1 -> {
                     user1.setInviteNum(user1.getInviteNum() + 1);
                     user1.setInviteNum(user1.getInviteNum() + 1);
+                    if (user1.getInviteNum() > 10) {
+                        List<Long> userIds = List.of(user.getInvitor());
+                        String name = "邀请新人得空投奖励";
+                        List<AirDrop> airDrops = airDropRepo.findAllByUserIdsAndName(String.valueOf(user.getInvitor()), name);
+                        if (CollUtil.isEmpty(airDrops)) {
+                            airDropService.create(AirDrop.builder()
+                                    .name(name)
+                                    .type(AirDropType.asset)
+                                    .collectionId(1187810L)
+                                    .phone(List.of(user1.getPhone()))
+                                    .userIds(userIds)
+                                    .projectId(1)
+                                    .build());
+                            user1.setInviteAirDrop(user1.getInviteAirDrop() + 1);
+                        }
+
 
 
-                    if (user1.getInviteNum() / 10 > user1.getInviteAirDrop()) {
-                        airDropService.create(AirDrop.builder()
-                                .name("邀请新人得空投奖励")
-                                .type(AirDropType.asset)
-                                .collectionId(1187810L)
-                                .phone(List.of(user1.getPhone()))
-                                .userIds(List.of(user.getInvitor()))
-                                .projectId(1)
-                                .build());
-                        user1.setInviteAirDrop(user1.getInviteAirDrop() + 1);
                     }
                     }
+
                     userRepo.save(user1);
                     userRepo.save(user1);
                 });
                 });
             }
             }

+ 2 - 1
src/main/vue/src/views/Admin.vue

@@ -233,7 +233,8 @@ export default {
             this.$refs.pwdForm.validate(valid => {
             this.$refs.pwdForm.validate(valid => {
                 if (valid) {
                 if (valid) {
                     this.$http
                     this.$http
-                        .post('/user/setPassword', {
+                        .post('/user/setPasswordAdmin', {
+                            userId: this.userInfo.id,
                             password: this.pwdForm.password
                             password: this.pwdForm.password
                         })
                         })
                         .then(res => {
                         .then(res => {

+ 1 - 0
src/main/vue/src/views/UserList.vue

@@ -45,6 +45,7 @@
             <el-table-column label="手机" prop="phone" min-width="100"></el-table-column>
             <el-table-column label="手机" prop="phone" min-width="100"></el-table-column>
             <el-table-column label="注册时间" prop="createdAt" min-width="150"></el-table-column>
             <el-table-column label="注册时间" prop="createdAt" min-width="150"></el-table-column>
             <el-table-column label="邀请人数" prop="inviteNum" min-width="80"></el-table-column>
             <el-table-column label="邀请人数" prop="inviteNum" min-width="80"></el-table-column>
+            <el-table-column label="空投数量" prop="inviteAirDrop" min-width="80"></el-table-column>
             <el-table-column label="操作" align="center" fixed="right" width="220">
             <el-table-column label="操作" align="center" fixed="right" width="220">
                 <template slot-scope="{ row }">
                 <template slot-scope="{ row }">
                     <el-button @click="getInviteInfo(row)" type="text" size="mini">邀请列表</el-button>
                     <el-button @click="getInviteInfo(row)" type="text" size="mini">邀请列表</el-button>