| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- package dao
-
- import (
- "context"
- "fmt"
-
- "git.x2erp.com/qdy/go-svc-configure/internal/tables"
- "github.com/jmoiron/sqlx"
- )
-
- // CreateProjectSkill 创建项目Skill
- func CreateProjectSkill(ctx context.Context, tx *sqlx.Tx, skillID, projectID, description, content, creator string) (int64, error) {
- id := fmt.Sprintf("project_skill.%s", skillID)
-
- query := `
- INSERT INTO config_project_skill
- (id, skill_id, project_id, description, content, creator, created_at)
- VALUES (?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
- `
-
- result, err := tx.ExecContext(ctx, query, id, skillID, projectID, description, content, creator)
- if err != nil {
- return -1, fmt.Errorf("创建项目Skill失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // GetProjectSkillBySkillID 根据SkillID查询项目Skill
- func GetProjectSkillBySkillID(ctx context.Context, db *sqlx.DB, skillID string) (*tables.ProjectSkillDB, error) {
- var projectSkill tables.ProjectSkillDB
-
- query := `
- SELECT id, skill_id, project_id, description, content, creator, created_at
- FROM config_project_skill
- WHERE skill_id = ?
- `
-
- err := db.GetContext(ctx, &projectSkill, query, skillID)
- if err != nil {
- return nil, fmt.Errorf("查询项目Skill失败: %v", err)
- }
-
- return &projectSkill, nil
- }
-
- // ListProjectSkills 查询项目Skill列表
- func ListProjectSkills(ctx context.Context, db *sqlx.DB) ([]tables.ProjectSkillDB, error) {
- var projectSkills []tables.ProjectSkillDB
-
- query := `
- SELECT id, skill_id, project_id, description, content, creator, created_at
- FROM config_project_skill
- ORDER BY created_at DESC
- `
-
- err := db.SelectContext(ctx, &projectSkills, query)
- if err != nil {
- return nil, fmt.Errorf("查询项目Skill列表失败: %v", err)
- }
-
- return projectSkills, nil
- }
-
- // UpdateProjectSkill 更新项目Skill信息
- func UpdateProjectSkill(ctx context.Context, tx *sqlx.Tx, skillID, projectID, description, content string) (int64, error) {
- query := `
- UPDATE config_project_skill
- SET project_id = ?, description = ?, content = ?
- WHERE skill_id = ?
- `
-
- result, err := tx.ExecContext(ctx, query, projectID, description, content, skillID)
- if err != nil {
- return -1, fmt.Errorf("更新项目Skill失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // DeleteProjectSkill 删除项目Skill
- func DeleteProjectSkill(ctx context.Context, tx *sqlx.Tx, skillID string) (int64, error) {
- query := `DELETE FROM config_project_skill WHERE skill_id = ?`
-
- result, err := tx.ExecContext(ctx, query, skillID)
- if err != nil {
- return -1, fmt.Errorf("删除项目Skill失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // CheckProjectSkillExists 检查项目Skill是否存在
- func CheckProjectSkillExists(ctx context.Context, db *sqlx.DB, skillID string) (bool, error) {
- var count int
- query := `SELECT COUNT(*) FROM config_project_skill WHERE skill_id = ?`
-
- err := db.GetContext(ctx, &count, query, skillID)
- if err != nil {
- return false, fmt.Errorf("检查项目Skill存在性失败: %v", err)
- }
-
- return count > 0, nil
- }
-
- // DeleteProjectSkillsByProjectID 根据项目ID删除所有关联的Skill
- func DeleteProjectSkillsByProjectID(ctx context.Context, tx *sqlx.Tx, projectID string) (int64, error) {
- query := `DELETE FROM config_project_skill WHERE project_id = ?`
-
- result, err := tx.ExecContext(ctx, query, projectID)
- if err != nil {
- return -1, fmt.Errorf("删除项目关联Skill失败: %v", err)
- }
-
- rowsAffected, _ := result.RowsAffected()
- return rowsAffected, nil
- }
|