|
@@ -7,6 +7,7 @@ import (
|
|
|
"hongze/hz_crm_eta/global"
|
|
|
"hongze/hz_crm_eta/models/crm"
|
|
|
"hongze/hz_crm_eta/models/eta"
|
|
|
+ etaService "hongze/hz_crm_eta/services/eta"
|
|
|
"hongze/hz_crm_eta/utils"
|
|
|
"time"
|
|
|
)
|
|
@@ -35,26 +36,49 @@ func (this *ClassifyController) ListClassify(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
keyWord := req.Keyword
|
|
|
- companyType := req.CompanyType
|
|
|
- hideDayWeek := req.HideDayWeek
|
|
|
|
|
|
- list, err := eta.GetClassifyList(keyWord, companyType, hideDayWeek)
|
|
|
+ list, err := eta.GetClassifyListByKeyword(keyWord)
|
|
|
if err != nil {
|
|
|
resp.FailData("获取失败", err.Error(), c)
|
|
|
return
|
|
|
}
|
|
|
- finalList := make([]*eta.ClassifyList, 0)
|
|
|
- parentIds := make([]int, 0)
|
|
|
+
|
|
|
+ if keyWord != `` {
|
|
|
+ idMap := make(map[int]bool)
|
|
|
+
|
|
|
+ currParentClassifyIdList := make([]int, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ idMap[v.Id] = true
|
|
|
+ if v.ParentId > 0 {
|
|
|
+ currParentClassifyIdList = append(currParentClassifyIdList, v.ParentId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ findList := list
|
|
|
+ list = make([]*eta.ClassifyListV2, 0)
|
|
|
+
|
|
|
+ tmpList, tmpErr := etaService.GetParentClassifyListByParentIdList(currParentClassifyIdList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ resp.FailData("获取失败", "获取上级分类信息失败,Err:"+err.Error(), c)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range tmpList {
|
|
|
+ if _, ok := idMap[v.Id]; !ok {
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ list = append(list, findList...)
|
|
|
+ }
|
|
|
+
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
for i := range list {
|
|
|
- tmp := new(eta.ClassifyList)
|
|
|
- tmp.ClassifyListItem = *list[i]
|
|
|
- finalList = append(finalList, tmp)
|
|
|
- parentIds = append(parentIds, list[i].Id)
|
|
|
+ classifyIdList = append(classifyIdList, list[i].Id)
|
|
|
}
|
|
|
- parentIdLen := len(parentIds)
|
|
|
+ parentIdLen := len(classifyIdList)
|
|
|
if parentIdLen == 0 {
|
|
|
data := &eta.ClassifyListResp{
|
|
|
- List: finalList,
|
|
|
+ List: make([]*eta.ClassifyListV2, 0),
|
|
|
}
|
|
|
resp.OkData("操作成功", data, c)
|
|
|
return
|
|
@@ -65,7 +89,7 @@ func (this *ClassifyController) ListClassify(c *gin.Context) {
|
|
|
var menuCond string
|
|
|
var menuPars []interface{}
|
|
|
menuCond += ` classify_id IN (?)`
|
|
|
- menuPars = append(menuPars, parentIds)
|
|
|
+ menuPars = append(menuPars, classifyIdList)
|
|
|
menuOb := new(eta.ClassifyMenu)
|
|
|
parentMenus, e := menuOb.GetClassifyMenuList(menuCond, menuPars)
|
|
|
if e != nil {
|
|
@@ -80,7 +104,7 @@ func (this *ClassifyController) ListClassify(c *gin.Context) {
|
|
|
}
|
|
|
|
|
|
// 获取子分类
|
|
|
- children, e := eta.GetClassifyChildByParentIds(parentIds, keyWord)
|
|
|
+ children, e := eta.GetClassifyChildByParentIds(classifyIdList, keyWord)
|
|
|
if e != nil {
|
|
|
resp.FailData("获取失败", "获取子分类失败", c)
|
|
|
return
|
|
@@ -115,40 +139,161 @@ func (this *ClassifyController) ListClassify(c *gin.Context) {
|
|
|
resp.FailData("查询权限失败", e.Error(), c)
|
|
|
return
|
|
|
}
|
|
|
- classifyPermissionMap := make(map[string][]int, 0)
|
|
|
+ classifyPermissionMap := make(map[int][]int, 0)
|
|
|
if len(permissionList) > 0 {
|
|
|
for _, v := range permissionList {
|
|
|
- classifyPermissionMap[v.KeyWord] = append(classifyPermissionMap[v.KeyWord], v.ChartPermissionId)
|
|
|
+ classifyPermissionMap[v.ClassifyId] = append(classifyPermissionMap[v.ClassifyId], v.ChartPermissionId)
|
|
|
}
|
|
|
}
|
|
|
- // 二级分类
|
|
|
- childrenMap := make(map[int][]*eta.ClassifyItem, 0)
|
|
|
- for i := range children {
|
|
|
|
|
|
- if childrenMap[children[i].ParentId] == nil {
|
|
|
- childrenMap[children[i].ParentId] = make([]*eta.ClassifyItem, 0)
|
|
|
- }
|
|
|
- tmp := &eta.ClassifyItem{
|
|
|
- Classify: *children[i],
|
|
|
- ClassifyMenuId: relateMap[children[i].Id],
|
|
|
- }
|
|
|
- if permissionIds, ok := classifyPermissionMap[children[i].ClassifyName]; ok {
|
|
|
- tmp.ChartPermissionIdList = permissionIds
|
|
|
+ // 遍历分类并绑定子目录和权限
|
|
|
+ for i, v := range list {
|
|
|
+ list[i].ClassifyMenuList = menuListMap[v.Id]
|
|
|
+
|
|
|
+ list[i].ClassifyMenuId = relateMap[v.Id]
|
|
|
+ if permissionIds, ok := classifyPermissionMap[v.Id]; ok {
|
|
|
+ list[i].ChartPermissionIdList = permissionIds
|
|
|
}
|
|
|
- childrenMap[children[i].ParentId] = append(childrenMap[children[i].ParentId], tmp)
|
|
|
}
|
|
|
|
|
|
- // 一级分类
|
|
|
- for i := range finalList {
|
|
|
- finalList[i].ClassifyMenuList = menuListMap[list[i].Id]
|
|
|
- finalList[i].Child = childrenMap[list[i].Id]
|
|
|
- }
|
|
|
+ // 先将分类列表排序
|
|
|
+ etaService.SortClassifyListBySortAndCreateTime(list)
|
|
|
+ // 接着转换结构
|
|
|
+ list = etaService.GetClassifyListTreeRecursive(list, 0)
|
|
|
|
|
|
data := new(eta.ClassifyListResp)
|
|
|
- data.List = finalList
|
|
|
+ data.List = list
|
|
|
resp.OkData("操作成功", data, c)
|
|
|
}
|
|
|
|
|
|
+//func (this *ClassifyController) ListClassify(c *gin.Context) {
|
|
|
+// var req eta.ClassifyListReq
|
|
|
+// 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
|
|
|
+// }
|
|
|
+//
|
|
|
+// keyWord := req.Keyword
|
|
|
+// companyType := req.CompanyType
|
|
|
+// hideDayWeek := req.HideDayWeek
|
|
|
+//
|
|
|
+// list, err := eta.GetClassifyList(keyWord, companyType, hideDayWeek)
|
|
|
+// if err != nil {
|
|
|
+// resp.FailData("获取失败", err.Error(), c)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// finalList := make([]*eta.ClassifyList, 0)
|
|
|
+// parentIds := make([]int, 0)
|
|
|
+// for i := range list {
|
|
|
+// tmp := new(eta.ClassifyList)
|
|
|
+// tmp.ClassifyListItem = *list[i]
|
|
|
+// finalList = append(finalList, tmp)
|
|
|
+// parentIds = append(parentIds, list[i].Id)
|
|
|
+// }
|
|
|
+// parentIdLen := len(parentIds)
|
|
|
+// if parentIdLen == 0 {
|
|
|
+// data := &eta.ClassifyListResp{
|
|
|
+// List: finalList,
|
|
|
+// }
|
|
|
+// resp.OkData("操作成功", data, c)
|
|
|
+// return
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 获取一级分类-子目录列表
|
|
|
+// menuListMap := make(map[int][]*eta.ClassifyMenu, 0)
|
|
|
+// var menuCond string
|
|
|
+// var menuPars []interface{}
|
|
|
+// menuCond += ` classify_id IN (?)`
|
|
|
+// menuPars = append(menuPars, parentIds)
|
|
|
+// menuOb := new(eta.ClassifyMenu)
|
|
|
+// parentMenus, e := menuOb.GetClassifyMenuList(menuCond, menuPars)
|
|
|
+// if e != nil {
|
|
|
+// resp.FailData("获取失败", "获取一级分类子目录列表失败", c)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// for i := range parentMenus {
|
|
|
+// if menuListMap[parentMenus[i].ClassifyId] == nil {
|
|
|
+// menuListMap[parentMenus[i].ClassifyId] = make([]*eta.ClassifyMenu, 0)
|
|
|
+// }
|
|
|
+// menuListMap[parentMenus[i].ClassifyId] = append(menuListMap[parentMenus[i].ClassifyId], parentMenus[i])
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 获取子分类
|
|
|
+// children, e := eta.GetClassifyChildByParentIds(parentIds, keyWord)
|
|
|
+// if e != nil {
|
|
|
+// resp.FailData("获取失败", "获取子分类失败", c)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// childrenIds := make([]int, 0)
|
|
|
+// for i := range children {
|
|
|
+// childrenIds = append(childrenIds, children[i].Id)
|
|
|
+// }
|
|
|
+// childrenIdsLen := len(childrenIds)
|
|
|
+//
|
|
|
+// // 获取二级分类-子目录关联
|
|
|
+// relateMap := make(map[int]int, 0)
|
|
|
+// if childrenIdsLen > 0 {
|
|
|
+// var relateCond string
|
|
|
+// var relatePars []interface{}
|
|
|
+// relateCond += ` classify_id IN (?)`
|
|
|
+// relatePars = append(relatePars, childrenIds)
|
|
|
+// menuRelationOb := new(eta.ClassifyMenuRelation)
|
|
|
+// relates, e := menuRelationOb.GetClassifyMenuRelationList(relateCond, relatePars)
|
|
|
+// if e != nil {
|
|
|
+// resp.FailData("获取失败", "获取二级分类子目录关联失败, Err: "+e.Error(), c)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// for i := range relates {
|
|
|
+// relateMap[relates[i].ClassifyId] = relates[i].MenuId
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// permissionMappingOb := new(crm.ChartPermissionSearchKeyWordMapping)
|
|
|
+// permissionList, e := permissionMappingOb.GetPermission()
|
|
|
+// if e != nil {
|
|
|
+// resp.FailData("查询权限失败", e.Error(), c)
|
|
|
+// return
|
|
|
+// }
|
|
|
+// classifyPermissionMap := make(map[string][]int, 0)
|
|
|
+// if len(permissionList) > 0 {
|
|
|
+// for _, v := range permissionList {
|
|
|
+// classifyPermissionMap[v.KeyWord] = append(classifyPermissionMap[v.KeyWord], v.ChartPermissionId)
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // 二级分类
|
|
|
+// childrenMap := make(map[int][]*eta.ClassifyItem, 0)
|
|
|
+// for i := range children {
|
|
|
+//
|
|
|
+// if childrenMap[children[i].ParentId] == nil {
|
|
|
+// childrenMap[children[i].ParentId] = make([]*eta.ClassifyItem, 0)
|
|
|
+// }
|
|
|
+// tmp := &eta.ClassifyItem{
|
|
|
+// Classify: *children[i],
|
|
|
+// ClassifyMenuId: relateMap[children[i].Id],
|
|
|
+// }
|
|
|
+// if permissionIds, ok := classifyPermissionMap[children[i].ClassifyName]; ok {
|
|
|
+// tmp.ChartPermissionIdList = permissionIds
|
|
|
+// }
|
|
|
+// childrenMap[children[i].ParentId] = append(childrenMap[children[i].ParentId], tmp)
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 一级分类
|
|
|
+// for i := range finalList {
|
|
|
+// finalList[i].ClassifyMenuList = menuListMap[list[i].Id]
|
|
|
+// finalList[i].Child = childrenMap[list[i].Id]
|
|
|
+// }
|
|
|
+//
|
|
|
+// data := new(eta.ClassifyListResp)
|
|
|
+// data.List = finalList
|
|
|
+// resp.OkData("操作成功", data, c)
|
|
|
+//}
|
|
|
+
|
|
|
// SetEnabled
|
|
|
// @Title 启用/禁用分类接口
|
|
|
// @Description 启用/禁用分类
|