package controller import ( "fmt" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" "hongze/hz_eta_docs_api/controller/resp" "hongze/hz_eta_docs_api/global" "hongze/hz_eta_docs_api/models/crm" "hongze/hz_eta_docs_api/models/request" "hongze/hz_eta_docs_api/services" ) // HelpDocController 帮助文档 type HelpDocController struct{} // Menu // @Description 菜单 // @Success 200 {string} string "获取成功" // @Router /help_doc/classify/list [get] func (a *HelpDocController) ClassifyList(c *gin.Context) { var req request.HelpDocClassifyListReq err := c.Bind(&req) if err != nil { errs, ok := err.(validator.ValidationErrors) if !ok { resp.FailData("参数解析失败", "Err:"+err.Error(), c) return } resp.FailData("参数解析失败", errs.Translate(global.Trans), c) return } fmt.Println("code:",req.BusCode) // 获取列表数据 logOb := new(crm.HelpDocClassify) rootList, e := logOb.GetItemsByCondition("parent_id=0", make([]interface{}, 0), "sort asc,classify_id asc") if e != nil { resp.FailMsg("获取失败", "获取帮助文档列表失败, Err: "+e.Error(), c) return } classifyAll, e := logOb.GetItemsByCondition("", make([]interface{}, 0), "sort asc,classify_id asc") if e != nil { resp.FailMsg("获取失败", "获取帮助文档列表失败, Err: "+e.Error(), c) return } classifies := make([]*crm.HelpDocClassifyItems, 0) for _, v := range classifyAll { child := make([]*crm.HelpDocClassifyItems, 0) item := crm.HelpDocClassifyItems{ ClassifyId: v.ClassifyId, ClassifyName: v.ClassifyName, ParentId: v.ParentId, Level: v.Level, Sort: v.Sort, SysUserId: v.SysUserId, SysUserRealName: v.SysUserRealName, VisibleBusinessIds: v.VisibleBusinessIds, Children: child, } classifies = append(classifies, &item) } roots := make([]*crm.HelpDocClassifyItems, 0) for _, v := range rootList { child := make([]*crm.HelpDocClassifyItems, 0) item := crm.HelpDocClassifyItems{ ClassifyId: v.ClassifyId, ClassifyName: v.ClassifyName, ParentId: v.ParentId, Level: v.Level, Sort: v.Sort, SysUserId: v.SysUserId, SysUserRealName: v.SysUserRealName, VisibleBusinessIds: v.VisibleBusinessIds, Children: child, } roots = append(roots, &item) } nodeAll := make([]*crm.HelpDocClassifyItems, 0) for k := range roots { rootNode := roots[k] services.HelpDocClassifyItemsMakeTree(classifies, rootNode) nodeAll = append(nodeAll, rootNode) } resp.OkData("获取成功", nodeAll, c) }