初始化阶段性代码
parent
fa1d9cb794
commit
25e13ed139
@ -0,0 +1,28 @@
|
||||
package com.supervision.ai.service.hub.constant;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@Getter
|
||||
public enum ComfyuiRunStatusEnum {
|
||||
|
||||
//未开始
|
||||
NOT_STARTED("0"),
|
||||
|
||||
//进行中
|
||||
RUNNING("1"),
|
||||
|
||||
//成功
|
||||
SUCCESS("2"),
|
||||
|
||||
//失败
|
||||
FAILED("2"),
|
||||
|
||||
//取消
|
||||
CANCELED("3");
|
||||
|
||||
private String status;
|
||||
|
||||
ComfyuiRunStatusEnum(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
}
|
@ -0,0 +1,79 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.dto.sys.AppDTO;
|
||||
import com.supervision.ai.service.hub.service.SysAppService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 应用管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/app")
|
||||
@RequiredArgsConstructor
|
||||
public class ApplicationController {
|
||||
|
||||
private final SysAppService sysAppService;
|
||||
|
||||
/**
|
||||
* 保存应用信息
|
||||
* @param appDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public R<String> saveApp(@RequestBody AppDTO appDTO) {
|
||||
String id = sysAppService.saveApp(appDTO);
|
||||
return R.ok(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新应用信息
|
||||
* @param appDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public R<Boolean> updateApp(@RequestBody AppDTO appDTO) {
|
||||
Boolean success = sysAppService.updateApp(appDTO);
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除应用信息
|
||||
* @param appDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public R<Boolean> deleteApp(@RequestBody AppDTO appDTO) {
|
||||
Boolean success = sysAppService.deleteApp(appDTO);
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询应用信息
|
||||
* @param appName
|
||||
* @param page
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/pageList")
|
||||
public R<IPage<AppDTO>> pageList(@RequestParam(name = "appName", required = false) String appName,
|
||||
@RequestParam (name = "page", required = false,defaultValue = "1") Integer page,
|
||||
@RequestParam (name = "pageSize", required = false,defaultValue = "10") Integer pageSize) {
|
||||
IPage<AppDTO> appList = sysAppService.pageList(appName, page, pageSize);
|
||||
return R.ok(appList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询应用信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/queryById")
|
||||
public R<AppDTO> queryById(@RequestParam String id) {
|
||||
AppDTO app = sysAppService.queryById(id);
|
||||
return R.ok(app);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,55 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.aop.AuditLogDTO;
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.service.AuditLogService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 审计日志管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/auditLog")
|
||||
@RequiredArgsConstructor
|
||||
public class AuditLogController {
|
||||
|
||||
private final AuditLogService auditLogService;
|
||||
|
||||
/**
|
||||
* 分页查询审计日志
|
||||
* @param recordType
|
||||
* @param userId
|
||||
* @param appName
|
||||
* @param ip
|
||||
* @param page
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/pageList")
|
||||
public R<IPage<AuditLogDTO>> pageList(@RequestParam("recordType") String recordType,
|
||||
@RequestParam("userId") String userId,
|
||||
@RequestParam("appName") String appName,
|
||||
@RequestParam("ip") String ip,
|
||||
@RequestParam (name = "page", required = false,defaultValue = "1") Integer page,
|
||||
@RequestParam (name = "pageSize", required = false,defaultValue = "10") Integer pageSize) {
|
||||
AuditLogDTO auditLogDTO = new AuditLogDTO(recordType,userId,appName,ip);
|
||||
IPage<AuditLogDTO> list = auditLogService.pageList(auditLogDTO,page,pageSize);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 跟据id查询审计日志
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/queryById")
|
||||
public R<AuditLogDTO> queryById(@RequestParam(name="id") String id) {
|
||||
AuditLogDTO auditLogDTO = auditLogService.queryById(id);
|
||||
return R.ok(auditLogDTO);
|
||||
}
|
||||
}
|
@ -1,48 +0,0 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.service.ComfyUIService;
|
||||
import com.supervision.ai.service.hub.vo.comfyui.RunPromptReqVo;
|
||||
import com.supervision.ai.service.hub.vo.comfyui.TaskResultResVo;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/model")
|
||||
@RequiredArgsConstructor
|
||||
public class ComfyUIController {
|
||||
|
||||
private final ComfyUIService comfyUIService;
|
||||
|
||||
/**
|
||||
* 运行prompt
|
||||
* @param runPromptReqVo prompt信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/run")
|
||||
public R<String> runPrompt(@RequestBody RunPromptReqVo runPromptReqVo) {
|
||||
|
||||
String taskId = comfyUIService.runPrompt(runPromptReqVo);
|
||||
return R.ok(taskId);
|
||||
}
|
||||
|
||||
@GetMapping("/getTaskById")
|
||||
public R<List<TaskResultResVo>> queryHistory(@RequestParam(name = "taskId", required = false) String taskId) {
|
||||
List<TaskResultResVo> taskResultResVos = comfyUIService.queryHistory(taskId);
|
||||
return R.ok(taskResultResVos);
|
||||
}
|
||||
|
||||
@PostMapping("/uploadImage")
|
||||
public R<String> uploadImage(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
String imageId = comfyUIService.uploadImage(file);
|
||||
return R.ok(imageId);
|
||||
}
|
||||
|
||||
@GetMapping("/downloadView")
|
||||
public void downloadView(@RequestParam("fileName") String fileName, HttpServletResponse response) throws Exception {
|
||||
comfyUIService.downloadView(fileName, response);
|
||||
}
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.dto.sys.FileDTO;
|
||||
import com.supervision.ai.service.hub.service.SysFileService;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 文件管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/file")
|
||||
@RequiredArgsConstructor
|
||||
public class FileController {
|
||||
|
||||
private final SysFileService fileService;
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
* @param file 文件
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/upload")
|
||||
public R<String> upload(@RequestPart("file") MultipartFile file) {
|
||||
|
||||
String fileId = fileService.upload(file);
|
||||
return R.ok(fileId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询文件列表
|
||||
* @param fileName
|
||||
* @param fileType
|
||||
* @param page
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/pageList")
|
||||
public R<IPage<FileDTO>> pageList(@RequestParam(name = "fileName", required = false) String fileName,
|
||||
@RequestParam(name = "fileType", required = false) String fileType,
|
||||
@RequestParam (name = "page", required = false,defaultValue = "1") Integer page,
|
||||
@RequestParam (name = "pageSize", required = false,defaultValue = "10") Integer pageSize) {
|
||||
IPage<FileDTO> list = fileService.pageList(fileName, fileType, page, pageSize);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询文件详情
|
||||
* @param id 文件ID
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/queryById")
|
||||
public R<FileDTO> queryById(@RequestParam(name = "id") String id) {
|
||||
FileDTO file = fileService.queryById(id);
|
||||
return R.ok(file);
|
||||
}
|
||||
|
||||
/**
|
||||
* 下载文件
|
||||
* @param fileId
|
||||
* @param response
|
||||
*/
|
||||
@GetMapping("/downLoad")
|
||||
public void downLoad(@RequestParam("fileId") String fileId, HttpServletResponse response) {
|
||||
fileService.downLoad(fileId,response);
|
||||
}
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.comfyui.ComfyUIPromptDTO;
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.service.ComfyUIService;
|
||||
import com.supervision.ai.service.hub.vo.comfyui.RunPromptReqVo;
|
||||
import com.supervision.ai.service.hub.vo.comfyui.TaskResultResVo;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/model")
|
||||
@RequiredArgsConstructor
|
||||
public class ModelController {
|
||||
|
||||
private final ComfyUIService comfyUIService;
|
||||
|
||||
|
||||
/**
|
||||
* 保存模型
|
||||
* @param comfyUIPromptDTO 模型信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public R<String> saveModel(@RequestBody ComfyUIPromptDTO comfyUIPromptDTO) {
|
||||
String modelId = comfyUIService.saveModel(comfyUIPromptDTO);
|
||||
return R.ok(modelId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新模型
|
||||
* @param comfyUIPromptDTO 模型信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public R<Boolean> updateModel(@RequestBody ComfyUIPromptDTO comfyUIPromptDTO) {
|
||||
Boolean success = comfyUIService.updateModel(comfyUIPromptDTO);
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
public R<Boolean> deleteModel(@RequestBody ComfyUIPromptDTO comfyUIPromptDTO) {
|
||||
Boolean success = comfyUIService.deleteModel(comfyUIPromptDTO);
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
@GetMapping("/queryById")
|
||||
public R<ComfyUIPromptDTO> queryById(@RequestParam(name = "id") String id) {
|
||||
ComfyUIPromptDTO comfyUIPromptDTO = comfyUIService.queryById(id);
|
||||
return R.ok(comfyUIPromptDTO);
|
||||
}
|
||||
|
||||
@PostMapping("/pageList")
|
||||
public R<IPage<ComfyUIPromptDTO>> pageList(@RequestParam(name = "promptName", required = false) String promptName,
|
||||
@RequestParam(name = "promptType", required = false) String promptType,
|
||||
@RequestParam(name = "page", defaultValue = "1") Integer page,
|
||||
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
IPage<ComfyUIPromptDTO> pageList = comfyUIService.pageList(promptName, promptType, page, pageSize);
|
||||
return R.ok(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行任务
|
||||
* @param runPromptReqVo prompt信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/executeTask")
|
||||
public R<String> executeTask(@RequestBody RunPromptReqVo runPromptReqVo) {
|
||||
|
||||
String taskId = comfyUIService.executeTask(runPromptReqVo);
|
||||
return R.ok(taskId);
|
||||
}
|
||||
|
||||
@GetMapping("/getTaskById")
|
||||
public R<TaskResultResVo> getTaskById(@RequestParam(name = "taskId", required = false) String taskId) {
|
||||
TaskResultResVo taskResultResVos = comfyUIService.getTaskById(taskId);
|
||||
return R.ok(taskResultResVos);
|
||||
}
|
||||
|
||||
@GetMapping("/queryTaskPageList")
|
||||
public R<IPage<TaskResultResVo>> queryTaskPageList(@RequestParam(name = "taskId", required = false) String taskId) {
|
||||
IPage<TaskResultResVo> taskResultResVos = comfyUIService.queryHistory(taskId);
|
||||
return R.ok(taskResultResVos);
|
||||
}
|
||||
|
||||
@PostMapping("/uploadImage")
|
||||
public R<String> uploadImage(@RequestParam("file") MultipartFile file) throws Exception {
|
||||
String imageId = comfyUIService.uploadImage(file);
|
||||
return R.ok(imageId);
|
||||
}
|
||||
|
||||
@GetMapping("/downloadView")
|
||||
public void downloadView(@RequestParam("fileName") String fileName, HttpServletResponse response) throws Exception {
|
||||
comfyUIService.downloadView(fileName, response);
|
||||
}
|
||||
}
|
@ -0,0 +1,98 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.sys.PermissionDTO;
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.service.PermissionService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 权限管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/permission")
|
||||
@RequiredArgsConstructor
|
||||
public class PermissionController {
|
||||
|
||||
private final PermissionService permissionService;
|
||||
|
||||
/**
|
||||
* 保存权限
|
||||
* @param permissionDTO 权限信息
|
||||
* @return 权限ID
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public R<String> savePermission(@RequestBody PermissionDTO permissionDTO) {
|
||||
|
||||
String permissionId = permissionService.savePermission(permissionDTO);
|
||||
return R.ok(permissionId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新权限
|
||||
* @param permissionDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public R<Boolean> updatePermission(@RequestBody PermissionDTO permissionDTO) {
|
||||
|
||||
Boolean success = permissionService.updatePermission(permissionDTO);
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除权限
|
||||
* @param permissionDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public R<Boolean> deletePermission(@RequestBody PermissionDTO permissionDTO) {
|
||||
|
||||
Boolean success = permissionService.deletePermission(permissionDTO.getId());
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询权限
|
||||
* @param type 权限类型
|
||||
* @return 返回一个树形结构
|
||||
*/
|
||||
@GetMapping("/query")
|
||||
public R<List<PermissionDTO>> queryPermission(@RequestParam (name = "type", required = false) String type) {
|
||||
|
||||
List<PermissionDTO> list = permissionService.queryPermission(type);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询权限
|
||||
* @param permissionName
|
||||
* @param page
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/pageList")
|
||||
public R<IPage<PermissionDTO>> pageList(@RequestParam (name = "permissionName", required = false) String permissionName,
|
||||
@RequestParam (name = "page", required = false) Integer page,
|
||||
@RequestParam(name = "pageSize", required = false) Integer pageSize) {
|
||||
|
||||
IPage<PermissionDTO> list = permissionService.pageList(permissionName, page, pageSize);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询权限
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/queryById")
|
||||
public R<PermissionDTO> queryById(@RequestParam(name = "id") String id) {
|
||||
|
||||
PermissionDTO permissionDTO = permissionService.queryById(id);
|
||||
return R.ok(permissionDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package com.supervision.ai.service.hub.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.common.R;
|
||||
import com.supervision.ai.service.hub.dto.sys.SysRoleDTO;
|
||||
import com.supervision.ai.service.hub.service.SysRoleService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 角色管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/role")
|
||||
@RequiredArgsConstructor
|
||||
public class RoleController {
|
||||
|
||||
private final SysRoleService roleService;
|
||||
|
||||
/**
|
||||
* 保存角色信息
|
||||
* @param roleDTO 权限信息
|
||||
* @return 权限ID
|
||||
*/
|
||||
@PostMapping("/save")
|
||||
public R<String> saveRole(@RequestBody SysRoleDTO roleDTO) {
|
||||
|
||||
String roleId = roleService.saveRole(roleDTO);
|
||||
return R.ok(roleId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 更新角色
|
||||
* @param roleDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public R<Boolean> updateRole(@RequestBody SysRoleDTO roleDTO) {
|
||||
|
||||
Boolean success = roleService.updateRole(roleDTO);
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除角色
|
||||
* @param roleDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/delete")
|
||||
public R<Boolean> deleteRole(@RequestBody SysRoleDTO roleDTO) {
|
||||
|
||||
Boolean success = roleService.deleteRole(roleDTO.getId());
|
||||
return R.ok(success);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 分页查询角色
|
||||
* @param roleName
|
||||
* @param page
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/pageList")
|
||||
public R<IPage<SysRoleDTO>> pageList(@RequestParam (name = "roleName", required = false) String roleName,
|
||||
@RequestParam (name = "page", defaultValue = "1", required = false) Integer page,
|
||||
@RequestParam(name = "pageSize",defaultValue = "10", required = false) Integer pageSize ) {
|
||||
|
||||
IPage<SysRoleDTO> list = roleService.pageList(roleName, page, pageSize);
|
||||
return R.ok(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询角色
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/queryById")
|
||||
public R<SysRoleDTO> queryById(@RequestParam(name = "id") String id) {
|
||||
|
||||
SysRoleDTO sysRoleDTO = roleService.queryById(id);
|
||||
return R.ok(sysRoleDTO);
|
||||
}
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.supervision.ai.service.hub.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
*
|
||||
* @TableName sys_role_permission
|
||||
*/
|
||||
@TableName(value ="sys_role_permission")
|
||||
@Data
|
||||
public class SysRolePermission implements Serializable {
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
private String rId;
|
||||
|
||||
/**
|
||||
* 权限id
|
||||
*/
|
||||
private String pId;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String createUserId;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private String updateUserId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private static final long serialVersionUID = 1L;
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.supervision.ai.service.hub.dto.comfyui;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ComfyUITaskResult {
|
||||
|
||||
private String id;
|
||||
|
||||
private String taskId;
|
||||
|
||||
private String fileId;
|
||||
|
||||
private String fileName;
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package com.supervision.ai.service.hub.dto.comfyui;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@Data
|
||||
public class ServerNode {
|
||||
|
||||
private String id;
|
||||
|
||||
private String host;
|
||||
|
||||
private int port;
|
||||
|
||||
/**
|
||||
* 失败次数
|
||||
*/
|
||||
private int failureCount;
|
||||
|
||||
/**
|
||||
* 正在运行的任务数量
|
||||
*/
|
||||
private int runningTaskCount;
|
||||
|
||||
private LocalDateTime lastSelectedTime;
|
||||
|
||||
/**
|
||||
* 正在运行的任务列表
|
||||
*/
|
||||
private CopyOnWriteArrayList<TaskDTO> runningTasks = new CopyOnWriteArrayList<>();
|
||||
public ServerNode() {
|
||||
}
|
||||
|
||||
public ServerNode(String id, String host, int port, int failureCount) {
|
||||
this.id = id;
|
||||
this.host = host;
|
||||
this.port = port;
|
||||
this.failureCount = failureCount;
|
||||
}
|
||||
|
||||
public void incrementFailureCount() {
|
||||
this.failureCount++;
|
||||
this.lastSelectedTime = LocalDateTime.now();
|
||||
}
|
||||
|
||||
public void resetFailureCount() {
|
||||
this.failureCount = 0;
|
||||
this.lastSelectedTime = LocalDateTime.now();
|
||||
}
|
||||
|
||||
public void addRunningTask(TaskDTO task) {
|
||||
this.runningTasks.add(task);
|
||||
}
|
||||
|
||||
public void removeRunningTask(TaskDTO task) {
|
||||
this.runningTasks.remove(task);
|
||||
}
|
||||
}
|
@ -0,0 +1,103 @@
|
||||
package com.supervision.ai.service.hub.dto.comfyui;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.supervision.ai.service.hub.domain.ComfyuiTask;
|
||||
import com.supervision.ai.service.hub.domain.ComfyuiTaskParam;
|
||||
import com.supervision.ai.service.hub.domain.ComfyuiTaskResult;
|
||||
import lombok.Data;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class TaskDTO {
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 提示词id
|
||||
*/
|
||||
private String promptId;
|
||||
|
||||
/**
|
||||
* comfyui平台任务id
|
||||
*/
|
||||
private String comfyuiTaskId;
|
||||
|
||||
|
||||
private String comfyuiServer;;
|
||||
|
||||
/**
|
||||
* 创建人id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 应用id
|
||||
*/
|
||||
private String appId;
|
||||
|
||||
/**
|
||||
* 运行状态 0未开始、1进行中、2成功、3失败
|
||||
*/
|
||||
private String runStatus;
|
||||
|
||||
/**
|
||||
* 开始运行时间
|
||||
*/
|
||||
private LocalDateTime runStartTime;
|
||||
|
||||
/**
|
||||
* 运行结束时间
|
||||
*/
|
||||
private LocalDateTime runEndTime;
|
||||
|
||||
/**
|
||||
* webhook url
|
||||
*/
|
||||
private String webHook;
|
||||
|
||||
private JSONObject prompt;
|
||||
|
||||
|
||||
private List<ComfyuiTaskParam> params = new ArrayList<>();
|
||||
|
||||
|
||||
private List<ComfyUITaskResult> results = new ArrayList<>();
|
||||
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
|
||||
public TaskDTO() {
|
||||
}
|
||||
|
||||
public TaskDTO(ComfyuiTask task, List<ComfyuiTaskParam> params, List<ComfyuiTaskResult> taskResults) {
|
||||
this.id = task.getId();
|
||||
this.promptId = task.getPromptId();
|
||||
this.comfyuiTaskId = task.getComfyuiTaskId();
|
||||
this.comfyuiServer = task.getComfyuiServer();
|
||||
this.userId = task.getUserId();
|
||||
this.appId = task.getAppId();
|
||||
this.runStatus = task.getRunStatus();
|
||||
this.runStartTime = task.getRunStartTime();
|
||||
this.runEndTime = task.getRunEndTime();
|
||||
this.webHook = task.getWebHook();
|
||||
this.prompt = task.getPrompt();
|
||||
this.createTime = task.getCreateTime();
|
||||
this.params = params;
|
||||
if (CollUtil.isNotEmpty(taskResults)){
|
||||
for (ComfyuiTaskResult taskResult : taskResults) {
|
||||
ComfyUITaskResult result = new ComfyUITaskResult();
|
||||
result.setId(taskResult.getId());
|
||||
result.setTaskId(taskResult.getTaskId());
|
||||
result.setFileId(taskResult.getResultFileId());
|
||||
this.results.add(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.supervision.ai.service.hub.dto.sys;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AppDTO {
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 应用名
|
||||
*/
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 状态 0:禁用 1:启用
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
|
||||
private List<String> scopes;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.supervision.ai.service.hub.dto.sys;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class FileDTO {
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文件名
|
||||
*/
|
||||
private String fileName;
|
||||
|
||||
/**
|
||||
* 文件大小
|
||||
*/
|
||||
private String fileSize;
|
||||
|
||||
/**
|
||||
* 文件类型
|
||||
*/
|
||||
private String fileType;
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.supervision.ai.service.hub.dto.sys;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SysRoleDTO {
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 角色名
|
||||
*/
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 角色描述
|
||||
*/
|
||||
private String roleDesc;
|
||||
|
||||
/**
|
||||
* 角色code
|
||||
*/
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 权限集合
|
||||
*/
|
||||
private List<PermissionDTO> permissionList;
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package com.supervision.ai.service.hub.dto.sys;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class UserDTO {
|
||||
|
||||
private String id;
|
||||
|
||||
/**
|
||||
*应用id
|
||||
*/
|
||||
private String appId;
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
|
||||
private String password;
|
||||
|
||||
|
||||
/**
|
||||
* 状态 0:禁用 1:启用
|
||||
*/
|
||||
private String status;
|
||||
/**
|
||||
* 角色集合
|
||||
*/
|
||||
private List<SysRoleDTO> roleList;
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.supervision.ai.service.hub.mapper;
|
||||
|
||||
import com.supervision.ai.service.hub.domain.Permission;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @description 针对表【permission(权限表)】的数据库操作Mapper
|
||||
* @createDate 2025-04-14 16:01:14
|
||||
* @Entity com.supervision.ai.service.hub.domain.Permission
|
||||
*/
|
||||
public interface PermissionMapper extends BaseMapper<Permission> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,18 @@
|
||||
package com.supervision.ai.service.hub.mapper;
|
||||
|
||||
import com.supervision.ai.service.hub.domain.SysRolePermission;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @description 针对表【sys_role_permission】的数据库操作Mapper
|
||||
* @createDate 2025-04-14 16:01:04
|
||||
* @Entity com.supervision.ai.service.hub.domain.SysRolePermission
|
||||
*/
|
||||
public interface SysRolePermissionMapper extends BaseMapper<SysRolePermission> {
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -1,20 +1,50 @@
|
||||
package com.supervision.ai.service.hub.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.comfyui.ComfyUIPromptDTO;
|
||||
import com.supervision.ai.service.hub.vo.comfyui.RunPromptReqVo;
|
||||
import com.supervision.ai.service.hub.vo.comfyui.TaskResultResVo;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ComfyUIService {
|
||||
|
||||
|
||||
String runPrompt(RunPromptReqVo runPromptReqVo);
|
||||
String executeTask(RunPromptReqVo runPromptReqVo);
|
||||
|
||||
List<TaskResultResVo> queryHistory(String promptId);
|
||||
IPage<TaskResultResVo> queryHistory(String promptId);
|
||||
|
||||
/**
|
||||
* 从返回的结果中判断任务是否完成
|
||||
* @param result 任务执行的结果
|
||||
* @return
|
||||
*/
|
||||
boolean taskIsCompleted(Map<String, Object> result);
|
||||
|
||||
/**
|
||||
* 从返回的结果中获取图片列表
|
||||
* @param result 任务执行的结果
|
||||
* @return
|
||||
*/
|
||||
List<String> getImageList(Map<String, Object> result);
|
||||
|
||||
String uploadImage(MultipartFile file) throws IOException;
|
||||
|
||||
void downloadView(String imageId, HttpServletResponse response) throws IOException;
|
||||
|
||||
String saveModel(ComfyUIPromptDTO comfyUIPromptDTO);
|
||||
|
||||
Boolean updateModel(ComfyUIPromptDTO comfyUIPromptDTO);
|
||||
|
||||
Boolean deleteModel(ComfyUIPromptDTO comfyUIPromptDTO);
|
||||
|
||||
ComfyUIPromptDTO queryById(String id);
|
||||
|
||||
IPage<ComfyUIPromptDTO> pageList(String promptName, String promptType, Integer page, Integer pageSize);
|
||||
|
||||
TaskResultResVo getTaskById(String taskId);
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package com.supervision.ai.service.hub.service;
|
||||
|
||||
import com.supervision.ai.service.hub.dto.comfyui.ServerNode;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface NodeManager {
|
||||
ServerNode selectAvailableNode();
|
||||
void markNodeFailed(String nodeId);
|
||||
void recoverNode(String nodeId);
|
||||
|
||||
List<ServerNode> listAllNodes();
|
||||
|
||||
void addNode(ServerNode node);
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.supervision.ai.service.hub.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.domain.Permission;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.supervision.ai.service.hub.dto.sys.PermissionDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @description 针对表【permission(权限表)】的数据库操作Service
|
||||
* @createDate 2025-04-14 16:01:14
|
||||
*/
|
||||
public interface PermissionService extends IService<Permission> {
|
||||
|
||||
String savePermission(PermissionDTO permissionDTO);
|
||||
|
||||
Boolean updatePermission(PermissionDTO permissionDTO);
|
||||
|
||||
Boolean deletePermission(String id);
|
||||
|
||||
List<PermissionDTO> queryPermission(String type);
|
||||
|
||||
|
||||
IPage<PermissionDTO> pageList(String permissionName, Integer page, Integer pageSize);
|
||||
|
||||
PermissionDTO queryById(String id);
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.supervision.ai.service.hub.service;
|
||||
|
||||
import com.supervision.ai.service.hub.dto.comfyui.TaskDTO;
|
||||
|
||||
public interface SchedulingStrategy {
|
||||
|
||||
TaskDTO selectNextTask();
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.supervision.ai.service.hub.service;
|
||||
|
||||
import com.supervision.ai.service.hub.domain.SysRolePermission;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @description 针对表【sys_role_permission】的数据库操作Service
|
||||
* @createDate 2025-04-14 16:01:04
|
||||
*/
|
||||
public interface SysRolePermissionService extends IService<SysRolePermission> {
|
||||
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.supervision.ai.service.hub.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.comfyui.TaskDTO;
|
||||
import java.util.List;
|
||||
|
||||
public interface TaskService {
|
||||
IPage<TaskDTO> pageList(String taskName, String taskType, String status, Integer page, Integer pageSize);
|
||||
|
||||
Boolean suspendTask(List<String> taskIds);
|
||||
|
||||
Boolean cancelTask(List<String> taskIds);
|
||||
|
||||
Boolean retryTask(List<String> taskIds);
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.supervision.ai.service.hub.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.supervision.ai.service.hub.dto.comfyui.TaskDTO;
|
||||
import com.supervision.ai.service.hub.service.ComfyuiTaskService;
|
||||
import com.supervision.ai.service.hub.service.SchedulingStrategy;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
@Slf4j
|
||||
public class FifoSchedulingStrategy implements SchedulingStrategy {
|
||||
|
||||
private final ComfyuiTaskService comfyuiTaskService;
|
||||
|
||||
private final LinkedBlockingQueue<TaskDTO> taskQueue = new LinkedBlockingQueue<>();
|
||||
|
||||
public FifoSchedulingStrategy(ComfyuiTaskService comfyuiTaskService) {
|
||||
this.comfyuiTaskService = comfyuiTaskService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public TaskDTO selectNextTask() {
|
||||
if (taskQueue.isEmpty()) {
|
||||
List<TaskDTO> taskDTOS = comfyuiTaskService.queryNotStartedTask(10);
|
||||
if (CollUtil.isEmpty(taskDTOS)){
|
||||
log.info("selectNextTask:未从queryNotStartedTask中获取到可用的元素....");
|
||||
return null;
|
||||
}
|
||||
taskDTOS.sort(Comparator.comparing(TaskDTO::getRunStartTime));
|
||||
for (TaskDTO taskDTO : taskDTOS) {
|
||||
taskQueue.offer(taskDTO);
|
||||
}
|
||||
}
|
||||
return taskQueue.poll();
|
||||
}
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.supervision.ai.service.hub.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.supervision.ai.service.hub.domain.Permission;
|
||||
import com.supervision.ai.service.hub.dto.sys.PermissionDTO;
|
||||
import com.supervision.ai.service.hub.service.PermissionService;
|
||||
import com.supervision.ai.service.hub.mapper.PermissionMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @description 针对表【permission(权限表)】的数据库操作Service实现
|
||||
* @createDate 2025-04-14 16:01:14
|
||||
*/
|
||||
@Service
|
||||
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission>
|
||||
implements PermissionService{
|
||||
|
||||
@Override
|
||||
public String savePermission(PermissionDTO permissionDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updatePermission(PermissionDTO permissionDTO) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean deletePermission(String id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PermissionDTO> queryPermission(String type) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<PermissionDTO> pageList(String permissionName, Integer page, Integer pageSize) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PermissionDTO queryById(String id) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,22 @@
|
||||
package com.supervision.ai.service.hub.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.supervision.ai.service.hub.domain.SysRolePermission;
|
||||
import com.supervision.ai.service.hub.service.SysRolePermissionService;
|
||||
import com.supervision.ai.service.hub.mapper.SysRolePermissionMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
* @description 针对表【sys_role_permission】的数据库操作Service实现
|
||||
* @createDate 2025-04-14 16:01:04
|
||||
*/
|
||||
@Service
|
||||
public class SysRolePermissionServiceImpl extends ServiceImpl<SysRolePermissionMapper, SysRolePermission>
|
||||
implements SysRolePermissionService{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.supervision.ai.service.hub.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.supervision.ai.service.hub.dto.comfyui.TaskDTO;
|
||||
import com.supervision.ai.service.hub.service.ComfyuiTaskService;
|
||||
import com.supervision.ai.service.hub.service.TaskService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class TaskServiceImpl implements TaskService {
|
||||
|
||||
private final ComfyuiTaskService comfyuiTaskService;
|
||||
|
||||
@Override
|
||||
public IPage<TaskDTO> pageList(String taskName, String taskType, String status, Integer page, Integer pageSize) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean suspendTask(List<String> taskIds) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean cancelTask(List<String> taskIds) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean retryTask(List<String> taskIds) {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.supervision.ai.service.hub.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class LoginReqVo {
|
||||
|
||||
// appName 和 username 不能同时为空
|
||||
private String appName;
|
||||
|
||||
private String username;
|
||||
|
||||
private String password;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.supervision.ai.service.hub.mapper.PermissionMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.supervision.ai.service.hub.domain.Permission">
|
||||
<id property="id" column="id" jdbcType="VARCHAR"/>
|
||||
<result property="name" column="name" jdbcType="VARCHAR"/>
|
||||
<result property="type" column="type" jdbcType="VARCHAR"/>
|
||||
<result property="code" column="code" jdbcType="VARCHAR"/>
|
||||
<result property="parentId" column="parent_id" jdbcType="VARCHAR"/>
|
||||
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
id,name,type,
|
||||
code,parent_id,create_user_id,
|
||||
create_time,update_time,update_user_id
|
||||
</sql>
|
||||
</mapper>
|
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.supervision.ai.service.hub.mapper.SysRolePermissionMapper">
|
||||
|
||||
<resultMap id="BaseResultMap" type="com.supervision.ai.service.hub.domain.SysRolePermission">
|
||||
<id property="rId" column="r_id" jdbcType="VARCHAR"/>
|
||||
<result property="pId" column="p_id" jdbcType="VARCHAR"/>
|
||||
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
|
||||
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
|
||||
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
r_id,p_id,create_user_id,
|
||||
create_time,update_time,update_user_id
|
||||
</sql>
|
||||
</mapper>
|
Loading…
Reference in New Issue