diff --git a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java index 7a3fd27f3..3cb95882e 100644 --- a/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java +++ b/yudao-module-llm/yudao-module-llm-api/src/main/java/cn/iocoder/yudao/module/llm/enums/ErrorCodeConstants.java @@ -38,7 +38,6 @@ public interface ErrorCodeConstants { ErrorCode DATASET_ANSWER_NOT_EXISTS = new ErrorCode(10018, "数据集标准问题答案不存在"); */ - ErrorCode PROMPT_TEMPLATES_NOT_EXISTS = new ErrorCode(100_1000, "模板信息不存在"); ErrorCode PROMPT_TEMPLATES_EXISTS = new ErrorCode(100_1001, "模板信息已存在"); @@ -76,14 +75,22 @@ public interface ErrorCodeConstants { ErrorCode TRAINING_NOT_EXISTS = new ErrorCode(10029, "训练不存在"); ErrorCode MODEL_COMPLETIONS_ERROR = new ErrorCode(10030, "模型推理失败"); + ErrorCode MANUAL_MODEL_ANSWER_NOT_EXISTS = new ErrorCode(10031, "模型评估人工评估信息不存在"); + ErrorCode MANUAL_MODEL_ANNO_NOT_EXISTS = new ErrorCode(10032, "模型评估人工评估标注信息不存在"); ErrorCode MODEL_ASSESS_TASK_MANUAL_BACKUP_NOT_EXISTS = new ErrorCode(10033, "人工评估备份不存在"); ErrorCode MODEL_ASSESS_TASK_MANUAL_BACKUP_EXISTS = new ErrorCode(100_1002, "人工评估已备份"); + ErrorCode DATASET_NAME_EXISTS = new ErrorCode(10034, "数据集名称重复"); + ErrorCode MODEL_ASSESS_TASK_MANUAL_NAME_EXISTS = new ErrorCode(10035, "模型评估任务人工评估名称重复"); + ErrorCode PROMPT_TEMPLATES_APPLICATIONS_BACKUP_NOT_EXISTS = new ErrorCode(10036, "模板信息不存在"); + + ErrorCode PROMPT_TEMPLATES_TAGS_BACKUP_NOT_EXISTS = new ErrorCode(10037, "模板信息不存在"); + } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java index 00d5b9fb5..2d9bee482 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/PromptTemplatesController.java @@ -84,4 +84,12 @@ public class PromptTemplatesController { promptTemplatesService.backupPromptTemplates(updateReqVO); return success(true); } -} \ No newline at end of file + + @PostMapping("/unbackup") + @Operation(summary = "取消备份Prompt模板") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates:update')") + public CommonResult unbackupPromptTemplates(@Valid @RequestBody PromptTemplatesSaveReqVO updateReqVO) { + promptTemplatesService.unbackupPromptTemplates(updateReqVO); + return success(true); + } +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java index 2d12bcb57..5ddc6d5f5 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplates/vo/PromptTemplatesSaveReqVO.java @@ -45,4 +45,6 @@ public class PromptTemplatesSaveReqVO { @Schema(description = "角色能力框架") private SampleFramework sampleFramework; + @Schema(description = "备份表id") + private Long backupId; } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupController.java new file mode 100644 index 000000000..965918b79 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupDO; +import cn.iocoder.yudao.module.llm.service.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupService; + +@Tag(name = "管理后台 - Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系") +@RestController +@RequestMapping("/llm/prompt-templates-applications-backup") +@Validated +public class PromptTemplatesApplicationsBackupController { + + @Resource + private PromptTemplatesApplicationsBackupService promptTemplatesApplicationsBackupService; + + @PostMapping("/create") + @Operation(summary = "创建Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications-backup:create')") + public CommonResult createPromptTemplatesApplicationsBackup(@Valid @RequestBody PromptTemplatesApplicationsBackupSaveReqVO createReqVO) { + return success(promptTemplatesApplicationsBackupService.createPromptTemplatesApplicationsBackup(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications-backup:update')") + public CommonResult updatePromptTemplatesApplicationsBackup(@Valid @RequestBody PromptTemplatesApplicationsBackupSaveReqVO updateReqVO) { + promptTemplatesApplicationsBackupService.updatePromptTemplatesApplicationsBackup(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications-backup:delete')") + public CommonResult deletePromptTemplatesApplicationsBackup(@RequestParam("id") Long id) { + promptTemplatesApplicationsBackupService.deletePromptTemplatesApplicationsBackup(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications-backup:query')") + public CommonResult getPromptTemplatesApplicationsBackup(@RequestParam("id") Long id) { + PromptTemplatesApplicationsBackupDO promptTemplatesApplicationsBackup = promptTemplatesApplicationsBackupService.getPromptTemplatesApplicationsBackup(id); + return success(BeanUtils.toBean(promptTemplatesApplicationsBackup, PromptTemplatesApplicationsBackupRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系分页") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications-backup:query')") + public CommonResult> getPromptTemplatesApplicationsBackupPage(@Valid PromptTemplatesApplicationsBackupPageReqVO pageReqVO) { + PageResult pageResult = promptTemplatesApplicationsBackupService.getPromptTemplatesApplicationsBackupPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PromptTemplatesApplicationsBackupRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 Excel") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-applications-backup:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPromptTemplatesApplicationsBackupExcel(@Valid PromptTemplatesApplicationsBackupPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = promptTemplatesApplicationsBackupService.getPromptTemplatesApplicationsBackupPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系.xls", "数据", PromptTemplatesApplicationsBackupRespVO.class, + BeanUtils.toBean(list, PromptTemplatesApplicationsBackupRespVO.class)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupPageReqVO.java new file mode 100644 index 000000000..689dfcb7f --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PromptTemplatesApplicationsBackupPageReqVO extends PageParam { + + @Schema(description = "Prompt 模板ID", example = "32227") + private Long promptTemplateId; + + @Schema(description = "应用ID", example = "22831") + private Long applicationId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupRespVO.java new file mode 100644 index 000000000..5f2b52c59 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PromptTemplatesApplicationsBackupRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8692") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "32227") + @ExcelProperty("Prompt 模板ID") + private Long promptTemplateId; + + @Schema(description = "应用ID", example = "22831") + @ExcelProperty("应用ID") + private Long applicationId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupSaveReqVO.java new file mode 100644 index 000000000..fa5ebf360 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesapplicationsbackup/vo/PromptTemplatesApplicationsBackupSaveReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系新增/修改 Request VO") +@Data +public class PromptTemplatesApplicationsBackupSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8692") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "32227") + private Long promptTemplateId; + + @Schema(description = "应用ID", example = "22831") + private Long applicationId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesbackup/PromptTemplatesBackupController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesbackup/PromptTemplatesBackupController.java index 754e1bac5..61fba20fe 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesbackup/PromptTemplatesBackupController.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatesbackup/PromptTemplatesBackupController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesbackup; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.PromptTemplatesSaveReqVO; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -77,6 +78,14 @@ public class PromptTemplatesBackupController { return success(promptTemplatesBackupService.getPromptTemplatesBackupPage(pageReqVO)); } + @PostMapping("/unbackup") + @Operation(summary = "取消备份Prompt模板") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-backup:delete')") + public CommonResult unbackupPromptTemplates(@Valid @RequestBody PromptTemplatesBackupSaveReqVO updateReqVO) { + promptTemplatesBackupService.unbackupPromptTemplates(updateReqVO); + return success(true); + } + // @GetMapping("/export-excel") // @Operation(summary = "导出Prompt模板备份 Excel") // @PreAuthorize("@ss.hasPermission('llm:prompt-templates-backup:export')") @@ -90,4 +99,4 @@ public class PromptTemplatesBackupController { // BeanUtils.toBean(list, PromptTemplatesBackupRespVO.class)); // } -} \ No newline at end of file +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/PromptTemplatesTagsBackupController.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/PromptTemplatesTagsBackupController.java new file mode 100644 index 000000000..e9a9d4897 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/PromptTemplatesTagsBackupController.java @@ -0,0 +1,95 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; + +import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; +import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; + +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestagsbackup.PromptTemplatesTagsBackupDO; +import cn.iocoder.yudao.module.llm.service.prompttemplatestagsbackup.PromptTemplatesTagsBackupService; + +@Tag(name = "管理后台 - Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系") +@RestController +@RequestMapping("/llm/prompt-templates-tags-backup") +@Validated +public class PromptTemplatesTagsBackupController { + + @Resource + private PromptTemplatesTagsBackupService promptTemplatesTagsBackupService; + + @PostMapping("/create") + @Operation(summary = "创建Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags-backup:create')") + public CommonResult createPromptTemplatesTagsBackup(@Valid @RequestBody PromptTemplatesTagsBackupSaveReqVO createReqVO) { + return success(promptTemplatesTagsBackupService.createPromptTemplatesTagsBackup(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags-backup:update')") + public CommonResult updatePromptTemplatesTagsBackup(@Valid @RequestBody PromptTemplatesTagsBackupSaveReqVO updateReqVO) { + promptTemplatesTagsBackupService.updatePromptTemplatesTagsBackup(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags-backup:delete')") + public CommonResult deletePromptTemplatesTagsBackup(@RequestParam("id") Long id) { + promptTemplatesTagsBackupService.deletePromptTemplatesTagsBackup(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags-backup:query')") + public CommonResult getPromptTemplatesTagsBackup(@RequestParam("id") Long id) { + PromptTemplatesTagsBackupDO promptTemplatesTagsBackup = promptTemplatesTagsBackupService.getPromptTemplatesTagsBackup(id); + return success(BeanUtils.toBean(promptTemplatesTagsBackup, PromptTemplatesTagsBackupRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系分页") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags-backup:query')") + public CommonResult> getPromptTemplatesTagsBackupPage(@Valid PromptTemplatesTagsBackupPageReqVO pageReqVO) { + PageResult pageResult = promptTemplatesTagsBackupService.getPromptTemplatesTagsBackupPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, PromptTemplatesTagsBackupRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 Excel") + @PreAuthorize("@ss.hasPermission('llm:prompt-templates-tags-backup:export')") + @ApiAccessLog(operateType = EXPORT) + public void exportPromptTemplatesTagsBackupExcel(@Valid PromptTemplatesTagsBackupPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = promptTemplatesTagsBackupService.getPromptTemplatesTagsBackupPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系.xls", "数据", PromptTemplatesTagsBackupRespVO.class, + BeanUtils.toBean(list, PromptTemplatesTagsBackupRespVO.class)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupPageReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupPageReqVO.java new file mode 100644 index 000000000..a9c2f5f11 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupPageReqVO.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class PromptTemplatesTagsBackupPageReqVO extends PageParam { + + @Schema(description = "Prompt 模板ID", example = "30858") + private Long promptTemplateId; + + @Schema(description = "标签ID", example = "27268") + private Long tagId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupRespVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupRespVO.java new file mode 100644 index 000000000..c4876c6db --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupRespVO.java @@ -0,0 +1,31 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 Response VO") +@Data +@ExcelIgnoreUnannotated +public class PromptTemplatesTagsBackupRespVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14212") + @ExcelProperty("ID") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "30858") + @ExcelProperty("Prompt 模板ID") + private Long promptTemplateId; + + @Schema(description = "标签ID", example = "27268") + @ExcelProperty("标签ID") + private Long tagId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupSaveReqVO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupSaveReqVO.java new file mode 100644 index 000000000..c15bdc638 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/controller/admin/prompttemplatestagsbackup/vo/PromptTemplatesTagsBackupSaveReqVO.java @@ -0,0 +1,21 @@ +package cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系新增/修改 Request VO") +@Data +public class PromptTemplatesTagsBackupSaveReqVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "14212") + private Long id; + + @Schema(description = "Prompt 模板ID", example = "30858") + private Long promptTemplateId; + + @Schema(description = "标签ID", example = "27268") + private Long tagId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java index 1cdb62613..1ca2b641e 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplates/PromptTemplatesDO.java @@ -52,4 +52,9 @@ public class PromptTemplatesDO extends BaseDO { */ private Integer templateType; + /** + * 备份表id + */ + private Long backupId; + } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupDO.java new file mode 100644 index 000000000..06c1697c8 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 DO + * + * @author 华大大模型 + */ +@TableName("llm_prompt_templates_applications_backup") +@KeySequence("llm_prompt_templates_applications_backup_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PromptTemplatesApplicationsBackupDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * Prompt 模板ID + */ + private Long promptTemplateId; + /** + * 应用ID + */ + private Long applicationId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestagsbackup/PromptTemplatesTagsBackupDO.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestagsbackup/PromptTemplatesTagsBackupDO.java new file mode 100644 index 000000000..fe212cecf --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/dataobject/prompttemplatestagsbackup/PromptTemplatesTagsBackupDO.java @@ -0,0 +1,39 @@ +package cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestagsbackup; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; + +/** + * Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 DO + * + * @author 华大大模型 + */ +@TableName("llm_prompt_templates_tags_backup") +@KeySequence("llm_prompt_templates_tags_backup_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PromptTemplatesTagsBackupDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * Prompt 模板ID + */ + private Long promptTemplateId; + /** + * 标签ID + */ + private Long tagId; + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupMapper.java new file mode 100644 index 000000000..9e2acbd3b --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplicationsbackup; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo.*; + +/** + * Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface PromptTemplatesApplicationsBackupMapper extends BaseMapperX { + + default PageResult selectPage(PromptTemplatesApplicationsBackupPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PromptTemplatesApplicationsBackupDO::getPromptTemplateId, reqVO.getPromptTemplateId()) + .eqIfPresent(PromptTemplatesApplicationsBackupDO::getApplicationId, reqVO.getApplicationId()) + .betweenIfPresent(PromptTemplatesApplicationsBackupDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(PromptTemplatesApplicationsBackupDO::getId)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestagsbackup/PromptTemplatesTagsBackupMapper.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestagsbackup/PromptTemplatesTagsBackupMapper.java new file mode 100644 index 000000000..6614856e7 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/dal/mysql/prompttemplatestagsbackup/PromptTemplatesTagsBackupMapper.java @@ -0,0 +1,28 @@ +package cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestagsbackup; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestagsbackup.PromptTemplatesTagsBackupDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo.*; + +/** + * Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 Mapper + * + * @author 华大大模型 + */ +@Mapper +public interface PromptTemplatesTagsBackupMapper extends BaseMapperX { + + default PageResult selectPage(PromptTemplatesTagsBackupPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(PromptTemplatesTagsBackupDO::getPromptTemplateId, reqVO.getPromptTemplateId()) + .eqIfPresent(PromptTemplatesTagsBackupDO::getTagId, reqVO.getTagId()) + .betweenIfPresent(PromptTemplatesTagsBackupDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(PromptTemplatesTagsBackupDO::getId)); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java index 603294ddc..426025bad 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesService.java @@ -20,4 +20,6 @@ public interface PromptTemplatesService { HttpServletResponse response) throws Exception; void backupPromptTemplates(@Valid PromptTemplatesSaveReqVO updateReqVO); -} \ No newline at end of file + + void unbackupPromptTemplates(PromptTemplatesSaveReqVO updateReqVO); +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java index d2fb2b4d9..319fcb1dc 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplates/PromptTemplatesServiceImpl.java @@ -305,6 +305,21 @@ public class PromptTemplatesServiceImpl implements PromptTemplatesService { PromptTemplatesBackupSaveReqVO templatesBackupDo = BeanUtils.toBean(templatesDo, PromptTemplatesBackupSaveReqVO.class); templatesBackupDo.setId(null); templatesBackupDo.setSrcId(updateReqVO.getId()); - this.promptTemplatesBackupService.createPromptTemplatesBackup(templatesBackupDo); + Long promptTemplatesBackup = this.promptTemplatesBackupService.createPromptTemplatesBackup(templatesBackupDo); + PromptTemplatesDO promptTemplatesDO = new PromptTemplatesDO(); + promptTemplatesDO.setBackupId(promptTemplatesBackup); + promptTemplatesDO.setId(updateReqVO.getId()); + promptTemplatesMapper.updateById(promptTemplatesDO); + } + + @Override + public void unbackupPromptTemplates(PromptTemplatesSaveReqVO updateReqVO) { + PromptTemplatesDO templatesDo = this.promptTemplatesMapper.selectById(updateReqVO.getId()); + Long backupId = templatesDo.getBackupId(); + promptTemplatesBackupService.deletePromptTemplatesBackup(backupId); + PromptTemplatesDO promptTemplatesDO = new PromptTemplatesDO(); + promptTemplatesDO.setBackupId(0l); + promptTemplatesDO.setId(updateReqVO.getId()); + promptTemplatesMapper.updateById(promptTemplatesDO); } } diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupService.java new file mode 100644 index 000000000..a2a9d0558 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatesapplicationsbackup; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 Service 接口 + * + * @author 华大大模型 + */ +public interface PromptTemplatesApplicationsBackupService { + + /** + * 创建Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPromptTemplatesApplicationsBackup(@Valid PromptTemplatesApplicationsBackupSaveReqVO createReqVO); + + /** + * 更新Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 + * + * @param updateReqVO 更新信息 + */ + void updatePromptTemplatesApplicationsBackup(@Valid PromptTemplatesApplicationsBackupSaveReqVO updateReqVO); + + /** + * 删除Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 + * + * @param id 编号 + */ + void deletePromptTemplatesApplicationsBackup(Long id); + + /** + * 获得Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 + * + * @param id 编号 + * @return Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 + */ + PromptTemplatesApplicationsBackupDO getPromptTemplatesApplicationsBackup(Long id); + + /** + * 获得Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系分页 + * + * @param pageReqVO 分页查询 + * @return Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系分页 + */ + PageResult getPromptTemplatesApplicationsBackupPage(PromptTemplatesApplicationsBackupPageReqVO pageReqVO); + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupServiceImpl.java new file mode 100644 index 000000000..979e50129 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesapplicationsbackup/PromptTemplatesApplicationsBackupServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatesapplicationsbackup; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatesapplicationsbackup.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * Prompt 模板 应用关系表 备份表,记录模板和应用之间的多对多关系 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class PromptTemplatesApplicationsBackupServiceImpl implements PromptTemplatesApplicationsBackupService { + + @Resource + private PromptTemplatesApplicationsBackupMapper promptTemplatesApplicationsBackupMapper; + + @Override + public Long createPromptTemplatesApplicationsBackup(PromptTemplatesApplicationsBackupSaveReqVO createReqVO) { + // 插入 + PromptTemplatesApplicationsBackupDO promptTemplatesApplicationsBackup = BeanUtils.toBean(createReqVO, PromptTemplatesApplicationsBackupDO.class); + promptTemplatesApplicationsBackupMapper.insert(promptTemplatesApplicationsBackup); + // 返回 + return promptTemplatesApplicationsBackup.getId(); + } + + @Override + public void updatePromptTemplatesApplicationsBackup(PromptTemplatesApplicationsBackupSaveReqVO updateReqVO) { + // 校验存在 + validatePromptTemplatesApplicationsBackupExists(updateReqVO.getId()); + // 更新 + PromptTemplatesApplicationsBackupDO updateObj = BeanUtils.toBean(updateReqVO, PromptTemplatesApplicationsBackupDO.class); + promptTemplatesApplicationsBackupMapper.updateById(updateObj); + } + + @Override + public void deletePromptTemplatesApplicationsBackup(Long id) { + // 校验存在 + validatePromptTemplatesApplicationsBackupExists(id); + // 删除 + promptTemplatesApplicationsBackupMapper.deleteById(id); + } + + private void validatePromptTemplatesApplicationsBackupExists(Long id) { + if (promptTemplatesApplicationsBackupMapper.selectById(id) == null) { + throw exception(PROMPT_TEMPLATES_APPLICATIONS_BACKUP_NOT_EXISTS); + } + } + + @Override + public PromptTemplatesApplicationsBackupDO getPromptTemplatesApplicationsBackup(Long id) { + return promptTemplatesApplicationsBackupMapper.selectById(id); + } + + @Override + public PageResult getPromptTemplatesApplicationsBackupPage(PromptTemplatesApplicationsBackupPageReqVO pageReqVO) { + return promptTemplatesApplicationsBackupMapper.selectPage(pageReqVO); + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupService.java index 235627443..8a735ca54 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupService.java @@ -56,4 +56,6 @@ public interface PromptTemplatesBackupService { PromptTemplatesBackupDO getPromptTemplatesBackupBySrcId(Long srcId); -} \ No newline at end of file + void unbackupPromptTemplates(PromptTemplatesBackupSaveReqVO updateReqVO); + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupServiceImpl.java index f0104cd0e..c6fbf4517 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatesbackup/PromptTemplatesBackupServiceImpl.java @@ -1,16 +1,23 @@ package cn.iocoder.yudao.module.llm.service.prompttemplatesbackup; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.AbilityFramework; import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.BriefFramework; import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.PromptTemplatesRespVO; import cn.iocoder.yudao.module.llm.controller.admin.prompttemplates.vo.SampleFramework; import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplates.PromptTemplatesDO; import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplications.PromptTemplatesApplicationsDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupDO; import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestags.PromptTemplatesTagsDO; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestagsbackup.PromptTemplatesTagsBackupDO; +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplates.PromptTemplatesMapper; import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplications.PromptTemplatesApplicationsMapper; +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatesapplicationsbackup.PromptTemplatesApplicationsBackupMapper; import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestags.PromptTemplatesTagsMapper; +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestagsbackup.PromptTemplatesTagsBackupMapper; import cn.iocoder.yudao.module.system.api.dict.DictDataApi; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -40,6 +47,8 @@ import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; @Validated public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupService { + @Resource + private PromptTemplatesMapper promptTemplatesMapper; @Resource private PromptTemplatesBackupMapper promptTemplatesBackupMapper; @Resource @@ -47,6 +56,10 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe @Resource private PromptTemplatesApplicationsMapper promptTemplatesApplicationsMapper; @Resource + private PromptTemplatesTagsBackupMapper promptTemplatesTagsBackupMapper; + @Resource + private PromptTemplatesApplicationsBackupMapper promptTemplatesApplicationsBackupMapper; + @Resource private DictDataApi dictDataApi; @Override @@ -54,6 +67,28 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe // 插入 PromptTemplatesBackupDO promptTemplatesBackup = BeanUtils.toBean(createReqVO, PromptTemplatesBackupDO.class); promptTemplatesBackupMapper.insert(promptTemplatesBackup); + + Long srcId = createReqVO.getSrcId(); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PromptTemplatesTagsDO::getPromptTemplateId,srcId); + List promptTemplatesTagsDOS = promptTemplatesTagsMapper.selectList(queryWrapper); + for (PromptTemplatesTagsDO promptTemplatesTagsDO : promptTemplatesTagsDOS) { + PromptTemplatesTagsBackupDO tagsBackupDO = new PromptTemplatesTagsBackupDO(); + tagsBackupDO.setTagId(promptTemplatesTagsDO.getTagId()); + tagsBackupDO.setPromptTemplateId(srcId); + promptTemplatesTagsBackupMapper.insert(tagsBackupDO); + } + + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PromptTemplatesApplicationsDO::getPromptTemplateId,srcId); + List promptTemplatesApplicationsDOS = promptTemplatesApplicationsMapper.selectList(query); + for (PromptTemplatesApplicationsDO promptTemplatesApplicationsDO : promptTemplatesApplicationsDOS) { + PromptTemplatesApplicationsBackupDO applicationsBackupDO = new PromptTemplatesApplicationsBackupDO(); + applicationsBackupDO.setApplicationId(promptTemplatesApplicationsDO.getApplicationId()); + applicationsBackupDO.setPromptTemplateId(srcId); + promptTemplatesApplicationsBackupMapper.insert(applicationsBackupDO); + } // 返回 return promptTemplatesBackup.getId(); } @@ -73,6 +108,15 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe validatePromptTemplatesBackupExists(id); // 删除 promptTemplatesBackupMapper.deleteById(id); + + LambdaQueryWrapper wrapper = new LambdaQueryWrapperX<>(); + wrapper.eq(PromptTemplatesTagsBackupDO::getPromptTemplateId,id); + promptTemplatesTagsBackupMapper.delete(wrapper); + + + LambdaQueryWrapper wrapper1 = new LambdaQueryWrapperX<>(); + wrapper1.eq(PromptTemplatesApplicationsBackupDO::getPromptTemplateId,id); + promptTemplatesApplicationsBackupMapper.delete(wrapper1); } private void validatePromptTemplatesBackupExists(Long id) { @@ -176,4 +220,17 @@ public class PromptTemplatesBackupServiceImpl implements PromptTemplatesBackupSe return templateBackupDOList.get(0); } -} \ No newline at end of file + @Override + public void unbackupPromptTemplates(PromptTemplatesBackupSaveReqVO updateReqVO) { + Long srcId = updateReqVO.getSrcId(); + PromptTemplatesDO promptTemplatesDO = new PromptTemplatesDO(); + promptTemplatesDO.setId(srcId); + promptTemplatesDO.setBackupId(0l); + promptTemplatesMapper.updateById(promptTemplatesDO); + + Long id = updateReqVO.getId(); + this.deletePromptTemplatesBackup(id); + + } + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestagsbackup/PromptTemplatesTagsBackupService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestagsbackup/PromptTemplatesTagsBackupService.java new file mode 100644 index 000000000..14fa2f2f7 --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestagsbackup/PromptTemplatesTagsBackupService.java @@ -0,0 +1,55 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatestagsbackup; + +import java.util.*; +import javax.validation.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestagsbackup.PromptTemplatesTagsBackupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; + +/** + * Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 Service 接口 + * + * @author 华大大模型 + */ +public interface PromptTemplatesTagsBackupService { + + /** + * 创建Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createPromptTemplatesTagsBackup(@Valid PromptTemplatesTagsBackupSaveReqVO createReqVO); + + /** + * 更新Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 + * + * @param updateReqVO 更新信息 + */ + void updatePromptTemplatesTagsBackup(@Valid PromptTemplatesTagsBackupSaveReqVO updateReqVO); + + /** + * 删除Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 + * + * @param id 编号 + */ + void deletePromptTemplatesTagsBackup(Long id); + + /** + * 获得Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 + * + * @param id 编号 + * @return Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 + */ + PromptTemplatesTagsBackupDO getPromptTemplatesTagsBackup(Long id); + + /** + * 获得Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系分页 + * + * @param pageReqVO 分页查询 + * @return Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系分页 + */ + PageResult getPromptTemplatesTagsBackupPage(PromptTemplatesTagsBackupPageReqVO pageReqVO); + +} diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestagsbackup/PromptTemplatesTagsBackupServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestagsbackup/PromptTemplatesTagsBackupServiceImpl.java new file mode 100644 index 000000000..b7952adda --- /dev/null +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/prompttemplatestagsbackup/PromptTemplatesTagsBackupServiceImpl.java @@ -0,0 +1,74 @@ +package cn.iocoder.yudao.module.llm.service.prompttemplatestagsbackup; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import cn.iocoder.yudao.module.llm.controller.admin.prompttemplatestagsbackup.vo.*; +import cn.iocoder.yudao.module.llm.dal.dataobject.prompttemplatestagsbackup.PromptTemplatesTagsBackupDO; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + +import cn.iocoder.yudao.module.llm.dal.mysql.prompttemplatestagsbackup.PromptTemplatesTagsBackupMapper; + +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; +import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.*; + +/** + * Prompt 模板标签关系表 备份表,记录模板和标签之间的多对多关系 Service 实现类 + * + * @author 华大大模型 + */ +@Service +@Validated +public class PromptTemplatesTagsBackupServiceImpl implements PromptTemplatesTagsBackupService { + + @Resource + private PromptTemplatesTagsBackupMapper promptTemplatesTagsBackupMapper; + + @Override + public Long createPromptTemplatesTagsBackup(PromptTemplatesTagsBackupSaveReqVO createReqVO) { + // 插入 + PromptTemplatesTagsBackupDO promptTemplatesTagsBackup = BeanUtils.toBean(createReqVO, PromptTemplatesTagsBackupDO.class); + promptTemplatesTagsBackupMapper.insert(promptTemplatesTagsBackup); + // 返回 + return promptTemplatesTagsBackup.getId(); + } + + @Override + public void updatePromptTemplatesTagsBackup(PromptTemplatesTagsBackupSaveReqVO updateReqVO) { + // 校验存在 + validatePromptTemplatesTagsBackupExists(updateReqVO.getId()); + // 更新 + PromptTemplatesTagsBackupDO updateObj = BeanUtils.toBean(updateReqVO, PromptTemplatesTagsBackupDO.class); + promptTemplatesTagsBackupMapper.updateById(updateObj); + } + + @Override + public void deletePromptTemplatesTagsBackup(Long id) { + // 校验存在 + validatePromptTemplatesTagsBackupExists(id); + // 删除 + promptTemplatesTagsBackupMapper.deleteById(id); + } + + private void validatePromptTemplatesTagsBackupExists(Long id) { + if (promptTemplatesTagsBackupMapper.selectById(id) == null) { + throw exception(PROMPT_TEMPLATES_TAGS_BACKUP_NOT_EXISTS); + } + } + + @Override + public PromptTemplatesTagsBackupDO getPromptTemplatesTagsBackup(Long id) { + return promptTemplatesTagsBackupMapper.selectById(id); + } + + @Override + public PageResult getPromptTemplatesTagsBackupPage(PromptTemplatesTagsBackupPageReqVO pageReqVO) { + return promptTemplatesTagsBackupMapper.selectPage(pageReqVO); + } + +}