package com.zy.ai.controller;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.core.annotations.ManagerAuth;
|
import com.core.common.R;
|
import com.zy.ai.entity.AiPromptTemplate;
|
import com.zy.ai.service.AiPromptTemplateService;
|
import com.zy.common.web.BaseController;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import java.util.List;
|
|
@RestController
|
@RequestMapping("/ai/prompt/template")
|
@RequiredArgsConstructor
|
public class AiPromptTemplateController extends BaseController {
|
|
private final AiPromptTemplateService aiPromptTemplateService;
|
|
@GetMapping("/sceneList/auth")
|
@ManagerAuth
|
public R sceneList() {
|
return R.ok(aiPromptTemplateService.listSupportedScenes());
|
}
|
|
@GetMapping("/list/auth")
|
@ManagerAuth
|
public R list(@RequestParam(value = "sceneCode", required = false) String sceneCode,
|
@RequestParam(value = "published", required = false) Short published,
|
@RequestParam(value = "status", required = false) Short status) {
|
QueryWrapper<AiPromptTemplate> wrapper = new QueryWrapper<>();
|
if (sceneCode != null && !sceneCode.trim().isEmpty()) {
|
wrapper.eq("scene_code", sceneCode.trim());
|
}
|
if (published != null) {
|
wrapper.eq("published", published);
|
}
|
if (status != null) {
|
wrapper.eq("status", status);
|
}
|
wrapper.orderByAsc("scene_code").orderByDesc("version").orderByDesc("id");
|
List<AiPromptTemplate> list = aiPromptTemplateService.enrichTemplates(aiPromptTemplateService.list(wrapper));
|
return R.ok(list);
|
}
|
|
@GetMapping("/active/auth")
|
@ManagerAuth
|
public R active(@RequestParam("sceneCode") String sceneCode) {
|
try {
|
return R.ok(aiPromptTemplateService.enrichTemplate(aiPromptTemplateService.resolvePublished(sceneCode)));
|
} catch (IllegalArgumentException | IllegalStateException e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping("/save/auth")
|
@ManagerAuth
|
public R save(@RequestBody AiPromptTemplate template) {
|
try {
|
return R.ok(aiPromptTemplateService.enrichTemplate(aiPromptTemplateService.savePrompt(template, getUserId())));
|
} catch (IllegalArgumentException e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping("/publish/auth")
|
@ManagerAuth
|
public R publish(@RequestParam("id") Long id) {
|
try {
|
return R.ok(aiPromptTemplateService.enrichTemplate(aiPromptTemplateService.publishPrompt(id, getUserId())));
|
} catch (IllegalArgumentException e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping("/cancelPublish/auth")
|
@ManagerAuth
|
public R cancelPublish(@RequestParam("id") Long id) {
|
try {
|
return R.ok(aiPromptTemplateService.enrichTemplate(aiPromptTemplateService.cancelPublish(id, getUserId())));
|
} catch (IllegalArgumentException e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping("/delete/auth")
|
@ManagerAuth
|
public R delete(@RequestParam("id") Long id) {
|
try {
|
return R.ok(aiPromptTemplateService.deletePrompt(id));
|
} catch (IllegalArgumentException e) {
|
return R.error(e.getMessage());
|
}
|
}
|
|
@PostMapping("/initDefaults/auth")
|
@ManagerAuth
|
public R initDefaults() {
|
return R.ok(aiPromptTemplateService.initDefaultsIfMissing());
|
}
|
}
|