package models import ( "errors" "fmt" "xugu_license/internal/global" ) type RoleInfo struct { Id int Name string Permissions string } func CreateRole(r *RoleInfo) error { tx, err := global.XuguDB.Begin() if err != nil { return fmt.Errorf("begin transaction: %v", err) } defer func() { if err != nil { tx.Rollback() } else { err = tx.Commit() } }() _, err = tx.Exec(` INSERT INTO RolePermissions (name, permissions) VALUES (?, ?) `, r.Name, r.Permissions) if err != nil { fmt.Println("CreateRole", err) return err } return nil } // func ChenckRole(name string) (bool, error) { // // 根据user_id从数据库查询数据 // rows, err := global.XuguDB.Query("select ID,USERNAME,PASSWORD,TELEPHONE,EMAIL,ROLE from lic_USER where id = ? ", uid) // if err != nil { // return nil, errors.New(" rows user not found") // } // for rows.Next() { // err = rows.Scan(&u.Id, &u.Username, &u.Password, &u.Telephone, &u.Email, &u.Role) // if err != nil { // fmt.Println("rows.Scan err: ", err) // return nil, errors.New("rows.Next user not found") // } // } // defer rows.Close() // fmt.Println("u: ", u) // u.PrepareGive() // return &u, nil // } func GetRoleInfo(name string) ([]RoleInfo, error) { // 根据user_id从数据库查询数据 if name != "" { rows, err := global.XuguDB.Query("select * from RolePermissions where name = ? ", name) if err != nil { return nil, errors.New(" rows user not found") } var rIs []RoleInfo for rows.Next() { var r RoleInfo err = rows.Scan(&r.Id, &r.Name, &r.Permissions) if err != nil { fmt.Println("rows.Scan err: ", err) return nil, errors.New("rows.Next user not found") } rIs = append(rIs, r) } defer rows.Close() return rIs, nil } else { rows, err := global.XuguDB.Query("select * from RolePermissions;") if err != nil { return nil, errors.New(" rows user not found") } var rIs []RoleInfo for rows.Next() { var r RoleInfo err = rows.Scan(&r.Id, &r.Name, &r.Permissions) if err != nil { fmt.Println("rows.Scan err: ", err) return nil, errors.New("rows.Next user not found") } rIs = append(rIs, r) } defer rows.Close() return rIs, nil } } func UpdateRole(r *RoleInfo) error { tx, err := global.XuguDB.Begin() if err != nil { return fmt.Errorf("begin transaction: %v", err) } defer func() { if err != nil { tx.Rollback() } else { err = tx.Commit() } }() _, err = tx.Exec(` UPDATE RolePermissions SET NAME =? ,permissions =? WHERE Id =?; `, r.Name, r.Permissions, r.Id) if err != nil { fmt.Println("UpdateRole", err) return err } return nil } func DeleteRole(name string) error { tx, err := global.XuguDB.Begin() if err != nil { return fmt.Errorf("begin transaction: %v", err) } defer func() { if err != nil { tx.Rollback() } else { err = tx.Commit() } }() //DELETE FROM LicenseApplication WHERE UniqueID = ?", uniqueID _, err = tx.Exec(` DELETE FROM RolePermissions WHERE NAME =?; `, name) if err != nil { fmt.Println("DeleteRole", err) return err } return nil }