12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package system
- import (
- "errors"
- "gorm.io/gorm"
- "server/global"
- "server/model/common/request"
- "server/model/system"
- )
- type DeptService struct{}
- // 获取部门列表
- func (appDeptService *DeptService) GetAppRootDept(info request.PageInfo) (list interface{}, total int64, err error) {
- limit := info.PageSize
- offset := info.PageSize * (info.Page - 1)
- db := global.GVA_DB.Model(&system.Dept{})
- var rootDept []system.Dept
- err = db.
- Where("parent_id = ?", 0).
- Where("is_deleted", 0).Count(&total).Error
- if err != nil {
- return
- }
- db.Limit(limit).Offset(offset).
- Where("is_deleted", 0).
- Where("parent_id = ?", 0).Find(&rootDept)
- for i, dept := range rootDept {
- var childDepts []system.Dept
- global.GVA_DB.Table("dept").Select("*").
- Where("is_deleted", 0).Where("parent_id = ?", dept.ID).Scan(&childDepts)
- rootDept[i].Children = childDepts
- }
- return rootDept, total, err
- }
- func (appDeptService *DeptService) Establish(d system.Dept) (err error) {
- err = global.GVA_DB.Create(&d).Error
- return err
- }
- // 设置部门信息
- func (appDeptService *DeptService) SetDeptInfo(req system.Dept) error {
- return global.GVA_DB.Model(&system.Dept{}).
- Select("dept_name", "parent_id", "remark", "responsible", "phone").
- Where("id=?", req.ID).
- Updates(map[string]interface{}{
- "dept_name": req.DeptName,
- "parent_id": req.ParentId,
- "remark": req.Remark,
- "responsible": req.Responsible,
- "phone": req.Phone,
- }).Error
- }
- // 删除部门
- func (DeptService *DeptService) DeleteDept(id int) error {
- var users []system.SysUser
- if !errors.Is(global.GVA_DB.Model(&system.SysUser{}).Debug().Where("dept_id = ?", id).First(&users).Error, gorm.ErrRecordNotFound) { // 判断部门下是否存在用户
- return errors.New("该部门存在用户,删除失败!")
- }
- err := global.GVA_DB.Model(&system.Dept{}).
- Where("id=?", id).
- Updates(map[string]interface{}{"is_deleted": "1"}).Error
- return err
- }
- func (DeptService *DeptService) GetChildDepts() (depts []system.Dept, err error) {
- err = global.GVA_DB.Model(&system.Dept{}).Where("parent_id != ? and is_deleted = 0", 0).Find(&depts).Error
- return depts, err
- }
- func (DeptService *DeptService) GetAllUsers() (users []system.SysUser, err error) {
- err = global.GVA_DB.Model(&system.SysUser{}).Find(&users).Error
- return users, err
- }
- func (DeptService *DeptService) GetDeptsUsers(depts []int) (users []system.SysUser, err error) {
- err = global.GVA_DB.Model(&system.SysUser{}).Where("dept_id IN (?)", depts).Find(&users).Error
- return users, err
- }
|