From aebeaaeabefc059d30a22ea224032ea0e2a779aa Mon Sep 17 00:00:00 2001 From: ziin Date: Wed, 26 Nov 2025 20:20:20 +0800 Subject: [PATCH] =?UTF-8?q?feat(system):=20=E6=96=B0=E5=A2=9EAI=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=9B=9E=E5=A4=8D=E6=9D=83=E9=99=90=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=B9=B6=E8=A1=A5=E5=85=85=E5=AD=97=E6=AE=B5=E5=A4=87=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在代理套餐及积分相关VO/DO中: - 新增 aiReplay 字段(0关闭 1开启) - 为租户积分记录补充 remark 字段及描述 - 同步更新相关查询、保存、响应VO与Service实现 --- .../vo/TenantAgencyPackagePageReqVO.java | 3 +++ .../vo/TenantAgencyPackageRespVO.java | 3 +++ .../vo/TenantAgencyPackageSaveReqVO.java | 2 ++ .../vo/TenantPointsPageRespVO.java | 4 ++++ .../TenantAgencyPackageDO.java | 5 ++++- .../service/tenant/TenantServiceImpl.java | 21 ++++++++++++++----- 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackagePageReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackagePageReqVO.java index 1345191..515d8ed 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackagePageReqVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackagePageReqVO.java @@ -44,6 +44,9 @@ public class TenantAgencyPackagePageReqVO extends PageParam { @Schema(description = "AI 客户端 0 关闭 1 开启") private Integer aiClient; + @Schema(description = "Ai自动回复权限 0关闭 1 开启") + private Integer aiReplay; + @Schema(description = "套餐类型", example = "2") private Integer packageType; diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageRespVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageRespVO.java index 2beb224..d40b8c5 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageRespVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageRespVO.java @@ -60,4 +60,7 @@ public class TenantAgencyPackageRespVO { @ExcelProperty("套餐类型") private Integer packageType; + @Schema(description = "Ai自动回复权限 0关闭 1 开启") + @ExcelProperty("Ai 自动回复权限 0关闭 1开启") + private Integer aiReplay; } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageSaveReqVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageSaveReqVO.java index 49e0004..6ad445f 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageSaveReqVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantagencypackage/vo/TenantAgencyPackageSaveReqVO.java @@ -47,4 +47,6 @@ public class TenantAgencyPackageSaveReqVO { @Schema(description = "套餐类型", example = "2") private Integer packageType; + @Schema(description = "Ai自动回复权限 0关闭 1 开启") + private Integer aiReplay; } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantpoints/vo/TenantPointsPageRespVO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantpoints/vo/TenantPointsPageRespVO.java index f455491..170fd00 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantpoints/vo/TenantPointsPageRespVO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenantpoints/vo/TenantPointsPageRespVO.java @@ -59,4 +59,8 @@ public class TenantPointsPageRespVO { @Schema(description = "测试账号数", example = "1") @ExcelProperty("测试账号数") private Integer testAccountNum; + + @Schema(description = "备注", example = "转账金额:1000") + @ExcelProperty("备注") + private String remark; } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantagencypackage/TenantAgencyPackageDO.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantagencypackage/TenantAgencyPackageDO.java index e56ec4f..8b39f38 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantagencypackage/TenantAgencyPackageDO.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenantagencypackage/TenantAgencyPackageDO.java @@ -74,5 +74,8 @@ public class TenantAgencyPackageDO extends BaseDO { */ private Integer packageType; - + /** + * Ai自动回复权限 0关闭 1开启 + */ + private Integer aiReplay; } \ No newline at end of file diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java index d158c06..e6d202f 100755 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java @@ -236,15 +236,24 @@ public class TenantServiceImpl implements TenantService { // 将请求参数转换为租户数据对象 TenantDO tenant = BeanUtils.toBean(createReqVO, TenantDO.class); - String now = DateUtil.now(); - DateTime dt = DateUtil.parse(now); - LocalDateTime localDateTime = LocalDateTimeUtil.of(dt); + // 获取当前时间并计算租户过期时间 + String now = DateUtil.now(); // 获取当前时间字符串 + DateTime dt = DateUtil.parse(now); // 将时间字符串解析为DateTime对象 + LocalDateTime localDateTime = LocalDateTimeUtil.of(dt); // 转换为LocalDateTime对象 + // 根据套餐天数计算过期时间:当前时间 + 套餐天数 LocalDateTime offset = LocalDateTimeUtil.offset(localDateTime, tenantAgencyPackageDO.getDays(), ChronoUnit.DAYS); + + // 设置租户的基本过期时间 tenant.setExpireTime(offset); + // 设置租户的初始用户名(创建者) tenant.setInitialUser(createReqVO.getUsername()); + + // 根据套餐配置设置特定功能的过期时间 + // 如果套餐包含"大哥客户端"功能,则设置大哥客户端的过期时间 if (tenantAgencyPackageDO.getBrotherClient() == 1){ tenant.setBrotherExpireTime(offset); } + // 如果套餐包含"AI客户端"功能,则设置AI客户端的过期时间 if (tenantAgencyPackageDO.getAiClient() == 1){ tenant.setAiExpireTime(offset); } @@ -284,11 +293,13 @@ public class TenantServiceImpl implements TenantService { if (tenantAgencyPackageDO.getHostslClient() == 1){ user.setCrawl((byte) 1); } - if (tenantAgencyPackageDO.getHostslClient() == 1){ + if (tenantAgencyPackageDO.getBrotherClient() == 1){ user.setBigBrother((byte) 1); } if (tenantAgencyPackageDO.getAiClient() == 1){ user.setAiChat((byte) 1); + } + if (tenantAgencyPackageDO.getAiReplay() == 1){ user.setAiReplay((byte) 1); } userMapper.updateById(user); @@ -408,7 +419,7 @@ public class TenantServiceImpl implements TenantService { validTenantWebsiteDuplicate(updateReqVO.getWebsite(), updateReqVO.getId()); // 校验套餐被禁用 - if (updateReqVO.getTenantType().equals(TenantEnum.AGENCY.getTenantType())) { + if (updateReqVO.getTenantType().equals(TenantEnum.AGENCY.getTenantType()) || tenant.getParentId() != 1) { TenantAgencyPackageDO tenantAgencyPackageDO = tenantAgencyPackageService.validTenantPackage(updateReqVO.getPackageId()); // 更新租户 TenantDO updateObj = BeanUtils.toBean(updateReqVO, TenantDO.class);