|
@@ -1127,3 +1127,57 @@ func GetChartClassifyChildrenRecursiveByParentIds(list []*data_manage.ChartClass
|
|
|
}
|
|
|
return res
|
|
|
}
|
|
|
+
|
|
|
+func GetChartClassifyByIsMe(adminId, parentId, source int, classifyList []*data_manage.ChartClassifyItems) (list []*data_manage.ChartClassifyItems, err error) {
|
|
|
+ chartInfoList, err := data_manage.GetChartInfoByAdminId([]int{source}, adminId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
+ for _, chartInfo := range chartInfoList {
|
|
|
+ if chartInfo.ChartClassifyId > 0 {
|
|
|
+ classifyIdList = append(classifyIdList, chartInfo.ChartClassifyId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if parentId > 0 {
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if v.ChartClassifyId > 0 && v.ChartInfoId == 0 {
|
|
|
+ classifyItems, er, _ := GetChildChartClassifyByClassifyId(v.ChartClassifyId)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+ existClassifyMap := make(map[int]struct{})
|
|
|
+ for _, classify := range classifyItems {
|
|
|
+ existClassifyMap[classify.ChartClassifyId] = struct{}{}
|
|
|
+ }
|
|
|
+ for _, chart := range chartInfoList {
|
|
|
+ if _, ok := existClassifyMap[chart.ChartClassifyId]; ok {
|
|
|
+ list = append(list, v)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ chartClassifyList, er := data_manage.GetChartClassifyByIdList(classifyIdList)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ existClassifyIdMap := make(map[int]struct{})
|
|
|
+ for _, classify := range chartClassifyList {
|
|
|
+ existClassifyIdMap[classify.RootId] = struct{}{}
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, classify := range classifyList {
|
|
|
+ if _, ok := existClassifyIdMap[classify.ChartClassifyId]; ok {
|
|
|
+ list = append(list, classify)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|