diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/enums/ErrorCodeConstants.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/enums/ErrorCodeConstants.java index 5011bee246..2e7ca95ef4 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/enums/ErrorCodeConstants.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/enums/ErrorCodeConstants.java @@ -49,4 +49,7 @@ public interface ErrorCodeConstants { ErrorCode POINTS_PENDING_NOT_FOUND = new ErrorCode(1_030_003_004, "预扣记录不存在"); ErrorCode POINTS_PENDING_ALREADY_CONFIRMED = new ErrorCode(1_030_003_005, "预扣记录已确认或已取消"); + // ========== TikToken相关错误码 1-030-004-000 ========== + ErrorCode TIKE_TOKEN_NOT_EXISTS = new ErrorCode(1_030_004_001, "TikToken不存在"); + } diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/dal/AiModelConfigDO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/dal/AiModelConfigDO.java index 18f35f786d..86569771c1 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/dal/AiModelConfigDO.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/dal/AiModelConfigDO.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.tik.muye.aimodelconfig.dal; import lombok.*; -import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.*; import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; @@ -45,18 +44,6 @@ public class AiModelConfigDO extends BaseDO { * 状态(0-禁用 1-启用) */ private Integer status; - /** - * 温度参数 - */ - private BigDecimal temperature; - /** - * 回复数Token数 - */ - private Integer maxTokens; - /** - * 每日请求次数 - */ - private Integer dailyLimit; /** * 模型类型(image-图像 text-文本 video-视频 audio-音频) */ @@ -65,22 +52,6 @@ public class AiModelConfigDO extends BaseDO { * 消耗积分 */ private Integer consumePoints; - /** - * 最大文本数量 - */ - private Integer maxTextLength; - /** - * 图片最大像素 - */ - private String maxImageSize; - /** - * 视频最大时长(秒) - */ - private Integer maxVideoDuration; - /** - * 视频最大质量 - */ - private String maxVideoQuality; /** * 备注 */ diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/mapper/AiModelConfigMapper.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/mapper/AiModelConfigMapper.java index 3d6438f0ba..4f77f752fa 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/mapper/AiModelConfigMapper.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/mapper/AiModelConfigMapper.java @@ -25,15 +25,8 @@ public interface AiModelConfigMapper extends BaseMapperX { .eqIfPresent(AiModelConfigDO::getPlatform, reqVO.getPlatform()) .eqIfPresent(AiModelConfigDO::getApiKey, reqVO.getApiKey()) .eqIfPresent(AiModelConfigDO::getStatus, reqVO.getStatus()) - .eqIfPresent(AiModelConfigDO::getTemperature, reqVO.getTemperature()) - .eqIfPresent(AiModelConfigDO::getMaxTokens, reqVO.getMaxTokens()) - .eqIfPresent(AiModelConfigDO::getDailyLimit, reqVO.getDailyLimit()) .eqIfPresent(AiModelConfigDO::getModelType, reqVO.getModelType()) .eqIfPresent(AiModelConfigDO::getConsumePoints, reqVO.getConsumePoints()) - .eqIfPresent(AiModelConfigDO::getMaxTextLength, reqVO.getMaxTextLength()) - .eqIfPresent(AiModelConfigDO::getMaxImageSize, reqVO.getMaxImageSize()) - .eqIfPresent(AiModelConfigDO::getMaxVideoDuration, reqVO.getMaxVideoDuration()) - .eqIfPresent(AiModelConfigDO::getMaxVideoQuality, reqVO.getMaxVideoQuality()) .eqIfPresent(AiModelConfigDO::getRemark, reqVO.getRemark()) .betweenIfPresent(AiModelConfigDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(AiModelConfigDO::getId)); diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigPageReqVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigPageReqVO.java index f80b82937b..37c8d85da5 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigPageReqVO.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigPageReqVO.java @@ -1,10 +1,8 @@ package cn.iocoder.yudao.module.tik.muye.aimodelconfig.vo; import lombok.*; -import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import java.math.BigDecimal; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @@ -29,33 +27,12 @@ public class AiModelConfigPageReqVO extends PageParam { @Schema(description = "状态(0-禁用 1-启用)", example = "2") private Integer status; - @Schema(description = "温度参数") - private BigDecimal temperature; - - @Schema(description = "回复数Token数") - private Integer maxTokens; - - @Schema(description = "每日请求次数") - private Integer dailyLimit; - @Schema(description = "模型类型(image-图像 text-文本 video-视频 audio-音频)", example = "2") private String modelType; @Schema(description = "消耗积分") private Integer consumePoints; - @Schema(description = "最大文本数量") - private Integer maxTextLength; - - @Schema(description = "图片最大像素") - private String maxImageSize; - - @Schema(description = "视频最大时长(秒)") - private Integer maxVideoDuration; - - @Schema(description = "视频最大质量") - private String maxVideoQuality; - @Schema(description = "备注", example = "随便") private String remark; diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigRespVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigRespVO.java index 67b1e7a149..4a47237c56 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigRespVO.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigRespVO.java @@ -2,9 +2,6 @@ package cn.iocoder.yudao.module.tik.muye.aimodelconfig.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import java.util.*; -import java.math.BigDecimal; -import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import cn.idev.excel.annotation.*; @@ -37,18 +34,6 @@ public class AiModelConfigRespVO { @ExcelProperty("状态(0-禁用 1-启用)") private Integer status; - @Schema(description = "温度参数", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("温度参数") - private BigDecimal temperature; - - @Schema(description = "回复数Token数", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("回复数Token数") - private Integer maxTokens; - - @Schema(description = "每日请求次数", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("每日请求次数") - private Integer dailyLimit; - @Schema(description = "模型类型(image-图像 text-文本 video-视频 audio-音频)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @ExcelProperty("模型类型(image-图像 text-文本 video-视频 audio-音频)") private String modelType; @@ -57,22 +42,6 @@ public class AiModelConfigRespVO { @ExcelProperty("消耗积分") private Integer consumePoints; - @Schema(description = "最大文本数量", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("最大文本数量") - private Integer maxTextLength; - - @Schema(description = "图片最大像素", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("图片最大像素") - private String maxImageSize; - - @Schema(description = "视频最大时长(秒)", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("视频最大时长(秒)") - private Integer maxVideoDuration; - - @Schema(description = "视频最大质量", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("视频最大质量") - private String maxVideoQuality; - @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") @ExcelProperty("备注") private String remark; diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigSaveReqVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigSaveReqVO.java index 847fcd62d3..efb3beb549 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigSaveReqVO.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/aimodelconfig/vo/AiModelConfigSaveReqVO.java @@ -2,9 +2,7 @@ package cn.iocoder.yudao.module.tik.muye.aimodelconfig.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; -import java.util.*; import jakarta.validation.constraints.*; -import java.math.BigDecimal; @Schema(description = "管理后台 - AI模型配置新增/修改 Request VO") @Data @@ -32,18 +30,6 @@ public class AiModelConfigSaveReqVO { @NotNull(message = "状态(0-禁用 1-启用)不能为空") private Integer status; - @Schema(description = "温度参数", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "温度参数不能为空") - private BigDecimal temperature; - - @Schema(description = "回复数Token数", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "回复数Token数不能为空") - private Integer maxTokens; - - @Schema(description = "每日请求次数", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "每日请求次数不能为空") - private Integer dailyLimit; - @Schema(description = "模型类型(image-图像 text-文本 video-视频 audio-音频)", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotEmpty(message = "模型类型(image-图像 text-文本 video-视频 audio-音频)不能为空") private String modelType; @@ -52,18 +38,6 @@ public class AiModelConfigSaveReqVO { @NotNull(message = "消耗积分不能为空") private Integer consumePoints; - @Schema(description = "最大文本数量") - private Integer maxTextLength; - - @Schema(description = "图片最大像素") - private String maxImageSize; - - @Schema(description = "视频最大时长(秒)") - private Integer maxVideoDuration; - - @Schema(description = "视频最大质量") - private String maxVideoQuality; - @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "随便") @NotEmpty(message = "备注不能为空") private String remark; diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/points/service/PointsServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/points/service/PointsServiceImpl.java index 860b9b1473..07bee91f92 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/points/service/PointsServiceImpl.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/muye/points/service/PointsServiceImpl.java @@ -1,5 +1,9 @@ package cn.iocoder.yudao.module.tik.muye.points.service; +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; +import cn.iocoder.yudao.module.member.service.user.MemberUserService; import cn.iocoder.yudao.module.tik.muye.aimodelconfig.dal.AiModelConfigDO; import cn.iocoder.yudao.module.tik.muye.aimodelconfig.mapper.AiModelConfigMapper; import cn.iocoder.yudao.module.tik.muye.memberuserprofile.dal.MemberUserProfileDO; @@ -43,6 +47,9 @@ public class PointsServiceImpl implements PointsService { @Resource private PointRecordMapper pointRecordMapper; + @Resource + private MemberUserService memberUserService; + @Override public AiModelConfigDO getConfig(String platform, String modelCode) { AiModelConfigDO config = aiModelConfigMapper.selectByPlatformAndModelCode(platform, modelCode); @@ -72,9 +79,14 @@ public class PointsServiceImpl implements PointsService { // 2. 查询扣减后余额 MemberUserProfileDO profile = memberUserProfileMapper.selectByUserId(userId); + // 2.1 获取用户手机号 + MemberUserDO user = memberUserService.getUser(Long.parseLong(userId)); + String mobile = user != null ? user.getMobile() : ""; + // 3. 创建积分记录(已确认状态) PointRecordDO record = PointRecordDO.builder() .userId(Long.parseLong(userId)) + .mobile(mobile) .type("decrease") .pointAmount(-points) .balance(profile.getRemainingPoints()) @@ -98,9 +110,14 @@ public class PointsServiceImpl implements PointsService { // 2. 查询当前余额 MemberUserProfileDO profile = memberUserProfileMapper.selectByUserId(userId); + // 2.1 获取用户手机号 + MemberUserDO user = memberUserService.getUser(Long.parseLong(userId)); + String mobile = user != null ? user.getMobile() : ""; + // 3. 创建预扣记录(待确认状态) PointRecordDO record = PointRecordDO.builder() .userId(Long.parseLong(userId)) + .mobile(mobile) .type("decrease") .pointAmount(-points) .balance(profile.getRemainingPoints()) diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/controller/TikTokenAdminController.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/controller/TikTokenAdminController.java new file mode 100644 index 0000000000..342c876020 --- /dev/null +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/controller/TikTokenAdminController.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.tik.tikhup.controller; + +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.tik.tikhup.service.TikTokenService; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenPageReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenSaveReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenVO; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +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 cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - TikToken 管理") +@RestController +@RequestMapping("/admin-api/tik/token") +@Validated +public class TikTokenAdminController { + + @Resource + private TikTokenService tikTokenService; + + @PostMapping("/create") + @Operation(summary = "创建TikToken") + @PreAuthorize("@ss.hasPermission('tik:token:create')") + public CommonResult create(@Valid @RequestBody TikTokenSaveReqVO reqVO) { + return success(tikTokenService.create(reqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新TikToken") + @PreAuthorize("@ss.hasPermission('tik:token:update')") + public CommonResult update(@Valid @RequestBody TikTokenSaveReqVO reqVO) { + tikTokenService.update(reqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除TikToken") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('tik:token:delete')") + public CommonResult delete(@RequestParam("id") Long id) { + tikTokenService.delete(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获取TikToken详情") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('tik:token:query')") + public CommonResult get(@RequestParam("id") Long id) { + return success(tikTokenService.get(id)); + } + + @GetMapping("/page") + @Operation(summary = "分页查询TikToken列表") + @PreAuthorize("@ss.hasPermission('tik:token:query')") + public CommonResult> getPage(@Valid TikTokenPageReqVO reqVO) { + return success(tikTokenService.getPage(reqVO)); + } + +} diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/mapper/TikTokenMapper.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/mapper/TikTokenMapper.java index 69416a9a59..102668fbec 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/mapper/TikTokenMapper.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/mapper/TikTokenMapper.java @@ -1,6 +1,11 @@ package cn.iocoder.yudao.module.tik.tikhup.mapper; +import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenPageReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenPageReqVO; import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenVO; import org.apache.ibatis.annotations.Mapper; @@ -15,4 +20,12 @@ public interface TikTokenMapper extends BaseMapperX { return selectOne("interface_type",interfaceType); } + default PageResult selectPage(TikTokenPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(TikTokenVO::getPlatformUrl, reqVO.getPlatformUrl()) + .eqIfPresent(TikTokenVO::getInterfaceType, reqVO.getInterfaceType()) + .likeIfPresent(TikTokenVO::getInterfaceDesc, reqVO.getInterfaceDesc()) + .orderByDesc(TikTokenVO::getId)); + } + } diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/service/TikTokenService.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/service/TikTokenService.java new file mode 100644 index 0000000000..867bc8ed54 --- /dev/null +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/service/TikTokenService.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.tik.tikhup.service; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenPageReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenSaveReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenVO; +import jakarta.validation.Valid; + +/** + * TikToken 管理Service接口 + */ +public interface TikTokenService { + + /** + * 分页查询TikToken列表 + */ + PageResult getPage(TikTokenPageReqVO reqVO); + + /** + * 创建TikToken + */ + Long create(@Valid TikTokenSaveReqVO reqVO); + + /** + * 更新TikToken + */ + void update(@Valid TikTokenSaveReqVO reqVO); + + /** + * 删除TikToken + */ + void delete(Long id); + + /** + * 获取TikToken详情 + */ + TikTokenVO get(Long id); + +} diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/service/TikTokenServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/service/TikTokenServiceImpl.java new file mode 100644 index 0000000000..f146680623 --- /dev/null +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/service/TikTokenServiceImpl.java @@ -0,0 +1,62 @@ +package cn.iocoder.yudao.module.tik.tikhup.service; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.tik.tikhup.mapper.TikTokenMapper; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenPageReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenSaveReqVO; +import cn.iocoder.yudao.module.tik.tikhup.vo.TikTokenVO; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.tik.enums.ErrorCodeConstants.TIKE_TOKEN_NOT_EXISTS; + +/** + * TikToken 管理Service实现类 + */ +@Service +@Validated +public class TikTokenServiceImpl implements TikTokenService { + + @Resource + private TikTokenMapper tikTokenMapper; + + @Override + public PageResult getPage(TikTokenPageReqVO reqVO) { + return tikTokenMapper.selectPage(reqVO); + } + + @Override + public Long create(TikTokenSaveReqVO reqVO) { + TikTokenVO token = BeanUtils.toBean(reqVO, TikTokenVO.class); + tikTokenMapper.insert(token); + return token.getId(); + } + + @Override + public void update(TikTokenSaveReqVO reqVO) { + validateExists(reqVO.getId()); + TikTokenVO token = BeanUtils.toBean(reqVO, TikTokenVO.class); + tikTokenMapper.updateById(token); + } + + @Override + public void delete(Long id) { + validateExists(id); + tikTokenMapper.deleteById(id); + } + + @Override + public TikTokenVO get(Long id) { + return tikTokenMapper.selectById(id); + } + + private void validateExists(Long id) { + if (tikTokenMapper.selectById(id) == null) { + throw exception(TIKE_TOKEN_NOT_EXISTS); + } + } + +} diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenPageReqVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenPageReqVO.java new file mode 100644 index 0000000000..1f95d3a3d0 --- /dev/null +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenPageReqVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.tik.tikhup.vo; + +import cn.iocoder.yudao.framework.common.pojo.SortablePageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Schema(description = "管理后台 - TikToken 分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +public class TikTokenPageReqVO extends SortablePageParam { + + @Schema(description = "平台URL", example = "https://api.tikhub.io") + private String platformUrl; + + @Schema(description = "接口类型", example = "crawler") + private String interfaceType; + + @Schema(description = "接口描述", example = "抖音视频爬虫接口") + private String interfaceDesc; + +} diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenSaveReqVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenSaveReqVO.java new file mode 100644 index 0000000000..14ac3304ec --- /dev/null +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenSaveReqVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.tik.tikhup.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +@Schema(description = "管理后台 - TikToken 创建/更新 Request VO") +@Data +public class TikTokenSaveReqVO { + + @Schema(description = "编号", example = "1") + private Long id; + + @Schema(description = "平台URL", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://api.tikhub.io") + @NotEmpty(message = "平台URL不能为空") + private String platformUrl; + + @Schema(description = "接口类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "crawler") + @NotEmpty(message = "接口类型不能为空") + private String interfaceType; + + @Schema(description = "接口描述", example = "抖音视频爬虫接口") + private String interfaceDesc; + +} diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenVO.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenVO.java index 595410b264..d9d793adec 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenVO.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/tikhup/vo/TikTokenVO.java @@ -17,10 +17,10 @@ public class TikTokenVO extends TenantBaseDO { @TableField(value = "platform_url") private String platformUrl; - @TableField(value = "platform_token") - private String platformToken; - @TableField(value = "interface_type") private String interfaceType; + @TableField(value = "interface_desc") + private String interfaceDesc; + } diff --git a/yudao-ui-admin-vue3/src/api/muye/aimodelconfig/index.ts b/yudao-ui-admin-vue3/src/api/muye/aimodelconfig/index.ts index f984f0a063..32c41a5ec3 100644 --- a/yudao-ui-admin-vue3/src/api/muye/aimodelconfig/index.ts +++ b/yudao-ui-admin-vue3/src/api/muye/aimodelconfig/index.ts @@ -1,25 +1,17 @@ import request from '@/config/axios' -import type { Dayjs } from 'dayjs'; /** AI模型配置信息 */ export interface AiModelConfig { - id: number; // 主键 - modelName?: string; // 模型名称 - modelCode?: string; // 模型标识/编码 - platform?: string; // 所属平台 - apiKey?: string; // API秘钥 - status?: number; // 状态(0-禁用 1-启用) - temperature?: number; // 温度参数 - maxTokens?: number; // 回复数Token数 - dailyLimit?: number; // 每日请求次数 - modelType?: string; // 模型类型(image-图像 text-文本 video-视频 audio-音频) - consumePoints?: number; // 消耗积分 - maxTextLength?: number; // 最大文本数量 - maxImageSize?: string; // 图片最大像素 - maxVideoDuration?: number; // 视频最大时长(秒) - maxVideoQuality?: string; // 视频最大质量 - remark?: string; // 备注 - } + id: number // 主键 + modelName?: string // 模型名称 + modelCode?: string // 模型标识/编码 + platform?: string // 所属平台 + apiKey?: string // API秘钥 + status?: number // 状态(0-禁用 1-启用) + modelType?: string // 模型类型(image-图像 text-文本 video-视频 audio-音频) + consumePoints?: number // 消耗积分 + remark?: string // 备注 +} // AI模型配置 API export const AiModelConfigApi = { diff --git a/yudao-ui-admin-vue3/src/api/tik/token/index.ts b/yudao-ui-admin-vue3/src/api/tik/token/index.ts index 453249bfff..0e440b2e9d 100644 --- a/yudao-ui-admin-vue3/src/api/tik/token/index.ts +++ b/yudao-ui-admin-vue3/src/api/tik/token/index.ts @@ -3,10 +3,11 @@ import type { Dayjs } from 'dayjs'; /** tikhup管理信息 */ export interface Token { - platformUrl?: string; // 平台URL - platformToken?: string; // 平台Token - id: number; // 主键ID - } + platformUrl?: string; // 平台URL + interfaceType?: string; // 接口类型 + interfaceDesc?: string; // 接口描述 + id: number; // 主键ID +} // tikhup管理 API export const TokenApi = { diff --git a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue index 5e0ed3597c..06af1111ed 100644 --- a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue +++ b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/AiModelConfigForm.vue @@ -25,15 +25,6 @@ 禁用 - - - - - - - - - 图像 @@ -46,18 +37,6 @@ - - - - - - - - - - - - @@ -88,15 +67,8 @@ const formData = ref({ platform: undefined, apiKey: undefined, status: undefined, - temperature: undefined, - maxTokens: undefined, - dailyLimit: undefined, modelType: undefined, consumePoints: undefined, - maxTextLength: undefined, - maxImageSize: undefined, - maxVideoDuration: undefined, - maxVideoQuality: undefined, remark: undefined, }) const formRules = reactive({ @@ -104,9 +76,6 @@ const formRules = reactive({ modelCode: [{ required: true, message: '模型标识/编码不能为空', trigger: 'blur' }], platform: [{ required: true, message: '所属平台不能为空', trigger: 'blur' }], status: [{ required: true, message: '状态不能为空', trigger: 'blur' }], - temperature: [{ required: true, message: '温度参数不能为空', trigger: 'blur' }], - maxTokens: [{ required: true, message: '回复数Token数不能为空', trigger: 'blur' }], - dailyLimit: [{ required: true, message: '每日请求次数不能为空', trigger: 'blur' }], modelType: [{ required: true, message: '模型类型不能为空', trigger: 'change' }], consumePoints: [{ required: true, message: '消耗积分不能为空', trigger: 'blur' }], remark: [{ required: true, message: '备注不能为空', trigger: 'blur' }], @@ -164,15 +133,8 @@ const resetForm = () => { platform: undefined, apiKey: undefined, status: undefined, - temperature: undefined, - maxTokens: undefined, - dailyLimit: undefined, modelType: undefined, consumePoints: undefined, - maxTextLength: undefined, - maxImageSize: undefined, - maxVideoDuration: undefined, - maxVideoQuality: undefined, remark: undefined, } formRef.value?.resetFields() diff --git a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue index 73c56b39c6..8b0f8f3157 100644 --- a/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue +++ b/yudao-ui-admin-vue3/src/views/muye/aimodelconfig/index.vue @@ -118,15 +118,8 @@ - - - - - - -