diff --git a/sql/mysql/order.sql b/sql/mysql/order.sql index f41127e..5685bc1 100644 --- a/sql/mysql/order.sql +++ b/sql/mysql/order.sql @@ -50,13 +50,13 @@ CREATE TABLE `tz_trade_order` `after_sale_status` tinyint DEFAULT NULL COMMENT '售后状态 (枚举 TradeOrderItemAfterSaleStatusEnum)', `finance_id` bigint DEFAULT NULL COMMENT '财务单编号', `finance_status` tinyint DEFAULT NULL COMMENT '财务状态 (枚举 TradeOrderItemFinanceEnum)', - `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', `version` int NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_time` datetime DEFAULT NULL COMMENT '最后更新时间', `creator` varchar(64) DEFAULT NULL COMMENT '创建者', `updater` varchar(64) DEFAULT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_num` (`order_num`), KEY `idx_user_id` (`user_id`), @@ -71,43 +71,56 @@ CREATE TABLE `tz_trade_order` -- 交易订单项表 (trade_order_item) CREATE TABLE `tz_trade_order_item` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号', - `user_id` bigint(20) NOT NULL COMMENT '用户编号', - `order_id` bigint(20) NOT NULL COMMENT '订单编号', - `cart_id` bigint(20) DEFAULT NULL COMMENT '购物车项编号', - `spu_id` bigint(20) NOT NULL COMMENT '商品 SPU 编号', - `spu_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称', - `spu_type` tinyint(1) NOT NULL COMMENT '商品类型(1商品 2服务)', - `sku_id` bigint(20) NOT NULL COMMENT '商品 SKU 编号', - `sku_name` bigint(20) NOT NULL COMMENT '商品 SKU 名称', - `pic_url` varchar(512) NOT NULL COMMENT '商品图片', - `count` int(11) NOT NULL COMMENT '购买数量', - `unit` varchar(16) NOT NULL COMMENT '商品单位', - `expense_price` int(11) NOT NULL COMMENT '商品成本(单),单位:分', - `price` int(11) NOT NULL COMMENT '商品原价(单),单位:分', - `discount_price` int(11) NOT NULL COMMENT '优惠金额(总),单位:分', - `delivery_price` int(11) NOT NULL COMMENT '运费金额(总),单位:分', - `adjust_price` int(11) NOT NULL COMMENT '订单调价(总),单位:分', - `pay_price` int(11) NOT NULL COMMENT '应付金额(总),单位:分', - `live_price` int(11) NOT NULL COMMENT '实收金额(总),单位:分', - - `serve_address` datetime NOT NULL COMMENT '服务地址', - `properties` json DEFAULT NULL COMMENT '属性数组', - `serve_info` json DEFAULT NULL COMMENT '服务信息', - `serve_ext_info` json DEFAULT NULL COMMENT '扩展服务信息,存储额外的服务相关数据', - `price_ext_info` json DEFAULT NULL COMMENT '附加费信息', - `version` int(11) DEFAULT '0' COMMENT '版本号(乐观锁)', - `create_time` datetime NOT NULL COMMENT '创建时间', - `update_time` datetime NOT NULL COMMENT '最后更新时间', - `creator` varchar(64) NOT NULL COMMENT '创建者', - `updater` varchar(64) NOT NULL COMMENT '更新者', - `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + `user_id` bigint NOT NULL COMMENT '用户编号', + `order_id` bigint NOT NULL COMMENT '订单编号', + `cart_id` bigint DEFAULT NULL COMMENT '购物车项编号', + `spu_id` bigint NOT NULL COMMENT '商品 SPU 编号', + `spu_name` varchar(256) NOT NULL COMMENT '商品 SPU 名称', + `spu_type` tinyint(1) NOT NULL COMMENT '商品类型(1商品 2服务)', + `sku_id` bigint NOT NULL COMMENT '商品 SKU 编号', + `sku_name` varchar(255) NOT NULL COMMENT '商品 SKU 名称', + `shop_id` bigint DEFAULT NULL COMMENT '店铺id', + `shop_name` varchar(64) DEFAULT NULL COMMENT '店铺名称', + `shop_logo` varchar(255) DEFAULT NULL COMMENT '店铺logo', + `order_category_name` varchar(64) NOT NULL COMMENT '订单类目名称', + `order_category_id` bigint NOT NULL COMMENT '订单类目id', + `pic_url` varchar(512) NOT NULL COMMENT '商品图片', + `count` int NOT NULL COMMENT '购买数量', + `unit` varchar(16) DEFAULT NULL COMMENT '商品单位', + `expense_price` int DEFAULT NULL COMMENT '商品成本(单),单位:分', + `price` int DEFAULT NULL COMMENT '商品原价(单),单位:分', + `discount_price` int DEFAULT NULL COMMENT '优惠金额(总),单位:分', + `delivery_price` int DEFAULT NULL COMMENT '运费金额(总),单位:分', + `adjust_price` int DEFAULT NULL COMMENT '订单调价(总),单位:分', + `pay_price` int DEFAULT NULL COMMENT '应付金额(总),单位:分', + `live_price` int DEFAULT NULL COMMENT '实收金额(总),单位:分', + `refund_status` tinyint DEFAULT NULL COMMENT '退款状态 (枚举 TradeOrderRefundStatusEnum)', + `refund_price` int DEFAULT NULL COMMENT '退款金额,单位:分', + `refund_time` datetime DEFAULT NULL COMMENT '退款时间', + `sub_type` tinyint(1) DEFAULT '1' COMMENT '预约类型(1预约 2 加急)', + `sub_time` datetime DEFAULT NULL COMMENT '预约时间', + `serve_address` varchar(255) DEFAULT NULL COMMENT '服务地址', + `serve_content` varchar(255) DEFAULT NULL COMMENT '服务内容', + `properties` json DEFAULT NULL COMMENT '属性数组', + `serve_info` json DEFAULT NULL COMMENT '服务信息', + `serve_ext_info` json DEFAULT NULL COMMENT '扩展服务信息,存储额外的服务相关数据', + `price_ext_info` json DEFAULT NULL COMMENT '附加费信息', + `version` int NOT NULL DEFAULT '0' COMMENT '版本号(乐观锁)', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `update_time` datetime DEFAULT NULL COMMENT '最后更新时间', + `creator` varchar(64) DEFAULT NULL COMMENT '创建者', + `updater` varchar(64) DEFAULT NULL COMMENT '更新者', + `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_sku_id` (`sku_id`), KEY `idx_user_id` (`user_id`) ) ENGINE = InnoDB - DEFAULT CHARSET = utf8mb4 COMMENT ='交易订单项表'; + AUTO_INCREMENT = 2 + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_0900_ai_ci COMMENT ='交易订单项表'; -- 订单日志表 (trade_order_log) @@ -126,6 +139,7 @@ CREATE TABLE `tz_trade_order_log` `creator` varchar(64) NOT NULL COMMENT '创建者', `updater` varchar(64) NOT NULL COMMENT '更新者', `deleted` tinyint(1) NOT NULL DEFAULT 0 COMMENT '是否删除', + `tenant_id` bigint NOT NULL DEFAULT '1' COMMENT '租户编号', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`), KEY `idx_user_id` (`user_id`) diff --git a/tashow-dependencies/pom.xml b/tashow-dependencies/pom.xml index 62a6589..8af3a05 100644 --- a/tashow-dependencies/pom.xml +++ b/tashow-dependencies/pom.xml @@ -163,6 +163,16 @@ tashow-trade-api ${revision} + + com.tashow.cloud + tashow-module-file + ${revision} + + + com.tashow.cloud + tashow-file-api + ${revision} + com.tashow.cloud tashow-module-trade diff --git a/tashow-feign/pom.xml b/tashow-feign/pom.xml index 618f7d4..e314545 100644 --- a/tashow-feign/pom.xml +++ b/tashow-feign/pom.xml @@ -17,6 +17,7 @@ tashow-trade-api tashow-pay-api tashow-user-api + tashow-file-api diff --git a/tashow-feign/tashow-file-api/pom.xml b/tashow-feign/tashow-file-api/pom.xml new file mode 100644 index 0000000..828192b --- /dev/null +++ b/tashow-feign/tashow-file-api/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + com.tashow.cloud + tashow-feign + ${revision} + + tashow-file-api + jar + + ${project.artifactId} + + infra 模块 API,暴露给其它模块调用 + + + + + com.tashow.cloud + tashow-common + + + + + org.springframework.boot + spring-boot-starter-validation + true + + + + + org.springframework.cloud + spring-cloud-starter-openfeign + true + + + + diff --git a/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/config/ConfigApi.java b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/config/ConfigApi.java new file mode 100644 index 0000000..ba8c51e --- /dev/null +++ b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/config/ConfigApi.java @@ -0,0 +1,18 @@ +package com.tashow.cloud.fileapi.api.config; + +import com.tashow.cloud.common.pojo.CommonResult; +import com.tashow.cloud.fileapi.enums.ApiConstants; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = +/** RPC 服务 - 参数配置 */ +public interface ConfigApi { + + String PREFIX = ApiConstants.PREFIX + "/config"; + + /** 根据参数键查询参数值 */ + @GetMapping(PREFIX + "/get-value-by-key") + CommonResult getConfigValueByKey(@RequestParam("key") String key); +} diff --git a/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/FileApi.java b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/FileApi.java new file mode 100644 index 0000000..13cdef7 --- /dev/null +++ b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/FileApi.java @@ -0,0 +1,62 @@ +package com.tashow.cloud.fileapi.api.file; + +import com.tashow.cloud.common.pojo.CommonResult; +import com.tashow.cloud.fileapi.api.file.dto.FileCreateReqDTO; +import com.tashow.cloud.fileapi.enums.ApiConstants; +import jakarta.validation.Valid; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * RPC 服务 - 文件 + */ +@FeignClient(name = ApiConstants.NAME) // TODO 芋艿:fallbackFactory = +public interface FileApi { + + String PREFIX = ApiConstants.PREFIX + "/file"; + + /** + * 保存文件,并返回文件的访问路径 + * + * @param content 文件内容 + * @return 文件路径 + */ + default String createFile(byte[] content) { + return createFile(null, null, content); + } + + /** + * 保存文件,并返回文件的访问路径 + * + * @param path 文件路径 + * @param content 文件内容 + * @return 文件路径 + */ + default String createFile(String path, byte[] content) { + return createFile(null, path, content); + } + + /** + * 保存文件,并返回文件的访问路径 + * + * @param name 原文件名称 + * @param path 文件路径 + * @param content 文件内容 + * @return 文件路径 + */ + default String createFile( + @RequestParam("name") String name, + @RequestParam("path") String path, + @RequestParam("content") byte[] content) { + return createFile(new FileCreateReqDTO().setName(name).setPath(path).setContent(content)) + .getCheckedData(); + } + + /** + * 保存文件,并返回文件的访问路径 + */ + @PostMapping(PREFIX + "/create") + CommonResult createFile(@Valid @RequestBody FileCreateReqDTO createReqDTO); +} diff --git a/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/dto/FileCreateReqDTO.java b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/dto/FileCreateReqDTO.java new file mode 100644 index 0000000..0146bbb --- /dev/null +++ b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/dto/FileCreateReqDTO.java @@ -0,0 +1,21 @@ +package com.tashow.cloud.fileapi.api.file.dto; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +/** RPC 服务 - 文件创建 Request DTO */ +@Data +public class FileCreateReqDTO { + + /** 原文件名称 */ + private String name; + + /** 文件路径 */ + private String path; + + /** + * 文件内容 + */ + @NotEmpty(message = "文件内容不能为空") + private byte[] content; +} diff --git a/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/package-info.java b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/package-info.java new file mode 100644 index 0000000..5039271 --- /dev/null +++ b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/package-info.java @@ -0,0 +1,4 @@ +/** + * infra API 包,定义暴露给其它模块的 API + */ +package com.tashow.cloud.fileapi.api; diff --git a/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ApiConstants.java b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ApiConstants.java new file mode 100644 index 0000000..5012e87 --- /dev/null +++ b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ApiConstants.java @@ -0,0 +1,24 @@ +package com.tashow.cloud.fileapi.enums; + + +import com.tashow.cloud.common.enums.RpcConstants; + +/** + * API 相关的枚举 + * + * @author 芋道源码 + */ +public class ApiConstants { + + /** + * 服务名 + * + * 注意,需要保证和 spring.application.name 保持一致 + */ + public static final String NAME = "file-server"; + + public static final String PREFIX = RpcConstants.RPC_API_PREFIX + "/file"; + + public static final String VERSION = "1.0.0"; + +} diff --git a/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ErrorCodeConstants.java b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ErrorCodeConstants.java new file mode 100644 index 0000000..70f9061 --- /dev/null +++ b/tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ErrorCodeConstants.java @@ -0,0 +1,72 @@ +package com.tashow.cloud.fileapi.enums; + + +import com.tashow.cloud.common.exception.ErrorCode; + +/** + * Infra 错误码枚举类 + * + * infra 系统,使用 1-001-000-000 段 + */ +public interface ErrorCodeConstants { + + // ========== 参数配置 1-001-000-000 ========== + ErrorCode CONFIG_NOT_EXISTS = new ErrorCode(1_001_000_001, "参数配置不存在"); + ErrorCode CONFIG_KEY_DUPLICATE = new ErrorCode(1_001_000_002, "参数配置 key 重复"); + ErrorCode CONFIG_CAN_NOT_DELETE_SYSTEM_TYPE = new ErrorCode(1_001_000_003, "不能删除类型为系统内置的参数配置"); + ErrorCode CONFIG_GET_VALUE_ERROR_IF_VISIBLE = new ErrorCode(1_001_000_004, "获取参数配置失败,原因:不允许获取不可见配置"); + + // ========== 定时任务 1-001-001-000 ========== + ErrorCode JOB_NOT_EXISTS = new ErrorCode(1_001_001_000, "定时任务不存在"); + ErrorCode JOB_HANDLER_EXISTS = new ErrorCode(1_001_001_001, "定时任务的处理器已经存在"); + ErrorCode JOB_CHANGE_STATUS_INVALID = new ErrorCode(1_001_001_002, "只允许修改为开启或者关闭状态"); + ErrorCode JOB_CHANGE_STATUS_EQUALS = new ErrorCode(1_001_001_003, "定时任务已经处于该状态,无需修改"); + ErrorCode JOB_UPDATE_ONLY_NORMAL_STATUS = new ErrorCode(1_001_001_004, "只有开启状态的任务,才可以修改"); + ErrorCode JOB_CRON_EXPRESSION_VALID = new ErrorCode(1_001_001_005, "CRON 表达式不正确"); + ErrorCode JOB_HANDLER_BEAN_NOT_EXISTS = new ErrorCode(1_001_001_006, "定时任务的处理器 Bean 不存在,注意 Bean 默认首字母小写"); + ErrorCode JOB_HANDLER_BEAN_TYPE_ERROR = new ErrorCode(1_001_001_007, "定时任务的处理器 Bean 类型不正确,未实现 JobHandler 接口"); + + // ========== API 错误日志 1-001-002-000 ========== + ErrorCode API_ERROR_LOG_NOT_FOUND = new ErrorCode(1_001_002_000, "API 错误日志不存在"); + ErrorCode API_ERROR_LOG_PROCESSED = new ErrorCode(1_001_002_001, "API 错误日志已处理"); + + // ========= 文件相关 1-001-003-000 ================= + ErrorCode FILE_PATH_EXISTS = new ErrorCode(1_001_003_000, "文件路径已存在"); + ErrorCode FILE_NOT_EXISTS = new ErrorCode(1_001_003_001, "文件不存在"); + ErrorCode FILE_IS_EMPTY = new ErrorCode(1_001_003_002, "文件为空"); + + // ========== 代码生成器 1-001-004-000 ========== + ErrorCode CODEGEN_TABLE_EXISTS = new ErrorCode(1_001_004_002, "表定义已经存在"); + ErrorCode CODEGEN_IMPORT_TABLE_NULL = new ErrorCode(1_001_004_001, "导入的表不存在"); + ErrorCode CODEGEN_IMPORT_COLUMNS_NULL = new ErrorCode(1_001_004_002, "导入的字段不存在"); + ErrorCode CODEGEN_TABLE_NOT_EXISTS = new ErrorCode(1_001_004_004, "表定义不存在"); + ErrorCode CODEGEN_COLUMN_NOT_EXISTS = new ErrorCode(1_001_004_005, "字段义不存在"); + ErrorCode CODEGEN_SYNC_COLUMNS_NULL = new ErrorCode(1_001_004_006, "同步的字段不存在"); + ErrorCode CODEGEN_SYNC_NONE_CHANGE = new ErrorCode(1_001_004_007, "同步失败,不存在改变"); + ErrorCode CODEGEN_TABLE_INFO_TABLE_COMMENT_IS_NULL = new ErrorCode(1_001_004_008, "数据库的表注释未填写"); + ErrorCode CODEGEN_TABLE_INFO_COLUMN_COMMENT_IS_NULL = new ErrorCode(1_001_004_009, "数据库的表字段({})注释未填写"); + ErrorCode CODEGEN_MASTER_TABLE_NOT_EXISTS = new ErrorCode(1_001_004_010, "主表(id={})定义不存在,请检查"); + ErrorCode CODEGEN_SUB_COLUMN_NOT_EXISTS = new ErrorCode(1_001_004_011, "子表的字段(id={})不存在,请检查"); + ErrorCode CODEGEN_MASTER_GENERATION_FAIL_NO_SUB_TABLE = new ErrorCode(1_001_004_012, "主表生成代码失败,原因:它没有子表"); + + // ========== 文件配置 1-001-006-000 ========== + ErrorCode FILE_CONFIG_NOT_EXISTS = new ErrorCode(1_001_006_000, "文件配置不存在"); + ErrorCode FILE_CONFIG_DELETE_FAIL_MASTER = new ErrorCode(1_001_006_001, "该文件配置不允许删除,原因:它是主配置,删除会导致无法上传文件"); + + // ========== 数据源配置 1-001-007-000 ========== + ErrorCode DATA_SOURCE_CONFIG_NOT_EXISTS = new ErrorCode(1_001_007_000, "数据源配置不存在"); + ErrorCode DATA_SOURCE_CONFIG_NOT_OK = new ErrorCode(1_001_007_001, "数据源配置不正确,无法进行连接"); + + // ========== 学生 1-001-201-000 ========== + ErrorCode DEMO01_CONTACT_NOT_EXISTS = new ErrorCode(1_001_201_000, "示例联系人不存在"); + ErrorCode DEMO02_CATEGORY_NOT_EXISTS = new ErrorCode(1_001_201_001, "示例分类不存在"); + ErrorCode DEMO02_CATEGORY_EXITS_CHILDREN = new ErrorCode(1_001_201_002, "存在存在子示例分类,无法删除"); + ErrorCode DEMO02_CATEGORY_PARENT_NOT_EXITS = new ErrorCode(1_001_201_003,"父级示例分类不存在"); + ErrorCode DEMO02_CATEGORY_PARENT_ERROR = new ErrorCode(1_001_201_004, "不能设置自己为父示例分类"); + ErrorCode DEMO02_CATEGORY_NAME_DUPLICATE = new ErrorCode(1_001_201_005, "已经存在该名字的示例分类"); + ErrorCode DEMO02_CATEGORY_PARENT_IS_CHILD = new ErrorCode(1_001_201_006, "不能设置自己的子示例分类为父示例分类"); + ErrorCode DEMO03_STUDENT_NOT_EXISTS = new ErrorCode(1_001_201_007, "学生不存在"); + ErrorCode DEMO03_GRADE_NOT_EXISTS = new ErrorCode(1_001_201_008, "学生班级不存在"); + ErrorCode DEMO03_GRADE_EXISTS = new ErrorCode(1_001_201_009, "学生班级已存在"); + +} diff --git a/tashow-feign/tashow-user-api/src/main/java/com/tashow/cloud/userapi/api/user/dto/UserMemberRespDTO.java b/tashow-feign/tashow-user-api/src/main/java/com/tashow/cloud/userapi/api/user/dto/UserMemberRespDTO.java index b33ce15..7152c77 100644 --- a/tashow-feign/tashow-user-api/src/main/java/com/tashow/cloud/userapi/api/user/dto/UserMemberRespDTO.java +++ b/tashow-feign/tashow-user-api/src/main/java/com/tashow/cloud/userapi/api/user/dto/UserMemberRespDTO.java @@ -15,6 +15,8 @@ public class UserMemberRespDTO { //昵称 private String nickname; + //姓名 + private String name; //帐号状态 private Integer status; // 参见 CommonStatusEnum 枚举 diff --git a/tashow-framework/tashow-common/pom.xml b/tashow-framework/tashow-common/pom.xml index 4e246cb..3be290e 100644 --- a/tashow-framework/tashow-common/pom.xml +++ b/tashow-framework/tashow-common/pom.xml @@ -126,6 +126,10 @@ commons-lang3 + + org.apache.tika + tika-core + diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/utils/FileTypeUtils.java b/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/io/FileTypeUtils.java similarity index 63% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/utils/FileTypeUtils.java rename to tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/io/FileTypeUtils.java index 1de94b7..a30beb5 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/utils/FileTypeUtils.java +++ b/tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/io/FileTypeUtils.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.framework.file.core.utils; +package com.tashow.cloud.common.util.io; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; @@ -6,20 +6,8 @@ import com.alibaba.ttl.TransmittableThreadLocal; import jakarta.servlet.http.HttpServletResponse; import lombok.SneakyThrows; import org.apache.tika.Tika; -import org.jaudiotagger.audio.AudioFile; -import org.jaudiotagger.audio.AudioFileIO; -import org.jaudiotagger.audio.exceptions.CannotReadException; -import org.jaudiotagger.audio.exceptions.CannotWriteException; -import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException; -import org.jaudiotagger.audio.exceptions.ReadOnlyFileException; -import org.jaudiotagger.tag.Tag; -import org.jaudiotagger.tag.TagException; -import org.jaudiotagger.tag.id3.AbstractID3v2Tag; -import java.io.File; import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URL; import java.net.URLEncoder; /** @@ -84,22 +72,4 @@ public class FileTypeUtils { // 输出附件 IoUtil.write(response.getOutputStream(), false, content); } - - public static void main(String[] args) throws CannotReadException, TagException, InvalidAudioFrameException, ReadOnlyFileException, IOException, CannotWriteException, URISyntaxException { - URL url = new URL("https://petshy.tashowz.com/admin-api/infra/file/29/get/jna2-雪球-难过焦虑.wav"); - File file = new File(url.getFile()); - System.out.println(file.exists()); - AudioFile audioFile = AudioFileIO.read(file); - Tag tag = audioFile.getTag(); - if (tag instanceof AbstractID3v2Tag) { - AbstractID3v2Tag id3v2Tag = (AbstractID3v2Tag) tag; -// id3v2Tag.delete(); // 删除所有ID3标签 - } else { - System.out.println("The file does not contain ID3v2 tags."); - } - AudioFileIO.write(audioFile); // 保存更改 - System.out.println("ID3 tags removed successfully."); - - } - } diff --git a/tashow-module/pom.xml b/tashow-module/pom.xml index fde8e7c..4be1758 100644 --- a/tashow-module/pom.xml +++ b/tashow-module/pom.xml @@ -19,6 +19,7 @@ tashow-module-pay tashow-module-trade tashow-module-user + tashow-module-file diff --git a/tashow-module/tashow-module-file/Dockerfile b/tashow-module/tashow-module-file/Dockerfile new file mode 100644 index 0000000..731a245 --- /dev/null +++ b/tashow-module/tashow-module-file/Dockerfile @@ -0,0 +1,19 @@ +## AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是它的延伸,提供更好的稳定性 +## 感谢复旦核博士的建议!灰子哥,牛皮! +FROM eclipse-temurin:21-jre + +## 创建目录,并使用它作为工作目录 +RUN mkdir -p /yudao-module-member-biz +WORKDIR /yudao-module-member-biz +## 将后端项目的 Jar 文件,复制到镜像中 +COPY ./target/yudao-module-member-biz.jar app.jar + +## 设置 TZ 时区 +## 设置 JAVA_OPTS 环境变量,可通过 docker run -e "JAVA_OPTS=" 进行覆盖 +ENV TZ=Asia/Shanghai JAVA_OPTS="-Xms512m -Xmx512m" + +## 暴露后端项目的 48080 端口 +EXPOSE 48087 + +## 启动后端项目 +CMD java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar app.jar diff --git a/tashow-module/tashow-module-file/pom.xml b/tashow-module/tashow-module-file/pom.xml new file mode 100644 index 0000000..4b74f15 --- /dev/null +++ b/tashow-module/tashow-module-file/pom.xml @@ -0,0 +1,111 @@ + + + + com.tashow.cloud + tashow-module + ${revision} + + 4.0.0 + tashow-module-file + jar + + ${project.artifactId} + + member 模块,我们放会员业务。 + 例如说:会员中心等等 + + + + + + com.tashow.cloud + tashow-framework-env + + + com.tashow.cloud + tashow-framework-monitor + + + com.tashow.cloud + tashow-framework-web + + + + org.springframework.boot + spring-boot-starter-validation + + + + + com.tashow.cloud + tashow-data-mybatis + + + + com.tashow.cloud + tashow-data-redis + + + + com.tashow.cloud + tashow-file-api + + + + + com.tashow.cloud + tashow-framework-rpc + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + commons-net + commons-net + + + com.jcraft + jsch + + + com.amazonaws + aws-java-sdk-s3 + + + + + + + + ${project.artifactId} + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring.boot.version} + + + + repackage + + + + + + + + diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/FileServerApplication.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/FileServerApplication.java new file mode 100644 index 0000000..46f3dde --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/FileServerApplication.java @@ -0,0 +1,16 @@ +package com.tashow.cloud.file; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +/** + * 项目的启动类 + */ +@SpringBootApplication +public class FileServerApplication { + + public static void main(String[] args) { + SpringApplication.run(FileServerApplication.class, args); + } + +} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/api/config/ConfigApiImpl.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/config/ConfigApiImpl.java similarity index 75% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/api/config/ConfigApiImpl.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/config/ConfigApiImpl.java index 82f7268..ed43e01 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/api/config/ConfigApiImpl.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/config/ConfigApiImpl.java @@ -1,9 +1,9 @@ -package com.tashow.cloud.infra.api.config; +package com.tashow.cloud.file.api.config; import com.tashow.cloud.common.pojo.CommonResult; -import com.tashow.cloud.infra.service.config.ConfigService; -import com.tashow.cloud.infraapi.api.config.ConfigApi; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; +import com.tashow.cloud.file.dal.dataobject.config.ConfigDO; +import com.tashow.cloud.file.service.config.ConfigService; +import com.tashow.cloud.fileapi.api.config.ConfigApi; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/api/file/FileApiImpl.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/file/FileApiImpl.java similarity index 76% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/api/file/FileApiImpl.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/file/FileApiImpl.java index cb57d40..902f236 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/api/file/FileApiImpl.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/file/FileApiImpl.java @@ -1,14 +1,13 @@ -package com.tashow.cloud.infra.api.file; +package com.tashow.cloud.file.api.file; import com.tashow.cloud.common.pojo.CommonResult; -import com.tashow.cloud.infra.service.file.FileService; -import com.tashow.cloud.infraapi.api.file.FileApi; -import com.tashow.cloud.infraapi.api.file.dto.FileCreateReqDTO; +import com.tashow.cloud.file.service.file.FileService; +import com.tashow.cloud.fileapi.api.file.FileApi; +import com.tashow.cloud.fileapi.api.file.dto.FileCreateReqDTO; +import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RestController; -import jakarta.annotation.Resource; - import static com.tashow.cloud.common.pojo.CommonResult.success; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/package-info.java new file mode 100644 index 0000000..afc6b53 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/package-info.java @@ -0,0 +1 @@ +package com.tashow.cloud.user.api; \ No newline at end of file diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/ConfigController.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/ConfigController.java new file mode 100644 index 0000000..05e6885 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/ConfigController.java @@ -0,0 +1,101 @@ +package com.tashow.cloud.file.controller.admin.config; + +import com.tashow.cloud.common.pojo.CommonResult; +import com.tashow.cloud.common.pojo.PageResult; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigPageReqVO; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigRespVO; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigSaveReqVO; +import com.tashow.cloud.file.convert.config.ConfigConvert; +import com.tashow.cloud.file.dal.dataobject.config.ConfigDO; +import com.tashow.cloud.file.service.config.ConfigService; +import com.tashow.cloud.fileapi.enums.ErrorCodeConstants; +import jakarta.annotation.Resource; +import jakarta.validation.Valid; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.exception; +import static com.tashow.cloud.common.pojo.CommonResult.success; + + +/** + * 管理后台 - 参数配置 + */ +@RestController +@RequestMapping("/infra/config") +@Validated +public class ConfigController { + + @Resource + private ConfigService configService; + + /** + * 创建参数配置 + * @param createReqVO + * @return + */ + @PostMapping("/create") + public CommonResult createConfig(@Valid @RequestBody ConfigSaveReqVO createReqVO) { + return success(configService.createConfig(createReqVO)); + } + + /** + * 修改参数配置 + * @param updateReqVO + * @return + */ + @PutMapping("/update") + public CommonResult updateConfig(@Valid @RequestBody ConfigSaveReqVO updateReqVO) { + configService.updateConfig(updateReqVO); + return success(true); + } + + /** + * 删除参数配置 + * @param id + * @return + */ + @DeleteMapping("/delete") + public CommonResult deleteConfig(@RequestParam("id") Long id) { + configService.deleteConfig(id); + return success(true); + } + + /** + * 获得参数配置 + * @param id + * @return + */ + @GetMapping(value = "/get") + public CommonResult getConfig(@RequestParam("id") Long id) { + return success(ConfigConvert.INSTANCE.convert(configService.getConfig(id))); + } + + /** + * 根据参数键名查询参数值 + * @param key + * @return + */ + @GetMapping(value = "/get-value-by-key") + public CommonResult getConfigKey(@RequestParam("key") String key) { + ConfigDO config = configService.getConfigByKey(key); + if (config == null) { + return success(null); + } + if (!config.getVisible()) { + throw exception(ErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_VISIBLE); + } + return success(config.getValue()); + } + + /** + * 获取参数配置分页 + * @param pageReqVO + * @return + */ + @GetMapping("/page") + public CommonResult> getConfigPage(@Valid ConfigPageReqVO pageReqVO) { + PageResult page = configService.getConfigPage(pageReqVO); + return success(ConfigConvert.INSTANCE.convertPage(page)); + } +} diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigPageReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigPageReqVO.java new file mode 100644 index 0000000..1c353fb --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigPageReqVO.java @@ -0,0 +1,35 @@ +package com.tashow.cloud.file.controller.admin.config.vo; + +import com.tashow.cloud.common.pojo.PageParam; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + + +/** + * 管理后台 - 参数配置分页 Request VO + */ +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ConfigPageReqVO extends PageParam { + + // 数据源名称,模糊匹配 + private String name; + + //参数键名,模糊匹配 + private String key; + + //参数类型,参见 SysConfigTypeEnum 枚举 + private Integer type; + + //创建时间 + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigRespVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigRespVO.java new file mode 100644 index 0000000..c8940ec --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigRespVO.java @@ -0,0 +1,40 @@ +package com.tashow.cloud.file.controller.admin.config.vo; + +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * 管理后台 - 参数配置信息 Response VO + */ +@Data +public class ConfigRespVO { + + //参数配置序号 + private Long id; + + //参数分类 + private String category; + + //参数名称 + private String name; + + //参数键名 + private String key; + + //参数键值 + private String value; + + //参数类型,参见 SysConfigTypeEnum 枚举 + private Integer type; + + //是否可见 + private Boolean visible; + + //备注 + private String remark; + + //创建时间 + private LocalDateTime createTime; + +} diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigSaveReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigSaveReqVO.java new file mode 100644 index 0000000..e0db31e --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigSaveReqVO.java @@ -0,0 +1,45 @@ +package com.tashow.cloud.file.controller.admin.config.vo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Size; +import lombok.Data; + +/** + * 管理后台 - 参数配置创建/修改 Request VO + */ +@Data +public class ConfigSaveReqVO { + + //参数配置序号 + private Long id; + + //参数分组 + @NotEmpty(message = "参数分组不能为空") + @Size(max = 50, message = "参数名称不能超过 50 个字符") + private String category; + + //参数名称 + @NotBlank(message = "参数名称不能为空") + @Size(max = 100, message = "参数名称不能超过 100 个字符") + private String name; + + //参数键名 + @NotBlank(message = "参数键名长度不能为空") + @Size(max = 100, message = "参数键名长度不能超过 100 个字符") + private String key; + + //参数键值 + @NotBlank(message = "参数键值不能为空") + @Size(max = 500, message = "参数键值长度不能超过 500 个字符") + private String value; + + //是否可见 + @NotNull(message = "是否可见不能为空") + private Boolean visible; + + //备注 + private String remark; + +} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/FileConfigController.java similarity index 71% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/FileConfigController.java index aabbd6f..f1cddfc 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/FileConfigController.java @@ -1,21 +1,20 @@ -package com.tashow.cloud.infra.controller.admin.file; - -import static com.tashow.cloud.common.pojo.CommonResult.success; +package com.tashow.cloud.file.controller.admin.file; import com.tashow.cloud.common.pojo.CommonResult; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.util.object.BeanUtils; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigPageReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigRespVO; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; -import com.tashow.cloud.infra.service.file.FileConfigService; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigPageReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigRespVO; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigSaveReqVO; +import com.tashow.cloud.file.dal.dataobject.file.FileConfigDO; +import com.tashow.cloud.file.service.file.FileConfigService; import jakarta.annotation.Resource; import jakarta.validation.Valid; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import static com.tashow.cloud.common.pojo.CommonResult.success; + /** 管理后台 - 文件配置 */ @RestController @RequestMapping("/infra/file-config") @@ -26,14 +25,12 @@ public class FileConfigController { /** 创建文件配置 */ @PostMapping("/create") - @PreAuthorize("@ss.hasPermission('infra:file-config:create')") public CommonResult createFileConfig(@Valid @RequestBody FileConfigSaveReqVO createReqVO) { return success(fileConfigService.createFileConfig(createReqVO)); } /** 更新文件配置 */ @PutMapping("/update") - @PreAuthorize("@ss.hasPermission('infra:file-config:update')") public CommonResult updateFileConfig( @Valid @RequestBody FileConfigSaveReqVO updateReqVO) { fileConfigService.updateFileConfig(updateReqVO); @@ -42,7 +39,6 @@ public class FileConfigController { /** 更新文件配置为 Master */ @PutMapping("/update-master") - @PreAuthorize("@ss.hasPermission('infra:file-config:update')") public CommonResult updateFileConfigMaster(@RequestParam("id") Long id) { fileConfigService.updateFileConfigMaster(id); return success(true); @@ -50,7 +46,6 @@ public class FileConfigController { /** 删除文件配置 */ @DeleteMapping("/delete") - @PreAuthorize("@ss.hasPermission('infra:file-config:delete')") public CommonResult deleteFileConfig(@RequestParam("id") Long id) { fileConfigService.deleteFileConfig(id); return success(true); @@ -58,7 +53,6 @@ public class FileConfigController { /** 获得文件配置 */ @GetMapping("/get") - @PreAuthorize("@ss.hasPermission('infra:file-config:query')") public CommonResult getFileConfig(@RequestParam("id") Long id) { FileConfigDO config = fileConfigService.getFileConfig(id); return success(BeanUtils.toBean(config, FileConfigRespVO.class)); @@ -66,7 +60,6 @@ public class FileConfigController { /** 获得文件配置分页 */ @GetMapping("/page") - @PreAuthorize("@ss.hasPermission('infra:file-config:query')") public CommonResult> getFileConfigPage( @Valid FileConfigPageReqVO pageVO) { PageResult pageResult = fileConfigService.getFileConfigPage(pageVO); @@ -75,7 +68,6 @@ public class FileConfigController { /** 测试文件配置是否正确 */ @GetMapping("/test") - @PreAuthorize("@ss.hasPermission('infra:file-config:query')") public CommonResult testFileConfig(@RequestParam("id") Long id) throws Exception { String url = fileConfigService.testFileConfig(id); return success(url); diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileController.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/FileController.java similarity index 85% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileController.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/FileController.java index c8f4998..eab83ad 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileController.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/FileController.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.controller.admin.file; +package com.tashow.cloud.file.controller.admin.file; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; @@ -6,23 +6,21 @@ import cn.hutool.core.util.URLUtil; import com.tashow.cloud.common.pojo.CommonResult; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.util.object.BeanUtils; -import com.tashow.cloud.infra.controller.admin.file.vo.file.*; -import com.tashow.cloud.infra.dal.dataobject.file.FileDO; -import com.tashow.cloud.infra.service.file.FileService; +import com.tashow.cloud.file.controller.admin.file.vo.file.*; +import com.tashow.cloud.file.dal.dataobject.file.FileDO; +import com.tashow.cloud.file.service.file.FileService; import jakarta.annotation.Resource; -import jakarta.annotation.security.PermitAll; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import static com.tashow.cloud.common.pojo.CommonResult.success; -import static com.tashow.cloud.infra.framework.file.core.utils.FileTypeUtils.writeAttachment; +import static com.tashow.cloud.file.framework.file.core.utils.FileTypeUtils.writeAttachment; /** 管理后台 - 文件存储 */ @RestController @@ -58,7 +56,6 @@ public class FileController { /** 删除文件 */ @DeleteMapping("/delete") - @PreAuthorize("@ss.hasPermission('infra:file:delete')") public CommonResult deleteFile(@RequestParam("id") Long id) throws Exception { fileService.deleteFile(id); return success(true); @@ -66,7 +63,6 @@ public class FileController { /** 下载文件 */ @GetMapping("/{configId}/get/**") - @PermitAll public void getFileContent( HttpServletRequest request, HttpServletResponse response, @@ -92,7 +88,6 @@ public class FileController { /** 获得文件分页 */ @GetMapping("/page") - @PreAuthorize("@ss.hasPermission('infra:file:query')") public CommonResult> getFilePage(@Valid FilePageReqVO pageVO) { PageResult pageResult = fileService.getFilePage(pageVO); return success(BeanUtils.toBean(pageResult, FileRespVO.class)); diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigPageReqVO.java similarity index 91% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigPageReqVO.java index 3821edc..d7a9f7d 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigPageReqVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigPageReqVO.java @@ -1,14 +1,15 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.config; - -import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +package com.tashow.cloud.file.controller.admin.file.vo.config; import com.tashow.cloud.common.pojo.PageParam; -import java.time.LocalDateTime; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + /** 管理后台 - 文件配置分页 Request VO */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigRespVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigRespVO.java similarity index 78% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigRespVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigRespVO.java index 82b731c..766f4bc 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigRespVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigRespVO.java @@ -1,9 +1,10 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.config; +package com.tashow.cloud.file.controller.admin.file.vo.config; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; -import java.time.LocalDateTime; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; import lombok.Data; +import java.time.LocalDateTime; + /** 管理后台 - 文件配置 Response VO */ @Data public class FileConfigRespVO { diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigSaveReqVO.java similarity index 91% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigSaveReqVO.java index ef3a2bd..dcb053c 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/config/FileConfigSaveReqVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/config/FileConfigSaveReqVO.java @@ -1,9 +1,10 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.config; +package com.tashow.cloud.file.controller.admin.file.vo.config; import jakarta.validation.constraints.NotNull; -import java.util.Map; import lombok.Data; +import java.util.Map; + /** 管理后台 - 文件配置创建/修改 Request VO */ @Data public class FileConfigSaveReqVO { diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileCreateReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileCreateReqVO.java similarity index 91% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileCreateReqVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileCreateReqVO.java index fed0c88..ac37bdf 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileCreateReqVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileCreateReqVO.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.file; +package com.tashow.cloud.file.controller.admin.file.vo.file; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FilePageReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FilePageReqVO.java similarity index 92% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FilePageReqVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FilePageReqVO.java index 1b69520..3972588 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FilePageReqVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FilePageReqVO.java @@ -1,14 +1,15 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.file; - -import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; +package com.tashow.cloud.file.controller.admin.file.vo.file; import com.tashow.cloud.common.pojo.PageParam; -import java.time.LocalDateTime; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + /** 管理后台 - 文件分页 Request VO */ @Data @EqualsAndHashCode(callSuper = true) diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FilePresignedUrlRespVO.java similarity index 88% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FilePresignedUrlRespVO.java index f942c4f..d0b9955 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FilePresignedUrlRespVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FilePresignedUrlRespVO.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.file; +package com.tashow.cloud.file.controller.admin.file.vo.file; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileRespVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileRespVO.java similarity index 90% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileRespVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileRespVO.java index 22dc6ed..dd02a0c 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileRespVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileRespVO.java @@ -1,7 +1,8 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.file; +package com.tashow.cloud.file.controller.admin.file.vo.file; + +import lombok.Data; import java.time.LocalDateTime; -import lombok.Data; /** 管理后台 - 文件 Response VO,不返回 content 字段,太大 */ @Data diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileUploadReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileUploadReqVO.java similarity index 85% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileUploadReqVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileUploadReqVO.java index 467a2c9..bf23452 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/vo/file/FileUploadReqVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/file/vo/file/FileUploadReqVO.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.controller.admin.file.vo.file; +package com.tashow.cloud.file.controller.admin.file.vo.file; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/package-info.java new file mode 100644 index 0000000..f11c10e --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/package-info.java @@ -0,0 +1 @@ +package com.tashow.cloud.user.controller.admin; \ No newline at end of file diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/app/file/AppFileController.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/file/AppFileController.java similarity index 79% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/app/file/AppFileController.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/file/AppFileController.java index b5493c5..bdb3c48 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/app/file/AppFileController.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/file/AppFileController.java @@ -1,21 +1,20 @@ -package com.tashow.cloud.infra.controller.app.file; - -import static com.tashow.cloud.common.pojo.CommonResult.success; +package com.tashow.cloud.file.controller.app.file; import cn.hutool.core.io.IoUtil; import com.tashow.cloud.common.pojo.CommonResult; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FileCreateReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; -import com.tashow.cloud.infra.controller.app.file.vo.AppFileUploadReqVO; -import com.tashow.cloud.infra.service.file.FileService; +import com.tashow.cloud.file.controller.admin.file.vo.file.FileCreateReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import com.tashow.cloud.file.controller.app.file.vo.AppFileUploadReqVO; +import com.tashow.cloud.file.service.file.FileService; import jakarta.annotation.Resource; -import jakarta.annotation.security.PermitAll; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import static com.tashow.cloud.common.pojo.CommonResult.success; + /** 用户 App - 文件存储 */ @RestController @RequestMapping("/infra/file") @@ -27,7 +26,6 @@ public class AppFileController { /** 上传文件 */ @PostMapping("/upload") - @PermitAll public CommonResult uploadFile(AppFileUploadReqVO uploadReqVO) throws Exception { MultipartFile file = uploadReqVO.getFile(); String path = uploadReqVO.getPath(); @@ -38,7 +36,6 @@ public class AppFileController { /** 获取文件预签名地址", description = "模式二:前端上传文件:用于前端直接上传七牛、阿里云 OSS 等文件存储器 */ @GetMapping("/presigned-url") - @PermitAll public CommonResult getFilePresignedUrl(@RequestParam("path") String path) throws Exception { return success(fileService.getFilePresignedUrl(path)); @@ -46,7 +43,6 @@ public class AppFileController { /** 创建文件", description = "模式二:前端上传文件:配合 presigned-url 接口,记录上传了上传的文件 */ @PostMapping("/create") - @PermitAll public CommonResult createFile(@Valid @RequestBody FileCreateReqVO createReqVO) { return success(fileService.createFile(createReqVO)); } diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/app/file/vo/AppFileUploadReqVO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/file/vo/AppFileUploadReqVO.java similarity index 86% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/app/file/vo/AppFileUploadReqVO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/file/vo/AppFileUploadReqVO.java index 27ab32e..6bdf69d 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/app/file/vo/AppFileUploadReqVO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/file/vo/AppFileUploadReqVO.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.controller.app.file.vo; +package com.tashow.cloud.file.controller.app.file.vo; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/package-info.java new file mode 100644 index 0000000..60e3c50 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/package-info.java @@ -0,0 +1 @@ +package com.tashow.cloud.file.controller.app; \ No newline at end of file diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/package-info.java new file mode 100644 index 0000000..7da03af --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 RESTful API 给前端: + * 1. admin 包:提供给管理后台 yudao-ui-admin 前端项目 + * 2. app 包:提供给用户 APP yudao-ui-app 前端项目,它的 Controller 和 VO 都要添加 App 前缀,用于和管理后台进行区分 + */ +package com.tashow.cloud.user.controller; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/convert/config/ConfigConvert.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/config/ConfigConvert.java similarity index 70% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/convert/config/ConfigConvert.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/config/ConfigConvert.java index 8548296..0b5a576 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/convert/config/ConfigConvert.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/config/ConfigConvert.java @@ -1,9 +1,9 @@ -package com.tashow.cloud.infra.convert.config; +package com.tashow.cloud.file.convert.config; import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigRespVO; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigRespVO; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigSaveReqVO; +import com.tashow.cloud.file.dal.dataobject.config.ConfigDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/convert/file/FileConfigConvert.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/file/FileConfigConvert.java similarity index 66% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/convert/file/FileConfigConvert.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/file/FileConfigConvert.java index ed141ec..c6aa073 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/convert/file/FileConfigConvert.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/file/FileConfigConvert.java @@ -1,7 +1,7 @@ -package com.tashow.cloud.infra.convert.file; +package com.tashow.cloud.file.convert.file; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigSaveReqVO; +import com.tashow.cloud.file.dal.dataobject.file.FileConfigDO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/package-info.java new file mode 100644 index 0000000..9952d26 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/package-info.java @@ -0,0 +1,6 @@ +/** + * 提供 POJO 类的实体转换 + * + * 目前使用 MapStruct 框架 + */ +package com.tashow.cloud.user.convert; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/config/ConfigDO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/config/ConfigDO.java similarity index 86% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/config/ConfigDO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/config/ConfigDO.java index 1834f48..0540e8a 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/config/ConfigDO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/config/ConfigDO.java @@ -1,12 +1,10 @@ -package com.tashow.cloud.infra.dal.dataobject.config; +package com.tashow.cloud.file.dal.dataobject.config; -import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; -import com.tashow.cloud.infra.enums.config.ConfigTypeEnum; -import com.tashow.cloud.infra.enums.config.ConfigTypeEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.tashow.cloud.infra.enums.config.ConfigTypeEnum; +import com.tashow.cloud.file.enums.config.ConfigTypeEnum; +import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileConfigDO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileConfigDO.java similarity index 84% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileConfigDO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileConfigDO.java index e18b8ca..444fe38 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileConfigDO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileConfigDO.java @@ -1,20 +1,20 @@ -package com.tashow.cloud.infra.dal.dataobject.file; +package com.tashow.cloud.file.dal.dataobject.file; import cn.hutool.core.util.StrUtil; -import com.tashow.cloud.common.util.json.JsonUtils; -import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.local.LocalFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.AbstractJsonTypeHandler; import com.fasterxml.jackson.core.type.TypeReference; +import com.tashow.cloud.common.util.json.JsonUtils; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.db.DBFileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.ftp.FtpFileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.local.LocalFileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.s3.S3FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.sftp.SftpFileClientConfig; +import com.tashow.cloud.file.framework.file.core.enums.FileStorageEnum; +import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; import lombok.*; import java.lang.reflect.Field; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileContentDO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileContentDO.java similarity index 85% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileContentDO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileContentDO.java index 23b8117..c8fbe66 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileContentDO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileContentDO.java @@ -1,11 +1,10 @@ -package com.tashow.cloud.infra.dal.dataobject.file; +package com.tashow.cloud.file.dal.dataobject.file; -import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClient; -import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.tashow.cloud.file.framework.file.core.client.db.DBFileClient; +import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; import lombok.*; /** diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileDO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileDO.java similarity index 95% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileDO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileDO.java index 60213ac..1dcf90d 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/dataobject/file/FileDO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/file/FileDO.java @@ -1,8 +1,8 @@ -package com.tashow.cloud.infra.dal.dataobject.file; +package com.tashow.cloud.file.dal.dataobject.file; -import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableName; +import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; import lombok.*; /** diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/package-info.java new file mode 100644 index 0000000..1b44a01 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/package-info.java @@ -0,0 +1 @@ +package com.tashow.cloud.user.dal.dataobject; \ No newline at end of file diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/config/ConfigMapper.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/config/ConfigMapper.java similarity index 73% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/config/ConfigMapper.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/config/ConfigMapper.java index c877329..4a1ab04 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/config/ConfigMapper.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/config/ConfigMapper.java @@ -1,12 +1,10 @@ -package com.tashow.cloud.infra.dal.mysql.config; +package com.tashow.cloud.file.dal.mysql.config; import com.tashow.cloud.common.pojo.PageResult; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigPageReqVO; +import com.tashow.cloud.file.dal.dataobject.config.ConfigDO; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigPageReqVO; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; import org.apache.ibatis.annotations.Mapper; @Mapper diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileConfigMapper.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileConfigMapper.java similarity index 72% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileConfigMapper.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileConfigMapper.java index 889fd72..f43479d 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileConfigMapper.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileConfigMapper.java @@ -1,12 +1,10 @@ -package com.tashow.cloud.infra.dal.mysql.file; +package com.tashow.cloud.file.dal.mysql.file; import com.tashow.cloud.common.pojo.PageResult; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigPageReqVO; +import com.tashow.cloud.file.dal.dataobject.file.FileConfigDO; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigPageReqVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; import org.apache.ibatis.annotations.Mapper; @Mapper diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileContentMapper.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileContentMapper.java similarity index 76% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileContentMapper.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileContentMapper.java index c2062fe..1b153bb 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileContentMapper.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileContentMapper.java @@ -1,10 +1,8 @@ -package com.tashow.cloud.infra.dal.mysql.file; +package com.tashow.cloud.file.dal.mysql.file; -import com.tashow.cloud.infra.dal.dataobject.file.FileContentDO; -import com.tashow.cloud.infra.dal.dataobject.file.FileContentDO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.tashow.cloud.infra.dal.dataobject.file.FileContentDO; +import com.tashow.cloud.file.dal.dataobject.file.FileContentDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileMapper.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileMapper.java similarity index 71% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileMapper.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileMapper.java index 72f4bbd..0320320 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/dal/mysql/file/FileMapper.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/file/FileMapper.java @@ -1,12 +1,10 @@ -package com.tashow.cloud.infra.dal.mysql.file; +package com.tashow.cloud.file.dal.mysql.file; import com.tashow.cloud.common.pojo.PageResult; +import com.tashow.cloud.file.controller.admin.file.vo.file.FilePageReqVO; +import com.tashow.cloud.file.dal.dataobject.file.FileDO; import com.tashow.cloud.mybatis.mybatis.core.mapper.BaseMapperX; import com.tashow.cloud.mybatis.mybatis.core.query.LambdaQueryWrapperX; -import com.tashow.cloud.infra.dal.dataobject.file.FileDO; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FilePageReqVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileDO; -import com.tashow.cloud.infra.dal.dataobject.file.FileDO; import org.apache.ibatis.annotations.Mapper; /** diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/package-info.java new file mode 100644 index 0000000..b390a89 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/package-info.java @@ -0,0 +1 @@ +package com.tashow.cloud.user.dal.mysql; \ No newline at end of file diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/package-info.java new file mode 100644 index 0000000..5a0345e --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/package-info.java @@ -0,0 +1,9 @@ +/** + * DAL = Data Access Layer 数据访问层 + * 1. data object:数据对象 + * 2. redis:Redis 的 CRUD 操作 + * 3. mysql:MySQL 的 CRUD 操作 + * + * 其中,MySQL 的表以 member_ 作为前缀 + */ +package com.tashow.cloud.user.dal; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/enums/config/ConfigTypeEnum.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/config/ConfigTypeEnum.java similarity index 85% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/enums/config/ConfigTypeEnum.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/config/ConfigTypeEnum.java index b20b430..af149b2 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/enums/config/ConfigTypeEnum.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/config/ConfigTypeEnum.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.enums.config; +package com.tashow.cloud.file.enums.config; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/package-info.java new file mode 100644 index 0000000..1481dc1 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package com.tashow.cloud.file.enums; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/config/FileAutoConfiguration.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/config/FileAutoConfiguration.java new file mode 100644 index 0000000..3d0cb64 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/config/FileAutoConfiguration.java @@ -0,0 +1,21 @@ +package com.tashow.cloud.file.framework.file.config; + +import com.tashow.cloud.file.framework.file.core.client.FileClientFactory; +import com.tashow.cloud.file.framework.file.core.client.FileClientFactoryImpl; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 文件配置类 + * + * @author 芋道源码 + */ +@Configuration(proxyBeanMethods = false) +public class FileAutoConfiguration { + + @Bean + public FileClientFactory fileClientFactory() { + return new FileClientFactoryImpl(); + } + +} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/AbstractFileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java similarity index 96% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/AbstractFileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java index a35851f..5d3bdf0 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/AbstractFileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/AbstractFileClient.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.framework.file.core.client; +package com.tashow.cloud.file.framework.file.core.client; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClient.java similarity index 78% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClient.java index c386fc5..c4d6116 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClient.java @@ -1,8 +1,7 @@ -package com.tashow.cloud.infra.framework.file.core.client; +package com.tashow.cloud.file.framework.file.core.client; -import com.tashow.cloud.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; -import com.tashow.cloud.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; -import com.tashow.cloud.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; + +import com.tashow.cloud.file.framework.file.core.client.s3.FilePresignedUrlRespDTO; /** * 文件客户端 diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientConfig.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientConfig.java similarity index 89% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientConfig.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientConfig.java index c2f7c6d..85ac49c 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientConfig.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientConfig.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.framework.file.core.client; +package com.tashow.cloud.file.framework.file.core.client; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientFactory.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientFactory.java similarity index 64% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientFactory.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientFactory.java index 8361e73..72b1049 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientFactory.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientFactory.java @@ -1,8 +1,7 @@ -package com.tashow.cloud.infra.framework.file.core.client; +package com.tashow.cloud.file.framework.file.core.client; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; + +import com.tashow.cloud.file.framework.file.core.enums.FileStorageEnum; public interface FileClientFactory { diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientFactoryImpl.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientFactoryImpl.java similarity index 86% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientFactoryImpl.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientFactoryImpl.java index 6eee5e3..c84c9a3 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/FileClientFactoryImpl.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/FileClientFactoryImpl.java @@ -1,10 +1,8 @@ -package com.tashow.cloud.infra.framework.file.core.client; +package com.tashow.cloud.file.framework.file.core.client; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ReflectUtil; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; +import com.tashow.cloud.file.framework.file.core.enums.FileStorageEnum; import lombok.extern.slf4j.Slf4j; import java.util.concurrent.ConcurrentHashMap; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/db/DBFileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/db/DBFileClient.java similarity index 73% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/db/DBFileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/db/DBFileClient.java index c4bc920..87e0e35 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/db/DBFileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/db/DBFileClient.java @@ -1,14 +1,10 @@ -package com.tashow.cloud.infra.framework.file.core.client.db; +package com.tashow.cloud.file.framework.file.core.client.db; import cn.hutool.core.collection.CollUtil; import cn.hutool.extra.spring.SpringUtil; -import com.tashow.cloud.infra.dal.dataobject.file.FileContentDO; -import com.tashow.cloud.infra.dal.mysql.file.FileContentMapper; -import com.tashow.cloud.infra.dal.dataobject.file.FileContentDO; -import com.tashow.cloud.infra.dal.mysql.file.FileContentMapper; -import com.tashow.cloud.infra.framework.file.core.client.AbstractFileClient; -import com.tashow.cloud.infra.dal.dataobject.file.FileContentDO; -import com.tashow.cloud.infra.dal.mysql.file.FileContentMapper; +import com.tashow.cloud.file.dal.dataobject.file.FileContentDO; +import com.tashow.cloud.file.dal.mysql.file.FileContentMapper; +import com.tashow.cloud.file.framework.file.core.client.AbstractFileClient; import java.util.Comparator; import java.util.List; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/db/DBFileClientConfig.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/db/DBFileClientConfig.java similarity index 76% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/db/DBFileClientConfig.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/db/DBFileClientConfig.java index 512b02f..cd20336 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/db/DBFileClientConfig.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/db/DBFileClientConfig.java @@ -1,6 +1,6 @@ -package com.tashow.cloud.infra.framework.file.core.client.db; +package com.tashow.cloud.file.framework.file.core.client.db; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; import jakarta.validation.constraints.NotEmpty; import lombok.Data; import org.hibernate.validator.constraints.URL; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/ftp/FtpFileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/ftp/FtpFileClient.java similarity index 94% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/ftp/FtpFileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/ftp/FtpFileClient.java index 07cabf5..085fccc 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/ftp/FtpFileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/ftp/FtpFileClient.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.framework.file.core.client.ftp; +package com.tashow.cloud.file.framework.file.core.client.ftp; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; @@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.extra.ftp.Ftp; import cn.hutool.extra.ftp.FtpException; import cn.hutool.extra.ftp.FtpMode; -import com.tashow.cloud.infra.framework.file.core.client.AbstractFileClient; +import com.tashow.cloud.file.framework.file.core.client.AbstractFileClient; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/ftp/FtpFileClientConfig.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/ftp/FtpFileClientConfig.java similarity index 89% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/ftp/FtpFileClientConfig.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/ftp/FtpFileClientConfig.java index c8c5ad6..7b48395 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/ftp/FtpFileClientConfig.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/ftp/FtpFileClientConfig.java @@ -1,6 +1,6 @@ -package com.tashow.cloud.infra.framework.file.core.client.ftp; +package com.tashow.cloud.file.framework.file.core.client.ftp; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/local/LocalFileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/local/LocalFileClient.java similarity index 89% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/local/LocalFileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/local/LocalFileClient.java index 422e27a..0be987b 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/local/LocalFileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/local/LocalFileClient.java @@ -1,7 +1,7 @@ -package com.tashow.cloud.infra.framework.file.core.client.local; +package com.tashow.cloud.file.framework.file.core.client.local; import cn.hutool.core.io.FileUtil; -import com.tashow.cloud.infra.framework.file.core.client.AbstractFileClient; +import com.tashow.cloud.file.framework.file.core.client.AbstractFileClient; import java.io.File; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/local/LocalFileClientConfig.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/local/LocalFileClientConfig.java similarity index 79% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/local/LocalFileClientConfig.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/local/LocalFileClientConfig.java index 375dad6..90dba5f 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/local/LocalFileClientConfig.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/local/LocalFileClientConfig.java @@ -1,6 +1,6 @@ -package com.tashow.cloud.infra.framework.file.core.client.local; +package com.tashow.cloud.file.framework.file.core.client.local; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; import jakarta.validation.constraints.NotEmpty; import lombok.Data; import org.hibernate.validator.constraints.URL; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/FilePresignedUrlRespDTO.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/FilePresignedUrlRespDTO.java similarity index 87% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/FilePresignedUrlRespDTO.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/FilePresignedUrlRespDTO.java index 3af8231..a0f4d7c 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/FilePresignedUrlRespDTO.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/FilePresignedUrlRespDTO.java @@ -1,4 +1,4 @@ -package com.tashow.cloud.infra.framework.file.core.client.s3; +package com.tashow.cloud.file.framework.file.core.client.s3; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/S3FileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/S3FileClient.java similarity index 96% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/S3FileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/S3FileClient.java index d3990fb..14c1c2e 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/S3FileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/S3FileClient.java @@ -1,9 +1,8 @@ -package com.tashow.cloud.infra.framework.file.core.client.s3; +package com.tashow.cloud.file.framework.file.core.client.s3; import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; -import com.tashow.cloud.infra.framework.file.core.client.AbstractFileClient; import com.amazonaws.HttpMethod; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; @@ -12,6 +11,7 @@ import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.AmazonS3ClientBuilder; import com.amazonaws.services.s3.model.ObjectMetadata; import com.amazonaws.services.s3.model.S3Object; +import com.tashow.cloud.file.framework.file.core.client.AbstractFileClient; import java.io.ByteArrayInputStream; import java.util.Date; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/S3FileClientConfig.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/S3FileClientConfig.java similarity index 95% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/S3FileClientConfig.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/S3FileClientConfig.java index 9a3cf07..2504c18 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/s3/S3FileClientConfig.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/s3/S3FileClientConfig.java @@ -1,8 +1,8 @@ -package com.tashow.cloud.infra.framework.file.core.client.s3; +package com.tashow.cloud.file.framework.file.core.client.s3; import cn.hutool.core.util.StrUtil; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; import com.fasterxml.jackson.annotation.JsonIgnore; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; import jakarta.validation.constraints.AssertTrue; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/sftp/SftpFileClient.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/sftp/SftpFileClient.java similarity index 92% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/sftp/SftpFileClient.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/sftp/SftpFileClient.java index 383a2df..fcb76f0 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/sftp/SftpFileClient.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/sftp/SftpFileClient.java @@ -1,9 +1,9 @@ -package com.tashow.cloud.infra.framework.file.core.client.sftp; +package com.tashow.cloud.file.framework.file.core.client.sftp; import cn.hutool.core.io.FileUtil; import cn.hutool.extra.ssh.Sftp; import com.tashow.cloud.common.util.io.FileUtils; -import com.tashow.cloud.infra.framework.file.core.client.AbstractFileClient; +import com.tashow.cloud.file.framework.file.core.client.AbstractFileClient; import java.io.File; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/sftp/SftpFileClientConfig.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/sftp/SftpFileClientConfig.java similarity index 88% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/sftp/SftpFileClientConfig.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/sftp/SftpFileClientConfig.java index 300feff..62f2092 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/client/sftp/SftpFileClientConfig.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/client/sftp/SftpFileClientConfig.java @@ -1,6 +1,6 @@ -package com.tashow.cloud.infra.framework.file.core.client.sftp; +package com.tashow.cloud.file.framework.file.core.client.sftp; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/enums/FileStorageEnum.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/enums/FileStorageEnum.java new file mode 100644 index 0000000..e314cac --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/enums/FileStorageEnum.java @@ -0,0 +1,55 @@ +package com.tashow.cloud.file.framework.file.core.enums; + +import cn.hutool.core.util.ArrayUtil; +import com.tashow.cloud.file.framework.file.core.client.FileClient; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.db.DBFileClient; +import com.tashow.cloud.file.framework.file.core.client.db.DBFileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.ftp.FtpFileClient; +import com.tashow.cloud.file.framework.file.core.client.ftp.FtpFileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.local.LocalFileClient; +import com.tashow.cloud.file.framework.file.core.client.local.LocalFileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.s3.S3FileClient; +import com.tashow.cloud.file.framework.file.core.client.s3.S3FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.sftp.SftpFileClient; +import com.tashow.cloud.file.framework.file.core.client.sftp.SftpFileClientConfig; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 文件存储器枚举 + * + * @author 芋道源码 + */ +@AllArgsConstructor +@Getter +public enum FileStorageEnum { + + DB(1, DBFileClientConfig.class, DBFileClient.class), + + LOCAL(10, LocalFileClientConfig.class, LocalFileClient.class), + FTP(11, FtpFileClientConfig.class, FtpFileClient.class), + SFTP(12, SftpFileClientConfig.class, SftpFileClient.class), + + S3(20, S3FileClientConfig.class, S3FileClient.class), + ; + + /** + * 存储器 + */ + private final Integer storage; + + /** + * 配置类 + */ + private final Class configClass; + /** + * 客户端类 + */ + private final Class clientClass; + + public static FileStorageEnum getByStorage(Integer storage) { + return ArrayUtil.firstMatch(o -> o.getStorage().equals(storage), values()); + } + +} diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/utils/FileTypeUtils.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/utils/FileTypeUtils.java new file mode 100644 index 0000000..9370b9c --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/utils/FileTypeUtils.java @@ -0,0 +1,75 @@ +package com.tashow.cloud.file.framework.file.core.utils; + +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.ttl.TransmittableThreadLocal; +import jakarta.servlet.http.HttpServletResponse; +import lombok.SneakyThrows; +import org.apache.tika.Tika; + +import java.io.IOException; +import java.net.URLEncoder; + +/** + * 文件类型 Utils + * + * @author 芋道源码 + */ +public class FileTypeUtils { + + private static final ThreadLocal TIKA = TransmittableThreadLocal.withInitial(Tika::new); + + /** + * 获得文件的 mineType,对于doc,jar等文件会有误差 + * + * @param data 文件内容 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + @SneakyThrows + public static String getMineType(byte[] data) { + return TIKA.get().detect(data); + } + + /** + * 已知文件名,获取文件类型,在某些情况下比通过字节数组准确,例如使用jar文件时,通过名字更为准确 + * + * @param name 文件名 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + public static String getMineType(String name) { + return TIKA.get().detect(name); + } + + /** + * 在拥有文件和数据的情况下,最好使用此方法,最为准确 + * + * @param data 文件内容 + * @param name 文件名 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + public static String getMineType(byte[] data, String name) { + return TIKA.get().detect(data, name); + } + + /** + * 返回附件 + * + * @param response 响应 + * @param filename 文件名 + * @param content 附件内容 + */ + public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException { + // 设置 header 和 contentType + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8")); + String contentType = getMineType(content, filename); + response.setContentType(contentType); + // 针对 video 的特殊处理,解决视频地址在移动端播放的兼容性问题 + if (StrUtil.containsIgnoreCase(contentType, "video")||StrUtil.containsIgnoreCase(contentType, "audio")) { + response.setHeader("Content-Length", String.valueOf(content.length - 1)); + response.setHeader("Content-Range", String.valueOf(content.length - 1)); + response.setHeader("Accept-Ranges", "bytes"); + } + // 输出附件 + IoUtil.write(response.getOutputStream(), false, content); + } +} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/package-info.java similarity index 86% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/package-info.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/package-info.java index bd5ad3f..f4a5127 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/package-info.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/package-info.java @@ -9,4 +9,4 @@ * * @author 芋道源码 */ -package com.tashow.cloud.infra.framework.file; +package com.tashow.cloud.file.framework.file; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/package-info.java new file mode 100644 index 0000000..9495ebf --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/package-info.java @@ -0,0 +1,6 @@ +/** + * 属于 member 模块的 framework 封装 + * + * @author 芋道源码 + */ +package com.tashow.cloud.user.framework; diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/config/RpcConfiguration.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/config/RpcConfiguration.java new file mode 100644 index 0000000..8afa7a7 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/config/RpcConfiguration.java @@ -0,0 +1,9 @@ +package com.tashow.cloud.file.framework.rpc.config; + +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.Configuration; + +@Configuration(proxyBeanMethods = false) +@EnableFeignClients(clients = {}) +public class RpcConfiguration { +} diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/package-info.java new file mode 100644 index 0000000..0017bf6 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/package-info.java @@ -0,0 +1,4 @@ +/** + * 占位 + */ +package com.tashow.cloud.user.framework.rpc; diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/config/ConfigService.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/config/ConfigService.java similarity index 81% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/config/ConfigService.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/config/ConfigService.java index 64f72c6..ba077e5 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/config/ConfigService.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/config/ConfigService.java @@ -1,10 +1,9 @@ -package com.tashow.cloud.infra.service.config; +package com.tashow.cloud.file.service.config; import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigPageReqVO; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; - +import com.tashow.cloud.file.controller.admin.config.vo.ConfigPageReqVO; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigSaveReqVO; +import com.tashow.cloud.file.dal.dataobject.config.ConfigDO; import jakarta.validation.Valid; /** diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/config/ConfigServiceImpl.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/config/ConfigServiceImpl.java similarity index 83% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/config/ConfigServiceImpl.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/config/ConfigServiceImpl.java index 8696a7c..51e54f4 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/config/ConfigServiceImpl.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/config/ConfigServiceImpl.java @@ -1,21 +1,21 @@ -package com.tashow.cloud.infra.service.config; +package com.tashow.cloud.file.service.config; +import com.alibaba.nacos.shaded.com.google.common.annotations.VisibleForTesting; import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.infra.convert.config.ConfigConvert; -import com.tashow.cloud.infra.enums.config.ConfigTypeEnum; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigPageReqVO; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; -import com.tashow.cloud.infra.dal.mysql.config.ConfigMapper; -import com.google.common.annotations.VisibleForTesting; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigPageReqVO; +import com.tashow.cloud.file.controller.admin.config.vo.ConfigSaveReqVO; +import com.tashow.cloud.file.convert.config.ConfigConvert; +import com.tashow.cloud.file.dal.dataobject.config.ConfigDO; +import com.tashow.cloud.file.dal.mysql.config.ConfigMapper; +import com.tashow.cloud.file.enums.config.ConfigTypeEnum; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; -import jakarta.annotation.Resource; - import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.exception; -import static com.tashow.cloud.infraapi.enums.ErrorCodeConstants.*; +import static com.tashow.cloud.fileapi.enums.ErrorCodeConstants.*; + /** * 参数配置 Service 实现类 diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileConfigService.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileConfigService.java similarity index 82% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileConfigService.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileConfigService.java index d7e45f2..8a3f73c 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileConfigService.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileConfigService.java @@ -1,11 +1,10 @@ -package com.tashow.cloud.infra.service.file; +package com.tashow.cloud.file.service.file; import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigPageReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; - -import com.tashow.cloud.infra.framework.file.core.client.FileClient; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigPageReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigSaveReqVO; +import com.tashow.cloud.file.dal.dataobject.file.FileConfigDO; +import com.tashow.cloud.file.framework.file.core.client.FileClient; import jakarta.validation.Valid; /** diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileConfigServiceImpl.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileConfigServiceImpl.java similarity index 67% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileConfigServiceImpl.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileConfigServiceImpl.java index 56b27c0..8a91dad 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileConfigServiceImpl.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileConfigServiceImpl.java @@ -1,37 +1,31 @@ -package com.tashow.cloud.infra.service.file; +package com.tashow.cloud.file.service.file; import cn.hutool.core.io.resource.ResourceUtil; import cn.hutool.core.util.IdUtil; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.util.json.JsonUtils; import com.tashow.cloud.common.util.validation.ValidationUtils; -import com.tashow.cloud.infra.convert.file.FileConfigConvert; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigPageReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.config.FileConfigSaveReqVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileConfigDO; -import com.tashow.cloud.infra.dal.mysql.file.FileConfigMapper; -import com.tashow.cloud.infra.framework.file.core.client.FileClient; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactory; -import com.tashow.cloud.infra.framework.file.core.enums.FileStorageEnum; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import lombok.Getter; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigPageReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.config.FileConfigSaveReqVO; +import com.tashow.cloud.file.convert.file.FileConfigConvert; +import com.tashow.cloud.file.dal.dataobject.file.FileConfigDO; +import com.tashow.cloud.file.dal.mysql.file.FileConfigMapper; +import com.tashow.cloud.file.framework.file.core.client.FileClient; +import com.tashow.cloud.file.framework.file.core.client.FileClientConfig; +import com.tashow.cloud.file.framework.file.core.client.FileClientFactory; +import com.tashow.cloud.file.framework.file.core.enums.FileStorageEnum; +import jakarta.annotation.Resource; +import jakarta.validation.Validator; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; -import jakarta.annotation.Resource; -import jakarta.validation.Validator; -import java.time.Duration; import java.util.Map; -import java.util.Objects; import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.exception; -import static com.tashow.cloud.common.util.cache.CacheUtils.buildAsyncReloadingCache; -import static com.tashow.cloud.infraapi.enums.ErrorCodeConstants.FILE_CONFIG_DELETE_FAIL_MASTER; -import static com.tashow.cloud.infraapi.enums.ErrorCodeConstants.FILE_CONFIG_NOT_EXISTS; +import static com.tashow.cloud.fileapi.enums.ErrorCodeConstants.FILE_CONFIG_DELETE_FAIL_MASTER; +import static com.tashow.cloud.fileapi.enums.ErrorCodeConstants.FILE_CONFIG_NOT_EXISTS; /** * 文件配置 Service 实现类 @@ -48,21 +42,21 @@ public class FileConfigServiceImpl implements FileConfigService { /** * {@link FileClient} 缓存,通过它异步刷新 fileClientFactory */ - @Getter - private final LoadingCache clientCache = buildAsyncReloadingCache(Duration.ofSeconds(10L), - new CacheLoader() { - - @Override - public FileClient load(Long id) { - FileConfigDO config = Objects.equals(CACHE_MASTER_ID, id) ? - fileConfigMapper.selectByMaster() : fileConfigMapper.selectById(id); - if (config != null) { - fileClientFactory.createOrUpdateFileClient(config.getId(), config.getStorage(), config.getConfig()); - } - return fileClientFactory.getFileClient(null == config ? id : config.getId()); - } - - }); +// @Getter +// private final LoadingCache clientCache = buildAsyncReloadingCache(Duration.ofSeconds(10L), +// new CacheLoader() { +// +// @Override +// public FileClient load(Long id) { +// FileConfigDO config = Objects.equals(CACHE_MASTER_ID, id) ? +// fileConfigMapper.selectByMaster() : fileConfigMapper.selectById(id); +// if (config != null) { +// fileClientFactory.createOrUpdateFileClient(config.getId(), config.getStorage(), config.getConfig()); +// } +// return fileClientFactory.getFileClient(null == config ? id : config.getId()); +// } +// +// }); @Resource private FileClientFactory fileClientFactory; @@ -141,12 +135,12 @@ public class FileConfigServiceImpl implements FileConfigService { * @param master 是否主配置 */ private void clearCache(Long id, Boolean master) { - if (id != null) { - clientCache.invalidate(id); - } - if (Boolean.TRUE.equals(master)) { - clientCache.invalidate(CACHE_MASTER_ID); - } +// if (id != null) { +// clientCache.invalidate(id); +// } +// if (Boolean.TRUE.equals(master)) { +// clientCache.invalidate(CACHE_MASTER_ID); +// } } private FileConfigDO validateFileConfigExists(Long id) { @@ -178,12 +172,12 @@ public class FileConfigServiceImpl implements FileConfigService { @Override public FileClient getFileClient(Long id) { - return clientCache.getUnchecked(id); + return null;// clientCache.getUnchecked(id); } @Override public FileClient getMasterFileClient() { - return clientCache.getUnchecked(CACHE_MASTER_ID); + return null;// clientCache.getUnchecked(CACHE_MASTER_ID); } } diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileService.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileService.java similarity index 79% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileService.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileService.java index dfd26ba..4dafa01 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileService.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileService.java @@ -1,10 +1,10 @@ -package com.tashow.cloud.infra.service.file; +package com.tashow.cloud.file.service.file; import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FileCreateReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FilePageReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileDO; +import com.tashow.cloud.file.controller.admin.file.vo.file.FileCreateReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.file.FilePageReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import com.tashow.cloud.file.dal.dataobject.file.FileDO; /** * 文件 Service 接口 diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileServiceImpl.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileServiceImpl.java similarity index 82% rename from tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileServiceImpl.java rename to tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileServiceImpl.java index ace0d22..d7b8131 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/service/file/FileServiceImpl.java +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/file/FileServiceImpl.java @@ -1,24 +1,25 @@ -package com.tashow.cloud.infra.service.file; +package com.tashow.cloud.file.service.file; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.util.io.FileUtils; import com.tashow.cloud.common.util.object.BeanUtils; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FileCreateReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FilePageReqVO; -import com.tashow.cloud.infra.controller.admin.file.vo.file.FilePresignedUrlRespVO; -import com.tashow.cloud.infra.dal.dataobject.file.FileDO; -import com.tashow.cloud.infra.dal.mysql.file.FileMapper; -import com.tashow.cloud.infra.framework.file.core.client.FileClient; -import com.tashow.cloud.infra.framework.file.core.client.s3.FilePresignedUrlRespDTO; -import com.tashow.cloud.infra.framework.file.core.utils.FileTypeUtils; +import com.tashow.cloud.file.controller.admin.file.vo.file.FileCreateReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.file.FilePageReqVO; +import com.tashow.cloud.file.controller.admin.file.vo.file.FilePresignedUrlRespVO; +import com.tashow.cloud.file.dal.dataobject.file.FileDO; +import com.tashow.cloud.file.dal.mysql.file.FileMapper; +import com.tashow.cloud.file.framework.file.core.client.FileClient; +import com.tashow.cloud.file.framework.file.core.client.s3.FilePresignedUrlRespDTO; +import com.tashow.cloud.file.framework.file.core.utils.FileTypeUtils; import jakarta.annotation.Resource; import lombok.SneakyThrows; import org.springframework.stereotype.Service; import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.exception; -import static com.tashow.cloud.infraapi.enums.ErrorCodeConstants.FILE_NOT_EXISTS; +import static com.tashow.cloud.fileapi.enums.ErrorCodeConstants.FILE_NOT_EXISTS; + /** * 文件 Service 实现类 diff --git a/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/package-info.java b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/package-info.java new file mode 100644 index 0000000..68395ca --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/package-info.java @@ -0,0 +1 @@ +package com.tashow.cloud.file.service; \ No newline at end of file diff --git a/tashow-module/tashow-module-file/src/main/resources/application-local.yaml b/tashow-module/tashow-module-file/src/main/resources/application-local.yaml new file mode 100644 index 0000000..3aa0efb --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/resources/application-local.yaml @@ -0,0 +1,19 @@ +--- #################### 注册中心 + 配置中心相关配置 #################### + +spring: + cloud: + nacos: + server-addr: 43.139.42.137:8848 # Nacos 服务器地址 + username: nacos # Nacos 账号 + password: nacos # Nacos 密码 + discovery: # 【配置中心】配置项 + namespace: dev # 命名空间。这里使用 dev 开发环境 + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + metadata: + version: 1.0.0 # 服务实例的版本号,可用于灰度发布 + config: # 【注册中心】配置项 + namespace: dev # 命名空间。这里使用 dev 开发环境 + group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP + + + diff --git a/tashow-module/tashow-module-file/src/main/resources/application.yaml b/tashow-module/tashow-module-file/src/main/resources/application.yaml new file mode 100644 index 0000000..a88bcc6 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/resources/application.yaml @@ -0,0 +1,18 @@ +server: + port: 48090 +spring: + application: + name: file-server + + profiles: + active: local + + main: + allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。 + allow-bean-definition-overriding: true # 允许 Bean 覆盖,例如说 Feign 等会存在重复定义的服务 + + config: + import: + - optional:classpath:application-${spring.profiles.active}.yaml # 加载【本地】配置 + - optional:nacos:${spring.application.name}-${spring.profiles.active}.yaml # 加载【Nacos】的配置 + - optional:nacos:application.yaml # 加载【Nacos】的配置 diff --git a/tashow-module/tashow-module-file/src/main/resources/logback-spring.xml b/tashow-module/tashow-module-file/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..8c6b0f7 --- /dev/null +++ b/tashow-module/tashow-module-file/src/main/resources/logback-spring.xml @@ -0,0 +1,76 @@ + + + + + + + + + +       + + + ${PATTERN_DEFAULT} + + + + + + + + + + ${PATTERN_DEFAULT} + + + + ${LOG_FILE} + + + ${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz} + + ${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false} + + ${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB} + + ${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0} + + ${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30} + + + + + + 0 + + 256 + + + + + + + + ${PATTERN_DEFAULT} + + + + + + + + + + + + + + + + + + + + + + diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/codegen/CodegenController.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/codegen/CodegenController.java index df46f03..8ea40c2 100644 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/codegen/CodegenController.java +++ b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/codegen/CodegenController.java @@ -1,9 +1,5 @@ package com.tashow.cloud.infra.controller.admin.codegen; -import static com.tashow.cloud.common.pojo.CommonResult.success; -import static com.tashow.cloud.infra.framework.file.core.utils.FileTypeUtils.writeAttachment; -import static com.tashow.cloud.security.security.core.util.SecurityFrameworkUtils.getLoginUserId; - import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.ZipUtil; import com.tashow.cloud.common.pojo.CommonResult; @@ -23,14 +19,19 @@ import com.tashow.cloud.infra.service.codegen.CodegenService; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.List; import java.util.Map; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; + +import static com.tashow.cloud.common.pojo.CommonResult.success; +import static com.tashow.cloud.common.util.io.FileTypeUtils.writeAttachment; +import static com.tashow.cloud.security.security.core.util.SecurityFrameworkUtils.getLoginUserId; /** 管理后台 - 代码生成器 */ @RestController diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/ConfigController.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/ConfigController.java deleted file mode 100644 index 48d778d..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/ConfigController.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.tashow.cloud.infra.controller.admin.config; - -import static com.tashow.cloud.common.exception.util.ServiceExceptionUtil.exception; -import static com.tashow.cloud.common.pojo.CommonResult.success; -import static com.tashow.cloud.web.apilog.core.enums.OperateTypeEnum.EXPORT; - -import com.tashow.cloud.common.pojo.CommonResult; -import com.tashow.cloud.common.pojo.PageParam; -import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.excel.excel.core.util.ExcelUtils; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigPageReqVO; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigRespVO; -import com.tashow.cloud.infra.controller.admin.config.vo.ConfigSaveReqVO; -import com.tashow.cloud.infra.convert.config.ConfigConvert; -import com.tashow.cloud.infra.dal.dataobject.config.ConfigDO; -import com.tashow.cloud.infra.service.config.ConfigService; -import com.tashow.cloud.infraapi.enums.ErrorCodeConstants; -import com.tashow.cloud.web.apilog.core.annotation.ApiAccessLog; -import jakarta.annotation.Resource; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.Valid; -import java.io.IOException; -import java.util.List; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -/** 管理后台 - 参数配置 */ -@RestController -@RequestMapping("/infra/config") -@Validated -public class ConfigController { - - @Resource private ConfigService configService; - - /** 创建参数配置 */ - @PostMapping("/create") - @PreAuthorize("@ss.hasPermission('infra:config:create')") - public CommonResult createConfig(@Valid @RequestBody ConfigSaveReqVO createReqVO) { - return success(configService.createConfig(createReqVO)); - } - - /** 修改参数配置 */ - @PutMapping("/update") - @PreAuthorize("@ss.hasPermission('infra:config:update')") - public CommonResult updateConfig(@Valid @RequestBody ConfigSaveReqVO updateReqVO) { - configService.updateConfig(updateReqVO); - return success(true); - } - - /** 删除参数配置 */ - @DeleteMapping("/delete") - @PreAuthorize("@ss.hasPermission('infra:config:delete')") - public CommonResult deleteConfig(@RequestParam("id") Long id) { - configService.deleteConfig(id); - return success(true); - } - - /** 获得参数配置 */ - @GetMapping(value = "/get") - @PreAuthorize("@ss.hasPermission('infra:config:query')") - public CommonResult getConfig(@RequestParam("id") Long id) { - return success(ConfigConvert.INSTANCE.convert(configService.getConfig(id))); - } - - /** 根据参数键名查询参数值", description = "不可见的配置,不允许返回给前端 */ - @GetMapping(value = "/get-value-by-key") - public CommonResult getConfigKey(@RequestParam("key") String key) { - ConfigDO config = configService.getConfigByKey(key); - if (config == null) { - return success(null); - } - if (!config.getVisible()) { - throw exception(ErrorCodeConstants.CONFIG_GET_VALUE_ERROR_IF_VISIBLE); - } - return success(config.getValue()); - } - - /** 获取参数配置分页 */ - @GetMapping("/page") - @PreAuthorize("@ss.hasPermission('infra:config:query')") - public CommonResult> getConfigPage(@Valid ConfigPageReqVO pageReqVO) { - PageResult page = configService.getConfigPage(pageReqVO); - return success(ConfigConvert.INSTANCE.convertPage(page)); - } - - /** 导出参数配置 */ - @GetMapping("/export") - @PreAuthorize("@ss.hasPermission('infra:config:export')") - @ApiAccessLog(operateType = EXPORT) - public void exportConfig(ConfigPageReqVO exportReqVO, HttpServletResponse response) - throws IOException { - exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = configService.getConfigPage(exportReqVO).getList(); - // 输出 - ExcelUtils.write( - response, "参数配置.xls", "数据", ConfigRespVO.class, ConfigConvert.INSTANCE.convertList(list)); - } -} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigPageReqVO.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigPageReqVO.java deleted file mode 100644 index 961e6f2..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigPageReqVO.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.tashow.cloud.infra.controller.admin.config.vo; - -import static com.tashow.cloud.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; - -import com.tashow.cloud.common.pojo.PageParam; -import java.time.LocalDateTime; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.ToString; -import org.springframework.format.annotation.DateTimeFormat; - -/** 管理后台 - 参数配置分页 Request VO */ -@Data -@EqualsAndHashCode(callSuper = true) -@ToString(callSuper = true) -public class ConfigPageReqVO extends PageParam { - - /** 数据源名称,模糊匹配 */ - private String name; - - /** 参数键名,模糊匹配 */ - private String key; - - /** 参数类型,参见 SysConfigTypeEnum 枚举 */ - private Integer type; - - /** 创建时间 */ - @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime[] createTime; -} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigRespVO.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigRespVO.java deleted file mode 100644 index 7022a5c..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigRespVO.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.tashow.cloud.infra.controller.admin.config.vo; - -import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; -import com.alibaba.excel.annotation.ExcelProperty; -import com.tashow.cloud.excel.excel.core.annotations.DictFormat; -import com.tashow.cloud.excel.excel.core.convert.DictConvert; -import com.tashow.cloud.infraapi.enums.DictTypeConstants; -import java.time.LocalDateTime; -import lombok.Data; - -/** 管理后台 - 参数配置信息 Response VO */ -@Data -@ExcelIgnoreUnannotated -public class ConfigRespVO { - - /** 参数配置序号" */ - @ExcelProperty("参数配置序号") - private Long id; - - /** 参数分类" */ - @ExcelProperty("参数分类") - private String category; - - /** 参数名称", example = "数据库名 */ - @ExcelProperty("参数名称") - private String name; - - /** 参数键名" */ - @ExcelProperty("参数键名") - private String key; - - /** 参数键值" */ - @ExcelProperty("参数键值") - private String value; - - /** 参数类型,参见 SysConfigTypeEnum 枚举" */ - @ExcelProperty(value = "参数类型", converter = DictConvert.class) - @DictFormat(DictTypeConstants.CONFIG_TYPE) - private Integer type; - - /** 是否可见" */ - @ExcelProperty(value = "是否可见", converter = DictConvert.class) - @DictFormat(DictTypeConstants.BOOLEAN_STRING) - private Boolean visible; - - /** 备注 */ - @ExcelProperty("备注") - private String remark; - - /** 创建时间", example = "时间戳格式 */ - @ExcelProperty("创建时间") - private LocalDateTime createTime; -} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigSaveReqVO.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigSaveReqVO.java deleted file mode 100644 index 0e91f35..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigSaveReqVO.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.tashow.cloud.infra.controller.admin.config.vo; - -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; -import jakarta.validation.constraints.Size; -import lombok.Data; - -/** 管理后台 - 参数配置创建/修改 Request VO */ -@Data -public class ConfigSaveReqVO { - - /** 参数配置序号 */ - private Long id; - - /** 参数分组" */ - @NotEmpty(message = "参数分组不能为空") - @Size(max = 50, message = "参数名称不能超过 50 个字符") - private String category; - - /** 参数名称", example = "数据库名 */ - @NotBlank(message = "参数名称不能为空") - @Size(max = 100, message = "参数名称不能超过 100 个字符") - private String name; - - /** 参数键名" */ - @NotBlank(message = "参数键名长度不能为空") - @Size(max = 100, message = "参数键名长度不能超过 100 个字符") - private String key; - - /** 参数键值" */ - @NotBlank(message = "参数键值不能为空") - @Size(max = 500, message = "参数键值长度不能超过 500 个字符") - private String value; - - /** 是否可见" */ - @NotNull(message = "是否可见不能为空") - private Boolean visible; - - /** 备注 */ - private String remark; -} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.http b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.http deleted file mode 100644 index 14b6228..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.http +++ /dev/null @@ -1,45 +0,0 @@ -### 请求 /infra/file-config/create 接口 => 成功 -POST {{baseUrl}}/infra/file-config/create -Content-Type: application/json -tenant-id: {{adminTenantId}} -Authorization: Bearer {{token}} - -{ - "name": "S3 - 七牛云", - "remark": "", - "storage": 20, - "config": { - "accessKey": "b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8", - "accessSecret": "kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP", - "bucket": "ruoyi-vue-pro", - "endpoint": "s3-cn-south-1.qiniucs.com", - "domain": "http://test.yudao.iocoder.cn", - "region": "oss-cn-beijing" - } -} - -### 请求 /infra/file-config/update 接口 => 成功 -PUT {{baseUrl}}/infra/file-config/update -Content-Type: application/json -tenant-id: {{adminTenantId}} -Authorization: Bearer {{token}} - -{ - "id": 2, - "name": "S3 - 七牛云", - "remark": "", - "config": { - "accessKey": "b7yvuhBSAGjmtPhMFcn9iMOxUOY_I06cA_p0ZUx8", - "accessSecret": "kXM1l5ia1RvSX3QaOEcwI3RLz3Y2rmNszWonKZtP", - "bucket": "ruoyi-vue-pro", - "endpoint": "s3-cn-south-1.qiniucs.com", - "domain": "http://test.yudao.iocoder.cn", - "region": "oss-cn-beijing" - } -} - -### 请求 /infra/file-config/test 接口 => 成功 -GET {{baseUrl}}/infra/file-config/test?id=2 -Content-Type: application/json -tenant-id: {{adminTenantId}} -Authorization: Bearer {{token}} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/config/YudaoFileAutoConfiguration.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/config/YudaoFileAutoConfiguration.java deleted file mode 100644 index 68ba8e7..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/config/YudaoFileAutoConfiguration.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.tashow.cloud.infra.framework.file.config; - -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactory; -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactoryImpl; -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactory; -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactoryImpl; -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactory; -import com.tashow.cloud.infra.framework.file.core.client.FileClientFactoryImpl; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 文件配置类 - * - * @author 芋道源码 - */ -@Configuration(proxyBeanMethods = false) -public class YudaoFileAutoConfiguration { - - @Bean - public FileClientFactory fileClientFactory() { - return new FileClientFactoryImpl(); - } - -} diff --git a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/enums/FileStorageEnum.java b/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/enums/FileStorageEnum.java deleted file mode 100644 index d51b847..0000000 --- a/tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/enums/FileStorageEnum.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.tashow.cloud.infra.framework.file.core.enums; - -import cn.hutool.core.util.ArrayUtil; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClient; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClient; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.local.LocalFileClient; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClient; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClient; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.FileClient; -import com.tashow.cloud.infra.framework.file.core.client.FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClient; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClient; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.local.LocalFileClient; -import com.tashow.cloud.infra.framework.file.core.client.local.LocalFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClient; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClient; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClient; -import com.tashow.cloud.infra.framework.file.core.client.db.DBFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClient; -import com.tashow.cloud.infra.framework.file.core.client.ftp.FtpFileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.local.LocalFileClient; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClient; -import com.tashow.cloud.infra.framework.file.core.client.s3.S3FileClientConfig; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClient; -import com.tashow.cloud.infra.framework.file.core.client.sftp.SftpFileClientConfig; -import lombok.AllArgsConstructor; -import lombok.Getter; - -/** - * 文件存储器枚举 - * - * @author 芋道源码 - */ -@AllArgsConstructor -@Getter -public enum FileStorageEnum { - - DB(1, DBFileClientConfig.class, DBFileClient.class), - - LOCAL(10, LocalFileClientConfig.class, LocalFileClient.class), - FTP(11, FtpFileClientConfig.class, FtpFileClient.class), - SFTP(12, SftpFileClientConfig.class, SftpFileClient.class), - - S3(20, S3FileClientConfig.class, S3FileClient.class), - ; - - /** - * 存储器 - */ - private final Integer storage; - - /** - * 配置类 - */ - private final Class configClass; - /** - * 客户端类 - */ - private final Class clientClass; - - public static FileStorageEnum getByStorage(Integer storage) { - return ArrayUtil.firstMatch(o -> o.getStorage().equals(storage), values()); - } - -} diff --git a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/notify/PayNotifyJob.java b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/notify/PayNotifyJob.java index c2e46a7..45c1c64 100644 --- a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/notify/PayNotifyJob.java +++ b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/notify/PayNotifyJob.java @@ -2,7 +2,6 @@ package com.tashow.cloud.pay.job.notify; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.pay.service.notify.PayNotifyService; -import com.tashow.cloud.tenant.core.job.TenantJob; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -21,7 +20,6 @@ public class PayNotifyJob { private PayNotifyService payNotifyService; // @XxlJob("payNotifyJob") - @TenantJob // 多租户 public String execute() throws Exception { int notifyCount = payNotifyService.executeNotify(); log.info("[execute][执行支付通知 ({}) 个]", notifyCount); diff --git a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderExpireJob.java b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderExpireJob.java index 3947d9e..a66c7f5 100644 --- a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderExpireJob.java +++ b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderExpireJob.java @@ -2,7 +2,6 @@ package com.tashow.cloud.pay.job.order; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.pay.service.order.PayOrderService; -import com.tashow.cloud.tenant.core.job.TenantJob; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -22,7 +21,6 @@ public class PayOrderExpireJob { private PayOrderService orderService; // @XxlJob("payOrderExpireJob") - @TenantJob // 多租户 public String execute(String param) { int count = orderService.expireOrder(); log.info("[execute][支付过期 ({}) 个]", count); diff --git a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderSyncJob.java b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderSyncJob.java index 0ba6d51..6136e00 100644 --- a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderSyncJob.java +++ b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/order/PayOrderSyncJob.java @@ -2,7 +2,6 @@ package com.tashow.cloud.pay.job.order; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.pay.service.order.PayOrderService; -import com.tashow.cloud.tenant.core.job.TenantJob; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -34,7 +33,6 @@ public class PayOrderSyncJob { private PayOrderService orderService; // @XxlJob("payOrderSyncJob") - @TenantJob // 多租户 public String execute() { LocalDateTime minCreateTime = LocalDateTime.now().minus(CREATE_TIME_DURATION_BEFORE); int count = orderService.syncOrder(minCreateTime); diff --git a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/refund/PayRefundSyncJob.java b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/refund/PayRefundSyncJob.java index 39ae12f..d9e532b 100644 --- a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/refund/PayRefundSyncJob.java +++ b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/refund/PayRefundSyncJob.java @@ -2,7 +2,6 @@ package com.tashow.cloud.pay.job.refund; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.pay.service.refund.PayRefundService; -import com.tashow.cloud.tenant.core.job.TenantJob; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -22,7 +21,6 @@ public class PayRefundSyncJob { private PayRefundService refundService; // @XxlJob("payRefundSyncJob") - @TenantJob // 多租户 public String execute() { int count = refundService.syncRefund(); log.info("[execute][同步退款订单 ({}) 个]", count); diff --git a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/transfer/PayTransferSyncJob.java b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/transfer/PayTransferSyncJob.java index 2ca994c..6895e51 100644 --- a/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/transfer/PayTransferSyncJob.java +++ b/tashow-module/tashow-module-pay/src/main/java/com/tashow/cloud/pay/job/transfer/PayTransferSyncJob.java @@ -2,7 +2,6 @@ package com.tashow.cloud.pay.job.transfer; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.pay.service.transfer.PayTransferService; -import com.tashow.cloud.tenant.core.job.TenantJob; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -22,7 +21,6 @@ public class PayTransferSyncJob { private PayTransferService transferService; // @XxlJob("payTransferSyncJob") - @TenantJob // 多租户 public String execute(String param) { int count = transferService.syncTransfer(); log.info("[execute][同步转账订单 ({}) 个]", count); diff --git a/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/job/demo/DemoJob.java b/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/job/demo/DemoJob.java index 39b8829..7d03431 100644 --- a/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/job/demo/DemoJob.java +++ b/tashow-module/tashow-module-system/src/main/java/com/tashow/cloud/system/job/demo/DemoJob.java @@ -1,6 +1,5 @@ package com.tashow.cloud.system.job.demo; -import com.tashow.cloud.tenant.core.job.TenantJob; import com.xxl.job.core.handler.annotation.XxlJob; import org.springframework.stereotype.Component; @@ -8,7 +7,6 @@ import org.springframework.stereotype.Component; public class DemoJob { @XxlJob("demoJob") - @TenantJob public void execute() { System.out.println("美滋滋"); } diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java index de11362..c31152c 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/TradeOrderController.java @@ -3,8 +3,6 @@ package com.tashow.cloud.trade.controller.admin.order; import cn.hutool.core.collection.CollUtil; import com.tashow.cloud.common.pojo.CommonResult; import com.tashow.cloud.common.pojo.PageResult; -import com.tashow.cloud.userapi.api.user.UserMemberApi; -import com.tashow.cloud.userapi.api.user.dto.UserMemberRespDTO; import com.tashow.cloud.productapi.api.product.ProdApi; import com.tashow.cloud.productapi.api.product.dto.ProdDO; import com.tashow.cloud.trade.controller.admin.order.vo.*; @@ -16,10 +14,12 @@ import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO; import com.tashow.cloud.trade.service.order.TradeOrderLogService; import com.tashow.cloud.trade.service.order.TradeOrderQueryService; import com.tashow.cloud.trade.service.order.TradeOrderUpdateService; +import com.tashow.cloud.userapi.api.user.UserMemberApi; +import com.tashow.cloud.userapi.api.user.dto.UserMemberRespDTO; import jakarta.annotation.Resource; -import jakarta.annotation.security.PermitAll; import jakarta.validation.Valid; import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -48,7 +48,7 @@ public class TradeOrderController { private TradeOrderLogService tradeOrderLogService; @Resource - private UserMemberApi memberUserApi; + private UserMemberApi userMemberApi; @Resource private ProdApi prodApi; @@ -59,8 +59,7 @@ public class TradeOrderController { * @return */ @GetMapping("/page") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:query')") public CommonResult> getOrderPage(@Valid TradeOrderPageReqVO reqVO) { // 查询订单 PageResult pageResult = tradeOrderQueryService.getOrderPage(reqVO); @@ -71,7 +70,7 @@ public class TradeOrderController { List orderItems = tradeOrderQueryService.getOrderItemListByOrderId( convertSet(pageResult.getList(), TradeOrderDO::getId)); //查询用户信息 - Map userMap = memberUserApi.getUserMap(convertList(pageResult.getList(), TradeOrderDO::getUserId)); + Map userMap = userMemberApi.getUserMap(convertList(pageResult.getList(), TradeOrderDO::getUserId)); // 最终组合 return success(TradeOrderConvert.INSTANCE.convertPage(pageResult, orderItems,userMap)); } @@ -83,8 +82,7 @@ public class TradeOrderController { * @return */ @GetMapping("/get-detail") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:query')") public CommonResult getOrderDetail(@RequestParam("id") Long id) { // 查询订单 TradeOrderDO order = tradeOrderQueryService.getOrder(id); @@ -93,9 +91,11 @@ public class TradeOrderController { } // 查询订单项 List orderItems = tradeOrderQueryService.getOrderItemListByOrderId(id); - + //查询订单日志 List orderLogs = tradeOrderLogService.getOrderLogListByOrderId(id); - return success(TradeOrderConvert.INSTANCE.convert(order, orderItems, orderLogs)); + //查询用户信息 + Map userMap = userMemberApi.getUserMap(List.of(order.getId())); + return success(TradeOrderConvert.INSTANCE.convert(order, orderItems,userMap, orderLogs)); } /** @@ -104,8 +104,7 @@ public class TradeOrderController { * @return */ @GetMapping("/summary") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:query')") public CommonResult getOrderSummary() { return success(tradeOrderQueryService.getOrderSummary()); } @@ -116,8 +115,7 @@ public class TradeOrderController { * @return */ @PutMapping("/cancel") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:update')") public CommonResult cancel(@RequestBody TradeOrderCancelReqVo reqVO) { return success(tradeOrderUpdateService.cancelOrderByAdmin(reqVO)); } @@ -128,8 +126,7 @@ public class TradeOrderController { */ @PutMapping("/acceptConfirm") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:update')") public CommonResult acceptConfirm(@RequestParam("id") Long id) { tradeOrderUpdateService.acceptConfirmOrderByAdmin(id); return success(true); @@ -141,8 +138,7 @@ public class TradeOrderController { * @return */ @PutMapping("/reportServe") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:update')") public CommonResult reportServe(@RequestParam("id") Long id) { tradeOrderUpdateService.reportServeOrderByAdmin(id); return success(true); @@ -150,8 +146,7 @@ public class TradeOrderController { // 订单备注 @PutMapping("/update-remark") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:update')") + @PreAuthorize("@ss.hasPermission('trade:order:update')") public CommonResult updateOrderRemark(@Valid @RequestBody TradeOrderRemarkReqVO reqVO) { tradeOrderUpdateService.updateOrderRemark(reqVO); return success(true); @@ -162,8 +157,7 @@ public class TradeOrderController { * @return */ @GetMapping("/fastPhoto") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:query')") public CommonResult fastPhoto(@Valid TradeOrderFastPhotoReqVo reqVo) { //获取交易订单详情 TradeOrderItemDO orderItem = tradeOrderQueryService.getOrderItem(reqVo.getItemId()); @@ -178,8 +172,7 @@ public class TradeOrderController { * @return */ @GetMapping("/subTimeLog/{id}") - @PermitAll -// @PreAuthorize("@ss.hasPermission('trade:order:query')") + @PreAuthorize("@ss.hasPermission('trade:order:query')") public CommonResult> subTimeLog(@PathVariable("id") Long id) { //获取订单预约时间修改列表 List subLogDO = tradeOrderQueryService.getSubTimeLogList(id); diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java index 4fa0ed0..8c940c9 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderDetailRespVO.java @@ -29,10 +29,12 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO{ //商家备注 private String merchantRemark; //退款时间 + @JsonSerialize(using = StringLocalDateTimeSerializer.class) private LocalDateTime refundTime; - //保障时间 + //售后保障时间 + @JsonSerialize(using = StringLocalDateTimeSerializer.class) private LocalDateTime propertyTime; - //保障状态 + //售后保障状态 private Integer propertyStatus; //订单金额 private Integer price; @@ -81,14 +83,12 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO{ private String shopName; //店铺logo private String shopLogo; - //商品id private Long spuId; //skuId private Long skuId; //商品图片 private String picUrl; - //商品名称 private String spuName; //商品规格 @@ -97,8 +97,6 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO{ private Long orderCategoryId; //订单类目名称 private String orderCategoryName; - - // 购买的商品数量 private Integer count; // 订单总价 @@ -119,7 +117,6 @@ public class TradeOrderDetailRespVO extends TradeOrderBaseVO{ private Integer handedPrice; //成本价 private Integer expensePrice; - //服务保障列表 private String properties; //服务内容 diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderSubTimeListRespVo.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderSubTimeListRespVo.java deleted file mode 100644 index bf5abaa..0000000 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderSubTimeListRespVo.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.tashow.cloud.trade.controller.admin.order.vo; - -import com.tashow.cloud.trade.dal.dataobject.order.TradeOrderSubLogDO; -import lombok.Data; - -import java.util.List; - -@Data -public class TradeOrderSubTimeListRespVo { - - private List subTimeList; -} diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java index a5e55c0..81f05e1 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/convert/order/TradeOrderConvert.java @@ -93,9 +93,9 @@ public interface TradeOrderConvert { //endregion //region 订单详情 - default TradeOrderDetailRespVO convert(TradeOrderDO order, List orderItems, List orderLogs) { + default TradeOrderDetailRespVO convert(TradeOrderDO order, List orderItems,Map userMap, List orderLogs) { //订单基本信息 - TradeOrderDetailRespVO orderVO = convert2(order, orderItems, orderLogs); + TradeOrderDetailRespVO orderVO = convertDetail(order,userMap.get(order.getUserId()), orderItems, orderLogs); //计算商品到手价 orderVO.getItems().stream().forEach(item -> { item.setHandedPrice(item.getPrice() - item.getDiscountPrice()); @@ -122,7 +122,13 @@ public interface TradeOrderConvert { } return orderVO; } - TradeOrderDetailRespVO convert2(TradeOrderDO order, List items, List statusList); + @Mappings({ + @Mapping(target = "id",source = "order.id"), + @Mapping(target = "createTime",source = "order.createTime"), + @Mapping(source = "userMemberRespDTO.nickname", target = "userNickName"), + @Mapping(source = "userMemberRespDTO.avatar", target = "userAvatar"), + }) + TradeOrderDetailRespVO convertDetail(TradeOrderDO order,UserMemberRespDTO userMemberRespDTO,List items, List statusList); //endregion diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java index 9dd802c..8d633bc 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderDO.java @@ -3,7 +3,7 @@ package com.tashow.cloud.trade.dal.dataobject.order; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; +import com.tashow.cloud.tenant.core.db.TenantBaseDO; import lombok.*; import java.time.LocalDateTime; @@ -21,7 +21,7 @@ import java.time.LocalDateTime; @Builder @NoArgsConstructor @AllArgsConstructor -public class TradeOrderDO extends BaseDO { +public class TradeOrderDO extends TenantBaseDO { /** * 订单编号,主键自增 @@ -81,6 +81,10 @@ public class TradeOrderDO extends BaseDO { * 取消原因 */ private String cancelReason; + /** + * 取消备注 + */ + private String cancelRemark; /** * 商家编号 */ @@ -174,10 +178,19 @@ public class TradeOrderDO extends BaseDO { * 退款状态 (枚举 TradeOrderRefundStatusEnum) */ private Integer refundStatus; + + /** + * 订单金额,单位:分 + */ + private Integer price; /** * 退款金额,单位:分 */ private Integer refundPrice; + /** + * 退款金额,单位:分 + */ + private Integer discountPrice; /** * 退款时间 */ diff --git a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java index b2e6a83..e10c4f7 100644 --- a/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java +++ b/tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/dal/dataobject/order/TradeOrderItemDO.java @@ -3,7 +3,7 @@ package com.tashow.cloud.trade.dal.dataobject.order; import com.baomidou.mybatisplus.annotation.KeySequence; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.tashow.cloud.mybatis.mybatis.core.dataobject.BaseDO; +import com.tashow.cloud.tenant.core.db.TenantBaseDO; import lombok.*; import java.time.LocalDateTime; @@ -21,7 +21,7 @@ import java.time.LocalDateTime; @Builder @NoArgsConstructor @AllArgsConstructor -public class TradeOrderItemDO extends BaseDO { +public class TradeOrderItemDO extends TenantBaseDO { /** * 编号 diff --git a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/controller/app/auth/AppAuthController.java b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/controller/app/auth/AppAuthController.java index 8fcd084..7c2ebc0 100644 --- a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/controller/app/auth/AppAuthController.java +++ b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/controller/app/auth/AppAuthController.java @@ -3,11 +3,11 @@ package com.tashow.cloud.user.controller.app.auth; import cn.hutool.core.util.StrUtil; import com.tashow.cloud.common.enums.UserTypeEnum; import com.tashow.cloud.common.pojo.CommonResult; +import com.tashow.cloud.user.controller.app.auth.vo.*; import com.tashow.cloud.security.security.config.SecurityProperties; import com.tashow.cloud.security.security.core.util.SecurityFrameworkUtils; import com.tashow.cloud.systemapi.api.social.SocialClientApi; import com.tashow.cloud.systemapi.api.social.dto.SocialWxJsapiSignatureRespDTO; -import com.tashow.cloud.user.controller.app.auth.vo.*; import com.tashow.cloud.user.convert.auth.AuthConvert; import com.tashow.cloud.user.service.auth.MemberAuthService; import jakarta.annotation.Resource; diff --git a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/convert/auth/AuthConvert.java b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/convert/auth/AuthConvert.java index 8ad48b6..55e9bb7 100644 --- a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/convert/auth/AuthConvert.java +++ b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/convert/auth/AuthConvert.java @@ -1,5 +1,6 @@ package com.tashow.cloud.user.convert.auth; +import com.tashow.cloud.user.controller.app.auth.vo.*; import com.tashow.cloud.systemapi.api.oauth2.dto.OAuth2AccessTokenRespDTO; import com.tashow.cloud.systemapi.api.sms.dto.code.SmsCodeSendReqDTO; import com.tashow.cloud.systemapi.api.sms.dto.code.SmsCodeUseReqDTO; @@ -8,7 +9,6 @@ import com.tashow.cloud.systemapi.api.social.dto.SocialUserBindReqDTO; import com.tashow.cloud.systemapi.api.social.dto.SocialUserUnbindReqDTO; import com.tashow.cloud.systemapi.api.social.dto.SocialWxJsapiSignatureRespDTO; import com.tashow.cloud.systemapi.enums.sms.SmsSceneEnum; -import com.tashow.cloud.user.controller.app.auth.vo.*; import com.tashow.cloud.user.controller.app.user.vo.AppMemberUserResetPasswordReqVO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; diff --git a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/auth/MemberAuthServiceImpl.java b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/auth/MemberAuthServiceImpl.java index b06bc6e..334119f 100644 --- a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/auth/MemberAuthServiceImpl.java +++ b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/auth/MemberAuthServiceImpl.java @@ -6,6 +6,7 @@ import com.tashow.cloud.common.enums.TerminalEnum; import com.tashow.cloud.common.enums.UserTypeEnum; import com.tashow.cloud.common.util.monitor.TracerUtils; import com.tashow.cloud.common.util.servlet.ServletUtils; +import com.tashow.cloud.user.controller.app.auth.vo.*; import com.tashow.cloud.systemapi.api.logger.LoginLogApi; import com.tashow.cloud.systemapi.api.logger.dto.LoginLogCreateReqDTO; import com.tashow.cloud.systemapi.api.oauth2.OAuth2TokenApi; @@ -22,7 +23,6 @@ import com.tashow.cloud.systemapi.enums.logger.LoginResultEnum; import com.tashow.cloud.systemapi.enums.oauth2.OAuth2ClientConstants; import com.tashow.cloud.systemapi.enums.sms.SmsSceneEnum; import com.tashow.cloud.systemapi.enums.social.SocialTypeEnum; -import com.tashow.cloud.user.controller.app.auth.vo.*; import com.tashow.cloud.user.convert.auth.AuthConvert; import com.tashow.cloud.user.dal.dataobject.user.UserLoginDO; import com.tashow.cloud.user.service.user.UserLoginService; diff --git a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/user/UserLoginServiceImpl.java b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/user/UserLoginServiceImpl.java index 5ca74b6..fdcaeb0 100644 --- a/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/user/UserLoginServiceImpl.java +++ b/tashow-module/tashow-module-user/src/main/java/com/tashow/cloud/user/service/user/UserLoginServiceImpl.java @@ -12,6 +12,7 @@ import com.tashow.cloud.common.enums.CommonStatusEnum; import com.tashow.cloud.common.enums.UserTypeEnum; import com.tashow.cloud.common.pojo.PageResult; import com.tashow.cloud.common.util.object.BeanUtils; +import com.tashow.cloud.user.controller.app.user.vo.*; import com.tashow.cloud.systemapi.api.sms.SmsCodeApi; import com.tashow.cloud.systemapi.api.sms.dto.code.SmsCodeUseReqDTO; import com.tashow.cloud.systemapi.api.social.SocialClientApi; @@ -19,7 +20,6 @@ import com.tashow.cloud.systemapi.api.social.dto.SocialWxPhoneNumberInfoRespDTO; import com.tashow.cloud.systemapi.enums.sms.SmsSceneEnum; import com.tashow.cloud.user.controller.admin.user.vo.UserLoginPageReqVO; import com.tashow.cloud.user.controller.admin.user.vo.MemberUserUpdateReqVO; -import com.tashow.cloud.user.controller.app.user.vo.*; import com.tashow.cloud.user.convert.auth.AuthConvert; import com.tashow.cloud.user.convert.user.MemberUserConvert; import com.tashow.cloud.user.dal.dataobject.user.UserLoginDO;