@@ -5,6 +5,7 @@ import 'package:dio/dio.dart';
55import 'package:gsy_github_app_flutter/common/ab/provider/user/UserFollowedDbProvider.dart' ;
66import 'package:gsy_github_app_flutter/common/ab/provider/user/UserFollowerDbProvider.dart' ;
77import 'package:gsy_github_app_flutter/common/ab/provider/user/UserInfoDbProvider.dart' ;
8+ import 'package:gsy_github_app_flutter/common/ab/provider/user/UserOrgsDbProvider.dart' ;
89import 'package:gsy_github_app_flutter/common/config/Config.dart' ;
910import 'package:gsy_github_app_flutter/common/config/ignoreConfig.dart' ;
1011import 'package:gsy_github_app_flutter/common/dao/DaoResult.dart' ;
@@ -322,20 +323,36 @@ class UserDao {
322323 * 获取用户组织
323324 */
324325 static getUserOrgsDao (userName, page, {needDb = false }) async {
325- String url = Address .getUserOrgs (userName) + Address .getPageParams ("?" , page);
326- var res = await HttpManager .netFetch (url, null , null , null );
327- if (res != null && res.result) {
328- List <UserOrg > list = new List ();
329- var data = res.data;
330- if (data == null || data.length == 0 ) {
326+ UserOrgsDbProvider provider = new UserOrgsDbProvider ();
327+ next () async {
328+ String url = Address .getUserOrgs (userName) + Address .getPageParams ("?" , page);
329+ var res = await HttpManager .netFetch (url, null , null , null );
330+ if (res != null && res.result) {
331+ List <UserOrg > list = new List ();
332+ var data = res.data;
333+ if (data == null || data.length == 0 ) {
334+ return new DataResult (null , false );
335+ }
336+ for (int i = 0 ; i < data.length; i++ ) {
337+ list.add (new UserOrg .fromJson (data[i]));
338+ }
339+ if (needDb) {
340+ provider.insert (userName, json.encode (data));
341+ }
342+ return new DataResult (list, true );
343+ } else {
331344 return new DataResult (null , false );
332345 }
333- for (int i = 0 ; i < data.length; i++ ) {
334- list.add (new UserOrg .fromJson (data[i]));
346+ }
347+
348+ if (needDb) {
349+ List <UserOrg > list = await provider.geData (userName);
350+ if (list == null ) {
351+ return await next ();
335352 }
336- return new DataResult (list, true );
337- } else {
338- return new DataResult (null , false );
353+ DataResult dataResult = new DataResult (list, true , next: next ());
354+ return dataResult;
339355 }
356+ return await next ();
340357 }
341358}
0 commit comments