123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- 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
- }
|