feat(ai-web): 完成任务模板的CRUD
This commit is contained in:
@@ -1,13 +1,22 @@
|
||||
package com.lanyuanxiaoyao.service.ai.web.controller.task;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisCrudResponse;
|
||||
import com.lanyuanxiaoyao.service.ai.core.entity.amis.AmisResponse;
|
||||
import com.lanyuanxiaoyao.service.ai.web.base.controller.SimpleControllerSupport;
|
||||
import com.lanyuanxiaoyao.service.ai.web.base.controller.query.Query;
|
||||
import com.lanyuanxiaoyao.service.ai.web.base.entity.SimpleItem;
|
||||
import com.lanyuanxiaoyao.service.ai.web.entity.FlowTaskTemplate;
|
||||
import com.lanyuanxiaoyao.service.ai.web.service.task.FlowTaskTemplateService;
|
||||
import java.util.Map;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.mapstruct.Context;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@@ -15,13 +24,32 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
@RestController
|
||||
@RequestMapping("flow_task/template")
|
||||
public class TaskTemplateController extends SimpleControllerSupport<FlowTaskTemplate, TaskTemplateController.SaveItem, TaskTemplateController.ListItem, TaskTemplateController.DetailItem> {
|
||||
public TaskTemplateController(FlowTaskTemplateService flowTaskTemplateService) {
|
||||
private final ObjectMapper mapper;
|
||||
|
||||
public TaskTemplateController(FlowTaskTemplateService flowTaskTemplateService, Jackson2ObjectMapperBuilder builder) {
|
||||
super(flowTaskTemplateService);
|
||||
this.mapper = builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AmisResponse<Long> save(SaveItem saveItem) throws Exception {
|
||||
log.info("Save: {}", saveItem);
|
||||
SaveItem.Mapper map = Mappers.getMapper(SaveItem.Mapper.class);
|
||||
log.info("Mapper: {}", map.from(saveItem, mapper));
|
||||
return super.save(saveItem);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AmisCrudResponse list(Query query) throws Exception {
|
||||
AmisCrudResponse list = super.list(query);
|
||||
log.info("List: {}", list);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SaveItemMapper<FlowTaskTemplate, SaveItem> saveItemMapper() {
|
||||
return Mappers.getMapper(SaveItem.Mapper.class);
|
||||
SaveItem.Mapper map = Mappers.getMapper(SaveItem.Mapper.class);
|
||||
return item -> map.from(item, mapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -31,18 +59,24 @@ public class TaskTemplateController extends SimpleControllerSupport<FlowTaskTemp
|
||||
|
||||
@Override
|
||||
protected DetailItemMapper<FlowTaskTemplate, DetailItem> detailItemMapper() {
|
||||
return Mappers.getMapper(DetailItem.Mapper.class);
|
||||
DetailItem.Mapper map = Mappers.getMapper(DetailItem.Mapper.class);
|
||||
return template -> map.from(template, mapper);
|
||||
}
|
||||
|
||||
@Data
|
||||
public static final class SaveItem {
|
||||
private Long id;
|
||||
private String name;
|
||||
private String description;
|
||||
private String inputSchema;
|
||||
private String flow;
|
||||
private Map<String, Object> inputSchema;
|
||||
|
||||
@org.mapstruct.Mapper
|
||||
public interface Mapper extends SaveItemMapper<FlowTaskTemplate, SaveItem> {
|
||||
public static abstract class Mapper {
|
||||
public abstract FlowTaskTemplate from(SaveItem saveItem, @Context ObjectMapper mapper) throws Exception;
|
||||
|
||||
protected String mapInputSchema(Map<String, Object> inputSchema, @Context ObjectMapper mapper) throws JsonProcessingException {
|
||||
return mapper.writeValueAsString(inputSchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,11 +96,15 @@ public class TaskTemplateController extends SimpleControllerSupport<FlowTaskTemp
|
||||
public static class DetailItem extends SimpleItem {
|
||||
private String name;
|
||||
private String description;
|
||||
private String inputSchema;
|
||||
private String flow;
|
||||
private Map<String, Object> inputSchema;
|
||||
|
||||
@org.mapstruct.Mapper
|
||||
public interface Mapper extends DetailItemMapper<FlowTaskTemplate, DetailItem> {
|
||||
public static abstract class Mapper {
|
||||
public abstract DetailItem from(FlowTaskTemplate template, @Context ObjectMapper mapper) throws Exception;
|
||||
|
||||
public Map<String, Object> mapInputSchema(String inputSchema, @Context ObjectMapper mapper) throws Exception {
|
||||
return mapper.readValue(inputSchema, new TypeReference<>() {});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user