Преглед изворни кода

人工翻译协议增加前3条记录

master
zdc пре 5 година
родитељ
комит
f3e091f76b
3 измењених фајлова са 124 додато и 0 уклоњено
  1. +34
    -0
      lib/data/chat_data_mgr.dart
  2. +87
    -0
      lib/models/ChatMsg.dart
  3. +3
    -0
      lib/utils/HttpUtil.dart

+ 34
- 0
lib/data/chat_data_mgr.dart Прегледај датотеку

@@ -1,3 +1,5 @@
import 'dart:math';
import 'package:chat/data/group_data_mgr.dart';
import 'package:chat/models/ChatMsg.dart';
import 'package:chat/models/last_msg_provider.dart';
@@ -112,6 +114,38 @@ class ChatDataMgr {
return record;
}
//获取该记录之前的前3条聊天记录
getForeChatRecord(MsgModel msgModel) {
List res = [];
List record;
if (msgModel.channelType == ChatChannelType.Group.value) {
record = groupRecordMap[msgModel.sessionId];
} else {
record = msgRecordMap[msgModel.sessionId];
}
int curIndex = 0;
if (record != null && record.length > 0) {
for (var i = 0; i < record.length; i++) {
if (record[i].time == msgModel.time) {
curIndex = i;
break;
}
}
}
int maxLen = min(curIndex + 1, record.length);
for (var i = curIndex + 1; i < maxLen; i++) {
var shortDesc = record[i].shortRecordForTranslator();
print(shortDesc);
res.add(shortDesc);
}
return res;
}
//获取企业号聊天记录
List<MsgModel> getCompanyRecord() {
var record = msgRecordMap[MsgHandler.curActiveSession];


+ 87
- 0
lib/models/ChatMsg.dart Прегледај датотеку

@@ -1,10 +1,17 @@
import 'dart:typed_data';
import 'dart:convert';
import 'package:chat/data/UserData.dart';
import 'package:chat/data/constants.dart';
import 'package:chat/generated/i18n.dart';
import 'package:chat/proto/chat.pb.dart';
import 'package:chat/proto/chat.pbenum.dart';
import 'package:chat/proto/transhousekeeper.pb.dart';
import 'package:chat/utils/date_utils.dart';
import 'package:chat/utils/file_cache_mgr.dart';
import 'package:chat/utils/sql_util.dart';
import 'package:chat/data/group_data_mgr.dart';
import 'package:chat/utils/upload_util.dart';
class MsgState {
static const int None = 0; //默认
@@ -196,4 +203,84 @@ class MsgModel {
return textList.length == 0 ? [''] : textList;
}
getFileUrl() {
var fullUrl = UploadUtil().getFullUrl(extraFile, sessionId, channelType);
if (extraFile.contains('http://')) {
fullUrl = extraFile;
}
return fullUrl;
}
//发送给翻译人员的记录
shortRecordForTranslator() {
String desc = '';
switch (ChatType.valueOf(msgType)) {
case ChatType.TextChatType:
desc = utf8.decode(msgContent);
break;
case ChatType.EmoticonType:
desc = '[${I18n.of(Constants.getCurrentContext()).emoji}]';
break;
case ChatType.ImageChatType:
case ChatType.ShortVideoChatType:
case ChatType.ShortVoiceChatType:
case ChatType.FileChatType:
desc = getFileUrl();
break;
case ChatType.PlaceChatType:
desc = '[${I18n.of(Constants.getCurrentContext()).locate}]';
break;
case ChatType.GiftChatType:
GiftChat giftChat = GiftChat.fromBuffer(msgContent);
if (giftChat.tuId == UserData().basicInfo.userId) {
desc = I18n.of(Constants.getCurrentContext()).you_get;
} else {
desc = I18n.of(Constants.getCurrentContext()).you_give;
}
break;
case ChatType.RedWalletChatType:
if (from == 0) {
//服务器通知消息
RedWallet wallet = RedWallet.fromBuffer(msgContent);
if (wallet.state == RedWalletState.Received) {
var myId = UserData().basicInfo.userId;
if (wallet.suId == myId) {
desc = I18n.of(Constants.getCurrentContext())
.get_money
.replaceFirst('/s1', '好友');
} else {
desc = I18n.of(Constants.getCurrentContext())
.you_get_money
.replaceFirst('/s1', '好友');
}
} else if (wallet.state == RedWalletState.Expire) {
desc = I18n.of(Constants.getCurrentContext()).money_over;
} else {
print('WWWWW${wallet.state}');
}
} else {
desc = '[${I18n.of(Constants.getCurrentContext()).red_money}]';
}
break;
case ChatType.GroupChatNoticeType:
desc = '群聊通知消息';
break;
default:
}
return {
'SendTime' :
DateUtils().getFormartData(timeSamp: time, format: 'yyyy:MM:dd hh:mm:ss');
'Content' : desc,
'UserId':from
};
}
}

+ 3
- 0
lib/utils/HttpUtil.dart Прегледај датотеку

@@ -1083,6 +1083,7 @@ class HttpUtil {
}
}
//付费人工翻译
getPersonalTranslate(MsgModel msgModel) async {
Map data = {
@@ -1107,6 +1108,8 @@ class HttpUtil {
data['vcontent'] = base64Encode(msgModel.enTranslateContent);
}
data['list'] = ChatDataMgr().getForeChatRecord(msgModel);
data["tuserids"] = [UserData().basicInfo.userId];
data['duration'] =
msgModel.extraInfo != null ? msgModel.extraInfo ~/ 1000 : 0;


Учитавање…
Откажи
Сачувај