roledept.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package models
  2. import (
  3. "fmt"
  4. orm "device-manage/common/global"
  5. )
  6. //sys_role_dept
  7. type SysRoleDept struct {
  8. RoleId int `gorm:""`
  9. DeptId int `gorm:""`
  10. }
  11. func (SysRoleDept) TableName() string {
  12. return "sys_role_dept"
  13. }
  14. func (rm *SysRoleDept) Insert(roleId int, deptIds []int) (bool, error) {
  15. //ORM不支持批量插入所以需要拼接 sql 串
  16. sql := "INSERT INTO `sys_role_dept` (`role_id`,`dept_id`) VALUES "
  17. for i := 0; i < len(deptIds); i++ {
  18. if len(deptIds)-1 == i {
  19. //最后一条数据 以分号结尾
  20. sql += fmt.Sprintf("(%d,%d);", roleId, deptIds[i])
  21. } else {
  22. sql += fmt.Sprintf("(%d,%d),", roleId, deptIds[i])
  23. }
  24. }
  25. orm.Eloquent.Exec(sql)
  26. return true, nil
  27. }
  28. func (rm *SysRoleDept) DeleteRoleDept(roleId int) (bool, error) {
  29. if err := orm.Eloquent.Table("sys_role_dept").Where("role_id = ?", roleId).Delete(&rm).Error; err != nil {
  30. return false, err
  31. }
  32. var role SysRole
  33. if err := orm.Eloquent.Table("sys_role").Where("role_id = ?", roleId).First(&role).Error; err != nil {
  34. return false, err
  35. }
  36. return true, nil
  37. }