|
@@ -1545,3 +1545,57 @@ func GetEdbClassifyMaxSort(parentId int, classifyType uint8) (maxSort int, err e
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func GetEdbClassifyByIsMe(adminId, parentId, edbInfoType int, classifyList []*data_manage.EdbClassifyItems) (list []*data_manage.EdbClassifyItems, err error) {
|
|
|
+ edbInfoList, err := data_manage.GetEdbInfoListByUserId([]int{adminId}, edbInfoType)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classifyIdList := make([]int, 0)
|
|
|
+ for _, edbInfo := range edbInfoList {
|
|
|
+ if edbInfo.ClassifyId > 0 {
|
|
|
+ classifyIdList = append(classifyIdList, edbInfo.ClassifyId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if parentId > 0 {
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if v.ClassifyId > 0 && v.EdbInfoId == 0 {
|
|
|
+ classifyItems, er, _ := GetChildClassifyByClassifyId(v.ClassifyId)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+ existClassifyMap := make(map[int]struct{})
|
|
|
+ for _, classify := range classifyItems {
|
|
|
+ existClassifyMap[classify.ClassifyId] = struct{}{}
|
|
|
+ }
|
|
|
+ for _, edb := range edbInfoList {
|
|
|
+ if _, ok := existClassifyMap[edb.ClassifyId]; ok {
|
|
|
+ list = append(list, v)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ edbInfoClassifyList, er := data_manage.GetEdbClassifyByIdList(classifyIdList)
|
|
|
+ if er != nil {
|
|
|
+ err = er
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ existClassifyIdMap := make(map[int]struct{})
|
|
|
+ for _, classify := range edbInfoClassifyList {
|
|
|
+ existClassifyIdMap[classify.RootId] = struct{}{}
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, classify := range classifyList {
|
|
|
+ if _, ok := existClassifyIdMap[classify.ClassifyId]; ok {
|
|
|
+ list = append(list, classify)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|