From 34a495092567ef890dedf4c4662878734bb75aaa Mon Sep 17 00:00:00 2001 From: DB <2502523450@qq.com> Date: Sat, 27 Apr 2024 23:33:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 10 ++-- .../src/main/resources/logback.xml | 2 +- .../cpop/oam/web/JamboxDataSourceTests.java | 40 +++++++++++++ .../dto/TaskWorkOrderReceiveDealPauseDto.java | 10 ++++ .../impl/TaskWorkOrderServiceImpl.java | 59 +++++++++++++------ .../vo/TaskWorkOrderReceiveDealPauseVo.java | 36 +++++++++++ .../system/business/mapper/BrandMapper.java | 2 + pom.xml | 5 -- 8 files changed, 134 insertions(+), 30 deletions(-) create mode 100644 Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/JamboxDataSourceTests.java diff --git a/Cpop-Oam/Cpop-Oam-Web/src/main/resources/application-dev.yml b/Cpop-Oam/Cpop-Oam-Web/src/main/resources/application-dev.yml index ace6c3d..daa8158 100644 --- a/Cpop-Oam/Cpop-Oam-Web/src/main/resources/application-dev.yml +++ b/Cpop-Oam/Cpop-Oam-Web/src/main/resources/application-dev.yml @@ -8,9 +8,9 @@ cpop: gateway: rsa-keypair: # 公钥文件 - publicKeyFile: E:\Cpop\Cpop-Union\Cpop-Core\src\main\resources\static\keyPair\publicKey + publicKeyFile: D:\Cpop\Cpop-Union\Cpop-Core\src\main\resources\static\keypair\publicKey # 公钥文件 - privateKeyFile: E:\Cpop\Cpop-Union\Cpop-Core\src\main\resources\static\keyPair\privateKey + privateKeyFile: D:\Cpop\Cpop-Union\Cpop-Core\src\main\resources\static\keypair\privateKey # DataSource Config spring: @@ -70,9 +70,9 @@ mybatis-flex: username: cpop_dev password: Ch5WkZRsCATsnMXw jambox: - url: jdbc:mysql://sh-cynosdbmysql-grp-fggo83js.sql.tencentcdb.com:20965/jambox_test?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true - username: root - password: Customer0401 + url: jdbc:mysql://bj-cynosdbmysql-grp-anccz88g.sql.tencentcdb.com:24808/jambox_dev?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + username: jambox_dev + password: sQt3XZyzW74b5mkJ # springdoc-openapi项目配置 springdoc: diff --git a/Cpop-Oam/Cpop-Oam-Web/src/main/resources/logback.xml b/Cpop-Oam/Cpop-Oam-Web/src/main/resources/logback.xml index 076f3ca..42f0f02 100644 --- a/Cpop-Oam/Cpop-Oam-Web/src/main/resources/logback.xml +++ b/Cpop-Oam/Cpop-Oam-Web/src/main/resources/logback.xml @@ -96,7 +96,7 @@ - + \ No newline at end of file diff --git a/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/JamboxDataSourceTests.java b/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/JamboxDataSourceTests.java new file mode 100644 index 0000000..2a3aa22 --- /dev/null +++ b/Cpop-Oam/Cpop-Oam-Web/src/test/java/com/cpop/oam/web/JamboxDataSourceTests.java @@ -0,0 +1,40 @@ +package com.cpop.oam.web; + +import com.cpop.core.utils.SpringUtils; +import com.cpop.system.business.service.BrandService; +import com.mybatisflex.core.datasource.DataSourceKey; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.core.row.Db; +import com.mybatisflex.core.row.Row; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import static com.cpop.system.business.entity.table.BrandTableDef.BRAND; + +/** + * @author DB + * @version 1.0.0 + * @since 2024-04-27 20:38 + */ +@SpringBootTest +public class JamboxDataSourceTests { + + /** + * 获取果酱品牌数据 + * @author DB + * @since 2023/12/07 + */ + @Test + public void getJamboxBrandData() { + try { + DataSourceKey.use("jambox", () -> { + Row row = Db.selectOneByQuery(BRAND.getTableName(), QueryWrapper.create().where(BRAND.ID.eq("134483921482485760"))); + System.out.println(row); + }); + } finally { + DataSourceKey.clear(); + } + + SpringUtils.getBean(BrandService.class).queryChain().where(BRAND.ID.eq("134483921482485760")).one(); + } +} diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/dto/TaskWorkOrderReceiveDealPauseDto.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/dto/TaskWorkOrderReceiveDealPauseDto.java index bff135f..1de7e60 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/dto/TaskWorkOrderReceiveDealPauseDto.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/dto/TaskWorkOrderReceiveDealPauseDto.java @@ -33,6 +33,16 @@ public class TaskWorkOrderReceiveDealPauseDto implements Serializable { */ private String storeName; + /** + * 机构/品牌ID + */ + private String brandId; + + /** + * 校区/店铺ID + */ + private String storeId; + /** * 问题描述 */ diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/TaskWorkOrderServiceImpl.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/TaskWorkOrderServiceImpl.java index d4c96bd..9a53ec5 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/TaskWorkOrderServiceImpl.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/service/impl/TaskWorkOrderServiceImpl.java @@ -21,8 +21,10 @@ import com.cpop.oam.framework.constant.WebHookKeyConstant; import com.cpop.oam.framework.enums.OamConfigEnum; import com.cpop.oam.framework.enums.QuartzEnums; import com.cpop.oam.framework.tasks.*; +import com.mybatisflex.core.datasource.DataSourceKey; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.core.row.DbChain; import com.mybatisflex.spring.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.quartz.*; @@ -80,46 +82,65 @@ public class TaskWorkOrderServiceImpl extends ServiceImpl item.field(TaskWorkOrderReceiveDealPauseDto::getRecordStaffName) - .queryWrapper(recordStaff -> queryChain().select(STAFF.NAME.as("recordStaffName")) + .queryWrapper(recordStaff -> queryChain().select(STAFF.NAME.as(TaskWorkOrderReceiveDealPauseDto::getRecordStaffName)) .from(STAFF) .where(STAFF.ID.eq(recordStaff.getRecordStaffId()))), // 负责人 item -> item.field(TaskWorkOrderReceiveDealPauseDto::getResponsibleStaffName) - .queryWrapper(responsibleStaff -> queryChain().select(STAFF.NAME.as("responsibleStaffName")) + .queryWrapper(responsibleStaff -> queryChain().select(STAFF.NAME.as(TaskWorkOrderReceiveDealPauseDto::getResponsibleStaffName)) .from(STAFF) - .where(STAFF.ID.eq(StringUtils.isNotBlank(responsibleStaff.getResponsibleStaffId()) - ? responsibleStaff.getResponsibleStaffId() - : "-1"))), + .where(STAFF.ID.eq(StringUtils.isNotBlank(responsibleStaff.getResponsibleStaffId()) ? responsibleStaff.getResponsibleStaffId() : "-1"))), // 暂停人 item -> item.field(TaskWorkOrderReceiveDealPauseDto::getPauseStaffName) - .queryWrapper(pauseStaff -> queryChain().select(STAFF.NAME.as("pauseStaffName")) - .from(STAFF) - .where(STAFF.ID.eq( - StringUtils.isNotBlank(pauseStaff.getPauseStaffId()) ? pauseStaff.getPauseStaffId() : "-1")))); + .queryWrapper(pauseStaff -> + queryChain().select(STAFF.NAME.as(TaskWorkOrderReceiveDealPauseDto::getPauseStaffName)) + .from(STAFF) + .where(STAFF.ID.eq(StringUtils.isNotBlank(pauseStaff.getPauseStaffId()) ? pauseStaff.getPauseStaffId() : "-1"))), + // 品牌 + item -> item.field(TaskWorkOrderReceiveDealPauseDto::getBrandName).prevent(true) + .queryWrapper(brandName -> { + DbChain jambox; + try { + jambox = DataSourceKey.use("jambox", () -> DbChain.table(BRAND).select(BRAND.BRAND_NAME.as(TaskWorkOrderReceiveDealPauseDto::getBrandName)) + .from(BRAND) + .where(BRAND.ID.eq(StringUtils.isNotBlank(brandName.getBrandId()) ? brandName.getBrandId() : "-1"))); + } finally { + DataSourceKey.clear(); + } + return jambox; + }), + // 校区 + item -> item.field(TaskWorkOrderReceiveDealPauseDto::getStoreName).prevent(true) + .queryWrapper(storeName -> { + DbChain jambox; + try { + jambox = DataSourceKey.use("jambox", () -> DbChain.table(STORE).select(STORE.STORE_NAME.as(TaskWorkOrderReceiveDealPauseDto::getStoreName)) + .from(STORE) + .where(STORE.ID.eq(StringUtils.isNotBlank(storeName.getStoreId()) ? storeName.getStoreId() : "-1"))); + } finally { + DataSourceKey.clear(); + } + return jambox; + }) + ); // 分组过滤 Map> taskStatusMap = dtoList.stream().collect(Collectors.groupingBy(TaskWorkOrderReceiveDealPauseDto::getTaskStatus)); diff --git a/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/TaskWorkOrderReceiveDealPauseVo.java b/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/TaskWorkOrderReceiveDealPauseVo.java index 7b0fcd9..c548aab 100644 --- a/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/TaskWorkOrderReceiveDealPauseVo.java +++ b/Cpop-Oam/src/main/java/com/cpop/oam/business/vo/TaskWorkOrderReceiveDealPauseVo.java @@ -61,6 +61,18 @@ public class TaskWorkOrderReceiveDealPauseVo { @Schema(description = "校区/店铺") private String storeName; + /** + * 机构/品牌ID + */ + @Schema(description = "机构/品牌ID") + private String brandId; + + /** + * 校区/店铺ID + */ + @Schema(description = "校区/店铺ID") + private String storeId; + /** * 问题描述 */ @@ -113,6 +125,18 @@ public class TaskWorkOrderReceiveDealPauseVo { @Schema(description = "校区/店铺") private String storeName; + /** + * 机构/品牌ID + */ + @Schema(description = "机构/品牌ID") + private String brandId; + + /** + * 校区/店铺ID + */ + @Schema(description = "校区/店铺ID") + private String storeId; + /** * 问题描述 */ @@ -184,6 +208,18 @@ public class TaskWorkOrderReceiveDealPauseVo { @Schema(description = "校区/店铺") private String storeName; + /** + * 机构/品牌ID + */ + @Schema(description = "机构/品牌ID") + private String brandId; + + /** + * 校区/店铺ID + */ + @Schema(description = "校区/店铺ID") + private String storeId; + /** * 问题描述 */ diff --git a/Cpop-System/src/main/java/com/cpop/system/business/mapper/BrandMapper.java b/Cpop-System/src/main/java/com/cpop/system/business/mapper/BrandMapper.java index eb6f7cb..9fc58ca 100644 --- a/Cpop-System/src/main/java/com/cpop/system/business/mapper/BrandMapper.java +++ b/Cpop-System/src/main/java/com/cpop/system/business/mapper/BrandMapper.java @@ -1,5 +1,6 @@ package com.cpop.system.business.mapper; +import com.mybatisflex.annotation.UseDataSource; import com.mybatisflex.core.BaseMapper; import com.cpop.system.business.entity.Brand; @@ -9,6 +10,7 @@ import com.cpop.system.business.entity.Brand; * @author DB * @since 2023-10-25 */ +@UseDataSource("jambox") public interface BrandMapper extends BaseMapper { } diff --git a/pom.xml b/pom.xml index 5721daf..5ab3bb5 100644 --- a/pom.xml +++ b/pom.xml @@ -21,12 +21,7 @@ Cpop-Api Cpop-Oam Cpop-Oam/Cpop-Oam-Web - Cpop-Jambox - Cpop-Jambox/Cpop-Jambox-Web - Cpop-Mall - Cpop-Mall/Cpop-Mall-Web Cpop-System - Cpop-Mini Cpop-Pay Cpop-ClockIn-Demo