Files
bl/modules/base/service/base_sys_department.go
xinian a5485de510
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
1
2026-02-10 22:09:15 +08:00

81 lines
1.8 KiB
Go

package service
import (
"blazing/cool"
"blazing/modules/base/model"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/util/gconv"
)
type BaseSysDepartmentService struct {
*cool.Service
}
// GetByRoleIds 获取部门
func (s *BaseSysDepartmentService) GetByRoleIds(roleIds []string, isAdmin bool) (res []uint) {
var (
result gdb.Result
BaseSysRoleDepartment = model.NewBaseSysRoleDepartment()
)
// 如果roleIds不为空
if len(roleIds) > 0 {
// 如果是超级管理员,则返回所有部门
if isAdmin {
result, _ = cool.DBM(s.Model).Fields("id").All()
for _, v := range result {
vmap := v.Map()
if vmap["id"] != nil {
res = append(res, gconv.Uint(vmap["id"]))
}
}
} else {
// 如果不是超级管理员,则返回角色所在部门
result, _ = cool.DBM(BaseSysRoleDepartment).Where(`"roleId" IN (?)`, roleIds).Fields("departmentId").All()
for _, v := range result {
vmap := v.Map()
if vmap["departmentId"] != nil {
res = append(res, gconv.Uint(vmap["departmentId"]))
}
}
}
}
return
}
// Order 排序部门
func (s *BaseSysDepartmentService) Order(ctx g.Ctx) (err error) {
r := g.RequestFromCtx(ctx).GetMap()
type item struct {
Id uint32 `json:"id"`
ParentId *uint32 `json:"parentId,omitempty"`
Ordernum int32 `json:"ordernum"`
}
var data *item
for _, v := range r {
err = gconv.Struct(v, &data)
if err != nil {
continue
}
cool.DBM(s.Model).Where("id", data.Id).Data(data).Update()
}
return
}
// NewBaseSysDepartmentService 创建一个BaseSysDepartmentService实例
func NewBaseSysDepartmentService() *BaseSysDepartmentService {
return &BaseSysDepartmentService{
Service: &cool.Service{
Model: model.NewBaseSysDepartment(),
ListQueryOp: &cool.QueryOp{},
},
}
}