feat(system): 新增AI自动回复权限字段并补充字段备注

在代理套餐及积分相关VO/DO中:
- 新增 aiReplay 字段(0关闭 1开启)
- 为租户积分记录补充 remark 字段及描述
- 同步更新相关查询、保存、响应VO与Service实现
This commit is contained in:
2025-11-26 20:20:20 +08:00
parent 646bc77c7b
commit aebeaaeabe
6 changed files with 32 additions and 6 deletions

View File

@@ -44,6 +44,9 @@ public class TenantAgencyPackagePageReqVO extends PageParam {
@Schema(description = "AI 客户端 0 关闭 1 开启") @Schema(description = "AI 客户端 0 关闭 1 开启")
private Integer aiClient; private Integer aiClient;
@Schema(description = "Ai自动回复权限 0关闭 1 开启")
private Integer aiReplay;
@Schema(description = "套餐类型", example = "2") @Schema(description = "套餐类型", example = "2")
private Integer packageType; private Integer packageType;

View File

@@ -60,4 +60,7 @@ public class TenantAgencyPackageRespVO {
@ExcelProperty("套餐类型") @ExcelProperty("套餐类型")
private Integer packageType; private Integer packageType;
@Schema(description = "Ai自动回复权限 0关闭 1 开启")
@ExcelProperty("Ai 自动回复权限 0关闭 1开启")
private Integer aiReplay;
} }

View File

@@ -47,4 +47,6 @@ public class TenantAgencyPackageSaveReqVO {
@Schema(description = "套餐类型", example = "2") @Schema(description = "套餐类型", example = "2")
private Integer packageType; private Integer packageType;
@Schema(description = "Ai自动回复权限 0关闭 1 开启")
private Integer aiReplay;
} }

View File

@@ -59,4 +59,8 @@ public class TenantPointsPageRespVO {
@Schema(description = "测试账号数", example = "1") @Schema(description = "测试账号数", example = "1")
@ExcelProperty("测试账号数") @ExcelProperty("测试账号数")
private Integer testAccountNum; private Integer testAccountNum;
@Schema(description = "备注", example = "转账金额1000")
@ExcelProperty("备注")
private String remark;
} }

View File

@@ -74,5 +74,8 @@ public class TenantAgencyPackageDO extends BaseDO {
*/ */
private Integer packageType; private Integer packageType;
/**
* Ai自动回复权限 0关闭 1开启
*/
private Integer aiReplay;
} }

View File

@@ -236,15 +236,24 @@ public class TenantServiceImpl implements TenantService {
// 将请求参数转换为租户数据对象 // 将请求参数转换为租户数据对象
TenantDO tenant = BeanUtils.toBean(createReqVO, TenantDO.class); TenantDO tenant = BeanUtils.toBean(createReqVO, TenantDO.class);
String now = DateUtil.now(); // 获取当前时间并计算租户过期时间
DateTime dt = DateUtil.parse(now); String now = DateUtil.now(); // 获取当前时间字符串
LocalDateTime localDateTime = LocalDateTimeUtil.of(dt); DateTime dt = DateUtil.parse(now); // 将时间字符串解析为DateTime对象
LocalDateTime localDateTime = LocalDateTimeUtil.of(dt); // 转换为LocalDateTime对象
// 根据套餐天数计算过期时间:当前时间 + 套餐天数
LocalDateTime offset = LocalDateTimeUtil.offset(localDateTime, tenantAgencyPackageDO.getDays(), ChronoUnit.DAYS); LocalDateTime offset = LocalDateTimeUtil.offset(localDateTime, tenantAgencyPackageDO.getDays(), ChronoUnit.DAYS);
// 设置租户的基本过期时间
tenant.setExpireTime(offset); tenant.setExpireTime(offset);
// 设置租户的初始用户名(创建者)
tenant.setInitialUser(createReqVO.getUsername()); tenant.setInitialUser(createReqVO.getUsername());
// 根据套餐配置设置特定功能的过期时间
// 如果套餐包含"大哥客户端"功能,则设置大哥客户端的过期时间
if (tenantAgencyPackageDO.getBrotherClient() == 1){ if (tenantAgencyPackageDO.getBrotherClient() == 1){
tenant.setBrotherExpireTime(offset); tenant.setBrotherExpireTime(offset);
} }
// 如果套餐包含"AI客户端"功能则设置AI客户端的过期时间
if (tenantAgencyPackageDO.getAiClient() == 1){ if (tenantAgencyPackageDO.getAiClient() == 1){
tenant.setAiExpireTime(offset); tenant.setAiExpireTime(offset);
} }
@@ -284,11 +293,13 @@ public class TenantServiceImpl implements TenantService {
if (tenantAgencyPackageDO.getHostslClient() == 1){ if (tenantAgencyPackageDO.getHostslClient() == 1){
user.setCrawl((byte) 1); user.setCrawl((byte) 1);
} }
if (tenantAgencyPackageDO.getHostslClient() == 1){ if (tenantAgencyPackageDO.getBrotherClient() == 1){
user.setBigBrother((byte) 1); user.setBigBrother((byte) 1);
} }
if (tenantAgencyPackageDO.getAiClient() == 1){ if (tenantAgencyPackageDO.getAiClient() == 1){
user.setAiChat((byte) 1); user.setAiChat((byte) 1);
}
if (tenantAgencyPackageDO.getAiReplay() == 1){
user.setAiReplay((byte) 1); user.setAiReplay((byte) 1);
} }
userMapper.updateById(user); userMapper.updateById(user);
@@ -408,7 +419,7 @@ public class TenantServiceImpl implements TenantService {
validTenantWebsiteDuplicate(updateReqVO.getWebsite(), updateReqVO.getId()); 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()); TenantAgencyPackageDO tenantAgencyPackageDO = tenantAgencyPackageService.validTenantPackage(updateReqVO.getPackageId());
// 更新租户 // 更新租户
TenantDO updateObj = BeanUtils.toBean(updateReqVO, TenantDO.class); TenantDO updateObj = BeanUtils.toBean(updateReqVO, TenantDO.class);