feat:完善信息
This commit is contained in:
98
app/api/manage/controller/department.go
Normal file
98
app/api/manage/controller/department.go
Normal file
@ -0,0 +1,98 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/manage/model"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/app/service"
|
||||
"time"
|
||||
)
|
||||
|
||||
type Department struct{ *Platform }
|
||||
|
||||
type DepartmentHandle func(session *service.Session) *Department
|
||||
|
||||
type DepartmentParams struct {
|
||||
ID, ParentID uint64
|
||||
Title, Name, Mobile, Remark string
|
||||
}
|
||||
|
||||
type DepartmentTree struct {
|
||||
*model2.SysDepartment
|
||||
Children []*DepartmentTree `json:"children"`
|
||||
}
|
||||
|
||||
func (c *Department) tree(src []*model2.SysDepartment, parentID uint64) []*DepartmentTree {
|
||||
out := make([]*DepartmentTree, 0)
|
||||
|
||||
for _, v := range src {
|
||||
if v.ParentID == parentID {
|
||||
out = append(out, &DepartmentTree{
|
||||
SysDepartment: v,
|
||||
Children: c.tree(src, v.ID),
|
||||
})
|
||||
}
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
func (c *Department) List() ([]*DepartmentTree, error) {
|
||||
mSysDepartment := model.NewSysDepartment()
|
||||
|
||||
out := make([]*model2.SysDepartment, 0)
|
||||
|
||||
if err := model2.Scan(mSysDepartment.SysDepartment, &out, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("tenant_id", c.TenantID),
|
||||
Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.tree(out, 0), nil
|
||||
}
|
||||
|
||||
func (c *Department) Select() ([]*DepartmentTree, error) {
|
||||
mSysDepartment := model.NewSysDepartment()
|
||||
|
||||
out := make([]*model2.SysDepartment, 0)
|
||||
|
||||
if err := model2.ScanFields(mSysDepartment.SysDepartment, &out, []string{"id", "name"}, &model2.ModelWhereOrder{
|
||||
Where: model2.NewWhere("tenant_id", c.TenantID),
|
||||
Order: model2.NewOrder("parent_id", model2.OrderModeToAsc)}); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return c.tree(out, 0), nil
|
||||
}
|
||||
|
||||
func (c *Department) Data(params *DepartmentParams) error {
|
||||
mSysDepartment := model.NewSysDepartment()
|
||||
|
||||
if params.ID <= 0 {
|
||||
mSysDepartment.ParentID = params.ParentID
|
||||
mSysDepartment.Title = params.Title
|
||||
mSysDepartment.Name = params.Name
|
||||
mSysDepartment.Mobile = params.Mobile
|
||||
mSysDepartment.Remark = params.Remark
|
||||
|
||||
return model2.Create(mSysDepartment.SysDepartment)
|
||||
}
|
||||
mSysDepartment.ID = params.ID
|
||||
|
||||
return model2.Updates(mSysDepartment.SysDepartment, map[string]interface{}{
|
||||
"parent_id": params.ParentID, "title": params.Title, "name": params.Name,
|
||||
"mobile": params.Mobile, "remark": params.Remark, "updated_at": time.Now(),
|
||||
})
|
||||
}
|
||||
|
||||
func (c *Department) Delete(id uint64) error {
|
||||
mSysDepartment := model.NewSysDepartment()
|
||||
mSysDepartment.ID = id
|
||||
|
||||
if err := model2.Delete(mSysDepartment.SysDepartment); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func NewDepartment() DepartmentHandle {
|
||||
return func(session *service.Session) *Department {
|
||||
return &Department{Platform: &Platform{Session: session}}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user