| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package dao
-
- import (
- "context"
- "fmt"
-
- "git.x2erp.com/qdy/go-svc-configure/internal/tables"
- "github.com/jmoiron/sqlx"
- )
-
- // CreateProjectAgent 创建项目Agent
- func CreateProjectAgent(ctx context.Context, tx *sqlx.Tx, agentID, projectID, description, content, creator string) (int64, error) {
- id := fmt.Sprintf("project_agent.%s", agentID)
-
- query := `
- INSERT INTO config_project_agent
- (id, agent_id, project_id, description, content, creator, created_at)
- VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
- `
-
- result, err := tx.ExecContext(ctx, query, id, agentID, projectID, description, content, creator)
- if err != nil {
- return -1, fmt.Errorf("创建项目Agent失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // GetProjectAgentByAgentID 根据AgentID查询项目Agent
- func GetProjectAgentByAgentID(ctx context.Context, db *sqlx.DB, agentID string) (*tables.ProjectAgentDB, error) {
- var projectAgent tables.ProjectAgentDB
-
- query := `
- SELECT id, agent_id, project_id, description, content, creator, created_at
- FROM config_project_agent
- WHERE agent_id = ?
- `
-
- err := db.GetContext(ctx, &projectAgent, query, agentID)
- if err != nil {
- return nil, fmt.Errorf("查询项目Agent失败: %v", err)
- }
-
- return &projectAgent, nil
- }
-
- // ListProjectAgents 查询项目Agent列表
- func ListProjectAgents(ctx context.Context, db *sqlx.DB) ([]tables.ProjectAgentDB, error) {
- var projectAgents []tables.ProjectAgentDB
-
- query := `
- SELECT id, agent_id, project_id, description, content, creator, created_at
- FROM config_project_agent
- ORDER BY created_at DESC
- `
-
- err := db.SelectContext(ctx, &projectAgents, query)
- if err != nil {
- return nil, fmt.Errorf("查询项目Agent列表失败: %v", err)
- }
-
- return projectAgents, nil
- }
-
- // UpdateProjectAgent 更新项目Agent信息
- func UpdateProjectAgent(ctx context.Context, tx *sqlx.Tx, agentID, projectID, description, content string) (int64, error) {
- query := `
- UPDATE config_project_agent
- SET project_id = ?, description = ?, content = ?
- WHERE agent_id = ?
- `
-
- result, err := tx.ExecContext(ctx, query, projectID, description, content, agentID)
- if err != nil {
- return -1, fmt.Errorf("更新项目Agent失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // DeleteProjectAgent 删除项目Agent
- func DeleteProjectAgent(ctx context.Context, tx *sqlx.Tx, agentID string) (int64, error) {
- query := `DELETE FROM config_project_agent WHERE agent_id = ?`
-
- result, err := tx.ExecContext(ctx, query, agentID)
- if err != nil {
- return -1, fmt.Errorf("删除项目Agent失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // CheckProjectAgentExists 检查项目Agent是否存在
- func CheckProjectAgentExists(ctx context.Context, db *sqlx.DB, agentID string) (bool, error) {
- var count int
- query := `SELECT COUNT(*) FROM config_project_agent WHERE agent_id = ?`
-
- err := db.GetContext(ctx, &count, query, agentID)
- if err != nil {
- return false, fmt.Errorf("检查项目Agent存在性失败: %v", err)
- }
-
- return count > 0, nil
- }
-
- // DeleteProjectAgentsByProjectID 根据项目ID删除所有关联的Agent
- func DeleteProjectAgentsByProjectID(ctx context.Context, tx *sqlx.Tx, projectID string) (int64, error) {
- query := `DELETE FROM config_project_agent WHERE project_id = ?`
-
- result, err := tx.ExecContext(ctx, query, projectID)
- if err != nil {
- return -1, fmt.Errorf("删除项目关联Agent失败: %v", err)
- }
-
- rowsAffected, _ := result.RowsAffected()
- return rowsAffected, nil
- }
|