diff --git a/models/dept.go b/models/dept.go index 9203c32b..df18819a 100644 --- a/models/dept.go +++ b/models/dept.go @@ -205,6 +205,12 @@ func (e *Dept) Update(id int) (update Dept, err error) { func (e *Dept) Delete(id int) (success bool, err error) { + user := SysUser{} + user.DeptId = id + userlist, err := user.GetList() + tools.HasError(err, "", 500) + tools.Assert(len(userlist) <= 0, "当前部门存在用户,不能删除!", 500) + tx := orm.Eloquent.Begin() defer func() { if r := recover(); r != nil { @@ -222,7 +228,7 @@ func (e *Dept) Delete(id int) (success bool, err error) { tx.Rollback() return } - if err =tx.Commit().Error; err != nil { + if err = tx.Commit().Error; err != nil { success = false return } diff --git a/models/sysuser.go b/models/sysuser.go index cbefda34..e99198c5 100644 --- a/models/sysuser.go +++ b/models/sysuser.go @@ -121,10 +121,79 @@ func (e *SysUser) Get() (SysUserView SysUserView, err error) { if err = table.First(&SysUserView).Error; err != nil { return } + SysUserView.Password = "" return } +func (e *SysUser) GetUserInfo() (SysUserView SysUserView, err error) { + + table := orm.Eloquent.Table(e.TableName()).Select([]string{"sys_user.*", "sys_role.role_name"}) + table = table.Joins("left join sys_role on sys_user.role_id=sys_role.role_id") + if e.UserId != 0 { + table = table.Where("user_id = ?", e.UserId) + } + + if e.Username != "" { + table = table.Where("username = ?", e.Username) + } + + if e.Password != "" { + table = table.Where("password = ?", e.Password) + } + + if e.RoleId != 0 { + table = table.Where("role_id = ?", e.RoleId) + } + + if e.DeptId != 0 { + table = table.Where("dept_id = ?", e.DeptId) + } + + if e.PostId != 0 { + table = table.Where("post_id = ?", e.PostId) + } + + if err = table.First(&SysUserView).Error; err != nil { + return + } + return +} + +func (e *SysUser) GetList() (SysUserView []SysUserView, err error) { + + table := orm.Eloquent.Table(e.TableName()).Select([]string{"sys_user.*", "sys_role.role_name"}) + table = table.Joins("left join sys_role on sys_user.role_id=sys_role.role_id") + if e.UserId != 0 { + table = table.Where("user_id = ?", e.UserId) + } + + if e.Username != "" { + table = table.Where("username = ?", e.Username) + } + + if e.Password != "" { + table = table.Where("password = ?", e.Password) + } + + if e.RoleId != 0 { + table = table.Where("role_id = ?", e.RoleId) + } + + if e.DeptId != 0 { + table = table.Where("dept_id = ?", e.DeptId) + } + + if e.PostId != 0 { + table = table.Where("post_id = ?", e.PostId) + } + + if err = table.Find(&SysUserView).Error; err != nil { + return + } + return +} + func (e *SysUser) GetPage(pageSize int, pageIndex int) ([]SysUserPage, int, error) { var doc []SysUserPage table := orm.Eloquent.Select("sys_user.*,sys_dept.dept_name").Table(e.TableName()) @@ -200,7 +269,7 @@ func (e SysUser) Insert() (id int, err error) { //修改 func (e *SysUser) Update(id int) (update SysUser, err error) { - if e.Password!="" { + if e.Password != "" { if err = e.Encrypt(); err != nil { return } @@ -229,7 +298,7 @@ func (e *SysUser) BatchDelete(id []int) (Result bool, err error) { } func (e *SysUser) SetPwd(pwd SysUserPwd) (Result bool, err error) { - user, err := e.Get() + user, err := e.GetUserInfo() if err != nil { tools.HasError(err, "获取用户数据失败(代码202)", 500) }