Skip to content

Commit 7904d45

Browse files
committed
add common list db
1 parent ef7eee3 commit 7904d45

10 files changed

+598
-115
lines changed

lib/common/ab/provider/repos/RepositoryForkDbProvider.dart

Lines changed: 54 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1+
import 'dart:async';
2+
import 'dart:convert';
3+
14
import 'package:gsy_github_app_flutter/common/ab/SqlProvider.dart';
5+
import 'package:gsy_github_app_flutter/common/model/Repository.dart';
6+
import 'package:sqflite/sqflite.dart';
27

38
/**
49
* 仓库分支表
@@ -17,7 +22,9 @@ class RepositoryForkDbProvider extends BaseDbProvider {
1722
String fullName;
1823
String data;
1924

20-
Map<String, dynamic> toMap() {
25+
RepositoryForkDbProvider();
26+
27+
Map<String, dynamic> toMap(String fullName, String data) {
2128
Map<String, dynamic> map = {columnFullName: fullName, columnData: data};
2229
if (id != null) {
2330
map[columnId] = id;
@@ -32,10 +39,54 @@ class RepositoryForkDbProvider extends BaseDbProvider {
3239
}
3340

3441
@override
35-
tableSqlString() {}
42+
tableSqlString() {
43+
return tableBaseString(name, columnId) +
44+
'''
45+
$columnFullName text not null,
46+
$columnData text not null)
47+
''';
48+
}
3649

3750
@override
3851
tableName() {
3952
return name;
4053
}
41-
}
54+
55+
Future _getProvider(Database db, String fullName) async {
56+
List<Map<String, dynamic>> maps =
57+
await db.query(name, columns: [columnId, columnFullName, columnData], where: "$columnFullName = ?", whereArgs: [fullName]);
58+
if (maps.length > 0) {
59+
RepositoryForkDbProvider provider = RepositoryForkDbProvider.fromMap(maps.first);
60+
return provider;
61+
}
62+
return null;
63+
}
64+
65+
///插入到数据库
66+
Future insert(String fullName, String dataMapString) async {
67+
Database db = await getDataBase();
68+
var provider = await _getProvider(db, fullName);
69+
if (provider != null) {
70+
await db.delete(name, where: "$columnFullName = ?", whereArgs: [fullName]);
71+
}
72+
return await db.insert(name, toMap(fullName, dataMapString));
73+
}
74+
75+
///获取事件数据
76+
Future<List<Repository>> geData(String fullName) async {
77+
Database db = await getDataBase();
78+
79+
var provider = await _getProvider(db, fullName);
80+
if (provider != null) {
81+
List<Repository> list = new List();
82+
List<dynamic> eventMap = json.decode(provider.data);
83+
if (eventMap.length > 0) {
84+
for (var item in eventMap) {
85+
list.add(Repository.fromJson(item));
86+
}
87+
}
88+
return list;
89+
}
90+
return null;
91+
}
92+
}

lib/common/ab/provider/repos/RepositoryStarDbProvider.dart

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11

2+
import 'dart:async';
3+
import 'dart:convert';
4+
25
import 'package:gsy_github_app_flutter/common/ab/SqlProvider.dart';
6+
import 'package:gsy_github_app_flutter/common/model/User.dart';
7+
import 'package:sqflite/sqflite.dart';
38

49
/**
510
* 仓库收藏用户表
@@ -18,7 +23,10 @@ class RepositoryStarDbProvider extends BaseDbProvider {
1823
String fullName;
1924
String data;
2025

21-
Map<String, dynamic> toMap() {
26+
27+
RepositoryStarDbProvider();
28+
29+
Map<String, dynamic> toMap(String fullName, String data) {
2230
Map<String, dynamic> map = {columnFullName: fullName, columnData: data};
2331
if (id != null) {
2432
map[columnId] = id;
@@ -33,10 +41,54 @@ class RepositoryStarDbProvider extends BaseDbProvider {
3341
}
3442

3543
@override
36-
tableSqlString() {}
44+
tableSqlString() {
45+
return tableBaseString(name, columnId) +
46+
'''
47+
$columnFullName text not null,
48+
$columnData text not null)
49+
''';
50+
}
3751

3852
@override
3953
tableName() {
4054
return name;
4155
}
56+
57+
Future _getProvider(Database db, String fullName) async {
58+
List<Map<String, dynamic>> maps =
59+
await db.query(name, columns: [columnId, columnFullName, columnData], where: "$columnFullName = ?", whereArgs: [fullName]);
60+
if (maps.length > 0) {
61+
RepositoryStarDbProvider provider = RepositoryStarDbProvider.fromMap(maps.first);
62+
return provider;
63+
}
64+
return null;
65+
}
66+
67+
///插入到数据库
68+
Future insert(String fullName, String dataMapString) async {
69+
Database db = await getDataBase();
70+
var provider = await _getProvider(db, fullName);
71+
if (provider != null) {
72+
await db.delete(name, where: "$columnFullName = ?", whereArgs: [fullName]);
73+
}
74+
return await db.insert(name, toMap(fullName, dataMapString));
75+
}
76+
77+
///获取事件数据
78+
Future<List<User>> geData(String fullName) async {
79+
Database db = await getDataBase();
80+
81+
var provider = await _getProvider(db, fullName);
82+
if (provider != null) {
83+
List<User> list = new List();
84+
List<dynamic> eventMap = json.decode(provider.data);
85+
if (eventMap.length > 0) {
86+
for (var item in eventMap) {
87+
list.add(User.fromJson(item));
88+
}
89+
}
90+
return list;
91+
}
92+
return null;
93+
}
4294
}

lib/common/ab/provider/repos/RepositoryWatcherDbProvider.dart

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1+
import 'dart:async';
2+
import 'dart:convert';
3+
14
import 'package:gsy_github_app_flutter/common/ab/SqlProvider.dart';
5+
import 'package:gsy_github_app_flutter/common/model/User.dart';
6+
import 'package:sqflite/sqflite.dart';
27

38
/**
49
* 仓库订阅用户表
@@ -16,7 +21,9 @@ class RepositoryWatcherDbProvider extends BaseDbProvider {
1621
String fullName;
1722
String data;
1823

19-
Map<String, dynamic> toMap() {
24+
RepositoryWatcherDbProvider();
25+
26+
Map<String, dynamic> toMap(String fullName, String data) {
2027
Map<String, dynamic> map = {columnFullName: fullName, columnData: data};
2128
if (id != null) {
2229
map[columnId] = id;
@@ -31,10 +38,54 @@ class RepositoryWatcherDbProvider extends BaseDbProvider {
3138
}
3239

3340
@override
34-
tableSqlString() {}
41+
tableSqlString() {
42+
return tableBaseString(name, columnId) +
43+
'''
44+
$columnFullName text not null,
45+
$columnData text not null)
46+
''';
47+
}
3548

3649
@override
3750
tableName() {
3851
return name;
3952
}
53+
54+
Future _getProvider(Database db, String fullName) async {
55+
List<Map<String, dynamic>> maps =
56+
await db.query(name, columns: [columnId, columnFullName, columnData], where: "$columnFullName = ?", whereArgs: [fullName]);
57+
if (maps.length > 0) {
58+
RepositoryWatcherDbProvider provider = RepositoryWatcherDbProvider.fromMap(maps.first);
59+
return provider;
60+
}
61+
return null;
62+
}
63+
64+
///插入到数据库
65+
Future insert(String fullName, String dataMapString) async {
66+
Database db = await getDataBase();
67+
var provider = await _getProvider(db, fullName);
68+
if (provider != null) {
69+
await db.delete(name, where: "$columnFullName = ?", whereArgs: [fullName]);
70+
}
71+
return await db.insert(name, toMap(fullName, dataMapString));
72+
}
73+
74+
///获取事件数据
75+
Future<List<User>> geData(String fullName) async {
76+
Database db = await getDataBase();
77+
78+
var provider = await _getProvider(db, fullName);
79+
if (provider != null) {
80+
List<User> list = new List();
81+
List<dynamic> eventMap = json.decode(provider.data);
82+
if (eventMap.length > 0) {
83+
for (var item in eventMap) {
84+
list.add(User.fromJson(item));
85+
}
86+
}
87+
return list;
88+
}
89+
return null;
90+
}
4091
}

lib/common/ab/provider/user/UserFollowedDbProvider.dart

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1+
import 'dart:async';
2+
import 'dart:convert';
3+
14
import 'package:gsy_github_app_flutter/common/ab/SqlProvider.dart';
5+
import 'package:gsy_github_app_flutter/common/model/User.dart';
6+
import 'package:sqflite/sqflite.dart';
27

38
/**
49
* 用户关注表
@@ -16,7 +21,10 @@ class UserFollowedDbProvider extends BaseDbProvider {
1621
String userName;
1722
String data;
1823

19-
Map<String, dynamic> toMap() {
24+
25+
UserFollowedDbProvider();
26+
27+
Map<String, dynamic> toMap(String userName, String data) {
2028
Map<String, dynamic> map = {columnUserName: userName, columnData: data};
2129
if (id != null) {
2230
map[columnId] = id;
@@ -31,10 +39,54 @@ class UserFollowedDbProvider extends BaseDbProvider {
3139
}
3240

3341
@override
34-
tableSqlString() {}
42+
tableSqlString() {
43+
return tableBaseString(name, columnId) +
44+
'''
45+
$columnUserName text not null,
46+
$columnData text not null)
47+
''';
48+
}
3549

3650
@override
3751
tableName() {
3852
return name;
3953
}
54+
55+
Future _getProvider(Database db, String userName) async {
56+
List<Map<String, dynamic>> maps =
57+
await db.query(name, columns: [columnId, columnUserName, columnData], where: "$columnUserName = ?", whereArgs: [userName]);
58+
if (maps.length > 0) {
59+
UserFollowedDbProvider provider = UserFollowedDbProvider.fromMap(maps.first);
60+
return provider;
61+
}
62+
return null;
63+
}
64+
65+
///插入到数据库
66+
Future insert(String userName, String dataMapString) async {
67+
Database db = await getDataBase();
68+
var provider = await _getProvider(db, userName);
69+
if (provider != null) {
70+
await db.delete(name, where: "$columnUserName = ?", whereArgs: [userName]);
71+
}
72+
return await db.insert(name, toMap(userName, dataMapString));
73+
}
74+
75+
///获取事件数据
76+
Future<List<User>> geData(String userName) async {
77+
Database db = await getDataBase();
78+
79+
var provider = await _getProvider(db, userName);
80+
if (provider != null) {
81+
List<User> list = new List();
82+
List<dynamic> eventMap = json.decode(provider.data);
83+
if (eventMap.length > 0) {
84+
for (var item in eventMap) {
85+
list.add(User.fromJson(item));
86+
}
87+
}
88+
return list;
89+
}
90+
return null;
91+
}
4092
}

lib/common/ab/provider/user/UserFollowerDbProvider.dart

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11

2+
import 'dart:async';
3+
import 'dart:convert';
4+
25
import 'package:gsy_github_app_flutter/common/ab/SqlProvider.dart';
6+
import 'package:gsy_github_app_flutter/common/model/User.dart';
7+
import 'package:sqflite/sqflite.dart';
38

49
/**
510
* 用户粉丝表
@@ -18,7 +23,9 @@ class UserFollowerDbProvider extends BaseDbProvider {
1823
String userName;
1924
String data;
2025

21-
Map<String, dynamic> toMap() {
26+
UserFollowerDbProvider();
27+
28+
Map<String, dynamic> toMap(String userName, String data) {
2229
Map<String, dynamic> map = {columnUserName: userName, columnData: data};
2330
if (id != null) {
2431
map[columnId] = id;
@@ -33,10 +40,54 @@ class UserFollowerDbProvider extends BaseDbProvider {
3340
}
3441

3542
@override
36-
tableSqlString() {}
43+
tableSqlString() {
44+
return tableBaseString(name, columnId) +
45+
'''
46+
$columnUserName text not null,
47+
$columnData text not null)
48+
''';
49+
}
3750

3851
@override
3952
tableName() {
4053
return name;
4154
}
55+
56+
Future _getProvider(Database db, String userName) async {
57+
List<Map<String, dynamic>> maps =
58+
await db.query(name, columns: [columnId, columnUserName, columnData], where: "$columnUserName = ?", whereArgs: [userName]);
59+
if (maps.length > 0) {
60+
UserFollowerDbProvider provider = UserFollowerDbProvider.fromMap(maps.first);
61+
return provider;
62+
}
63+
return null;
64+
}
65+
66+
///插入到数据库
67+
Future insert(String userName, String dataMapString) async {
68+
Database db = await getDataBase();
69+
var provider = await _getProvider(db, userName);
70+
if (provider != null) {
71+
await db.delete(name, where: "$columnUserName = ?", whereArgs: [userName]);
72+
}
73+
return await db.insert(name, toMap(userName, dataMapString));
74+
}
75+
76+
///获取事件数据
77+
Future<List<User>> geData(String userName) async {
78+
Database db = await getDataBase();
79+
80+
var provider = await _getProvider(db, userName);
81+
if (provider != null) {
82+
List<User> list = new List();
83+
List<dynamic> eventMap = json.decode(provider.data);
84+
if (eventMap.length > 0) {
85+
for (var item in eventMap) {
86+
list.add(User.fromJson(item));
87+
}
88+
}
89+
return list;
90+
}
91+
return null;
92+
}
4293
}

0 commit comments

Comments
 (0)