48 lines
1.0 KiB
Go
48 lines
1.0 KiB
Go
package models
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
orm "go-admin/common/global"
|
|
)
|
|
|
|
//sys_role_dept
|
|
type SysRoleDept struct {
|
|
RoleId int `gorm:""`
|
|
DeptId int `gorm:""`
|
|
}
|
|
|
|
func (SysRoleDept) TableName() string {
|
|
return "sys_role_dept"
|
|
}
|
|
|
|
func (rm *SysRoleDept) Insert(roleId int, deptIds []int) (bool, error) {
|
|
//ORM不支持批量插入所以需要拼接 sql 串
|
|
sql := "INSERT INTO `sys_role_dept` (`role_id`,`dept_id`) VALUES "
|
|
|
|
for i := 0; i < len(deptIds); i++ {
|
|
if len(deptIds)-1 == i {
|
|
//最后一条数据 以分号结尾
|
|
sql += fmt.Sprintf("(%d,%d);", roleId, deptIds[i])
|
|
} else {
|
|
sql += fmt.Sprintf("(%d,%d),", roleId, deptIds[i])
|
|
}
|
|
}
|
|
orm.Eloquent.Exec(sql)
|
|
|
|
return true, nil
|
|
}
|
|
|
|
func (rm *SysRoleDept) DeleteRoleDept(roleId int) (bool, error) {
|
|
if err := orm.Eloquent.Table("sys_role_dept").Where("role_id = ?", roleId).Delete(&rm).Error; err != nil {
|
|
return false, err
|
|
}
|
|
var role SysRole
|
|
if err := orm.Eloquent.Table("sys_role").Where("role_id = ?", roleId).First(&role).Error; err != nil {
|
|
return false, err
|
|
}
|
|
|
|
return true, nil
|
|
|
|
}
|