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 开启")
private Integer aiClient;
@Schema(description = "Ai自动回复权限 0关闭 1 开启")
private Integer aiReplay;
@Schema(description = "套餐类型", example = "2")
private Integer packageType;

View File

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

View File

@@ -59,4 +59,8 @@ public class TenantPointsPageRespVO {
@Schema(description = "测试账号数", example = "1")
@ExcelProperty("测试账号数")
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;
/**
* Ai自动回复权限 0关闭 1开启
*/
private Integer aiReplay;
}

View File

@@ -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);