feat(ik3cloud): 初始化项目基础配置与部门模块
- 添加 .gitignore 忽略规则 - 实现应用配置加载与管理逻辑 - 添加默认配置文件 app.ini - 配置 Gitea CI/CD 工作流用于构建和部署 - 实现金蝶云客户端初始化功能 - 添加 RPC 插件支持 Consul 注册中心 - 实现部门数据获取及树形结构处理逻辑 - 添加通用工具函数库 - 初始化 Go 模块依赖管理 - 创建 Dockerfile 用于服务容器化部署
This commit is contained in:
68
app/logic/department.go
Normal file
68
app/logic/department.go
Normal file
@@ -0,0 +1,68 @@
|
||||
package logic
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"ik3cloud/app/common"
|
||||
"ik3cloud/app/config"
|
||||
"ik3cloud/app/lib/ik3cloud"
|
||||
|
||||
ik3cloud2 "git.kumo.work/shama/service/ik3cloud"
|
||||
)
|
||||
|
||||
var DepartmentLogic = &departmentLogic{}
|
||||
|
||||
type departmentLogic struct {
|
||||
}
|
||||
|
||||
// All @TITLE 全部部门
|
||||
func (d *departmentLogic) All() (result []ik3cloud2.DepartmentItem, err error) {
|
||||
raw, err := ik3cloud.Client.ExecuteBillQuery(map[string]interface{}{
|
||||
"FormId": "BD_Department",
|
||||
"FieldKeys": "FNumber,FName,FParentID.FNumber,FParentID.FName",
|
||||
"FilterString": []map[string]interface{}{{
|
||||
"FieldName": "FUseOrgId.FNumber",
|
||||
"Compare": "67",
|
||||
"Value": config.Config.Ik3cloud.OrganizationNumber,
|
||||
"Left": "",
|
||||
"Right": "",
|
||||
"Logic": "",
|
||||
}},
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
var data [][]*string
|
||||
if err = json.Unmarshal(raw, &data); err != nil {
|
||||
return
|
||||
}
|
||||
for _, item := range data {
|
||||
result = append(result, ik3cloud2.DepartmentItem{
|
||||
Number: item[0],
|
||||
Name: item[1],
|
||||
ParentNumber: item[2],
|
||||
ParentName: item[3],
|
||||
})
|
||||
}
|
||||
return d.getTree(result), nil
|
||||
}
|
||||
|
||||
// @Title 获取菜单树
|
||||
func (d *departmentLogic) getTree(datas []ik3cloud2.DepartmentItem) (result []ik3cloud2.DepartmentItem) {
|
||||
result = []ik3cloud2.DepartmentItem{}
|
||||
for i, item := range datas {
|
||||
if item.ParentNumber != nil {
|
||||
for index, value := range datas {
|
||||
if common.PtrCmp(item.ParentNumber, value.Number) {
|
||||
datas[index].Children = append(datas[index].Children, &datas[i])
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, item := range datas {
|
||||
if item.ParentNumber != nil {
|
||||
result = append(result, item)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user