|
@@ -0,0 +1,455 @@
|
|
|
|
+package speech_recognition
|
|
|
|
+
|
|
|
|
+import (
|
|
|
|
+ "encoding/json"
|
|
|
|
+ "eta/eta_api/controllers"
|
|
|
|
+ "eta/eta_api/models"
|
|
|
|
+ "eta/eta_api/models/speech_recognition"
|
|
|
|
+ "eta/eta_api/services"
|
|
|
|
+ "eta/eta_api/utils"
|
|
|
|
+ "fmt"
|
|
|
|
+ "strings"
|
|
|
|
+ "time"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+// SpeechRecognitionTagMenuController 标签目录
|
|
|
|
+type SpeechRecognitionTagMenuController struct {
|
|
|
|
+ controllers.BaseAuthController
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// Add
|
|
|
|
+// @Title 新增分类
|
|
|
|
+// @Description 新增分类
|
|
|
|
+// @Param request body speech_recognition.SpeechRecognitionTagMenuAddReq true "type json string"
|
|
|
|
+// @Success 200 string "操作成功"
|
|
|
|
+// @router /tag/menu/add [post]
|
|
|
|
+func (this *SpeechRecognitionTagMenuController) Add() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ if br.ErrMsg == "" {
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ }
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var req speech_recognition.SpeechRecognitionTagMenuAddReq
|
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
|
+ br.Msg = "参数有误"
|
|
|
|
+ br.ErrMsg = "参数解析失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ req.MenuName = strings.TrimSpace(req.MenuName)
|
|
|
|
+ if req.MenuName == "" {
|
|
|
|
+ br.Msg = "请输入目录名称"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 校验同级目录是否有重名
|
|
|
|
+ menuOb := new(speech_recognition.SpeechRecognitionTagMenu)
|
|
|
|
+ {
|
|
|
|
+ cond := fmt.Sprintf(` %s = ? AND %s = ?`, speech_recognition.SpeechRecognitionTagMenuCols.MenuName, speech_recognition.SpeechRecognitionTagMenuCols.ParentId)
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, req.MenuName, req.ParentId)
|
|
|
|
+ exists, e := menuOb.GetItemByCondition(cond, pars, "")
|
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取同名目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if exists != nil && exists.SpeechRecognitionTagMenuId > 0 {
|
|
|
|
+ br.Msg = "分类名称已存在,请重新输入"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取目录层级
|
|
|
|
+ level := 1
|
|
|
|
+ {
|
|
|
|
+ if req.ParentId > 0 {
|
|
|
|
+ parentMenu, e := menuOb.GetItemById(req.ParentId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取父级目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ level += parentMenu.Level
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ menuOb.MenuName = req.MenuName
|
|
|
|
+ menuOb.ParentId = req.ParentId
|
|
|
|
+ menuOb.Level = level
|
|
|
|
+ menuOb.CreateTime = time.Now().Local()
|
|
|
|
+ menuOb.ModifyTime = time.Now().Local()
|
|
|
|
+ e := menuOb.Create()
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "新增目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "操作成功"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// Edit
|
|
|
|
+// @Title 编辑分类
|
|
|
|
+// @Description 编辑分类
|
|
|
|
+// @Param request body speech_recognition.SpeechRecognitionTagMenuEditReq true "type json string"
|
|
|
|
+// @Success 200 string "操作成功"
|
|
|
|
+// @router /tag/menu/edit [post]
|
|
|
|
+func (this *SpeechRecognitionTagMenuController) Edit() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ if br.ErrMsg == "" {
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ }
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var req speech_recognition.SpeechRecognitionTagMenuEditReq
|
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
|
+ br.Msg = "参数有误"
|
|
|
|
+ br.ErrMsg = "参数解析失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.MenuId <= 0 {
|
|
|
|
+ br.Msg = "参数有误"
|
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误, MenuId: %d", req.MenuId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ req.MenuName = strings.TrimSpace(req.MenuName)
|
|
|
|
+ if req.MenuName == "" {
|
|
|
|
+ br.Msg = "请输入目录名称"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ menuOb := new(speech_recognition.SpeechRecognitionTagMenu)
|
|
|
|
+ menuItem, e := menuOb.GetItemById(req.MenuId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ if e.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "目录不存在,请刷新页面"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 校验同级目录是否有重名
|
|
|
|
+ {
|
|
|
|
+ cond := fmt.Sprintf(` %s = ? AND %s = ? AND %s <> ?`, speech_recognition.SpeechRecognitionTagMenuCols.MenuName, speech_recognition.SpeechRecognitionTagMenuCols.ParentId, speech_recognition.SpeechRecognitionTagMenuCols.SpeechRecognitionTagMenuId)
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, req.MenuName, menuItem.ParentId, req.MenuId)
|
|
|
|
+ exists, e := menuOb.GetItemByCondition(cond, pars, "")
|
|
|
|
+ if e != nil && e.Error() != utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取同名目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if exists != nil && exists.SpeechRecognitionTagMenuId > 0 {
|
|
|
|
+ br.Msg = "分类名称已存在,请重新输入"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ menuOb.MenuName = req.MenuName
|
|
|
|
+ menuOb.ModifyTime = time.Now().Local()
|
|
|
|
+ updateCols := []string{speech_recognition.SpeechRecognitionTagMenuCols.MenuName, speech_recognition.SpeechRecognitionTagMenuCols.ModifyTime}
|
|
|
|
+ if e = menuOb.Update(updateCols); e != nil {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "更新目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "操作成功"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// Remove
|
|
|
|
+// @Title 删除分类
|
|
|
|
+// @Description 删除分类
|
|
|
|
+// @Param request body speech_recognition.SpeechRecognitionTagMenuRemoveReq true "type json string"
|
|
|
|
+// @Success 200 string "操作成功"
|
|
|
|
+// @router /tag/menu/remove [post]
|
|
|
|
+func (this *SpeechRecognitionTagMenuController) Remove() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ if br.ErrMsg == "" {
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ }
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var req speech_recognition.SpeechRecognitionTagMenuRemoveReq
|
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
|
+ br.Msg = "参数有误"
|
|
|
|
+ br.ErrMsg = "参数解析失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.MenuId <= 0 {
|
|
|
|
+ br.Msg = "参数有误"
|
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误, MenuId: %d", req.MenuId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ menuOb := new(speech_recognition.SpeechRecognitionTagMenu)
|
|
|
|
+ menuItem, e := menuOb.GetItemById(req.MenuId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ if e.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "操作成功"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 校验目录下是否有内容
|
|
|
|
+ {
|
|
|
|
+ tagOb := new(speech_recognition.SpeechRecognitionTag)
|
|
|
|
+ cond := fmt.Sprintf(` %s = ?`, speech_recognition.SpeechRecognitionTagCols.MenuId)
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, req.MenuId)
|
|
|
|
+ count, e := tagOb.GetCountByCondition(cond, pars)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取目录下的标签数失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if count > 0 {
|
|
|
|
+ br.Msg = "该分类关联标签,删除失败!"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ cond = fmt.Sprintf(` %s = ?`, speech_recognition.SpeechRecognitionTagMenuCols.ParentId)
|
|
|
|
+ pars = make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, req.MenuId)
|
|
|
|
+ count, e = menuOb.GetCountByCondition(cond, pars)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "获取下级目录数失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if count > 0 {
|
|
|
|
+ br.Msg = "该分类含下级目录,删除失败!"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if e = menuItem.Del(); e != nil {
|
|
|
|
+ br.Msg = "操作失败"
|
|
|
|
+ br.ErrMsg = "删除目录失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "操作成功"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// Tree
|
|
|
|
+// @Title 目录树
|
|
|
|
+// @Description 目录树
|
|
|
|
+// @Param ParentId query int false "父级ID"
|
|
|
|
+// @Success 200 {object} speech_recognition.SpeechRecognitionTagMenuNodeItem
|
|
|
|
+// @router /tag/menu/tree [get]
|
|
|
|
+func (this *SpeechRecognitionTagMenuController) Tree() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ if br.ErrMsg == "" {
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ }
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 前端采用懒加载, 所以只查询目录及当前目录下的语音识别
|
|
|
|
+ parentId, _ := this.GetInt("ParentId")
|
|
|
|
+
|
|
|
|
+ menus := make([]*speech_recognition.SpeechRecognitionTagMenu, 0)
|
|
|
|
+ {
|
|
|
|
+ menuOb := new(speech_recognition.SpeechRecognitionTagMenu)
|
|
|
|
+ cond := fmt.Sprintf(` %s = ?`, speech_recognition.SpeechRecognitionTagMenuCols.ParentId)
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, parentId)
|
|
|
|
+ list, e := menuOb.GetItemsByCondition(cond, pars, []string{}, fmt.Sprintf("%s ASC", speech_recognition.SpeechRecognitionTagMenuCols.Sort))
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "获取失败"
|
|
|
|
+ br.ErrMsg = "获取目录列表失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ menus = list
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ resp := make([]*speech_recognition.SpeechRecognitionTagMenuNodeItem, 0)
|
|
|
|
+ if len(menus) == 0 {
|
|
|
|
+ br.Data = resp
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ menuIds := make([]int, 0)
|
|
|
|
+ for _, m := range menus {
|
|
|
|
+ menuIds = append(menuIds, m.SpeechRecognitionTagMenuId)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 子目录
|
|
|
|
+ childMenus := make([]*speech_recognition.SpeechRecognitionTagMenu, 0)
|
|
|
|
+ {
|
|
|
|
+ menuOb := new(speech_recognition.SpeechRecognitionTagMenu)
|
|
|
|
+ cond := fmt.Sprintf(` %s IN (%s)`, speech_recognition.SpeechRecognitionTagMenuCols.ParentId, utils.GetOrmInReplace(len(menuIds)))
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, menuIds)
|
|
|
|
+ list, e := menuOb.GetItemsByCondition(cond, pars, []string{}, fmt.Sprintf("%s ASC, %s ASC", speech_recognition.SpeechRecognitionTagMenuCols.Sort, speech_recognition.SpeechRecognitionTagMenuCols.ParentId))
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "获取失败"
|
|
|
|
+ br.ErrMsg = "获取子目录列表失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ menus = list
|
|
|
|
+ }
|
|
|
|
+ menuChildren := make(map[int][]*speech_recognition.SpeechRecognitionTagMenuNodeItem)
|
|
|
|
+ for _, m := range childMenus {
|
|
|
|
+ if menuChildren[m.ParentId] == nil {
|
|
|
|
+ menuChildren[m.ParentId] = make([]*speech_recognition.SpeechRecognitionTagMenuNodeItem, 0)
|
|
|
|
+ }
|
|
|
|
+ menuChildren[m.ParentId] = append(menuChildren[m.ParentId], &speech_recognition.SpeechRecognitionTagMenuNodeItem{
|
|
|
|
+ NodeType: speech_recognition.SpeechRecognitionTagMenuNodeTypeDefault,
|
|
|
|
+ MenuId: m.SpeechRecognitionTagMenuId,
|
|
|
|
+ MenuName: m.MenuName,
|
|
|
|
+ ParentId: m.ParentId,
|
|
|
|
+ Sort: m.Sort,
|
|
|
|
+ CreateTime: utils.TimeTransferString(utils.FormatDateTime, m.CreateTime),
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 目录下的标签
|
|
|
|
+ tags := make([]*speech_recognition.SpeechRecognitionTag, 0)
|
|
|
|
+ {
|
|
|
|
+ tagOb := new(speech_recognition.SpeechRecognitionTag)
|
|
|
|
+ cond := fmt.Sprintf(` %s IN (%s)`, speech_recognition.SpeechRecognitionTagCols.MenuId, utils.GetOrmInReplace(len(menuIds)))
|
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
|
+ pars = append(pars, menuIds)
|
|
|
|
+ list, e := tagOb.GetItemsByCondition(cond, pars, []string{}, fmt.Sprintf("%s ASC, %s DESC", speech_recognition.SpeechRecognitionTagMenuCols.Sort, speech_recognition.SpeechRecognitionTagMenuCols.CreateTime))
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "获取失败"
|
|
|
|
+ br.ErrMsg = "获取标签列表失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ tags = list
|
|
|
|
+ }
|
|
|
|
+ menuTags := make(map[int][]*speech_recognition.SpeechRecognitionTagMenuNodeItem)
|
|
|
|
+ for _, s := range tags {
|
|
|
|
+ if menuTags[s.MenuId] == nil {
|
|
|
|
+ menuTags[s.MenuId] = make([]*speech_recognition.SpeechRecognitionTagMenuNodeItem, 0)
|
|
|
|
+ }
|
|
|
|
+ menuTags[s.MenuId] = append(menuTags[s.MenuId], &speech_recognition.SpeechRecognitionTagMenuNodeItem{
|
|
|
|
+ NodeType: speech_recognition.SpeechRecognitionTagMenuNodeTypeTag,
|
|
|
|
+ TagId: s.SpeechRecognitionTagId,
|
|
|
|
+ TagName: s.TagName,
|
|
|
|
+ ParentId: s.MenuId,
|
|
|
|
+ Sort: s.Sort,
|
|
|
|
+ CreateTime: utils.TimeTransferString(utils.FormatDateTime, s.CreateTime),
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for _, m := range menus {
|
|
|
|
+ t := &speech_recognition.SpeechRecognitionTagMenuNodeItem{
|
|
|
|
+ NodeType: speech_recognition.SpeechRecognitionTagMenuNodeTypeDefault,
|
|
|
|
+ MenuId: m.SpeechRecognitionTagMenuId,
|
|
|
|
+ MenuName: m.MenuName,
|
|
|
|
+ ParentId: m.ParentId,
|
|
|
|
+ Sort: m.Sort,
|
|
|
|
+ CreateTime: utils.TimeTransferString(utils.FormatDateTime, m.CreateTime),
|
|
|
|
+ Children: make([]*speech_recognition.SpeechRecognitionTagMenuNodeItem, 0),
|
|
|
|
+ }
|
|
|
|
+ if menuTags[m.SpeechRecognitionTagMenuId] != nil {
|
|
|
|
+ t.Children = append(t.Children, menuTags[m.SpeechRecognitionTagMenuId]...)
|
|
|
|
+ }
|
|
|
|
+ if menuChildren[m.SpeechRecognitionTagMenuId] != nil {
|
|
|
|
+ t.Children = append(t.Children, menuChildren[m.SpeechRecognitionTagMenuId]...)
|
|
|
|
+ }
|
|
|
|
+ resp = append(resp, t)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ br.Data = resp
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// List
|
|
|
|
+// @Title 目录列表
|
|
|
|
+// @Description 目录列表
|
|
|
|
+// @Success 200 {object} speech_recognition.SpeechRecognitionTagMenuItem
|
|
|
|
+// @router /tag/menu/tree [get]
|
|
|
|
+func (this *SpeechRecognitionTagMenuController) List() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ if br.ErrMsg == "" {
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ }
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ sysUser := this.SysUser
|
|
|
|
+ if sysUser == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ menus := make([]*speech_recognition.SpeechRecognitionTagMenu, 0)
|
|
|
|
+ {
|
|
|
|
+ menuOb := new(speech_recognition.SpeechRecognitionTagMenu)
|
|
|
|
+ list, e := menuOb.GetItemsByCondition(``, make([]interface{}, 0), []string{}, fmt.Sprintf("%s ASC, %s ASC", speech_recognition.SpeechRecognitionTagMenuCols.ParentId, speech_recognition.SpeechRecognitionTagMenuCols.Sort))
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "获取失败"
|
|
|
|
+ br.ErrMsg = "获取目录列表失败, Err: " + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ menus = list
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 递归处理成目录树
|
|
|
|
+ resp := services.GetSpeechRecognitionTagMenuTreeRecursive(menus, 0)
|
|
|
|
+
|
|
|
|
+ br.Data = resp
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "获取成功"
|
|
|
|
+}
|