yunzer_go/server/models/department.go

88 lines
2.6 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package models
import (
"time"
"github.com/beego/beego/v2/client/orm"
)
// Department 部门模型
type Department struct {
Id int `orm:"auto" json:"id"`
TenantId int `orm:"column(tenant_id);default(0)" json:"tenant_id"`
Name string `orm:"size(100)" json:"name"`
Code string `orm:"size(50);null" json:"code"`
ParentId int `orm:"column(parent_id);default(0)" json:"parent_id"`
Description string `orm:"type(text);null" json:"description"`
ManagerId int `orm:"column(manager_id);null" json:"manager_id"`
SortOrder int `orm:"column(sort_order);default(0)" json:"sort_order"`
Status int8 `orm:"default(1)" json:"status"` // 1-启用0-禁用
CreateTime time.Time `orm:"column(create_time);type(datetime);auto_now_add" json:"create_time"`
UpdateTime time.Time `orm:"column(update_time);type(datetime);auto_now" json:"update_time"`
DeleteTime *time.Time `orm:"column(delete_time);null;type(datetime)" json:"delete_time,omitempty"`
}
// TableName 设置表名
func (d *Department) TableName() string {
return "yz_tenant_departments"
}
func init() {
orm.RegisterModel(new(Department))
}
// GetTenantDepartments 获取租户下的所有部门
func GetTenantDepartments(tenantId int) ([]*Department, error) {
o := orm.NewOrm()
var departments []*Department
_, err := o.QueryTable("yz_tenant_departments").
Filter("tenant_id", tenantId).
Filter("delete_time__isnull", true).
OrderBy("sort_order", "create_time").
All(&departments)
return departments, err
}
// GetDepartmentById 根据ID获取部门信息
func GetDepartmentById(id int) (*Department, error) {
o := orm.NewOrm()
department := &Department{Id: id}
err := o.Read(department)
if err != nil {
return nil, err
}
// 检查是否已删除
if department.DeleteTime != nil {
return nil, orm.ErrNoRows
}
return department, nil
}
// AddDepartment 添加部门
func AddDepartment(department *Department) (int64, error) {
o := orm.NewOrm()
id, err := o.Insert(department)
return id, err
}
// UpdateDepartment 更新部门信息
func UpdateDepartment(department *Department) error {
o := orm.NewOrm()
_, err := o.Update(department, "name", "code", "parent_id", "description", "manager_id", "sort_order", "status", "update_time")
return err
}
// DeleteDepartment 软删除部门
func DeleteDepartment(id int) error {
o := orm.NewOrm()
department := &Department{Id: id}
if err := o.Read(department); err != nil {
return err
}
now := time.Now()
department.DeleteTime = &now
_, err := o.Update(department, "delete_time")
return err
}