From fd5a68c27e216671dfae6f47d300bcb06f3362ff Mon Sep 17 00:00:00 2001
From: liwq <122639653@qq.com>
Date: Tue, 4 Nov 2025 16:13:28 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6=E6=9C=8D?=
=?UTF-8?q?=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sql/mysql/order.sql | 80 +++++++------
tashow-dependencies/pom.xml | 10 ++
tashow-feign/pom.xml | 1 +
tashow-feign/tashow-file-api/pom.xml | 40 +++++++
.../cloud/fileapi/api/config/ConfigApi.java | 18 +++
.../cloud/fileapi/api/file/FileApi.java | 62 ++++++++++
.../api/file/dto/FileCreateReqDTO.java | 21 ++++
.../cloud/fileapi/api/package-info.java | 4 +
.../cloud/fileapi/enums/ApiConstants.java | 24 ++++
.../fileapi/enums/ErrorCodeConstants.java | 72 ++++++++++++
.../api/user/dto/UserMemberRespDTO.java | 2 +
tashow-framework/tashow-common/pom.xml | 4 +
.../cloud/common/util/io}/FileTypeUtils.java | 32 +----
tashow-module/pom.xml | 1 +
tashow-module/tashow-module-file/Dockerfile | 19 +++
tashow-module/tashow-module-file/pom.xml | 111 ++++++++++++++++++
.../cloud/file/FileServerApplication.java | 16 +++
.../cloud/file}/api/config/ConfigApiImpl.java | 8 +-
.../cloud/file}/api/file/FileApiImpl.java | 11 +-
.../tashow/cloud/file/api/package-info.java | 1 +
.../admin/config/ConfigController.java | 101 ++++++++++++++++
.../admin/config/vo/ConfigPageReqVO.java | 35 ++++++
.../admin/config/vo/ConfigRespVO.java | 40 +++++++
.../admin/config/vo/ConfigSaveReqVO.java | 45 +++++++
.../admin/file/FileConfigController.java | 24 ++--
.../controller/admin/file/FileController.java | 15 +--
.../file/vo/config/FileConfigPageReqVO.java | 9 +-
.../file/vo/config/FileConfigRespVO.java | 7 +-
.../file/vo/config/FileConfigSaveReqVO.java | 5 +-
.../admin/file/vo/file/FileCreateReqVO.java | 2 +-
.../admin/file/vo/file/FilePageReqVO.java | 9 +-
.../file/vo/file/FilePresignedUrlRespVO.java | 2 +-
.../admin/file/vo/file/FileRespVO.java | 5 +-
.../admin/file/vo/file/FileUploadReqVO.java | 2 +-
.../file/controller/admin/package-info.java | 1 +
.../app/file/AppFileController.java | 18 ++-
.../app/file/vo/AppFileUploadReqVO.java | 2 +-
.../file/controller/app/package-info.java | 1 +
.../cloud/file/controller/package-info.java | 6 +
.../file}/convert/config/ConfigConvert.java | 8 +-
.../file}/convert/file/FileConfigConvert.java | 6 +-
.../cloud/file/convert/package-info.java | 6 +
.../file}/dal/dataobject/config/ConfigDO.java | 8 +-
.../dal/dataobject/file/FileConfigDO.java | 20 ++--
.../dal/dataobject/file/FileContentDO.java | 7 +-
.../file}/dal/dataobject/file/FileDO.java | 4 +-
.../file/dal/dataobject/package-info.java | 1 +
.../file}/dal/mysql/config/ConfigMapper.java | 8 +-
.../dal/mysql/file/FileConfigMapper.java | 8 +-
.../dal/mysql/file/FileContentMapper.java | 6 +-
.../file}/dal/mysql/file/FileMapper.java | 8 +-
.../cloud/file/dal/mysql/package-info.java | 1 +
.../tashow/cloud/file/dal/package-info.java | 9 ++
.../file}/enums/config/ConfigTypeEnum.java | 2 +-
.../tashow/cloud/file/enums/package-info.java | 4 +
.../file/config/FileAutoConfiguration.java | 21 ++++
.../file/core/client/AbstractFileClient.java | 2 +-
.../file/core/client/FileClient.java | 7 +-
.../file/core/client/FileClientConfig.java | 2 +-
.../file/core/client/FileClientFactory.java | 7 +-
.../core/client/FileClientFactoryImpl.java | 6 +-
.../file/core/client/db/DBFileClient.java | 12 +-
.../core/client/db/DBFileClientConfig.java | 4 +-
.../file/core/client/ftp/FtpFileClient.java | 4 +-
.../core/client/ftp/FtpFileClientConfig.java | 4 +-
.../core/client/local/LocalFileClient.java | 4 +-
.../client/local/LocalFileClientConfig.java | 4 +-
.../client/s3/FilePresignedUrlRespDTO.java | 2 +-
.../file/core/client/s3/S3FileClient.java | 4 +-
.../core/client/s3/S3FileClientConfig.java | 4 +-
.../file/core/client/sftp/SftpFileClient.java | 4 +-
.../client/sftp/SftpFileClientConfig.java | 4 +-
.../file/core/enums/FileStorageEnum.java | 55 +++++++++
.../file/core/utils/FileTypeUtils.java | 75 ++++++++++++
.../file}/framework/file/package-info.java | 2 +-
.../cloud/file/framework/package-info.java | 6 +
.../rpc/config/RpcConfiguration.java | 9 ++
.../file/framework/rpc/package-info.java | 4 +
.../file}/service/config/ConfigService.java | 9 +-
.../service/config/ConfigServiceImpl.java | 22 ++--
.../file}/service/file/FileConfigService.java | 11 +-
.../service/file/FileConfigServiceImpl.java | 80 ++++++-------
.../cloud/file}/service/file/FileService.java | 10 +-
.../file}/service/file/FileServiceImpl.java | 21 ++--
.../cloud/file/service/package-info.java | 1 +
.../src/main/resources/application-local.yaml | 19 +++
.../src/main/resources/application.yaml | 18 +++
.../src/main/resources/logback-spring.xml | 76 ++++++++++++
.../admin/codegen/CodegenController.java | 15 +--
.../admin/config/ConfigController.java | 99 ----------------
.../admin/config/vo/ConfigPageReqVO.java | 30 -----
.../admin/config/vo/ConfigRespVO.java | 53 ---------
.../admin/config/vo/ConfigSaveReqVO.java | 42 -------
.../admin/file/FileConfigController.http | 45 -------
.../config/YudaoFileAutoConfiguration.java | 25 ----
.../file/core/enums/FileStorageEnum.java | 73 ------------
.../cloud/pay/job/notify/PayNotifyJob.java | 2 -
.../pay/job/order/PayOrderExpireJob.java | 2 -
.../cloud/pay/job/order/PayOrderSyncJob.java | 2 -
.../pay/job/refund/PayRefundSyncJob.java | 2 -
.../pay/job/transfer/PayTransferSyncJob.java | 2 -
.../tashow/cloud/system/job/demo/DemoJob.java | 2 -
.../admin/order/TradeOrderController.java | 43 +++----
.../order/vo/TradeOrderDetailRespVO.java | 11 +-
.../order/vo/TradeOrderSubTimeListRespVo.java | 12 --
.../convert/order/TradeOrderConvert.java | 12 +-
.../dal/dataobject/order/TradeOrderDO.java | 17 ++-
.../dataobject/order/TradeOrderItemDO.java | 4 +-
.../app/auth/AppAuthController.java | 2 +-
.../cloud/user/convert/auth/AuthConvert.java | 2 +-
.../service/auth/MemberAuthServiceImpl.java | 2 +-
.../service/user/UserLoginServiceImpl.java | 2 +-
112 files changed, 1245 insertions(+), 741 deletions(-)
create mode 100644 tashow-feign/tashow-file-api/pom.xml
create mode 100644 tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/config/ConfigApi.java
create mode 100644 tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/FileApi.java
create mode 100644 tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/file/dto/FileCreateReqDTO.java
create mode 100644 tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/api/package-info.java
create mode 100644 tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ApiConstants.java
create mode 100644 tashow-feign/tashow-file-api/src/main/java/com/tashow/cloud/fileapi/enums/ErrorCodeConstants.java
rename {tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/utils => tashow-framework/tashow-common/src/main/java/com/tashow/cloud/common/util/io}/FileTypeUtils.java (63%)
create mode 100644 tashow-module/tashow-module-file/Dockerfile
create mode 100644 tashow-module/tashow-module-file/pom.xml
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/FileServerApplication.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/api/config/ConfigApiImpl.java (75%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/api/file/FileApiImpl.java (76%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/api/package-info.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/ConfigController.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigPageReqVO.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigRespVO.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/config/vo/ConfigSaveReqVO.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/FileConfigController.java (71%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/FileController.java (85%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/config/FileConfigPageReqVO.java (91%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/config/FileConfigRespVO.java (78%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/config/FileConfigSaveReqVO.java (91%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/file/FileCreateReqVO.java (91%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/file/FilePageReqVO.java (92%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/file/FilePresignedUrlRespVO.java (88%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/file/FileRespVO.java (90%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/admin/file/vo/file/FileUploadReqVO.java (85%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/admin/package-info.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/app/file/AppFileController.java (79%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/controller/app/file/vo/AppFileUploadReqVO.java (86%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/app/package-info.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/controller/package-info.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/convert/config/ConfigConvert.java (70%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/convert/file/FileConfigConvert.java (66%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/convert/package-info.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/dataobject/config/ConfigDO.java (86%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/dataobject/file/FileConfigDO.java (84%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/dataobject/file/FileContentDO.java (85%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/dataobject/file/FileDO.java (95%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/dataobject/package-info.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/mysql/config/ConfigMapper.java (73%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/mysql/file/FileConfigMapper.java (72%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/mysql/file/FileContentMapper.java (76%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/dal/mysql/file/FileMapper.java (71%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/mysql/package-info.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/dal/package-info.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/enums/config/ConfigTypeEnum.java (85%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/enums/package-info.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/config/FileAutoConfiguration.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/AbstractFileClient.java (96%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/FileClient.java (78%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/FileClientConfig.java (89%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/FileClientFactory.java (64%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/FileClientFactoryImpl.java (86%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/db/DBFileClient.java (73%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/db/DBFileClientConfig.java (76%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/ftp/FtpFileClient.java (94%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/ftp/FtpFileClientConfig.java (89%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/local/LocalFileClient.java (89%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/local/LocalFileClientConfig.java (79%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/s3/FilePresignedUrlRespDTO.java (87%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/s3/S3FileClient.java (96%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/s3/S3FileClientConfig.java (95%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/sftp/SftpFileClient.java (92%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/core/client/sftp/SftpFileClientConfig.java (88%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/enums/FileStorageEnum.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/file/core/utils/FileTypeUtils.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/framework/file/package-info.java (86%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/package-info.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/config/RpcConfiguration.java
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/framework/rpc/package-info.java
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/service/config/ConfigService.java (81%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/service/config/ConfigServiceImpl.java (83%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/service/file/FileConfigService.java (82%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/service/file/FileConfigServiceImpl.java (67%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/service/file/FileService.java (79%)
rename tashow-module/{tashow-module-infra/src/main/java/com/tashow/cloud/infra => tashow-module-file/src/main/java/com/tashow/cloud/file}/service/file/FileServiceImpl.java (82%)
create mode 100644 tashow-module/tashow-module-file/src/main/java/com/tashow/cloud/file/service/package-info.java
create mode 100644 tashow-module/tashow-module-file/src/main/resources/application-local.yaml
create mode 100644 tashow-module/tashow-module-file/src/main/resources/application.yaml
create mode 100644 tashow-module/tashow-module-file/src/main/resources/logback-spring.xml
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/ConfigController.java
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigPageReqVO.java
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigRespVO.java
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/config/vo/ConfigSaveReqVO.java
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/controller/admin/file/FileConfigController.http
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/config/YudaoFileAutoConfiguration.java
delete mode 100644 tashow-module/tashow-module-infra/src/main/java/com/tashow/cloud/infra/framework/file/core/enums/FileStorageEnum.java
delete mode 100644 tashow-module/tashow-module-trade/src/main/java/com/tashow/cloud/trade/controller/admin/order/vo/TradeOrderSubTimeListRespVo.java
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 extends FileClientConfig> configClass;
+ /**
+ * 客户端类
+ */
+ private final Class extends FileClient> 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 extends FileClientConfig> configClass;
- /**
- * 客户端类
- */
- private final Class extends FileClient> 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;