提交 eb0b5081 authored 作者: yueweilu's avatar yueweilu

离线的笔记保存的是本地url 上传笔记的时候先要直传获取oss地址

上级 96ee11be
......@@ -94,7 +94,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
'content': 'This is a note content',
'upload': 0,
'positioning': 'top',
'note': 'This is a note',
'note_content': 'This is a note',
'node_id': 0,
};
......@@ -246,6 +246,38 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
Console.log('查询到的数据----------------------------------------------------$data');
if(data.isNotEmpty){
for (Map<String, dynamic> temp in data){
// 如果是笔记
if (temp['type'] == '3'){
// 存储url的数组
List<String> finalAudios = [];
// 存储url的数组
List<String> finalImages = [];
Map<String,dynamic> contentMap = jsonDecode(temp['note_content']);
List<String> audios = contentMap['audio'];
if(audios.isNotEmpty){
for(String path in audios){
final url = await uploadSource(path: path);
finalAudios.add(url);
}
}
List<String> images = contentMap['image'];
if(images.isNotEmpty){
for(String path in images){
final url = await uploadSource(path: path);
finalImages.add(url);
}
}
Map<String,dynamic> finalContentMap = {
'text':contentMap['text'],
'audio': finalAudios,
'image': finalImages
};
temp['note_content'] = finalContentMap;
}
}
final result = await LibraryAPI.uploadOffline(node: jsonEncode(data));
// 上传成功后 更新数据库中的字段
if (result) {
......@@ -255,6 +287,18 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
}
// 上传文件
Future<String> uploadSource({
required String path
}) async {
// String result = await CommonAPI.upload(path:path,fileTypes: 'comment');
// return result;
OssTool tool = OssTool('zxts-comment-file');
final response = await tool.putObjectFile(path);
Console.log('------response--------------------------${response.realUri}');
return response.realUri.toString();
}
/// 获取图书列表数据
Future<void> _getBooks([bool isRefresh = false]) async {
......
......@@ -386,30 +386,47 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 图片链接数组
List<String> images = [];
// 循环上传图片获取地址
for(String path in discussInputImages){
final url = await upload(path: path);
images.add(url);
final status = await Tools.checkCurrentNetStatus();
// 有网情况下 先直传oss 获取到url
if (status){
// 循环上传图片获取地址
for(String path in discussInputImages){
final url = await upload(path: path);
images.add(url);
}
// 循环上传音频获取地址
for(AudioModel model in discussInputAudios){
final url = await upload(path: model.path);
audios.add(url);
}
}
// 没有网的情况下 存储到本地数据库
else{
for(String path in discussInputImages){
images.add(path);
}
// 循环上传音频获取地址
for(AudioModel model in discussInputAudios){
final url = await upload(path: model.path);
audios.add(url);
// 循环上传音频获取地址
for(AudioModel model in discussInputAudios){
audios.add(model.path);
}
}
Map<String,dynamic> contentMap = {
'text':contentInput.text,
'audio':audios,
'image':images
};
// 话题
// 话题 只有有网的时候才能发起话题
if (chatType == 0){
final result = await addDiscuss(contentMap);
return result;
}
// 笔记
// 笔记 有网没有网都能发起笔记
else if (chatType == 1){
final result = addNote(contentMap);
return result;
......@@ -419,15 +436,37 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 添加笔记
Future<bool> addNote(Map<String,dynamic> contentMap) async {
final status = await Tools.checkCurrentNetStatus();
bool result ;
// 有网直接上传接口
if (status){
result = await LibraryAPI.addNote(
bookId: bookId,
chapterId: chapterId,
content: noteTitle,
isOpen: isPublic?'1':'0',
positioning: notePosition,
noteContent: jsonEncode(contentMap)
);
}
// 没有网存储本地数据库
else{
Map<String, dynamic> data = {
'types': 3,
'book_id': int.parse(bookId),
'chapter_id': int.parse(chapterId),
'is_open': isPublic?1:0,
'color': '#FF0000',
'content': noteTitle,
'upload': 0,
'positioning': notePosition,
'note_content': jsonEncode(contentMap),
'node_id': 0,
};
result = await SqlManager.insertData(data);
}
final result = await LibraryAPI.addNote(
bookId: bookId,
chapterId: chapterId,
content: noteTitle,
isOpen: isPublic?'1':'0',
positioning: notePosition,
noteContent: jsonEncode(contentMap)
);
if(result){
Toast.show('笔记发表成功');
}
......
......@@ -38,7 +38,7 @@ class SqlManager {
"content TEXT, "
"upload INTEGER, "
"positioning TEXT, "
"note TEXT)"
"note_content TEXT)"
);
// // 阅读章节表
await db.execute("CREATE TABLE $kReadTable ("
......@@ -100,12 +100,16 @@ class SqlManager {
// 插入数据
static Future<void> insertData(Map<String, dynamic> data) async {
static Future<bool> insertData(Map<String, dynamic> data) async {
final result = await _database?.insert(
'members_book_notes',
data,
conflictAlgorithm: ConflictAlgorithm.replace,
);
if (result !=null){
return true;
}
return false;
Console.log('插入数据-------------------------------$result');
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论