Przeglądaj źródła

广告-v0.08

(cherry picked from commit a284226055b518313f1c43840a2d6832ce8c58e0)
MOKASZ\lw12420 1 rok temu
rodzic
commit
d6d76b9d8e

+ 16 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/controller/applet/req/ByListIdReturnUnlockId.java

@@ -0,0 +1,16 @@
+package com.webflux.launchadmin.mysql.controller.applet.req;
+
+import jakarta.validation.constraints.NotEmpty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ByListIdReturnUnlockId {
+    private String unique;
+    /**
+     * 验证解锁id集合
+     */
+    @NotEmpty
+    private List<Long> ids;
+}

+ 25 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/applet/AppletService.java

@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.webflux.launchadmin.global.BaseException;
+import com.webflux.launchadmin.mysql.controller.applet.req.ByListIdReturnUnlockId;
 import com.webflux.launchadmin.mysql.controller.applet.res.AppletH5Data;
 import com.webflux.launchadmin.mysql.controller.applet.res.DataRes;
 import com.webflux.launchadmin.mysql.entity.applet.AppletIds;
@@ -276,4 +277,28 @@ public class AppletService implements AppletServiceInterface {
         });
         return RStatus.success(dataResMono);
     }
+
+    @Override
+    public Mono<RStatus<ByListIdReturnUnlockId>> byListIdReturnUnlockId(ByListIdReturnUnlockId request) {
+        List<Long> ids = request.getIds();
+        String unique = request.getUnique();
+        Mono<ByListIdReturnUnlockId> byListIdReturnUnlockIdMono = Flux.fromIterable(ids)
+                .flatMap(id -> reactiveRedisTemplates.opsForValue().get(unique + "-" + id)
+                        .switchIfEmpty(Mono.just("2")).flatMap(f -> {
+            if (Objects.nonNull(f) && "1".equals(f)) {
+                return Mono.just(id);
+            } else {
+                return Mono.just(-1L);
+            }
+        })).collectList().flatMap(list -> {
+            List<Long> collect = list.stream().distinct().filter(aLong -> aLong != -1L).collect(Collectors.toList());
+            ByListIdReturnUnlockId byListIdReturnUnlockId = new ByListIdReturnUnlockId();
+            byListIdReturnUnlockId.setUnique(unique);
+            byListIdReturnUnlockId.setIds(collect);
+            return Mono.just(byListIdReturnUnlockId);
+        });
+        return RStatus.success(byListIdReturnUnlockIdMono);
+    }
+
+
 }

+ 4 - 0
launch-admin/src/main/java/com/webflux/launchadmin/mysql/service/applet/AppletServiceInterface.java

@@ -1,5 +1,6 @@
 package com.webflux.launchadmin.mysql.service.applet;
 
+import com.webflux.launchadmin.mysql.controller.applet.req.ByListIdReturnUnlockId;
 import com.webflux.launchadmin.mysql.controller.applet.res.AppletH5Data;
 import com.webflux.launchadmin.mysql.controller.applet.res.DataRes;
 import com.webflux.launchadmin.mysql.entity.applet.AppletIds;
@@ -31,4 +32,7 @@ public interface AppletServiceInterface {
     Mono<RStatus<String>> pushState(String unique, Long id, String state);
 
     Mono<RStatus<DataRes>> getUniqueState(String unique, Long id);
+
+    Mono<RStatus<ByListIdReturnUnlockId>> byListIdReturnUnlockId(ByListIdReturnUnlockId request);
+
 }