ソースを参照

删除 web.console 包, oss-console 功能迁移到 tnb 项目的 file-service 模块

reghao 5 ヶ月 前
コミット
d7fdc635a3
42 ファイル変更14 行追加2257 行削除
  1. 5 19
      web/pom.xml
  2. 1 1
      web/src/main/java/cn/reghao/bnt/web/admin/controller/SysFileController.java
  3. 3 3
      web/src/main/java/cn/reghao/bnt/web/admin/model/vo/FileInfo.java
  4. 2 2
      web/src/main/java/cn/reghao/bnt/web/admin/service/FileService.java
  5. 3 34
      web/src/main/java/cn/reghao/bnt/web/config/AccessInterceptor.java
  6. 0 20
      web/src/main/java/cn/reghao/bnt/web/console/config/ConsoleConfig.java
  7. 0 37
      web/src/main/java/cn/reghao/bnt/web/console/config/OssConsoleClientFactory.java
  8. 0 51
      web/src/main/java/cn/reghao/bnt/web/console/controller/OssKeyPageController.java
  9. 0 146
      web/src/main/java/cn/reghao/bnt/web/console/controller/OssSdkController.java
  10. 0 65
      web/src/main/java/cn/reghao/bnt/web/console/controller/StoreNodePageController.java
  11. 0 146
      web/src/main/java/cn/reghao/bnt/web/console/controller/StoreObjectPageController.java
  12. 0 127
      web/src/main/java/cn/reghao/bnt/web/console/controller/UploadChannelPageController.java
  13. 0 102
      web/src/main/java/cn/reghao/bnt/web/console/controller/UserNodePageController.java
  14. 0 13
      web/src/main/java/cn/reghao/bnt/web/console/db/repository/StoreNodeRepository.java
  15. 0 19
      web/src/main/java/cn/reghao/bnt/web/console/db/repository/UploadChannelRepository.java
  16. 0 13
      web/src/main/java/cn/reghao/bnt/web/console/db/repository/UserKeyRepository.java
  17. 0 18
      web/src/main/java/cn/reghao/bnt/web/console/db/repository/UserNodeRepository.java
  18. 0 21
      web/src/main/java/cn/reghao/bnt/web/console/model/dto/ChannelProcessDto.java
  19. 0 19
      web/src/main/java/cn/reghao/bnt/web/console/model/dto/KeyAuthDto.java
  20. 0 31
      web/src/main/java/cn/reghao/bnt/web/console/model/dto/NodeUpdateDto.java
  21. 0 31
      web/src/main/java/cn/reghao/bnt/web/console/model/dto/UploadChannelDto.java
  22. 0 23
      web/src/main/java/cn/reghao/bnt/web/console/model/dto/UserNodeDto.java
  23. 0 45
      web/src/main/java/cn/reghao/bnt/web/console/model/po/StoreNode.java
  24. 0 42
      web/src/main/java/cn/reghao/bnt/web/console/model/po/StoreVolume.java
  25. 0 43
      web/src/main/java/cn/reghao/bnt/web/console/model/po/UploadChannel.java
  26. 0 34
      web/src/main/java/cn/reghao/bnt/web/console/model/po/UserKey.java
  27. 0 37
      web/src/main/java/cn/reghao/bnt/web/console/model/po/UserNode.java
  28. 0 23
      web/src/main/java/cn/reghao/bnt/web/console/model/vo/StoreDiskInfo.java
  29. 0 33
      web/src/main/java/cn/reghao/bnt/web/console/model/vo/StoreNodeInfo.java
  30. 0 25
      web/src/main/java/cn/reghao/bnt/web/console/model/vo/UploadChannelInfo.java
  31. 0 15
      web/src/main/java/cn/reghao/bnt/web/console/model/vo/UserKeyVo.java
  32. 0 21
      web/src/main/java/cn/reghao/bnt/web/console/model/vo/UserNodeInfo.java
  33. 0 112
      web/src/main/java/cn/reghao/bnt/web/console/rpc/ConsoleServiceImpl.java
  34. 0 33
      web/src/main/java/cn/reghao/bnt/web/console/rpc/RemoteService.java
  35. 0 51
      web/src/main/java/cn/reghao/bnt/web/console/rpc/RpcService.java
  36. 0 151
      web/src/main/java/cn/reghao/bnt/web/console/rpc/StoreServiceWrapper.java
  37. 0 102
      web/src/main/java/cn/reghao/bnt/web/console/service/OssFileService.java
  38. 0 155
      web/src/main/java/cn/reghao/bnt/web/console/service/StoreNodeService.java
  39. 0 155
      web/src/main/java/cn/reghao/bnt/web/console/service/UploadChannelService.java
  40. 0 99
      web/src/main/java/cn/reghao/bnt/web/console/service/UserKeyService.java
  41. 0 127
      web/src/main/java/cn/reghao/bnt/web/console/service/UserNodeService.java
  42. 0 13
      web/src/test/java/JpaTest.java

+ 5 - 19
web/pom.xml

@@ -55,6 +55,11 @@
             <artifactId>common</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>cn.reghao.oss</groupId>
+            <artifactId>oss-api</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
 
         <dependency>
             <groupId>ch.qos.logback</groupId>
@@ -156,25 +161,6 @@
             <version>0.12.1</version>
         </dependency>
 
-        <!--########################################################################################################-->
-        <!-- console 模块依赖 -->
-        <dependency>
-            <groupId>cn.reghao.oss</groupId>
-            <artifactId>oss-api</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-        <dependency>
-            <groupId>cn.reghao.oss</groupId>
-            <artifactId>oss-sdk</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-spring-boot-starter</artifactId>
-            <version>3.3.0</version>
-        </dependency>
-
         <!--########################################################################################################-->
         <!-- lucene 搜索依赖 -->
         <dependency>

+ 1 - 1
web/src/main/java/cn/reghao/bnt/web/admin/controller/SysFileController.java

@@ -3,7 +3,7 @@ package cn.reghao.bnt.web.admin.controller;
 import cn.reghao.bnt.web.admin.model.vo.DiskFileInfo;
 import cn.reghao.bnt.web.admin.model.vo.UploadFile;
 import cn.reghao.bnt.web.admin.service.FileService;
-import cn.reghao.bnt.web.console.model.vo.FileInfo;
+import cn.reghao.bnt.web.admin.model.vo.FileInfo;
 import cn.reghao.jutil.web.WebResult;
 import cn.reghao.jutil.web.ServletUtil;
 import cn.reghao.bnt.web.admin.model.po.DiskFile;

+ 3 - 3
web/src/main/java/cn/reghao/bnt/web/console/model/vo/FileInfo.java → web/src/main/java/cn/reghao/bnt/web/admin/model/vo/FileInfo.java

@@ -1,9 +1,9 @@
-package cn.reghao.bnt.web.console.model.vo;
+package cn.reghao.bnt.web.admin.model.vo;
 
 import cn.reghao.bnt.web.admin.model.po.DiskFile;
 import cn.reghao.jutil.jdk.converter.DateTimeConverter;
-import cn.reghao.oss.sdk.model.constant.ObjectType;
-import cn.reghao.oss.sdk.model.dto.ObjectInfo;
+import cn.reghao.oss.api.constant.ObjectType;
+import cn.reghao.oss.api.dto.ObjectInfo;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 

+ 2 - 2
web/src/main/java/cn/reghao/bnt/web/admin/service/FileService.java

@@ -1,7 +1,7 @@
 package cn.reghao.bnt.web.admin.service;
 
 import cn.reghao.bnt.web.admin.model.vo.DiskFileInfo;
-import cn.reghao.bnt.web.console.model.vo.FileInfo;
+import cn.reghao.bnt.web.admin.model.vo.FileInfo;
 import cn.reghao.jutil.jdk.converter.ByteConverter;
 import cn.reghao.jutil.jdk.converter.ByteType;
 import cn.reghao.jutil.jdk.security.DigestUtil;
@@ -9,7 +9,7 @@ import cn.reghao.jutil.web.ServletUtil;
 import cn.reghao.bnt.web.admin.db.repository.DiskFileRepository;
 import cn.reghao.bnt.web.admin.model.po.DiskFile;
 import cn.reghao.bnt.web.config.AppProperties;
-import cn.reghao.oss.sdk.model.constant.ObjectType;
+import cn.reghao.oss.api.constant.ObjectType;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.FileUtils;
 import org.springframework.cache.annotation.Cacheable;

+ 3 - 34
web/src/main/java/cn/reghao/bnt/web/config/AccessInterceptor.java

@@ -1,10 +1,8 @@
 package cn.reghao.bnt.web.config;
 
 import cn.reghao.bnt.web.admin.model.dto.AccountInfo;
-import cn.reghao.bnt.web.admin.model.po.User;
 import cn.reghao.bnt.web.admin.service.*;
 import cn.reghao.bnt.web.config.spring.SpringLifecycle;
-import cn.reghao.bnt.web.console.service.UserKeyService;
 import cn.reghao.jutil.web.HeaderNames;
 import cn.reghao.jutil.web.ServletUtil;
 import lombok.extern.slf4j.Slf4j;
