mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-25 14:18:37 +08:00
项目目录优化,任务模块后端代码
This commit is contained in:
179
apps/system/services/dept.go
Normal file
179
apps/system/services/dept.go
Normal file
@@ -0,0 +1,179 @@
|
||||
package services
|
||||
|
||||
import (
|
||||
"pandax/apps/system/entity"
|
||||
"pandax/base/biz"
|
||||
"pandax/base/global"
|
||||
)
|
||||
|
||||
type (
|
||||
SysDeptModel interface {
|
||||
Insert(data entity.SysDept) *entity.SysDept
|
||||
FindOne(deptId int64) *entity.SysDept
|
||||
FindListPage(page, pageSize int, data entity.SysDept) (*[]entity.SysDept, int64)
|
||||
FindList(data entity.SysDept) *[]entity.SysDept
|
||||
Update(data entity.SysDept) *entity.SysDept
|
||||
Delete(deptId []int64)
|
||||
SelectDept(data entity.SysDept) []entity.SysDept
|
||||
SelectDeptLable(data entity.SysDept) []entity.DeptLable
|
||||
}
|
||||
|
||||
sysDeptModelImpl struct {
|
||||
table string
|
||||
}
|
||||
)
|
||||
|
||||
var SysDeptModelDao = &sysDeptModelImpl{
|
||||
table: `sys_depts`,
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) Insert(data entity.SysDept) *entity.SysDept {
|
||||
biz.ErrIsNil(global.Db.Table(m.table).Create(&data).Error, "新增部门信息失败")
|
||||
return &data
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) FindOne(deptId int64) *entity.SysDept {
|
||||
resData := new(entity.SysDept)
|
||||
err := global.Db.Table(m.table).Where("`dept_id` = ?", deptId).First(resData).Error
|
||||
biz.ErrIsNil(err, "查询部门信息失败")
|
||||
return resData
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) FindListPage(page, pageSize int, data entity.SysDept) (*[]entity.SysDept, int64) {
|
||||
list := make([]entity.SysDept, 0)
|
||||
var total int64 = 0
|
||||
offset := pageSize * (page - 1)
|
||||
|
||||
db := global.Db.Table(m.table)
|
||||
// 此处填写 where参数判断
|
||||
if data.DeptId != 0 {
|
||||
db = db.Where("dept_id = ?", data.DeptId)
|
||||
}
|
||||
if data.DeptName != "" {
|
||||
db = db.Where("dept_name like ?", "%"+data.DeptName+"%")
|
||||
}
|
||||
if data.Status != "" {
|
||||
db = db.Where("status = ?", data.Status)
|
||||
}
|
||||
if data.DeptPath != "" {
|
||||
db = db.Where("deptPath like %?%", data.DeptPath)
|
||||
}
|
||||
db.Where("delete_time IS NULL")
|
||||
err := db.Count(&total).Error
|
||||
err = db.Limit(pageSize).Offset(offset).Find(&list).Error
|
||||
biz.ErrIsNil(err, "查询部门分页列表信息失败")
|
||||
return &list, total
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) FindList(data entity.SysDept) *[]entity.SysDept {
|
||||
list := make([]entity.SysDept, 0)
|
||||
|
||||
db := global.Db.Table(m.table)
|
||||
// 此处填写 where参数判断
|
||||
if data.DeptId != 0 {
|
||||
db = db.Where("dept_id = ?", data.DeptId)
|
||||
}
|
||||
if data.DeptName != "" {
|
||||
db = db.Where("dept_name like ?", "%"+data.DeptName+"%")
|
||||
}
|
||||
if data.Status != "" {
|
||||
db = db.Where("status = ?", data.Status)
|
||||
}
|
||||
db.Where("delete_time IS NULL")
|
||||
err := db.Order("sort").Find(&list).Error
|
||||
biz.ErrIsNil(err, "查询部门列表信息失败")
|
||||
return &list
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) Update(data entity.SysDept) *entity.SysDept {
|
||||
err := global.Db.Table(m.table).Model(&data).Updates(&data).Error
|
||||
biz.ErrIsNil(err, "修改部门信息失败")
|
||||
return &data
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) Delete(deptIds []int64) {
|
||||
err := global.Db.Table(m.table).Delete(&entity.SysDept{}, "`dept_id` in (?)", deptIds).Error
|
||||
biz.ErrIsNil(err, "删除部门信息失败")
|
||||
return
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) SelectDept(data entity.SysDept) []entity.SysDept {
|
||||
list := m.FindList(data)
|
||||
|
||||
sd := make([]entity.SysDept, 0)
|
||||
li := *list
|
||||
for i := 0; i < len(li); i++ {
|
||||
if li[i].ParentId != 0 {
|
||||
continue
|
||||
}
|
||||
info := Digui(list, li[i])
|
||||
|
||||
sd = append(sd, info)
|
||||
}
|
||||
return sd
|
||||
}
|
||||
|
||||
func (m *sysDeptModelImpl) SelectDeptLable(data entity.SysDept) []entity.DeptLable {
|
||||
deptlist := m.FindList(data)
|
||||
|
||||
dl := make([]entity.DeptLable, 0)
|
||||
deptl := *deptlist
|
||||
for i := 0; i < len(deptl); i++ {
|
||||
if deptl[i].ParentId != 0 {
|
||||
continue
|
||||
}
|
||||
e := entity.DeptLable{}
|
||||
e.DeptId = deptl[i].DeptId
|
||||
e.DeptName = deptl[i].DeptName
|
||||
deptsInfo := DiguiDeptLable(deptlist, e)
|
||||
|
||||
dl = append(dl, deptsInfo)
|
||||
}
|
||||
return dl
|
||||
}
|
||||
|
||||
func Digui(deptlist *[]entity.SysDept, menu entity.SysDept) entity.SysDept {
|
||||
list := *deptlist
|
||||
|
||||
min := make([]entity.SysDept, 0)
|
||||
for j := 0; j < len(list); j++ {
|
||||
|
||||
if menu.DeptId != list[j].ParentId {
|
||||
continue
|
||||
}
|
||||
mi := entity.SysDept{}
|
||||
mi.DeptId = list[j].DeptId
|
||||
mi.ParentId = list[j].ParentId
|
||||
mi.DeptPath = list[j].DeptPath
|
||||
mi.DeptName = list[j].DeptName
|
||||
mi.Sort = list[j].Sort
|
||||
mi.Leader = list[j].Leader
|
||||
mi.Phone = list[j].Phone
|
||||
mi.Email = list[j].Email
|
||||
mi.Status = list[j].Status
|
||||
mi.CreatedAt = list[j].CreatedAt
|
||||
mi.UpdatedAt = list[j].UpdatedAt
|
||||
mi.Children = []entity.SysDept{}
|
||||
ms := Digui(deptlist, mi)
|
||||
min = append(min, ms)
|
||||
}
|
||||
menu.Children = min
|
||||
return menu
|
||||
}
|
||||
func DiguiDeptLable(deptlist *[]entity.SysDept, dept entity.DeptLable) entity.DeptLable {
|
||||
list := *deptlist
|
||||
|
||||
min := make([]entity.DeptLable, 0)
|
||||
for j := 0; j < len(list); j++ {
|
||||
|
||||
if dept.DeptId != list[j].ParentId {
|
||||
continue
|
||||
}
|
||||
mi := entity.DeptLable{list[j].DeptId, list[j].DeptName, []entity.DeptLable{}}
|
||||
ms := DiguiDeptLable(deptlist, mi)
|
||||
min = append(min, ms)
|
||||
|
||||
}
|
||||
dept.Children = min
|
||||
return dept
|
||||
}
|
||||
Reference in New Issue
Block a user