| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package dao
-
- import (
- "context"
- "fmt"
-
- "git.x2erp.com/qdy/go-svc-configure/internal/tables"
- "github.com/jmoiron/sqlx"
- )
-
- // CreateRole 创建角色
- func CreateRole(ctx context.Context, tx *sqlx.Tx, roleID, name, description, creator string) (int64, error) {
- id := fmt.Sprintf("role.%s", roleID)
-
- query := `
- INSERT INTO config_role
- (id, role_id, name, description, creator, created_at)
- VALUES (?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
- `
-
- result, err := tx.ExecContext(ctx, query, id, roleID, name, description, creator)
- if err != nil {
- return -1, fmt.Errorf("创建角色失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // GetRoleByRoleID 根据角色ID查询角色
- func GetRoleByRoleID(ctx context.Context, db *sqlx.DB, roleID string) (*tables.RoleDB, error) {
- var role tables.RoleDB
-
- query := `
- SELECT id, role_id, name, description, creator, created_at
- FROM config_role
- WHERE role_id = ?
- `
-
- err := db.GetContext(ctx, &role, query, roleID)
- if err != nil {
- return nil, fmt.Errorf("查询角色失败: %v", err)
- }
-
- return &role, nil
- }
-
- // ListRoles 查询角色列表
- func ListRoles(ctx context.Context, db *sqlx.DB) ([]tables.RoleDB, error) {
- var roles []tables.RoleDB
-
- query := `
- SELECT id, role_id, name, description, creator, created_at
- FROM config_role
- ORDER BY created_at DESC
- `
-
- err := db.SelectContext(ctx, &roles, query)
- if err != nil {
- return nil, fmt.Errorf("查询角色列表失败: %v", err)
- }
-
- return roles, nil
- }
-
- // UpdateRole 更新角色信息
- func UpdateRole(ctx context.Context, tx *sqlx.Tx, roleID, name, description string) (int64, error) {
- query := `
- UPDATE config_role
- SET name = ?, description = ?
- WHERE role_id = ?
- `
-
- result, err := tx.ExecContext(ctx, query, name, description, roleID)
- if err != nil {
- return -1, fmt.Errorf("更新角色失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // DeleteRole 删除角色
- func DeleteRole(ctx context.Context, tx *sqlx.Tx, roleID string) (int64, error) {
- query := `DELETE FROM config_role WHERE role_id = ?`
-
- result, err := tx.ExecContext(ctx, query, roleID)
- if err != nil {
- return -1, fmt.Errorf("删除角色失败: %v", err)
- }
-
- return ValidateResultRowsAffected(result, err, 1)
- }
-
- // CheckRoleExists 检查角色是否存在
- func CheckRoleExists(ctx context.Context, db *sqlx.DB, roleID string) (bool, error) {
- var count int
- query := `SELECT COUNT(*) FROM config_role WHERE role_id = ?`
-
- err := db.GetContext(ctx, &count, query, roleID)
- if err != nil {
- return false, fmt.Errorf("检查角色存在性失败: %v", err)
- }
-
- return count > 0, nil
- }
|