@@ -27,16 +25,13 @@ import java.util.UUID;
 @Slf4j
 @Component
 public class AccessInterceptor implements HandlerInterceptor {
-    private final UserKeyService userKeyService;
     private final AccountService accountService;
     private final LogService logService;
     private final UserMessageService userMessageService;
     private final SiteOptionService siteOptionService;
 
-    public AccessInterceptor(UserKeyService userKeyService, AccountService accountService,
-                             LogService logService, UserMessageService userMessageService,
-                             SiteOptionService siteOptionService) {
-        this.userKeyService = userKeyService;
+    public AccessInterceptor(AccountService accountService, LogService logService,
+                             UserMessageService userMessageService, SiteOptionService siteOptionService) {
         this.accountService = accountService;
         this.logService = logService;
         this.userMessageService = userMessageService;
@@ -60,10 +55,7 @@ public class AccessInterceptor implements HandlerInterceptor {
             return true;
         }
 
-        if (isOssSdkAccess(uri, method)) {
-            // oss-sdk 访问
-            return checkOssConsoleAccess(uri, response);
-        } else if (isForegroundAccess(uri)) {
+        if (isForegroundAccess(uri)) {
             // 前台访问
             String foregroundDomain = siteOptionService.getForegroundDomain();
             if (host.equals(foregroundDomain)) {
@@ -86,29 +78,6 @@ public class AccessInterceptor implements HandlerInterceptor {
         return uri.startsWith("/bg/api/oss/") && !method.equalsIgnoreCase("options");
     }
 
-    private boolean checkOssConsoleAccess(String uri, HttpServletResponse response) {
-        if (uri.equals("/bg/api/oss/store/secret") || uri.equals("/bg/api/oss/key/auth")) {
-            return true;
-        }
-
-        String token = ServletUtil.getBearerToken();
-        if (token == null || token.isBlank()) {
-            log.error("request {} start with /bg/api/oss/, but not auth", uri);
-            response.setStatus(403);
-            return false;
-        } else {
-            User user = userKeyService.getUserFromToken(token);
-            if (user == null) {
-                log.error("request {} start with /bg/api/oss/, but not auth", uri);
-                response.setStatus(403);
-                return false;
-            }
-            UserContext.setOssUser(user);
-        }
-
-        return true;
-    }
-
     private boolean isForegroundAccess(String uri) {
         if (uri.equals("/")) {
             return true;

+ 0 - 20
web/src/main/java/cn/reghao/bnt/web/console/config/ConsoleConfig.java

@@ -1,20 +0,0 @@
-package cn.reghao.bnt.web.console.config;
-
-import cn.reghao.oss.sdk.model.OssConsoleConfig;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-/**
- * @author reghao
- * @date 2024-07-29 16:47:14
- */
-@Configuration
-public class ConsoleConfig {
-    @Bean
-    public OssConsoleConfig ossConsoleConfig() {
-        String endpoint = System.getenv("CONSOLE_ENDPOINT");
-        String accessKeyId = System.getenv("CONSOLE_ACCESS_KEY_ID");
-        String accessKeySecret = System.getenv("CONSOLE_ACCESS_KEY_SECRET");
-        return new OssConsoleConfig(endpoint, accessKeyId, accessKeySecret);
-    }
-}

+ 0 - 37
web/src/main/java/cn/reghao/bnt/web/console/config/OssConsoleClientFactory.java

@@ -1,37 +0,0 @@
-package cn.reghao.bnt.web.console.config;
-
-import cn.reghao.oss.sdk.OssConsoleClient;
-import cn.reghao.oss.sdk.model.OssConsoleConfig;
-import org.springframework.stereotype.Component;
-
-/**
- * @author reghao
- * @date 2024-02-24 17:41:42
- */
-@Component
-public class OssConsoleClientFactory {
-    private OssConsoleClient ossConsoleClient;
-    private final OssConsoleConfig ossConsoleConfig;
-
-    public OssConsoleClientFactory(OssConsoleConfig ossConsoleConfig) {
-        this.ossConsoleConfig = ossConsoleConfig;
-    }
-
-    public OssConsoleClient getOssConsoleClient() {
-        if (ossConsoleClient == null) {
-            ossConsoleClient = get();
-        }
-
-        return ossConsoleClient;
-    }
-
-    private OssConsoleClient get() {
-        try {
-            return new OssConsoleClient(ossConsoleConfig);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}

+ 0 - 51
web/src/main/java/cn/reghao/bnt/web/console/controller/OssKeyPageController.java

@@ -1,51 +0,0 @@
-package cn.reghao.bnt.web.console.controller;
-
-import cn.reghao.bnt.web.console.model.vo.UserKeyVo;
-import cn.reghao.bnt.web.console.service.UserKeyService;
-import cn.reghao.jutil.jdk.result.WebResult;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:24:31
- */
-@Tag(name = "oss key 接口")
-@Controller
-@RequestMapping("/bg")
-public class OssKeyPageController {
-    private final UserKeyService userKeyService;
-
-    public OssKeyPageController(UserKeyService userKeyService) {
-        this.userKeyService = userKeyService;
-    }
-
-    @Operation(summary = "oss key 页面", description = "N")
-    @GetMapping(value = "/oss/key")
-    public String userKeyPage(Model model) {
-        List<UserKeyVo> list = userKeyService.getUserKeys();
-        Page<UserKeyVo> page = new PageImpl<>(list, PageRequest.of(0, 100), list.size());
-        model.addAttribute("page", page);
-        return "/admin/console/my/mykey";
-    }
-
-    @Operation(summary = "重新生成  oss key", description = "N")
-    @PostMapping(value = "/oss/key/regenerate", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String delete() {
-        userKeyService.regenerate();
-        return WebResult.success();
-    }
-}

+ 0 - 146
web/src/main/java/cn/reghao/bnt/web/console/controller/OssSdkController.java

@@ -1,146 +0,0 @@
-package cn.reghao.bnt.web.console.controller;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.model.dto.KeyAuthDto;
-import cn.reghao.bnt.web.console.service.UserKeyService;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.oss.sdk.model.dto.ObjectInfo;
-import cn.reghao.oss.sdk.model.dto.ServerInfo;
-import cn.reghao.oss.sdk.model.dto.media.AudioInfo;
-import cn.reghao.oss.sdk.model.dto.media.ConvertedImageInfo;
-import cn.reghao.oss.sdk.model.dto.media.ImageInfo;
-import cn.reghao.oss.sdk.model.dto.media.VideoInfo;
-import cn.reghao.oss.api.iface.ConsoleService;
-import cn.reghao.bnt.web.console.rpc.StoreServiceWrapper;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.http.MediaType;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2024-02-23 09:05:58
- */
-@Tag(name = "oss-sdk 接口")
-@RestController
-@RequestMapping("/bg/api/oss")
-public class OssSdkController {
-    private final UserKeyService userKeyService;
-    private final ConsoleService consoleService;
-    private final StoreServiceWrapper storeServiceWrapper;
-
-    public OssSdkController(UserKeyService userKeyService, ConsoleService consoleService,
-                            StoreServiceWrapper storeServiceWrapper) {
-        this.userKeyService = userKeyService;
-        this.consoleService = consoleService;
-        this.storeServiceWrapper = storeServiceWrapper;
-    }
-
-    @Operation(summary = "对 oss key 进行认证", description = "N")
-    @PostMapping(value = "/key/auth", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String authKey(@Validated KeyAuthDto keyAuthDto) {
-        Result result = userKeyService.auth(keyAuthDto);
-        if (result.getCode() == 0) {
-            return WebResult.success(result.getData());
-        }
-
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "获取上传文件存储的 oss-store 节点", description = "N")
-    @GetMapping(value = "/upload/store", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getUploadStore(@RequestParam("channelCode") int channelCode) {
-        ServerInfo serverInfo = consoleService.getUploadStore(channelCode);
-        return WebResult.success(serverInfo);
-    }
-
-    @Operation(summary = "设置对象可见范围", description = "N")
-    @PostMapping(value = "/object/scope", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String setObjectScope(int channelCode, String objectId, int scope) throws Exception {
-        int loginUser = UserContext.getUserId();
-        storeServiceWrapper.setObjectScope(channelCode, objectId, scope, loginUser);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "根据 objectId 删除对象", description = "N")
-    @PostMapping(value = "/object/delete/id", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteByObjectId(@RequestParam("channelCode") int channelCode,
-                                   @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        storeServiceWrapper.deleteByObjectId(channelCode, objectId, loginUser);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "根据 objectUrl 删除对象", description = "N")
-    @PostMapping(value = "/object/delete/url", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String deleteByObjectUrl(@RequestParam("objectUrl") String objectUrl) {
-        int loginUser = UserContext.getUserId();
-        storeServiceWrapper.deleteByObjectUrl(objectUrl, loginUser);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "获取对象信息", description = "N")
-    @GetMapping(value = "/object/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getObjectInfo(@RequestParam("channelCode") int channelCode,
-                                @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        ObjectInfo objectInfo = storeServiceWrapper.getObjectInfo(channelCode, objectId, loginUser);
-        return WebResult.success(objectInfo);
-    }
-
-    @Operation(summary = "获取对象签名 url", description = "N")
-    @GetMapping(value = "/object/url", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getSignedUrl(@RequestParam("channelCode") Integer channelCode,
-                               @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        String signedUrl  = storeServiceWrapper.getSignedUrl(channelCode, objectId, loginUser);
-        return WebResult.success(signedUrl);
-    }
-
-    @Operation(summary = "根据对象 url 获取签名 url", description = "N")
-    @GetMapping(value = "/object/signed_url", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getSignedUrlByUrl(@RequestParam("channelCode") Integer channelCode,
-                                    @RequestParam("objectUrl") String objectUrl) throws Exception {
-        int loginUser = UserContext.getUserId();
-        String signedUrl  = storeServiceWrapper.getSignedUrlByUrl(channelCode, objectUrl, loginUser);
-        return WebResult.success(signedUrl);
-    }
-
-    @Operation(summary = "获取视频文件信息", description = "N")
-    @GetMapping(value = "/object/video/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getVideoInfo(@RequestParam("channelCode") Integer channelCode,
-                               @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        VideoInfo videoInfo = storeServiceWrapper.getVideoInfo(channelCode, objectId, loginUser);
-        return WebResult.success(videoInfo);
-    }
-
-    @Operation(summary = "获取图片文件信息", description = "N")
-    @GetMapping(value = "/object/image/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getImagesInfo(@RequestParam("channelCode") Integer channelCode,
-                                @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        ImageInfo imageInfo = storeServiceWrapper.getImageInfo(channelCode, objectId, loginUser);
-        return WebResult.success(imageInfo);
-    }
-
-    @Operation(summary = "获取 webp 图片文件信息", description = "N")
-    @PostMapping(value = "/object/image/webp", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getWebpInfo(@RequestParam("channelCode") Integer channelCode,
-                              @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        ConvertedImageInfo convertedImageInfo = storeServiceWrapper.getWebpInfo(channelCode, objectId, loginUser);
-        return WebResult.success(convertedImageInfo);
-    }
-
-    @Operation(summary = "获取音频文件信息", description = "N")
-    @GetMapping(value = "/media/audio/info", produces = MediaType.APPLICATION_JSON_VALUE)
-    public String getAudioInfo(@RequestParam("channelCode") Integer channelCode,
-                               @RequestParam("objectId") String objectId) throws Exception {
-        int loginUser = UserContext.getUserId();
-        AudioInfo audioInfo = storeServiceWrapper.getAudioInfo(channelCode, objectId, loginUser);
-        return WebResult.success(audioInfo);
-    }
-}

+ 0 - 65
web/src/main/java/cn/reghao/bnt/web/console/controller/StoreNodePageController.java

@@ -1,65 +0,0 @@
-package cn.reghao.bnt.web.console.controller;
-
-import cn.reghao.bnt.web.console.model.vo.StoreDiskInfo;
-import cn.reghao.bnt.web.console.model.vo.StoreNodeInfo;
-import cn.reghao.bnt.web.console.service.StoreNodeService;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.result.WebResult;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-23 11:29:14
- */
-@Tag(name = "存储节点接口")
-@Controller
-@RequestMapping("/bg/sys/oss/store")
-public class StoreNodePageController {
-    private final StoreNodeService storeNodeService;
-
-    public StoreNodePageController(StoreNodeService storeNodeService) {
-        this.storeNodeService = storeNodeService;
-    }
-
-    @Operation(summary = "存储节点列表页面", description = "N")
-    @GetMapping("/list")
-    public String storeNodePage(Model model) {
-        PageRequest pageRequest = PageRequest.of(0, 10);
-        Page<StoreNodeInfo> page = storeNodeService.getByPage(pageRequest);
-        model.addAttribute("page", page);
-        return "/admin/console/node/storenode";
-    }
-
-    @Operation(summary = "存储节点详情页面", description = "N")
-    @GetMapping("/disk")
-    public String storeNodePage(@RequestParam("id") Integer id, Model model) {
-        List<StoreDiskInfo> disks = storeNodeService.getStoreDetail(id);
-        model.addAttribute("disks", disks);
-        return "/admin/console/node/disk";
-    }
-
-    @Operation(summary = "设置存储节点的状态", description = "N")
-    @PostMapping(value = "/update_status", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String updateStoreNodeDomain(@RequestParam("id") int id) {
-        Result result = storeNodeService.updateStatus(id);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "删除存储节点", description = "N")
-    @PostMapping(value = "/delete", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String deleteStoreNode(Integer nodeId) {
-        Result result = storeNodeService.delete(nodeId);
-        return WebResult.result(result);
-    }
-}

+ 0 - 146
web/src/main/java/cn/reghao/bnt/web/console/controller/StoreObjectPageController.java

@@ -1,146 +0,0 @@
-package cn.reghao.bnt.web.console.controller;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.admin.service.FileService;
-import cn.reghao.bnt.web.console.model.vo.FileInfo;
-import cn.reghao.bnt.web.console.model.vo.UploadChannelInfo;
-import cn.reghao.bnt.web.console.model.vo.UserNodeInfo;
-import cn.reghao.bnt.web.console.service.OssFileService;
-import cn.reghao.bnt.web.console.service.UploadChannelService;
-import cn.reghao.bnt.web.console.service.UserNodeService;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.oss.sdk.model.dto.ObjectInfo;
-import cn.reghao.oss.sdk.model.dto.ServerInfo;
-import cn.reghao.oss.api.iface.ConsoleService;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.data.domain.Page;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:12:14
- */
-@Tag(name = "存储对象接口")
-@Controller
-@RequestMapping("/bg/oss/object")
-public class StoreObjectPageController {
-    private final ConsoleService consoleService;
-    private final OssFileService ossFileService;
-    private final UserNodeService userNodeService;
-    private final UploadChannelService uploadChannelService;
-    private final FileService fileService;
-
-    public StoreObjectPageController(ConsoleService consoleService, OssFileService ossFileService,
-                                     UserNodeService userNodeService, UploadChannelService uploadChannelService,
-                                     FileService fileService) {
-        this.consoleService = consoleService;
-        this.ossFileService = ossFileService;
-        this.userNodeService = userNodeService;
-        this.uploadChannelService = uploadChannelService;
-        this.fileService = fileService;
-    }
-
-    @Operation(summary = "对象列表页面", description = "N")
-    @GetMapping(value = "/list")
-    public String index(@RequestParam(value = "userNodeId", required = false) Integer userNodeId,
-                        @RequestParam(value = "path", required = false) String path,
-                        Model model) {
-        if (path == null || path.isBlank()) {
-            path = "/";
-        }
-
-        int loginUser = UserContext.getUserId();
-        List<UserNodeInfo> userNodes = userNodeService.getUserNodes(loginUser);
-        if (userNodes.isEmpty()) {
-            String errMsg = "没有可用节点";
-            model.addAttribute("message", errMsg);
-            return "/admin/errmsg";
-        }
-
-        UserNodeInfo userNode;
-        if (userNodeId != null) {
-            userNode = userNodeService.getUserNodeInfo(userNodeId);
-        } else {
-            userNode = userNodes.get(0);
-            userNodeId = userNode.getUserNodeId();
-        }
-        String nodeDomain = userNode.getUserNodeDomain();
-
-        int pn = 1;
-        int ps = 10;
-        String objectName = fileService.getObjectName(path);
-        Page<FileInfo> page = ossFileService.getFileList(nodeDomain, objectName, pn);
-
-        model.addAttribute("parentDirs", Collections.emptyList());
-        model.addAttribute("page", page);
-        model.addAttribute("userNodeId", userNodeId);
-        model.addAttribute("storeNodes", userNodes);
-        model.addAttribute("uploadPage", "/admin/oss/object/upload");
-        model.addAttribute("showTitle", 1);
-        return "/admin/console/object/objectlist";
-    }
-
-    @Operation(summary = "对象详情页面", description = "N")
-    @GetMapping(value = "/detail", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String objectInfoPage(@RequestParam(value = "userNodeId") Integer userNodeId,
-                                 @RequestParam(value = "objectId") String objectId) throws Exception {
-        ObjectInfo objectInfo = ossFileService.getObjectInfo(userNodeId, objectId);
-        return WebResult.success(objectInfo);
-    }
-
-    @Operation(summary = "对象上传页面", description = "N")
-    @GetMapping(value = "/upload")
-    public String uploadPage(@RequestParam(value = "userNodeId", required = false) Integer userNodeId, Model model) {
-        int loginUser = UserContext.getUserId();
-        List<UserNodeInfo> storeNodes = userNodeService.getUserNodes(loginUser);
-        if (storeNodes.isEmpty()) {
-            String errMsg = "没有可用节点";
-            model.addAttribute("message", errMsg);
-            return "/admin/errmsg";
-        }
-
-        UserNodeInfo userNodeInfo = storeNodes.get(0);
-        if (userNodeId != null) {
-            userNodeInfo = userNodeService.getUserNodeInfo(userNodeId);
-        }
-
-        userNodeId = userNodeInfo.getUserNodeId();
-        List<UploadChannelInfo> channelVos = uploadChannelService.getChannelsByUserNode(userNodeId);
-        if (channelVos.isEmpty()) {
-            String errMsg = "没有可用通道";
-            model.addAttribute("message", errMsg);
-            return "/admin/errmsg";
-        }
-
-        UploadChannelInfo uploadChannelInfo = channelVos.get(0);
-        int channelCode = uploadChannelInfo.getChannelCode();
-        ServerInfo serverInfo = consoleService.getUploadStore(channelCode);
-
-        model.addAttribute("userNodeId", userNodeId);
-        model.addAttribute("selectedDomain", userNodeInfo.getUserNodeDomain());
-        model.addAttribute("selectedChannel", uploadChannelInfo.getPrefix());
-        model.addAttribute("storeNodes", storeNodes);
-        model.addAttribute("ossUrl", serverInfo.getOssUrl());
-        model.addAttribute("channelCode", serverInfo.getChannelCode());
-        model.addAttribute("token", serverInfo.getToken());
-        model.addAttribute("channels", channelVos);
-        model.addAttribute("showTitle", 1);
-        return "/admin/console/object/objectupload";
-    }
-
-    @Operation(summary = "获取对象上传需要的 token", description = "N")
-    @PostMapping(value = "/serverinfo", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String uploadFile(Integer channelCode) {
-        ServerInfo serverInfo = consoleService.getUploadStore(channelCode);
-        return WebResult.success(serverInfo);
-    }
-}

+ 0 - 127
web/src/main/java/cn/reghao/bnt/web/console/controller/UploadChannelPageController.java

@@ -1,127 +0,0 @@
-package cn.reghao.bnt.web.console.controller;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.model.dto.UploadChannelDto;
-import cn.reghao.bnt.web.console.model.vo.*;
-import cn.reghao.bnt.web.console.service.UploadChannelService;
-import cn.reghao.bnt.web.console.service.UserNodeService;
-import cn.reghao.bnt.web.util.SelectOption;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.result.WebResult;
-import cn.reghao.oss.sdk.model.constant.ObjectScope;
-import cn.reghao.oss.api.constant.ObjectSize;
-import cn.reghao.oss.sdk.model.constant.ObjectType;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:05:30
- */
-@Slf4j
-@Tag(name = "上传通道接口")
-@Controller
-@RequestMapping("/bg/oss/channel")
-public class UploadChannelPageController {
-    private final UserNodeService userNodeService;
-    private final UploadChannelService uploadChannelService;
-
-    public UploadChannelPageController(UserNodeService userNodeService, UploadChannelService uploadChannelService) {
-        this.userNodeService = userNodeService;
-        this.uploadChannelService = uploadChannelService;
-    }
-
-    @Operation(summary = "上传通道列表页面", description = "N")
-    @GetMapping(value = "/list")
-    public String index(@RequestParam(value = "userNodeId", required = false) Integer userNodeId, Model model) {
-        int loginUser = UserContext.getUserId();
-        List<UserNodeInfo> userNodes = userNodeService.getUserNodes(loginUser);
-        if (userNodes.isEmpty()) {
-            String errMsg = "没有可用节点";
-            model.addAttribute("message", errMsg);
-            return "/admin/errmsg";
-        }
-
-        if (userNodeId == null) {
-            userNodeId = userNodes.get(0).getUserNodeId();
-        }
-
-        List<UploadChannelInfo> list = uploadChannelService.getChannelsByUserNode(userNodeId);
-        Page<UploadChannelInfo> page = new PageImpl<>(list, PageRequest.of(0, 100), list.size());
-
-        List<SelectOption> myNodes = userNodes.stream().map(userNodeVO -> {
-            String userNodeDomain = userNodeVO.getUserNodeDomain();
-            return new SelectOption(""+userNodeVO.getUserNodeId(), userNodeDomain);
-        }).collect(Collectors.toList());
-
-        model.addAttribute("userNodeId", userNodeId);
-        model.addAttribute("userNodes", myNodes);
-        model.addAttribute("page", page);
-        return "/admin/console/channel/uploadchannel";
-    }
-
-    @Operation(summary = "添加上传通道页面", description = "N")
-    @GetMapping("/add")
-    public String addChannelPage(@RequestParam("userNodeId") Integer userNodeId, Model model) {
-        List<SelectOption> objectTypes = new ArrayList<>();
-        for (ObjectType objectType : ObjectType.values()) {
-            if (objectType.getCode() == ObjectType.Dir.getCode()) {
-                continue;
-            }
-            objectTypes.add(new SelectOption(objectType.getCode()+"", objectType.name()));
-        }
-
-        List<SelectOption> objectScopes = new ArrayList<>();
-        for (ObjectScope objectScope : ObjectScope.values()) {
-            objectScopes.add(new SelectOption(objectScope.getCode()+"", objectScope.name()));
-        }
-
-        List<SelectOption> sizeList = Arrays.stream(ObjectSize.values())
-                .map(objectSize -> new SelectOption(objectSize.getSize()+"", objectSize.getDesc()))
-                .collect(Collectors.toList());
-
-        model.addAttribute("objectTypes", objectTypes);
-        model.addAttribute("objectScopes", objectScopes);
-        model.addAttribute("sizeList", sizeList);
-        model.addAttribute("userNodeId", userNodeId);
-        return "/admin/console/channel/channeladd";
-    }
-
-    @Operation(summary = "添加上传通道", description = "N")
-    @PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String addUploadChannel(@Validated UploadChannelDto uploadChannelDto) throws Exception {
-        Result result = uploadChannelService.addObjectChannel(uploadChannelDto);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "设置通道状态", description = "N")
-    @PostMapping(value = "/channel_status", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String setChannelStatus(Integer id) {
-        uploadChannelService.updateChannelStatus(id);
-        return WebResult.success();
-    }
-
-    @Operation(summary = "删除通道", description = "N")
-    @PostMapping(value = "/delete", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String deleteUploadChannel(Integer id) throws Exception {
-        Result result = uploadChannelService.deleteChannel(id);
-        return WebResult.result(result);
-    }
-}

+ 0 - 102
web/src/main/java/cn/reghao/bnt/web/console/controller/UserNodePageController.java

@@ -1,102 +0,0 @@
-package cn.reghao.bnt.web.console.controller;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.model.dto.UserNodeDto;
-import cn.reghao.bnt.web.console.model.vo.UserNodeInfo;
-import cn.reghao.bnt.web.console.service.StoreNodeService;
-import cn.reghao.bnt.web.console.service.UserNodeService;
-import cn.reghao.bnt.web.util.SelectOption;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.web.WebResult;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2019-08-30 18:49:15
- */
-@Tag(name = "用户节点接口")
-@Controller
-@RequestMapping("/bg/oss/my")
-public class UserNodePageController {
-    private final UserNodeService userNodeService;
-    private final StoreNodeService storeNodeService;
-
-    public UserNodePageController(UserNodeService userNodeService, StoreNodeService storeNodeService) {
-        this.userNodeService = userNodeService;
-        this.storeNodeService = storeNodeService;
-    }
-
-    @Operation(summary = "用户节点列表页面", description = "N")
-    @GetMapping(value = "/list")
-    public String userNodesPage(Model model) {
-        int loginUser = UserContext.getUserId();
-        List<UserNodeInfo> list = userNodeService.getUserNodes(loginUser);
-        Page<UserNodeInfo> page = new PageImpl<>(list, PageRequest.of(0, 100), list.size());
-        model.addAttribute("page", page);
-        return "/admin/console/my/mynode";
-    }
-
-    @Operation(summary = "用户节点创建页面", description = "N")
-    @GetMapping(value = "/add")
-    public String addNodePage(Model model) {
-        List<SelectOption> storeNodes = storeNodeService.getNodeKeyValues();
-        model.addAttribute("storeNodes", storeNodes);
-        return "/admin/console/my/mynodeadd";
-    }
-
-    /*@Operation(summary = "用户节点创建页面", description = "N")
-    @PostMapping(value = "/add")
-    public String addNode(@Validated UserNodeDto userNodeDto) {
-        userNodeService.add(userNodeDto);
-        return "redirect:/oss/my/list";
-    }*/
-
-    @Operation(summary = "更新用户节点页面", description = "N")
-    @GetMapping(value = "/edit")
-    public String editNodePage(@RequestParam("userNodeId") Integer userNodeId, Model model) {
-        UserNodeInfo userNode = userNodeService.getUserNodeInfo(userNodeId);
-        model.addAttribute("userNode", userNode);
-        return "/admin/console/my/mynodeedit";
-    }
-
-    @Operation(summary = "更新用户节点", description = "N")
-    @PostMapping(value = "/update")
-    public String updateNode(@Validated UserNodeDto userNodeDto) {
-        return "redirect:/oss/my/list";
-    }
-
-    @Operation(summary = "用户节点详情页面", description = "N")
-    @GetMapping(value = "/detail")
-    public String nodeDetailPage(@RequestParam(value = "userNodeId") Integer userNodeId, Model model) {
-        UserNodeInfo userNode = userNodeService.getUserNodeInfo(userNodeId);
-        model.addAttribute("userNodeDetail", userNode);
-        return "/admin/console/my/mynodedetail";
-    }
-
-    @Operation(summary = "添加用户节点", description = "N")
-    @PostMapping(value = "/add", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String addUserNode(@Validated UserNodeDto userNodeDto) {
-        Result result = userNodeService.add(userNodeDto);
-        return WebResult.result(result);
-    }
-
-    @Operation(summary = "删除用户节点", description = "N")
-    @PostMapping(value = "/delete", produces = MediaType.APPLICATION_JSON_VALUE)
-    @ResponseBody
-    public String deleteUserNode(Integer userNodeId) {
-        Result result = userNodeService.delete(userNodeId);
-        return WebResult.result(result);
-    }
-}

+ 0 - 13
web/src/main/java/cn/reghao/bnt/web/console/db/repository/StoreNodeRepository.java

@@ -1,13 +0,0 @@
-package cn.reghao.bnt.web.console.db.repository;
-
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-/**
- * @author reghao
- * @date 2024-02-23 11:31:05
- */
-public interface StoreNodeRepository extends JpaRepository<StoreNode, Integer> {
-    StoreNode findByNodeAddr(String nodeAddr);
-    StoreNode findById(int id);
-}

+ 0 - 19
web/src/main/java/cn/reghao/bnt/web/console/db/repository/UploadChannelRepository.java

@@ -1,19 +0,0 @@
-package cn.reghao.bnt.web.console.db.repository;
-
-import cn.reghao.bnt.web.console.model.po.UploadChannel;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:05:30
- */
-public interface UploadChannelRepository extends JpaRepository<UploadChannel, Integer> {
-    int countByCreateBy(int createBy);
-    List<UploadChannel> findByCreateBy(int createBy);
-    List<UploadChannel> findByCreateByAndUserNodeId(int createBy, int userNodeId);
-    UploadChannel findByCreateByAndChannelCode(int createBy, int channelCode);
-    UploadChannel findByCreateByAndPrefix(int createBy, String prefix);
-    UploadChannel findById(int id);
-}

+ 0 - 13
web/src/main/java/cn/reghao/bnt/web/console/db/repository/UserKeyRepository.java

@@ -1,13 +0,0 @@
-package cn.reghao.bnt.web.console.db.repository;
-
-import cn.reghao.bnt.web.console.model.po.UserKey;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:35:53
- */
-public interface UserKeyRepository extends JpaRepository<UserKey, Integer> {
-    UserKey findByCreateBy(int createBy);
-    UserKey findByAccessKeyId(String  accessKeyId);
-}

+ 0 - 18
web/src/main/java/cn/reghao/bnt/web/console/db/repository/UserNodeRepository.java

@@ -1,18 +0,0 @@
-package cn.reghao.bnt.web.console.db.repository;
-
-import cn.reghao.bnt.web.console.model.po.UserNode;
-import org.springframework.data.jpa.repository.JpaRepository;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:49:12
- */
-public interface UserNodeRepository extends JpaRepository<UserNode, Integer> {
-    int countByStoreNodeId(int storeNodeId);
-    UserNode findByCreateByAndStoreNodeId(int createBy, int storeNodeId);
-    List<UserNode> findByCreateBy(int createBy);
-    UserNode findByDomain(String domain);
-    UserNode findById(int id);
-}

+ 0 - 21
web/src/main/java/cn/reghao/bnt/web/console/model/dto/ChannelProcessDto.java

@@ -1,21 +0,0 @@
-package cn.reghao.bnt.web.console.model.dto;
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @author reghao
- * @date 2024-03-07 16:26:52
- */
-@NoArgsConstructor
-@Setter
-@Getter
-public class ChannelProcessDto {
-    @NotNull
-    private Integer id;
-    @NotNull
-    private Boolean seturl;
-}

+ 0 - 19
web/src/main/java/cn/reghao/bnt/web/console/model/dto/KeyAuthDto.java

@@ -1,19 +0,0 @@
-package cn.reghao.bnt.web.console.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2024-02-27 11:21:07
- */
-@Setter
-@Getter
-public class KeyAuthDto {
-    @Size(min = 8, max = 32, message = "accessKeyId 长度应在 8~32 个字符之间")
-    private String accessKeyId;
-    @Size(min = 8, max = 32, message = "accessKeySecret 长度应在 8~32 个字符之间")
-    private String accessKeySecret;
-}

+ 0 - 31
web/src/main/java/cn/reghao/bnt/web/console/model/dto/NodeUpdateDto.java

@@ -1,31 +0,0 @@
-package cn.reghao.bnt.web.console.model.dto;
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2023-03-10 15:00:20
- */
-@NoArgsConstructor
-@Setter
-@Getter
-public class NodeUpdateDto {
-    @NotNull
-    private Integer userNodeId;
-    @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
-    @Size(max = 128, message = "域名长度应小于 128 个字符")
-    private String domain;
-    @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "referer 域名格式不正确")
-    @Size(max = 128, message = "referer 域名长度应小于 128 个字符")
-    private String referer;
-    @NotBlank(message = "必须设置 SecretKey")
-    @Size(min = 8, max = 32, message = "SecretKey 长度在 8 ~ 32 个字符之间")
-    private String secretKey;
-}

+ 0 - 31
web/src/main/java/cn/reghao/bnt/web/console/model/dto/UploadChannelDto.java

@@ -1,31 +0,0 @@
-package cn.reghao.bnt.web.console.model.dto;
-
-import cn.reghao.jutil.web.validator.ValidEnum;
-import cn.reghao.oss.sdk.model.constant.ObjectScope;
-import cn.reghao.oss.api.constant.ObjectSize;
-import cn.reghao.oss.sdk.model.constant.ObjectType;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2021-06-03 16:15:23
- */
-@Data
-public class UploadChannelDto {
-    //@Pattern(regexp = "(^/)([^\\\\:*<>|\"?\\r\\n\\s/]+/)*([^\\\\:*<>|\"?\\r\\n\\s/]+)?$", message = "通道前缀不匹配")
-    @Pattern(regexp = "([^\\\\:*<>|\"?\\r\\n\\s/]+/)*([^\\\\:*<>|\"?\\r\\n\\s/]+)/$", message = "通道前缀不匹配")
-    @Size(min = 2, max = 128, message = "通道前缀超过限制长度")
-    private String channelPrefix;
-    @ValidEnum(value = ObjectSize.class, message = "通道允许上传的对象大小不合法")
-    private Long maxSize;
-    @ValidEnum(value = ObjectType.class, message = "通道允许上传的对象类型不合法")
-    private Integer objectType;
-    @ValidEnum(value = ObjectScope.class, message = "通道作用域不合法")
-    private Integer scope;
-    @NotNull
-    private Integer userNodeId;
-}

+ 0 - 23
web/src/main/java/cn/reghao/bnt/web/console/model/dto/UserNodeDto.java

@@ -1,23 +0,0 @@
-package cn.reghao.bnt.web.console.model.dto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:42:44
- */
-@Setter
-@Getter
-public class UserNodeDto {
-    @NotNull
-    private Integer storeNodeId;
-    @Pattern(regexp = "^[a-z0-9]+([\\-\\.]{1}[a-z0-9]+)*\\.[a-z]{2,6}$", message = "域名格式不正确")
-    @Size(max = 128, message = "域名长度应小于 128 个字符")
-    private String domain;
-}

+ 0 - 45
web/src/main/java/cn/reghao/bnt/web/console/model/po/StoreNode.java

@@ -1,45 +0,0 @@
-package cn.reghao.bnt.web.console.model.po;
-
-import cn.reghao.bnt.web.util.BaseEntity;
-import cn.reghao.oss.api.dto.StoreNodeDto;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import org.hibernate.annotations.LazyCollection;
-import org.hibernate.annotations.LazyCollectionOption;
-
-import javax.persistence.*;
-import javax.validation.constraints.NotNull;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-23 11:29:14
- */
-@NoArgsConstructor
-@Getter
-@Setter
-@Entity
-@Table(name = "oss_store_node")
-public class StoreNode extends BaseEntity {
-    @Column(nullable = false, unique = true)
-    private String nodeAddr;
-    @NotNull
-    private Integer httpPort;
-    @NotNull
-    private Integer rpcPort;
-    @ElementCollection(targetClass = StoreVolume.class)
-    @LazyCollection(LazyCollectionOption.FALSE)
-    @CollectionTable(name = "oss_store_volumes")
-    private List<StoreVolume> storeVolumes;
-    private Boolean enabled;
-
-    public StoreNode(StoreNodeDto storeNodeDto) {
-        this.nodeAddr = storeNodeDto.getNodeAddr();
-        this.httpPort = storeNodeDto.getHttpPort();
-        this.rpcPort = storeNodeDto.getRpcPort();
-        this.storeVolumes = storeNodeDto.getDiskVolumes().stream().map(StoreVolume::new).collect(Collectors.toList());
-        this.enabled = false;
-    }
-}

+ 0 - 42
web/src/main/java/cn/reghao/bnt/web/console/model/po/StoreVolume.java

@@ -1,42 +0,0 @@
-package cn.reghao.bnt.web.console.model.po;
-
-import cn.reghao.oss.api.dto.disk.DiskVolume;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-
-import javax.persistence.Embeddable;
-
-/**
- * @author reghao
- * @date 2024-03-04 17:08:20
- */
-@NoArgsConstructor
-@AllArgsConstructor
-@Getter
-@Embeddable
-public class StoreVolume {
-    private String name;
-    private String volume;
-    private String mountPoint;
-    private String fsType;
-    private String blockId;
-    private long totalSpace;
-    private long availSpace;
-    private long totalInode;
-    private long availInode;
-    private String storeDir;
-
-    public StoreVolume(DiskVolume diskVolume) {
-        this.name = diskVolume.getName();
-        this.volume = diskVolume.getVolume();
-        this.mountPoint = diskVolume.getMountPoint();
-        this.fsType = diskVolume.getFsType();
-        this.blockId = diskVolume.getBlockId();
-        this.totalSpace = diskVolume.getTotalSpace();
-        this.availSpace = diskVolume.getAvailSpace();
-        this.totalInode = diskVolume.getTotalInode();
-        this.availInode = diskVolume.getAvailInode();
-        this.storeDir = diskVolume.getStoreDir();
-    }
-}

+ 0 - 43
web/src/main/java/cn/reghao/bnt/web/console/model/po/UploadChannel.java

@@ -1,43 +0,0 @@
-package cn.reghao.bnt.web.console.model.po;
-
-import cn.reghao.bnt.web.console.model.dto.UploadChannelDto;
-import cn.reghao.bnt.web.util.BaseEntity;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import javax.persistence.Entity;
-import javax.persistence.Table;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:05:30
- */
-@NoArgsConstructor
-@Getter
-@Setter
-@Entity
-@Table(name = "oss_upload_channel")
-public class UploadChannel extends BaseEntity {
-    private Integer channelCode;
-    private String prefix;
-    private Long maxSize;
-    private Integer fileType;
-    private Boolean seturl;
-    private Integer scope;
-    private Boolean enabled;
-    private Integer userNodeId;
-    private Integer createBy;
-
-    public UploadChannel(int channelCode, UploadChannelDto uploadChannelDto, int createBy) {
-        this.channelCode = channelCode;
-        this.prefix = uploadChannelDto.getChannelPrefix();
-        this.maxSize = uploadChannelDto.getMaxSize();
-        this.fileType = uploadChannelDto.getObjectType();
-        this.seturl = false;
-        this.scope = uploadChannelDto.getScope();
-        this.enabled = true;
-        this.userNodeId = uploadChannelDto.getUserNodeId();
-        this.createBy = createBy;
-    }
-}

+ 0 - 34
web/src/main/java/cn/reghao/bnt/web/console/model/po/UserKey.java

@@ -1,34 +0,0 @@
-package cn.reghao.bnt.web.console.model.po;
-
-import cn.reghao.bnt.web.util.BaseEntity;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Table;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:32:53
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@Entity
-@Table(name = "oss_user_key")
-public class UserKey extends BaseEntity {
-    @Column(unique = true)
-    private String accessKeyId;
-    private String accessKeySecret;
-    private Integer createBy;
-
-    public UserKey(String accessKeyId, String accessKeySecret, int createBy) {
-        this.accessKeyId = accessKeyId;
-        this.accessKeySecret = accessKeySecret;
-        this.createBy = createBy;
-    }
-}

+ 0 - 37
web/src/main/java/cn/reghao/bnt/web/console/model/po/UserNode.java

@@ -1,37 +0,0 @@
-package cn.reghao.bnt.web.console.model.po;
-
-import cn.reghao.bnt.web.console.model.dto.UserNodeDto;
-import cn.reghao.bnt.web.util.BaseEntity;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Table;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:45:11
- */
-@AllArgsConstructor
-@NoArgsConstructor
-@Getter
-@Setter
-@Entity
-@Table(name = "oss_user_node")
-public class UserNode extends BaseEntity {
-    private Integer storeNodeId;
-    @Column(nullable = false, unique = true)
-    private String domain;
-    private String secretKey;
-    private String referer;
-    private Integer createBy;
-
-    public UserNode(UserNodeDto userNodeDto, int createBy) {
-        this.storeNodeId = userNodeDto.getStoreNodeId();
-        this.domain = userNodeDto.getDomain();
-        this.createBy = createBy;
-    }
-}

+ 0 - 23
web/src/main/java/cn/reghao/bnt/web/console/model/vo/StoreDiskInfo.java

@@ -1,23 +0,0 @@
-package cn.reghao.bnt.web.console.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-03-07 14:25:07
- */
-@AllArgsConstructor
-@Getter
-public class StoreDiskInfo {
-    private String blockId;
-    private String fsType;
-    private String volume;
-    private String storeDir;
-    private String total;
-    private String used;
-    private double percent;
-    private String totalInode;
-    private String usedInode;
-    private double percentInode;
-}

+ 0 - 33
web/src/main/java/cn/reghao/bnt/web/console/model/vo/StoreNodeInfo.java

@@ -1,33 +0,0 @@
-package cn.reghao.bnt.web.console.model.vo;
-
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-08-23 17:47:49
- */
-@Getter
-public class StoreNodeInfo {
-    private int id;
-    private String nodeAddr;
-    private int httpPort;
-    private int rpcPort;
-    private String total;
-    private String used;
-    private double percent;
-    private String status;
-    private boolean enabled;
-
-    public StoreNodeInfo(StoreNode storeNode, String total, String used, double percent) {
-        this.id = storeNode.getId();
-        this.nodeAddr = storeNode.getNodeAddr();
-        this.httpPort = storeNode.getHttpPort();
-        this.rpcPort = storeNode.getRpcPort();
-        this.total = total;
-        this.used = used;
-        this.percent = percent;
-        this.status = storeNode.getEnabled() ? "可读写" : "只读";
-        this.enabled = storeNode.getEnabled();
-    }
-}

+ 0 - 25
web/src/main/java/cn/reghao/bnt/web/console/model/vo/UploadChannelInfo.java

@@ -1,25 +0,0 @@
-package cn.reghao.bnt.web.console.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2024-02-28 13:16:02
- */
-@AllArgsConstructor
-@Getter
-public class UploadChannelInfo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private int id;
-    private int channelCode;
-    private String prefix;
-    private String maxSize;
-    private String fileType;
-    private boolean seturl;
-    private String scope;
-    private boolean enabled;
-}

+ 0 - 15
web/src/main/java/cn/reghao/bnt/web/console/model/vo/UserKeyVo.java

@@ -1,15 +0,0 @@
-package cn.reghao.bnt.web.console.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-/**
- * @author reghao
- * @date 2024-03-05 17:17:16
- */
-@AllArgsConstructor
-@Getter
-public class UserKeyVo {
-    private String accessKeyId;
-    private String accessKeySecret;
-}

+ 0 - 21
web/src/main/java/cn/reghao/bnt/web/console/model/vo/UserNodeInfo.java

@@ -1,21 +0,0 @@
-package cn.reghao.bnt.web.console.model.vo;
-
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-
-import java.io.Serializable;
-
-/**
- * @author reghao
- * @date 2024-07-02 16:18:14
- */
-@AllArgsConstructor
-@Getter
-public class UserNodeInfo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private int storeNodeId;
-    private String storeNodeAddr;
-    private int userNodeId;
-    private String userNodeDomain;
-}

+ 0 - 112
web/src/main/java/cn/reghao/bnt/web/console/rpc/ConsoleServiceImpl.java

@@ -1,112 +0,0 @@
-package cn.reghao.bnt.web.console.rpc;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import cn.reghao.bnt.web.console.model.po.UploadChannel;
-import cn.reghao.bnt.web.console.model.po.UserNode;
-import cn.reghao.bnt.web.console.service.StoreNodeService;
-import cn.reghao.bnt.web.console.service.UploadChannelService;
-import cn.reghao.bnt.web.console.service.UserNodeService;
-import cn.reghao.oss.api.dto.NodeProperties;
-import cn.reghao.oss.api.dto.ObjectChannel;
-import cn.reghao.oss.sdk.model.dto.ServerInfo;
-import cn.reghao.oss.api.dto.StoreNodeDto;
-import cn.reghao.oss.api.iface.ConsoleService;
-import cn.reghao.oss.api.iface.StoreService;
-import org.apache.dubbo.config.annotation.DubboService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-07-02 10:58:51
- */
-@DubboService
-@Service
-public class ConsoleServiceImpl implements ConsoleService {
-    private final UploadChannelService uploadChannelService;
-    private final StoreNodeService storeNodeService;
-    private final UserNodeService userNodeService;
-    private final RpcService rpcService;
-
-    public ConsoleServiceImpl(UploadChannelService uploadChannelService, StoreNodeService storeNodeService,
-                              UserNodeService userNodeService, RpcService rpcService) {
-        this.uploadChannelService = uploadChannelService;
-        this.storeNodeService = storeNodeService;
-        this.userNodeService = userNodeService;
-        this.rpcService = rpcService;
-    }
-
-    @Override
-    public void registerNode(StoreNodeDto storeNodeDto) {
-        storeNodeService.addOrUpdate(storeNodeDto);
-    }
-
-    @Override
-    public NodeProperties getNodeProperties(String domain) {
-        UserNode userNode = userNodeService.getUserNodeByDomain(domain);
-        if (userNode != null) {
-            String secretKey = userNode.getDomain();
-            String referer = userNode.getReferer();
-            int owner = userNode.getCreateBy();
-            return new NodeProperties(domain, secretKey, referer, owner);
-        }
-
-        return null;
-    }
-
-    @Override
-    public ObjectChannel getChannelByCode(int owner, int channelCode) {
-        return uploadChannelService.getObjectChannelByChannelCode(channelCode, owner);
-    }
-
-    @Override
-    public Integer getChannelCodeByUrl(int owner, String url) {
-        List<UploadChannel> uploadChannels = uploadChannelService.getUploadChannelsByCreateBy(owner);
-        String url1 = url.replace("//", "");
-        int idx = url1.indexOf("/");
-        String objectName = url1.substring(idx+1);
-        for (UploadChannel uploadChannel : uploadChannels) {
-            if (objectName.startsWith(uploadChannel.getPrefix())) {
-                return uploadChannel.getChannelCode();
-            }
-        }
-
-        return -1;
-    }
-
-    @Override
-    public ServerInfo getUploadStore(int channelCode) {
-        int owner = UserContext.getUserId();
-        UploadChannel uploadChannel = uploadChannelService.getByChannelCodeAndCreateBy(channelCode, owner);
-        if (uploadChannel == null) {
-            String errMsg = String.format("channelCode %s not exist", channelCode);
-            return null;
-        }
-
-        UserNode userNode = userNodeService.getUserNode(uploadChannel.getUserNodeId());
-        if (userNode == null) {
-            String errMsg = String.format("channel_id %s not associate with any store_node", uploadChannel.getId());
-            return null;
-        }
-
-        String domain = userNode.getDomain();
-        String ossUrl = String.format("https://%s", domain);
-        long maxSize = uploadChannel.getMaxSize();
-
-        try {
-            StoreNode storeNode = storeNodeService.getByStoreNodeId(userNode.getStoreNodeId());
-            StoreService storeService = rpcService.getStoreService(storeNode);
-
-            // 多少秒后 token 过期
-            int expire = 3600;
-            String uploadToken = storeService.getUploadToken(channelCode, owner, expire);
-            return new ServerInfo(ossUrl, channelCode, maxSize, uploadToken);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return null;
-    }
-}

+ 0 - 33
web/src/main/java/cn/reghao/bnt/web/console/rpc/RemoteService.java

@@ -1,33 +0,0 @@
-package cn.reghao.bnt.web.console.rpc;
-
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConsumerConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-
-/**
- * @author reghao
- * @date 2024-02-23 13:19:20
- */
-public class RemoteService<T> {
-    public T getService(String host, int port, Class<T> clazz) {
-        String serviceName = "remote-service";
-        String dubboUrl = String.format("dubbo://%s:%s/%s", host, port, clazz.getName());
-
-        // 当前应用配置
-        ApplicationConfig application = new ApplicationConfig();
-        application.setName(serviceName);
-
-        ConsumerConfig consumerConfig = new ConsumerConfig();
-        consumerConfig.setTimeout(60_000);
-
-        // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
-        // 引用远程服务
-        // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
-        ReferenceConfig<T> reference = new ReferenceConfig<>();
-        reference.setApplication(application);
-        reference.setInterface(clazz);
-        reference.setUrl(dubboUrl);
-        reference.setConsumer(consumerConfig);
-        return reference.get();
-    }
-}

+ 0 - 51
web/src/main/java/cn/reghao/bnt/web/console/rpc/RpcService.java

@@ -1,51 +0,0 @@
-package cn.reghao.bnt.web.console.rpc;
-
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import cn.reghao.oss.api.iface.StoreService;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ConsumerConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.springframework.stereotype.Service;
-
-/**
- * @author reghao
- * @date 2024-07-05 10:44:51
- */
-@Service
-public class RpcService {
-    public StoreService getStoreService(StoreNode storeNode) {
-        RemoteService<StoreService> remoteService = new RemoteService<>();
-        String host = storeNode.getNodeAddr();
-        int port = storeNode.getRpcPort();
-        return remoteService.getService(host, port, StoreService.class);
-    }
-
-    public StoreService getStoreService(String host, int port) {
-        RemoteService<StoreService> remoteService = new RemoteService<>();
-        return remoteService.getService(host, port, StoreService.class);
-    }
-
-    static class RemoteService<T> {
-        public T getService(String host, int port, Class<T> clazz) {
-            String serviceName = "remote-service";
-            String dubboUrl = String.format("dubbo://%s:%s/%s", host, port, clazz.getName());
-
-            // 当前应用配置
-            ApplicationConfig application = new ApplicationConfig();
-            application.setName(serviceName);
-
-            ConsumerConfig consumerConfig = new ConsumerConfig();
-            consumerConfig.setTimeout(60_000);
-
-            // 注意:ReferenceConfig为重对象,内部封装了与注册中心的连接,以及与服务提供方的连接
-            // 引用远程服务
-            // 此实例很重,封装了与注册中心的连接以及与提供者的连接,请自行缓存,否则可能造成内存和连接泄漏
-            ReferenceConfig<T> reference = new ReferenceConfig<>();
-            reference.setApplication(application);
-            reference.setInterface(clazz);
-            reference.setUrl(dubboUrl);
-            reference.setConsumer(consumerConfig);
-            return reference.get();
-        }
-    }
-}

+ 0 - 151
web/src/main/java/cn/reghao/bnt/web/console/rpc/StoreServiceWrapper.java

@@ -1,151 +0,0 @@
-package cn.reghao.bnt.web.console.rpc;
-
-import cn.reghao.bnt.web.console.db.repository.StoreNodeRepository;
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import cn.reghao.bnt.web.console.service.UserNodeService;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import cn.reghao.oss.sdk.model.dto.ObjectInfo;
-import cn.reghao.oss.api.dto.disk.DiskVolume;
-import cn.reghao.oss.sdk.model.dto.media.AudioInfo;
-import cn.reghao.oss.sdk.model.dto.media.ConvertedImageInfo;
-import cn.reghao.oss.sdk.model.dto.media.ImageInfo;
-import cn.reghao.oss.sdk.model.dto.media.VideoInfo;
-import cn.reghao.oss.api.iface.StoreService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 对 oss-store 进行操作
- * 第三方通过 oss-console 调用
- *
- * @author reghao
- * @date 2024-04-23 15:14:06
- */
-@Service
-public class StoreServiceWrapper {
-    private final RpcService rpcService;
-    private final UserNodeService userNodeService;
-    private final StoreNodeRepository storeNodeRepository;
-
-    public StoreServiceWrapper(RpcService rpcService, UserNodeService userNodeService,
-                               StoreNodeRepository storeNodeRepository) {
-        this.rpcService = rpcService;
-        this.userNodeService = userNodeService;
-        this.storeNodeRepository = storeNodeRepository;
-    }
-
-    private StoreService getStoreService(int channelCode, int owner) throws Exception {
-        StoreNode storeNode = userNodeService.getStoreNodeByChannel(channelCode, owner);
-        if (storeNode == null) {
-            String errMsg = String.format("channel_id %s not associate with any store_node", channelCode);
-            throw new Exception(errMsg);
-        }
-
-        return rpcService.getStoreService(storeNode);
-    }
-
-    public void createChannel(int userNodeId, String channelPrefix, int scope, int owner) throws Exception {
-        StoreNode storeNode = userNodeService.getStoreNode(userNodeId);
-        StoreService storeService = rpcService.getStoreService(storeNode);
-        storeService.createChannel(owner, channelPrefix, scope);
-    }
-
-    public Integer countChannelObjects(int channelCode, String channelPrefix, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        return storeService.countChannelObjects(channelPrefix, owner);
-    }
-
-    public List<DiskVolume> getDiskVolumes(int storeNodeId) {
-        StoreNode storeNode = storeNodeRepository.findById(storeNodeId);
-        StoreService storeService = rpcService.getStoreService(storeNode);
-        return storeService.getDiskVolumes();
-    }
-
-    public void setObjectScope(int channelCode, String objectId, int scope, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.setObjectScope(objectId, scope);
-    }
-
-    public void deleteByObjectId(int channelCode, String objectId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.deleteByObjectId(objectId);
-    }
-
-    public void deleteByObjectName(int channelCode, String objectName, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        storeService.deleteByObjectName(objectName, owner);
-    }
-
-    public void deleteByObjectUrl(String objectUrl, int owner) {
-        String domain = objectUrl.replace("//", "").split("/")[0];
-        String objectName = objectUrl.replace("//" + domain + "/", "");
-        StoreNode storeNode = userNodeService.getStoreNodeByDomain(domain);
-        StoreService storeService = rpcService.getStoreService(storeNode);
-        storeService.deleteByObjectName(objectName, owner);
-    }
-
-    public ObjectInfo getObjectInfo(int channelCode, String objectId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        ObjectInfo objectInfo = storeService.getObjectInfo(objectId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, objectInfo.getUrl());
-        objectInfo.setUrl(url);
-        return objectInfo;
-    }
-
-    public String getSignedUrl(int channelCode, String objectId, int owner) throws Exception {
-        String domain = userNodeService.getDomain(channelCode, owner);
-        StoreService storeService = getStoreService(channelCode, owner);
-        // url 有效期为 24h
-        int expire = 3600*24;
-        String signedUrl = storeService.getSignedUrl(domain, owner, objectId, expire);
-        return signedUrl;
-    }
-
-    public String getSignedUrlByUrl(int channelCode, String objectUrl, int owner) throws Exception {
-        String domain = userNodeService.getDomain(channelCode, owner);
-        StoreService storeService = getStoreService(channelCode, owner);
-        // url 有效期为 24h
-        int expire = 3600*24;
-        String signedUrl = storeService.getSignedUrl(objectUrl, owner, expire);
-        return signedUrl;
-    }
-
-    public VideoInfo getVideoInfo(int channelCode, String videoFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        VideoInfo videoInfo = storeService.getVideoInfo(videoFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, videoInfo.getUrl());
-        videoInfo.setUrl(url);
-        return videoInfo;
-    }
-
-    public ImageInfo getImageInfo(int channelCode, String imageFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        ImageInfo imageInfo = storeService.getImageInfo(imageFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, imageInfo.getUrl());
-        imageInfo.setUrl(url);
-        return imageInfo;
-    }
-
-    public ConvertedImageInfo getWebpInfo(int channelCode, String imageFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        ConvertedImageInfo convertedImageInfo = storeService.getWebpInfo(imageFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, convertedImageInfo.getUrl());
-        convertedImageInfo.setUrl(url);
-        return convertedImageInfo;
-    }
-
-    public AudioInfo getAudioInfo(int channelCode, String audioFileId, int owner) throws Exception {
-        StoreService storeService = getStoreService(channelCode, owner);
-        AudioInfo audioInfo = storeService.getAudioInfo(audioFileId);
-        String domain = userNodeService.getDomain(channelCode, owner);
-        String url = String.format("//%s/%s", domain, audioInfo.getUrl());
-        audioInfo.setUrl(url);
-        return audioInfo;
-    }
-}

+ 0 - 102
web/src/main/java/cn/reghao/bnt/web/console/service/OssFileService.java

@@ -1,102 +0,0 @@
-package cn.reghao.bnt.web.console.service;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import cn.reghao.bnt.web.console.model.vo.FileInfo;
-import cn.reghao.bnt.web.console.model.vo.UserNodeInfo;
-import cn.reghao.bnt.web.console.rpc.RpcService;
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.db.PageList;
-import cn.reghao.oss.sdk.model.constant.ObjectScope;
-import cn.reghao.oss.sdk.model.constant.ObjectType;
-import cn.reghao.oss.sdk.model.dto.ObjectInfo;
-import cn.reghao.oss.api.iface.StoreService;
-import org.apache.dubbo.rpc.RpcException;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-07-11 16:49:34
- */
-@Service
-public class OssFileService {
-    private final ByteConverter byteConverter = new ByteConverter();
-    private final UserNodeService userNodeService;
-    private final RpcService rpcService;
-
-    public OssFileService(UserNodeService userNodeService, RpcService rpcService) {
-        this.userNodeService = userNodeService;
-        this.rpcService = rpcService;
-    }
-
-    public Page<FileInfo> getFileList(String nodeDomain, String objectName, int pn) {
-        try {
-            StoreNode storeNode = userNodeService.getStoreNodeByDomain(nodeDomain);
-            if (storeNode == null) {
-                return Page.empty();
-            }
-
-            String host = storeNode.getNodeAddr();
-            int port = storeNode.getRpcPort();
-            StoreService storeService = rpcService.getStoreService(host, port);
-
-            int owner = UserContext.getUserId();
-            int pz = 10;
-            PageList<ObjectInfo> pageList = storeService.getByPrefix(owner, objectName, pn, pz);
-            List<FileInfo> list = pageList.getList().stream().map(this::getFileInfo).collect(Collectors.toList());
-            return new PageImpl<>(list, PageRequest.of(pn-1, pz), pageList.getTotalSize());
-        } catch (Exception e) {
-            if (e instanceof RpcException) {
-                //throw new Exception("RPC 调用失败");
-            }
-
-            e.printStackTrace();
-        }
-
-        return Page.empty();
-    }
-
-    private FileInfo getFileInfo(ObjectInfo objectInfo) {
-        String size = byteConverter.convert(ByteType.Bytes, objectInfo.getSize());
-        return new FileInfo(objectInfo, size);
-    }
-
-    public ObjectInfo getObjectInfo(int userNodeId, String objectId) throws Exception {
-        UserNodeInfo userNodeInfo = userNodeService.getUserNodeInfo(userNodeId);
-        String nodeDomain = userNodeInfo.getUserNodeDomain();
-        StoreNode storeNode = userNodeService.getStoreNodeByDomain(nodeDomain);
-        if (storeNode == null) {
-            return null;
-        }
-
-        String host = storeNode.getNodeAddr();
-        int port = storeNode.getRpcPort();
-        StoreService storeService = rpcService.getStoreService(host, port);
-        ObjectInfo objectInfo = storeService.getObjectInfo(objectId);
-        if (objectInfo != null) {
-            if (objectInfo.getFileType() == ObjectType.Dir.getCode()) {
-                return objectInfo;
-            }
-
-            int scope = objectInfo.getScope();
-            if (scope == ObjectScope.PRIVATE.getCode()) {
-                int owner = UserContext.getUserId();
-                int expire = 3600;
-                String signedVideoUrl = storeService.getSignedUrl(nodeDomain, owner, objectId, expire);
-                objectInfo.setUrl(signedVideoUrl);
-            } else {
-                String url = String.format("//%s/%s", nodeDomain, objectInfo.getUrl());
-                objectInfo.setUrl(url);
-            }
-        }
-
-        return objectInfo;
-    }
-}

+ 0 - 155
web/src/main/java/cn/reghao/bnt/web/console/service/StoreNodeService.java

@@ -1,155 +0,0 @@
-package cn.reghao.bnt.web.console.service;
-
-import cn.reghao.bnt.web.console.db.repository.StoreNodeRepository;
-import cn.reghao.bnt.web.console.db.repository.UserNodeRepository;
-import cn.reghao.bnt.web.console.model.po.StoreVolume;
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import cn.reghao.bnt.web.console.model.vo.StoreDiskInfo;
-import cn.reghao.bnt.web.console.rpc.StoreServiceWrapper;
-import cn.reghao.bnt.web.util.SelectOption;
-import cn.reghao.bnt.web.console.model.vo.StoreNodeInfo;
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.math.Calculator;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.oss.api.dto.StoreNodeDto;
-import cn.reghao.oss.api.dto.disk.DiskVolume;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageImpl;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-23 13:01:38
- */
-@Service
-public class StoreNodeService {
-    private final ByteConverter byteConverter;
-    private final StoreNodeRepository storeNodeRepository;
-    private final UserNodeRepository userNodeRepository;
-    private final StoreServiceWrapper storeServiceWrapper;
-
-    public StoreNodeService(ByteConverter byteConverter, StoreNodeRepository storeNodeRepository,
-                            UserNodeRepository userNodeRepository, StoreServiceWrapper storeServiceWrapper) {
-        this.byteConverter = byteConverter;
-        this.storeNodeRepository = storeNodeRepository;
-        this.userNodeRepository = userNodeRepository;
-        this.storeServiceWrapper = storeServiceWrapper;
-    }
-
-    public void addOrUpdate(StoreNodeDto storeNodeDto) {
-        String nodeAddr = storeNodeDto.getNodeAddr();
-        StoreNode storeNode = storeNodeRepository.findByNodeAddr(nodeAddr);
-        if (storeNode == null) {
-            storeNode = new StoreNode(storeNodeDto);
-            storeNodeRepository.save(storeNode);
-        } else {
-            List<StoreVolume> storeVolumes = storeNodeDto.getDiskVolumes().stream()
-                    .map(StoreVolume::new)
-                    .collect(Collectors.toList());
-            storeNode.setStoreVolumes(storeVolumes);
-            storeNodeRepository.save(storeNode);
-        }
-    }
-
-    public Result updateStatus(int storeNodeId) {
-        StoreNode storeNode = storeNodeRepository.findById(storeNodeId);
-        if (storeNode != null) {
-            boolean enabled = storeNode.getEnabled();
-            storeNode.setEnabled(!enabled);
-            storeNodeRepository.save(storeNode);
-            return Result.success();
-        }
-
-        return Result.fail("存储节点不存在");
-    }
-
-    public Result delete(int storeNodeId) {
-        StoreNode storeNode = storeNodeRepository.findById(storeNodeId);
-        if (storeNode == null) {
-            return Result.fail("node not exist");
-        }
-
-        int total = userNodeRepository.countByStoreNodeId(storeNodeId);
-        if (total > 0) {
-            return Result.fail("someone uses the node");
-        }
-
-        storeNodeRepository.delete(storeNode);
-        return Result.success();
-    }
-
-    public Page<StoreNodeInfo> getByPage(PageRequest pageRequest) {
-        Page<StoreNode> page = storeNodeRepository.findAll(pageRequest);
-        List<StoreNodeInfo> list =  page.stream().map(storeNode -> {
-            long total = 0L;
-            long avail = 0L;
-            for (StoreVolume storeVolume : storeNode.getStoreVolumes()) {
-                total += storeVolume.getTotalSpace();
-                avail += storeVolume.getAvailSpace();
-            }
-            long used = total - avail;
-
-            String totalStr = byteConverter.convert(ByteType.Bytes, total);
-            String usedStr = byteConverter.convert(ByteType.Bytes, used);
-            double percent = Calculator.getPercentage(total, avail);
-            return new StoreNodeInfo(storeNode, totalStr, usedStr, percent);
-        }).collect(Collectors.toList());
-
-        return new PageImpl<>(list, pageRequest, page.getTotalElements());
-    }
-
-    public StoreNode getByStoreNodeId(int id) {
-        return storeNodeRepository.findById(id);
-    }
-
-    public List<SelectOption> getNodeKeyValues() {
-        return storeNodeRepository.findAll().stream()
-                .map(storeNode -> {
-                    int storeNodeId = storeNode.getId();
-                    String nodeAddr = storeNode.getNodeAddr();
-                    return new SelectOption(storeNodeId+"", nodeAddr);
-                }).collect(Collectors.toList());
-    }
-
-    public List<StoreDiskInfo> getStoreDetail(int storeNodeId) {
-        StoreNode storeNode = storeNodeRepository.findById(storeNodeId);
-        if (storeNode == null) {
-            return null;
-        }
-
-        List<DiskVolume> list = storeServiceWrapper.getDiskVolumes(storeNodeId);
-        List<StoreVolume> storeVolumes = list.stream()
-                .map(StoreVolume::new)
-                .collect(Collectors.toList());
-        storeNode.setStoreVolumes(storeVolumes);
-        storeNodeRepository.save(storeNode);
-
-        return list.stream()
-                .map(diskVolume -> {
-                    String blockId = diskVolume.getBlockId();
-                    String fsType = diskVolume.getFsType();
-                    String volume = diskVolume.getVolume();
-                    String storeDir = diskVolume.getStoreDir();
-
-                    long total = diskVolume.getTotalSpace();
-                    long avail = diskVolume.getAvailSpace();
-                    long used = total - avail;
-                    double percent = Calculator.getPercentage(total, avail);
-                    String totalStr = byteConverter.convert(ByteType.Bytes, total);
-                    String usedStr = byteConverter.convert(ByteType.Bytes, used);
-
-                    long totalInode = diskVolume.getTotalInode();
-                    long availInode = diskVolume.getAvailInode();
-                    long usedInode = totalInode - availInode;
-                    double percentInode = Calculator.getPercentage(totalInode, availInode);
-
-                    return new StoreDiskInfo(blockId, fsType, volume, storeDir,
-                            totalStr, usedStr, percent, totalInode+"", usedInode+"", percentInode);
-                }).collect(Collectors.toList());
-    }
-}

+ 0 - 155
web/src/main/java/cn/reghao/bnt/web/console/service/UploadChannelService.java

@@ -1,155 +0,0 @@
-package cn.reghao.bnt.web.console.service;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.db.repository.UploadChannelRepository;
-import cn.reghao.bnt.web.console.model.po.UploadChannel;
-import cn.reghao.bnt.web.console.model.po.UserNode;
-import cn.reghao.bnt.web.console.model.dto.UploadChannelDto;
-import cn.reghao.bnt.web.console.model.vo.UploadChannelInfo;
-import cn.reghao.bnt.web.console.rpc.StoreServiceWrapper;
-import cn.reghao.jutil.jdk.converter.ByteConverter;
-import cn.reghao.jutil.jdk.converter.ByteType;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.result.ResultStatus;
-import cn.reghao.oss.sdk.model.constant.ObjectScope;
-import cn.reghao.oss.sdk.model.constant.ObjectType;
-import cn.reghao.oss.api.dto.ObjectChannel;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-23 15:14:53
- */
-@Service
-public class UploadChannelService {
-    private final ByteConverter byteConverter;
-    private final UploadChannelRepository uploadChannelRepository;
-    private final UserNodeService userNodeService;
-    private final StoreServiceWrapper storeServiceWrapper;
-
-    public UploadChannelService(ByteConverter byteConverter, UploadChannelRepository uploadChannelRepository,
-                                UserNodeService userNodeService, StoreServiceWrapper storeServiceWrapper) {
-        this.byteConverter = byteConverter;
-        this.uploadChannelRepository = uploadChannelRepository;
-        this.userNodeService = userNodeService;
-        this.storeServiceWrapper = storeServiceWrapper;
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    public synchronized Result addObjectChannel(UploadChannelDto uploadChannelDto) throws Exception {
-        int createBy = UserContext.getUserId();
-        int userNodeId = uploadChannelDto.getUserNodeId();
-        UserNode userNode = userNodeService.getUserNode(userNodeId);
-        if (userNode == null) {
-            return Result.fail(String.format("store_node with id %s not exist", userNodeId));
-        }
-
-        String channelPrefix = uploadChannelDto.getChannelPrefix();
-        UploadChannel uploadChannel = uploadChannelRepository.findByCreateByAndPrefix(createBy, channelPrefix);
-        if (uploadChannel != null) {
-            return Result.fail(String.format("channel_prefix %s exist", channelPrefix));
-        }
-
-        int channelCode = getNextChannelCode(createBy);
-        uploadChannel = new UploadChannel(channelCode, uploadChannelDto, createBy);
-        uploadChannelRepository.save(uploadChannel);
-
-        int scope = uploadChannel.getScope();
-        int loginUser = UserContext.getUserId();
-        storeServiceWrapper.createChannel(userNodeId, channelPrefix, scope, loginUser);
-        return Result.success();
-    }
-
-    private int getNextChannelCode(int createBy) {
-        int channelCode = 101;
-        int total = uploadChannelRepository.countByCreateBy(createBy);
-        return channelCode + total;
-    }
-
-    public void updateChannelStatus(int id) {
-        UploadChannel uploadChannel = uploadChannelRepository.findById(id);
-        if (uploadChannel != null) {
-            boolean enabled = uploadChannel.getEnabled();
-            uploadChannel.setEnabled(!enabled);
-            uploadChannelRepository.save(uploadChannel);
-        }
-    }
-
-    public Result deleteChannel(int id) throws Exception {
-        UploadChannel uploadChannel = uploadChannelRepository.findById(id);
-        if (uploadChannel == null) {
-            String errMsg = String.format("通道不存在");
-            return Result.result(ResultStatus.FAIL, errMsg);
-        }
-
-        int channelCode = uploadChannel.getId();
-        String prefix = uploadChannel.getPrefix();
-        int loginUser = UserContext.getUserId();
-        Integer total = storeServiceWrapper.countChannelObjects(channelCode, prefix, loginUser);
-        if (total != null && total == 0) {
-            int owner = UserContext.getUserId();
-            storeServiceWrapper.deleteByObjectName(channelCode, prefix, owner);
-            uploadChannelRepository.deleteById(id);
-            return Result.result(ResultStatus.SUCCESS);
-        }
-
-        String errMsg = String.format("%s 通道中尚有对象存在", prefix);
-        return Result.result(ResultStatus.FAIL, errMsg);
-    }
-
-    public List<UploadChannelInfo> getChannelsByUserNode(int userNodeId) {
-        int createBy = UserContext.getUserId();
-        List<UploadChannel> page = uploadChannelRepository.findByCreateByAndUserNodeId(createBy, userNodeId);
-        List<UploadChannelInfo> list = page.stream().map(uploadChannel -> {
-            long maxSize = uploadChannel.getMaxSize();
-            String maxSizeStr = byteConverter.convert(ByteType.Bytes, maxSize);
-            int id = uploadChannel.getId();
-            int channelCode = uploadChannel.getChannelCode();
-            String prefix = uploadChannel.getPrefix();
-            String fileTypeStr = ObjectType.getDescByCode(uploadChannel.getFileType());
-            boolean seturl = uploadChannel.getSeturl();
-            String scopeStr = ObjectScope.getByCode(uploadChannel.getScope()).name();
-            boolean enabled = uploadChannel.getEnabled();
-            return new UploadChannelInfo(id, channelCode, prefix, maxSizeStr, fileTypeStr, seturl, scopeStr, enabled);
-        }).collect(Collectors.toList());
-
-        return list;
-    }
-
-    public List<UploadChannel> getUploadChannelsByCreateBy(int createBy) {
-        return uploadChannelRepository.findByCreateBy(createBy);
-    }
-
-    public UploadChannel getByChannelCodeAndCreateBy(int channelCode, int createBy) {
-        return uploadChannelRepository.findByCreateByAndChannelCode(createBy, channelCode);
-    }
-
-    public ObjectChannel getObjectChannelByChannelCode(int channelCode, int createBy) {
-        UploadChannel uploadChannel = uploadChannelRepository.findByCreateByAndChannelCode(createBy, channelCode);
-        return getObjectChannel(uploadChannel);
-    }
-
-    private ObjectChannel getObjectChannel(UploadChannel uploadChannel) {
-        int id = uploadChannel.getId();
-        int channelCode = uploadChannel.getChannelCode();
-        String channelPrefix = uploadChannel.getPrefix();
-        long maxSize = uploadChannel.getMaxSize();
-        int fileType = uploadChannel.getFileType();
-        boolean seturl = uploadChannel.getSeturl();
-        int scope = uploadChannel.getScope();
-        int createBy = uploadChannel.getCreateBy();
-
-        UserNode userNode = userNodeService.getUserNode(uploadChannel.getUserNodeId());
-        String domain = userNode.getDomain();
-        return new ObjectChannel(id, channelCode, channelPrefix, maxSize, fileType, seturl, scope, domain, createBy);
-    }
-
-    public UploadChannel getUploadChannel(int channelCode) {
-        int loginUser = UserContext.getUserId();
-        return uploadChannelRepository.findByCreateByAndChannelCode(loginUser, channelCode);
-    }
-}

+ 0 - 99
web/src/main/java/cn/reghao/bnt/web/console/service/UserKeyService.java

@@ -1,99 +0,0 @@
-package cn.reghao.bnt.web.console.service;
-
-import cn.reghao.bnt.web.admin.model.po.User;
-import cn.reghao.bnt.web.admin.service.AccountService;
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.db.repository.UserKeyRepository;
-import cn.reghao.bnt.web.console.model.dto.KeyAuthDto;
-import cn.reghao.bnt.web.console.model.po.UserKey;
-import cn.reghao.bnt.web.console.model.vo.UserKeyVo;
-import cn.reghao.jutil.jdk.result.Result;
-import cn.reghao.jutil.jdk.security.RandomString;
-import cn.reghao.oss.api.constant.ChannelAction;
-import cn.reghao.oss.api.dto.OssPayload;
-import cn.reghao.oss.api.util.JwtUtil;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author reghao
- * @date 2024-02-27 10:25:25
- */
-@Service
-public class UserKeyService {
-    private final String secretKey = "ossconsole.reghao.cn";
-    private final UserKeyRepository userKeyRepository;
-    private final AccountService accountService;
-
-    public UserKeyService(UserKeyRepository userKeyRepository, AccountService accountService) {
-        this.userKeyRepository = userKeyRepository;
-        this.accountService = accountService;
-    }
-
-    public Result auth(KeyAuthDto keyAuthDto) {
-        String accessKeyId = keyAuthDto.getAccessKeyId();
-        UserKey userKey = userKeyRepository.findByAccessKeyId(accessKeyId);
-        if (userKey == null) {
-            return Result.fail("key not exist");
-        }
-
-        String accessKeySecret = keyAuthDto.getAccessKeySecret();
-        if (userKey.getAccessKeySecret().equals(accessKeySecret)) {
-            int loginUser = userKey.getCreateBy();
-            String token = getTokenByUserId(loginUser);
-            return Result.success(token);
-        }
-
-        return Result.fail("secret not matched");
-    }
-
-    private String getTokenByUserId(int loginUser) {
-        long timestamp = System.currentTimeMillis() + 3600*24*365*1000L;
-        String action = ChannelAction.all.getName();
-        int channelCode = 1;
-        OssPayload ossPayload = new OssPayload(action, channelCode, loginUser);
-        return JwtUtil.createToken(ossPayload, timestamp, secretKey);
-    }
-
-    public User getUserFromToken(String token) {
-        OssPayload ossPayload = JwtUtil.getOssPayload(token, secretKey);
-        int userId = ossPayload.getUserId();
-        return accountService.getById(userId);
-    }
-
-    public void regenerate() {
-        int loginUser = UserContext.getUserId();
-        UserKey userKey = userKeyRepository.findByCreateBy(loginUser);
-        if (userKey == null) {
-            return;
-        }
-
-        String accessKeyId = RandomString.getString(8);
-        String accessKeySecret = RandomString.getString(18);
-        userKey.setAccessKeyId(accessKeyId);
-        userKey.setAccessKeySecret(accessKeySecret);
-        userKeyRepository.save(userKey);
-    }
-
-    public List<UserKeyVo> getUserKeys() {
-        int loginUser = UserContext.getUserId();
-        UserKey userKey = userKeyRepository.findByCreateBy(loginUser);
-        if (userKey == null) {
-            userKey = create();
-        }
-
-        String accessKeyId = userKey.getAccessKeyId();
-        String accessKeySecret = userKey.getAccessKeySecret();
-        return List.of(new UserKeyVo(accessKeyId, accessKeySecret));
-    }
-
-    private UserKey create() {
-        int loginUser = UserContext.getUserId();
-        String accessKeyId = RandomString.getString(8);
-        String accessKeySecret = RandomString.getString(18);
-        UserKey userKey = new UserKey(accessKeyId, accessKeySecret, loginUser);
-        userKeyRepository.save(userKey);
-        return userKey;
-    }
-}

+ 0 - 127
web/src/main/java/cn/reghao/bnt/web/console/service/UserNodeService.java

@@ -1,127 +0,0 @@
-package cn.reghao.bnt.web.console.service;
-
-import cn.reghao.bnt.web.admin.service.UserContext;
-import cn.reghao.bnt.web.console.db.repository.StoreNodeRepository;
-import cn.reghao.bnt.web.console.db.repository.UploadChannelRepository;
-import cn.reghao.bnt.web.console.db.repository.UserNodeRepository;
-import cn.reghao.bnt.web.console.model.dto.UserNodeDto;
-import cn.reghao.bnt.web.console.model.po.StoreNode;
-import cn.reghao.bnt.web.console.model.po.UploadChannel;
-import cn.reghao.bnt.web.console.model.po.UserNode;
-import cn.reghao.bnt.web.console.model.vo.UserNodeInfo;
-import cn.reghao.jutil.jdk.result.Result;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2024-02-27 09:49:56
- */
-@Service
-public class UserNodeService {
-    private final UserNodeRepository userNodeRepository;
-    private final StoreNodeRepository storeNodeRepository;
-    private final UploadChannelRepository uploadChannelRepository;
-
-    public UserNodeService(UserNodeRepository userNodeRepository, StoreNodeRepository storeNodeRepository,
-                           UploadChannelRepository uploadChannelRepository) {
-        this.userNodeRepository = userNodeRepository;
-        this.storeNodeRepository = storeNodeRepository;
-        this.uploadChannelRepository = uploadChannelRepository;
-    }
-
-    public Result add(UserNodeDto userNodeDto) {
-        int storeNodeId = userNodeDto.getStoreNodeId();
-        int userId = UserContext.getUserId();
-        UserNode userNode = userNodeRepository.findByCreateByAndStoreNodeId(userId, storeNodeId);
-        if (userNode != null) {
-            return Result.fail("UserNode exist");
-        }
-
-        StoreNode storeNode = storeNodeRepository.findById(storeNodeId);
-        if (storeNode == null) {
-            return Result.success("StoreNode not exist");
-        }
-
-        userNode = new UserNode(userNodeDto, userId);
-        userNodeRepository.save(userNode);
-        return Result.success("node added");
-    }
-
-    public Result delete(int id) {
-        UserNode userNode = userNodeRepository.findById(id);
-        if (userNode != null) {
-            int userNodeId = userNode.getId();
-            int userId = UserContext.getUserId();
-            List<UploadChannel> uploadChannels = uploadChannelRepository.findByCreateByAndUserNodeId(userId, userNodeId);
-            if (!uploadChannels.isEmpty()) {
-                return Result.fail("UploadChannel exists");
-            }
-
-            userNodeRepository.delete(userNode);
-            return Result.success();
-        }
-
-        return Result.fail("UserNode not exists");
-    }
-
-    public List<UserNodeInfo> getUserNodes(int loginUser) {
-        List<UserNode> list = userNodeRepository.findByCreateBy(loginUser);
-        return list.stream()
-                .map(this::getUserNodeInfo)
-                .collect(Collectors.toList());
-    }
-
-    private UserNodeInfo getUserNodeInfo(UserNode userNode) {
-        int userNodeId = userNode.getId();
-        int storeNodeId = userNode.getStoreNodeId();
-        StoreNode storeNode = storeNodeRepository.findById(storeNodeId);
-        String nodeAddr = storeNode.getNodeAddr();
-        String domain = userNode.getDomain();
-        return new UserNodeInfo(storeNodeId, nodeAddr, userNodeId, domain);
-    }
-
-    public UserNode getUserNode(int userNodeId) {
-        return userNodeRepository.findById(userNodeId);
-    }
-
-    public UserNodeInfo getUserNodeInfo(int userNodeId) {
-        UserNode userNode = userNodeRepository.findById(userNodeId);
-        return getUserNodeInfo(userNode);
-    }
-
-    public UserNode getUserNodeByDomain(String domain) {
-        return userNodeRepository.findByDomain(domain);
-    }
-
-    public String getDomain(int channelCode, int loginUser) {
-        UploadChannel uploadChannel = uploadChannelRepository.findByCreateByAndChannelCode(loginUser, channelCode);
-        int userNodeId = uploadChannel.getUserNodeId();
-        UserNode userNode = userNodeRepository.findById(userNodeId);
-        return userNode.getDomain();
-    }
-
-    public StoreNode getStoreNode(int userNodeId) {
-        UserNode userNode = userNodeRepository.findById(userNodeId);
-        return storeNodeRepository.findById(userNode.getStoreNodeId()).orElse(null);
-    }
-
-    public StoreNode getStoreNodeByChannel(int channelCode, int owner) throws Exception {
-        UploadChannel uploadChannel = uploadChannelRepository.findByCreateByAndChannelCode(owner, channelCode);
-        if (uploadChannel == null) {
-            String errMsg = String.format("channel_id %s not exist", channelCode);
-            throw new Exception(errMsg);
-        }
-
-        UserNode userNode = userNodeRepository.findById(uploadChannel.getUserNodeId()).orElse(null);
-        return storeNodeRepository.findById(userNode.getStoreNodeId()).orElse(null);
-    }
-
-    public StoreNode getStoreNodeByDomain(String domain) {
-        UserNode userNode = userNodeRepository.findByDomain(domain);
-        int storeNodeId = userNode.getStoreNodeId();
-        return storeNodeRepository.findById(storeNodeId);
-    }
-}

+ 0 - 13
web/src/test/java/JpaTest.java

@@ -3,8 +3,6 @@ import cn.reghao.bnt.web.admin.model.po.User;
 import cn.reghao.bnt.web.admin.service.UserContext;
 import cn.reghao.bnt.web.blog.hibernate.HibernateLucene;
 import cn.reghao.bnt.web.blog.model.po.Article;
-import cn.reghao.bnt.web.console.rpc.StoreServiceWrapper;
-import cn.reghao.oss.sdk.model.dto.media.VideoInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.hibernate.search.mapper.orm.Search;
 import org.junit.jupiter.api.Test;
@@ -52,15 +50,4 @@ public class JpaTest {
         Integer userId = (Integer) list.get(0);
         System.out.println();
     }
-
-    @Autowired
-    StoreServiceWrapper storeServiceWrapper;
-    @Test
-    void storeTest() throws Exception {
-        int channelCode = 105;
-        String objectId = "f62532f3b1f04cddb8599fcee67b862e";
-        int loginUser = 2;
-        VideoInfo videoInfo = storeServiceWrapper.getVideoInfo(channelCode, objectId, loginUser);
-        System.out.println();
-    }
 }