Browse Source

更新接口

loki.wu 2 năm trước cách đây
mục cha
commit
70922de1a6

+ 0 - 9
lib/rpc.dart

@@ -53,12 +53,6 @@ class JsonRpcProxy {
 	WingRtcService get wingRtc =>
 	findService(() => new WingRtcService(currentHostAddress));
 
-	MasterInteractionCenterService get masterInteractionCenter =>
-	findService(() => new MasterInteractionCenterService(currentHostAddress));
-
-	SlaveInteractionCenterService get slaveInteractionCenter =>
-	findService(() => new SlaveInteractionCenterService(currentHostAddress));
-
 	LiveConsultationService get liveConsultation =>
 	findService(() => new LiveConsultationService(currentHostAddress));
 
@@ -83,9 +77,6 @@ class JsonRpcProxy {
 	IdentityApplyService get identityApply =>
 	findService(() => new IdentityApplyService(currentHostAddress));
 
-	LockService get lock =>
-	findService(() => new LockService(currentHostAddress));
-
 	LoginService get login =>
 	findService(() => new LoginService(currentHostAddress));
 

+ 1 - 0
lib/services/authentication.m.dart

@@ -6242,6 +6242,7 @@ enum CustomerRpcCode {
 	ExceedMaxUser,
 	ExceedMaxDevice,
 	ServerIsDisabled,
+	UserOrgCanNotChoseChild,
 }
 
 class ValidateTokenResult {

+ 0 - 5
lib/services/index.dart

@@ -6,9 +6,7 @@ export 'device.dart';
 export 'email.dart';
 export 'identityApply.dart';
 export 'liveConsultation.dart';
-export 'lock.dart';
 export 'login.dart';
-export 'masterInteractionCenter.dart';
 export 'notificationdecoder.dart';
 export 'organization.dart';
 export 'patient.dart';
@@ -20,7 +18,6 @@ export 'region.dart';
 export 'remedical.dart';
 export 'report.dart';
 export 'role.dart';
-export 'slaveInteractionCenter.dart';
 export 'sMS.dart';
 export 'storage.dart';
 export 'user.dart';
@@ -33,9 +30,7 @@ export 'connect.m.dart';
 export 'device.m.dart';
 export 'identityApply.m.dart';
 export 'liveConsultation.m.dart';
-export 'lock.m.dart';
 export 'login.m.dart';
-export 'masterInteractionCenter.m.dart';
 export 'notification.m.dart';
 export 'organization.m.dart';
 export 'other.m.dart';

+ 0 - 7
lib/services/liveConsultation.dart

@@ -5,8 +5,6 @@ import 'package:fis_common/json_convert.dart';
 
 import 'liveConsultation.m.dart';
 
-import 'masterInteractionCenter.m.dart';
-
 
 class LiveConsultationService extends JsonRpcClientBase {
 	LiveConsultationService(
@@ -286,10 +284,5 @@ class LiveConsultationService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
-	Future<bool> syncServerMessageAsync(SyncReceiveServiceDataRequest request) async {
-		var rpcRst = await call("SyncServerMessageAsync", request);
-		return rpcRst;
-	}
-
 }
 

+ 23 - 1
lib/services/liveConsultation.m.dart

@@ -1,5 +1,4 @@
 import 'notification.m.dart';
-import 'masterInteractionCenter.m.dart';
 
 import 'package:fis_jsonrpc/utils.dart';
 
@@ -1733,14 +1732,29 @@ class RejectLiveConsultationRequest extends TokenRequest{
 
 class JoinLiveConsultationResult {
 	String? consultationCode;
+	String? userCode;
+	int roomNo;
+	int appId;
+	String? userSign;
+	List<LiveConsultationMember >? memberLiveDatas;
 
 	JoinLiveConsultationResult({
 		this.consultationCode,
+		this.userCode,
+		this.roomNo = 0,
+		this.appId = 0,
+		this.userSign,
+		this.memberLiveDatas,
 	});
 
 	factory JoinLiveConsultationResult.fromJson(Map<String, dynamic> map) {
 		return JoinLiveConsultationResult( 
 			consultationCode: map['ConsultationCode'],
+			userCode: map['UserCode'],
+			roomNo: map['RoomNo'],
+			appId: map['AppId'],
+			userSign: map['UserSign'],
+			memberLiveDatas: map['MemberLiveDatas'] != null ? (map['MemberLiveDatas'] as List).map((e)=>LiveConsultationMember.fromJson(e as Map<String,dynamic>)).toList() : null,
 		);
 	}
 
@@ -1748,6 +1762,14 @@ class JoinLiveConsultationResult {
 		final map = Map<String, dynamic>();
 		if(consultationCode != null)
 			map['ConsultationCode'] = consultationCode;
+		if(userCode != null)
+			map['UserCode'] = userCode;
+		map['RoomNo'] = roomNo;
+		map['AppId'] = appId;
+		if(userSign != null)
+			map['UserSign'] = userSign;
+		if(memberLiveDatas != null)
+			map['MemberLiveDatas'] = memberLiveDatas;
 		return map;
 	}
 }

+ 437 - 290
lib/services/other.m.dart

@@ -8,7 +8,6 @@ import 'remedical.m.dart';
 import 'recordInfo.m.dart';
 import 'aIDiagnosis.m.dart';
 import 'organization.m.dart';
-import 'lock.m.dart';
 import 'device.m.dart';
 import 'connect.m.dart';
 import 'storage.m.dart';
@@ -21,7 +20,6 @@ import 'login.m.dart';
 import 'role.m.dart';
 import 'region.m.dart';
 import 'aSR.m.dart';
-import 'masterInteractionCenter.m.dart';
 
 import 'package:fis_jsonrpc/utils.dart';
 
@@ -200,6 +198,51 @@ class ShareExamUrlResult {
 	}
 }
 
+class ApplyLockResult {
+	bool isSuccess;
+	String? lockUniqueCode;
+
+	ApplyLockResult({
+		this.isSuccess = false,
+		this.lockUniqueCode,
+	});
+
+	factory ApplyLockResult.fromJson(Map<String, dynamic> map) {
+		return ApplyLockResult( 
+			isSuccess: map['IsSuccess'],
+			lockUniqueCode: map['LockUniqueCode'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		map['IsSuccess'] = isSuccess;
+		if(lockUniqueCode != null)
+			map['LockUniqueCode'] = lockUniqueCode;
+		return map;
+	}
+}
+
+class ReleaseLockResult {
+	bool isSuccess;
+
+	ReleaseLockResult({
+		this.isSuccess = false,
+	});
+
+	factory ReleaseLockResult.fromJson(Map<String, dynamic> map) {
+		return ReleaseLockResult( 
+			isSuccess: map['IsSuccess'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		map['IsSuccess'] = isSuccess;
+		return map;
+	}
+}
+
 class MarshalByRefObject {
 
 	MarshalByRefObject();
@@ -487,6 +530,48 @@ class OpenNotifyQueueRequest {
 	}
 }
 
+class ApplyLockRequest {
+	String? lockKey;
+
+	ApplyLockRequest({
+		this.lockKey,
+	});
+
+	factory ApplyLockRequest.fromJson(Map<String, dynamic> map) {
+		return ApplyLockRequest( 
+			lockKey: map['LockKey'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(lockKey != null)
+			map['LockKey'] = lockKey;
+		return map;
+	}
+}
+
+class ReleaseLockRequest {
+	String? lockUniqueCode;
+
+	ReleaseLockRequest({
+		this.lockUniqueCode,
+	});
+
+	factory ReleaseLockRequest.fromJson(Map<String, dynamic> map) {
+		return ReleaseLockRequest( 
+			lockUniqueCode: map['LockUniqueCode'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(lockUniqueCode != null)
+			map['LockUniqueCode'] = lockUniqueCode;
+		return map;
+	}
+}
+
 class AssignPatientToUsersRequest extends TokenRequest{
 	String? patientCode;
 	List<String >? userCodes;
@@ -871,6 +956,154 @@ class UpdateThesaurusCodeRequest extends TokenRequest{
 	}
 }
 
+enum AnnouncementStatusEnum {
+	placeHolder_0,
+	Released,
+	Pending,
+}
+
+class AnnouncementLanguageConfigDTO {
+	String? language;
+	String? title;
+	String? content;
+
+	AnnouncementLanguageConfigDTO({
+		this.language,
+		this.title,
+		this.content,
+	});
+
+	factory AnnouncementLanguageConfigDTO.fromJson(Map<String, dynamic> map) {
+		return AnnouncementLanguageConfigDTO( 
+			language: map['Language'],
+			title: map['Title'],
+			content: map['Content'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = Map<String, dynamic>();
+		if(language != null)
+			map['Language'] = language;
+		if(title != null)
+			map['Title'] = title;
+		if(content != null)
+			map['Content'] = content;
+		return map;
+	}
+}
+
+class AnnouncementInfoDTO extends BaseDTO{
+	String? code;
+	AnnouncementTypeEnum announcementType;
+	AnnouncementStatusEnum announcementStatus;
+	List<AnnouncementLanguageConfigDTO >? languageConfigs;
+
+	AnnouncementInfoDTO({
+		this.code,
+		this.announcementType = AnnouncementTypeEnum.Broadcast,
+		this.announcementStatus = AnnouncementStatusEnum.Released,
+		this.languageConfigs,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory AnnouncementInfoDTO.fromJson(Map<String, dynamic> map) {
+		return AnnouncementInfoDTO( 
+			code: map['Code'],
+			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
+			announcementStatus: AnnouncementStatusEnum.values.firstWhere((e) => e.index == map['AnnouncementStatus']),
+			languageConfigs: map['LanguageConfigs'] != null ? (map['LanguageConfigs'] as List).map((e)=>AnnouncementLanguageConfigDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(code != null)
+			map['Code'] = code;
+		map['AnnouncementType'] = announcementType.index;
+		map['AnnouncementStatus'] = announcementStatus.index;
+		if(languageConfigs != null)
+			map['LanguageConfigs'] = languageConfigs;
+		return map;
+	}
+}
+
+class AddAnnouncementRequest extends AnnouncementInfoDTO{
+
+	AddAnnouncementRequest({
+		String? code,
+		AnnouncementTypeEnum announcementType = AnnouncementTypeEnum.Broadcast,
+		AnnouncementStatusEnum announcementStatus = AnnouncementStatusEnum.Released,
+		List<AnnouncementLanguageConfigDTO >? languageConfigs,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			code: code,
+			announcementType: announcementType,
+			announcementStatus: announcementStatus,
+			languageConfigs: languageConfigs,
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory AddAnnouncementRequest.fromJson(Map<String, dynamic> map) {
+		return AddAnnouncementRequest( 
+			code: map['Code'],
+			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
+			announcementStatus: AnnouncementStatusEnum.values.firstWhere((e) => e.index == map['AnnouncementStatus']),
+			languageConfigs: map['LanguageConfigs'] != null ? (map['LanguageConfigs'] as List).map((e)=>AnnouncementLanguageConfigDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		return map;
+	}
+}
+
+class UpdateAnnouncementRequest extends AnnouncementInfoDTO{
+
+	UpdateAnnouncementRequest({
+		String? code,
+		AnnouncementTypeEnum announcementType = AnnouncementTypeEnum.Broadcast,
+		AnnouncementStatusEnum announcementStatus = AnnouncementStatusEnum.Released,
+		List<AnnouncementLanguageConfigDTO >? languageConfigs,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			code: code,
+			announcementType: announcementType,
+			announcementStatus: announcementStatus,
+			languageConfigs: languageConfigs,
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory UpdateAnnouncementRequest.fromJson(Map<String, dynamic> map) {
+		return UpdateAnnouncementRequest( 
+			code: map['Code'],
+			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
+			announcementStatus: AnnouncementStatusEnum.values.firstWhere((e) => e.index == map['AnnouncementStatus']),
+			languageConfigs: map['LanguageConfigs'] != null ? (map['LanguageConfigs'] as List).map((e)=>AnnouncementLanguageConfigDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		return map;
+	}
+}
+
 class AddContentConfigRequest extends TokenRequest{
 	String? bindTypeKey;
 	String? bindTypeValue;
@@ -5247,259 +5480,235 @@ class UpdateGradingProtectionConfigEnableRequest extends TokenRequest{
 	}
 }
 
-class SyncCompleteOpLogsRequest {
-	List<OperationLogDTO >? oplogs;
+class GetOpLogsByCodesFormMasterRequest {
+	List<String >? codes;
 
-	SyncCompleteOpLogsRequest({
-		this.oplogs,
+	GetOpLogsByCodesFormMasterRequest({
+		this.codes,
 	});
 
-	factory SyncCompleteOpLogsRequest.fromJson(Map<String, dynamic> map) {
-		return SyncCompleteOpLogsRequest( 
-			oplogs: map['Oplogs'] != null ? (map['Oplogs'] as List).map((e)=>OperationLogDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
+	factory GetOpLogsByCodesFormMasterRequest.fromJson(Map<String, dynamic> map) {
+		return GetOpLogsByCodesFormMasterRequest( 
+			codes: map['Codes'] != null ? map['Codes'].cast<String>().toList() : null,
 		);
 	}
 
 	Map<String, dynamic> toJson() {
 		final map = Map<String, dynamic>();
-		if(oplogs != null)
-			map['Oplogs'] = oplogs;
+		if(codes != null)
+			map['Codes'] = codes;
 		return map;
 	}
 }
 
-class BaseLiveConsultationJson {
-	String? roomCode;
-	String? consultationRecordCode;
-	String? operatorCode;
-	String? initatorCode;
+class GetOpLogsFormMasterRequest {
+	int cursor;
+	String? sourceUrl;
 
-	BaseLiveConsultationJson({
-		this.roomCode,
-		this.consultationRecordCode,
-		this.operatorCode,
-		this.initatorCode,
+	GetOpLogsFormMasterRequest({
+		this.cursor = 0,
+		this.sourceUrl,
 	});
 
-	factory BaseLiveConsultationJson.fromJson(Map<String, dynamic> map) {
-		return BaseLiveConsultationJson( 
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
+	factory GetOpLogsFormMasterRequest.fromJson(Map<String, dynamic> map) {
+		return GetOpLogsFormMasterRequest( 
+			cursor: map['Cursor'],
+			sourceUrl: map['SourceUrl'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
 		final map = Map<String, dynamic>();
-		if(roomCode != null)
-			map['RoomCode'] = roomCode;
-		if(consultationRecordCode != null)
-			map['ConsultationRecordCode'] = consultationRecordCode;
-		if(operatorCode != null)
-			map['OperatorCode'] = operatorCode;
-		if(initatorCode != null)
-			map['InitatorCode'] = initatorCode;
-		return map;
-	}
-}
-
-class InitiateLiveConsultationJson extends BaseLiveConsultationJson{
-	int integerRoomId;
-
-	InitiateLiveConsultationJson({
-		this.integerRoomId = 0,
-		String? roomCode,
-		String? consultationRecordCode,
-		String? operatorCode,
-		String? initatorCode,
-	}) : super(
-			roomCode: roomCode,
-			consultationRecordCode: consultationRecordCode,
-			operatorCode: operatorCode,
-			initatorCode: initatorCode,
-		);
-
-	factory InitiateLiveConsultationJson.fromJson(Map<String, dynamic> map) {
-		return InitiateLiveConsultationJson( 
-			integerRoomId: map['IntegerRoomId'],
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		map['IntegerRoomId'] = integerRoomId;
-		return map;
-	}
-}
-
-class MuteLiveConsultationJson extends BaseLiveConsultationJson{
-	bool mute;
-
-	MuteLiveConsultationJson({
-		this.mute = false,
-		String? roomCode,
-		String? consultationRecordCode,
-		String? operatorCode,
-		String? initatorCode,
-	}) : super(
-			roomCode: roomCode,
-			consultationRecordCode: consultationRecordCode,
-			operatorCode: operatorCode,
-			initatorCode: initatorCode,
-		);
-
-	factory MuteLiveConsultationJson.fromJson(Map<String, dynamic> map) {
-		return MuteLiveConsultationJson( 
-			mute: map['Mute'],
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		map['Mute'] = mute;
-		return map;
-	}
-}
-
-class SwitchLiveConsultationVideoJson extends BaseLiveConsultationJson{
-	bool videoOpend;
-
-	SwitchLiveConsultationVideoJson({
-		this.videoOpend = false,
-		String? roomCode,
-		String? consultationRecordCode,
-		String? operatorCode,
-		String? initatorCode,
-	}) : super(
-			roomCode: roomCode,
-			consultationRecordCode: consultationRecordCode,
-			operatorCode: operatorCode,
-			initatorCode: initatorCode,
-		);
+		map['Cursor'] = cursor;
+		if(sourceUrl != null)
+			map['SourceUrl'] = sourceUrl;
+		return map;
+	}
+}
+
+enum MongoDBActionTypeEnum {
+	InsertOne,
+	InsertOneAsync,
+	InsertMany,
+	InsertManyAsync,
+	DeleteOne,
+	DeleteOneAsync,
+	DeleteMany,
+	DeleteManyAsync,
+	FindOneAndDelete,
+	FindOneAndDeleteAsync,
+	ReplaceOne,
+	ReplaceOneAsync,
+	FindOneAndReplace,
+	FindOneAndReplaceAsync,
+	UpdateOne,
+	UpdateOneAsync,
+	UpdateMany,
+	UpdateManyAsync,
+	FindOneAndUpdate,
+	FindOneAndUpdateAsync,
+}
+
+class OperationLogDTO {
+	int id;
+	String? collectionName;
+	MongoDBActionTypeEnum actionType;
+	String? bsonContent;
+	String? filterContent;
+	DateTime? createTime;
+	String? code;
+	String? sourceUrl;
+	bool isSimple;
+
+	OperationLogDTO({
+		this.id = 0,
+		this.collectionName,
+		this.actionType = MongoDBActionTypeEnum.InsertOne,
+		this.bsonContent,
+		this.filterContent,
+		this.createTime,
+		this.code,
+		this.sourceUrl,
+		this.isSimple = false,
+	});
 
-	factory SwitchLiveConsultationVideoJson.fromJson(Map<String, dynamic> map) {
-		return SwitchLiveConsultationVideoJson( 
-			videoOpend: map['VideoOpend'],
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
+	factory OperationLogDTO.fromJson(Map<String, dynamic> map) {
+		return OperationLogDTO( 
+			id: map['Id'],
+			collectionName: map['CollectionName'],
+			actionType: MongoDBActionTypeEnum.values.firstWhere((e) => e.index == map['ActionType']),
+			bsonContent: map['BsonContent'],
+			filterContent: map['FilterContent'],
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			code: map['Code'],
+			sourceUrl: map['SourceUrl'],
+			isSimple: map['IsSimple'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		map['VideoOpend'] = videoOpend;
+		final map = Map<String, dynamic>();
+		map['Id'] = id;
+		if(collectionName != null)
+			map['CollectionName'] = collectionName;
+		map['ActionType'] = actionType.index;
+		if(bsonContent != null)
+			map['BsonContent'] = bsonContent;
+		if(filterContent != null)
+			map['FilterContent'] = filterContent;
+		if(createTime != null)
+			map['CreateTime'] = JsonRpcUtils.dateFormat(createTime!);
+		if(code != null)
+			map['Code'] = code;
+		if(sourceUrl != null)
+			map['SourceUrl'] = sourceUrl;
+		map['IsSimple'] = isSimple;
 		return map;
 	}
 }
 
-class ChangeConsultationStatusJson extends BaseLiveConsultationJson{
-	TransactionStatusEnum status;
+class SyncCompleteOpLogsRequest {
+	List<OperationLogDTO >? oplogs;
 
-	ChangeConsultationStatusJson({
-		this.status = TransactionStatusEnum.Applied,
-		String? roomCode,
-		String? consultationRecordCode,
-		String? operatorCode,
-		String? initatorCode,
-	}) : super(
-			roomCode: roomCode,
-			consultationRecordCode: consultationRecordCode,
-			operatorCode: operatorCode,
-			initatorCode: initatorCode,
-		);
+	SyncCompleteOpLogsRequest({
+		this.oplogs,
+	});
 
-	factory ChangeConsultationStatusJson.fromJson(Map<String, dynamic> map) {
-		return ChangeConsultationStatusJson( 
-			status: TransactionStatusEnum.values.firstWhere((e) => e.index == map['Status']),
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
+	factory SyncCompleteOpLogsRequest.fromJson(Map<String, dynamic> map) {
+		return SyncCompleteOpLogsRequest( 
+			oplogs: map['Oplogs'] != null ? (map['Oplogs'] as List).map((e)=>OperationLogDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
 		);
 	}
 
 	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		map['Status'] = status.index;
+		final map = Map<String, dynamic>();
+		if(oplogs != null)
+			map['Oplogs'] = oplogs;
 		return map;
 	}
 }
 
-class InviteInLiveConsultationJson extends BaseLiveConsultationJson{
-	List<String >? userCodes;
-
-	InviteInLiveConsultationJson({
-		this.userCodes,
-		String? roomCode,
-		String? consultationRecordCode,
-		String? operatorCode,
-		String? initatorCode,
-	}) : super(
-			roomCode: roomCode,
-			consultationRecordCode: consultationRecordCode,
-			operatorCode: operatorCode,
-			initatorCode: initatorCode,
-		);
+class SyncOpLogToMasterRequest {
+	String? collectionName;
+	MongoDBActionTypeEnum actionType;
+	String? bsonContent;
+	String? filterContent;
+	DateTime? createTime;
+	String? sourceUrl;
+	String? code;
+	String? serverID;
+	bool isSimple;
+
+	SyncOpLogToMasterRequest({
+		this.collectionName,
+		this.actionType = MongoDBActionTypeEnum.InsertOne,
+		this.bsonContent,
+		this.filterContent,
+		this.createTime,
+		this.sourceUrl,
+		this.code,
+		this.serverID,
+		this.isSimple = false,
+	});
 
-	factory InviteInLiveConsultationJson.fromJson(Map<String, dynamic> map) {
-		return InviteInLiveConsultationJson( 
-			userCodes: map['UserCodes'] != null ? map['UserCodes'].cast<String>().toList() : null,
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
+	factory SyncOpLogToMasterRequest.fromJson(Map<String, dynamic> map) {
+		return SyncOpLogToMasterRequest( 
+			collectionName: map['CollectionName'],
+			actionType: MongoDBActionTypeEnum.values.firstWhere((e) => e.index == map['ActionType']),
+			bsonContent: map['BsonContent'],
+			filterContent: map['FilterContent'],
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			sourceUrl: map['SourceUrl'],
+			code: map['Code'],
+			serverID: map['ServerID'],
+			isSimple: map['IsSimple'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(userCodes != null)
-			map['UserCodes'] = userCodes;
+		final map = Map<String, dynamic>();
+		if(collectionName != null)
+			map['CollectionName'] = collectionName;
+		map['ActionType'] = actionType.index;
+		if(bsonContent != null)
+			map['BsonContent'] = bsonContent;
+		if(filterContent != null)
+			map['FilterContent'] = filterContent;
+		if(createTime != null)
+			map['CreateTime'] = JsonRpcUtils.dateFormat(createTime!);
+		if(sourceUrl != null)
+			map['SourceUrl'] = sourceUrl;
+		if(code != null)
+			map['Code'] = code;
+		if(serverID != null)
+			map['ServerID'] = serverID;
+		map['IsSimple'] = isSimple;
 		return map;
 	}
 }
 
-class CancelInviteInLiveConsultationJson extends BaseLiveConsultationJson{
-	List<String >? userCodes;
+class NotificationClientInfo {
+	String? clientId;
+	String? loginServerUrl;
 
-	CancelInviteInLiveConsultationJson({
-		this.userCodes,
-		String? roomCode,
-		String? consultationRecordCode,
-		String? operatorCode,
-		String? initatorCode,
-	}) : super(
-			roomCode: roomCode,
-			consultationRecordCode: consultationRecordCode,
-			operatorCode: operatorCode,
-			initatorCode: initatorCode,
-		);
+	NotificationClientInfo({
+		this.clientId,
+		this.loginServerUrl,
+	});
 
-	factory CancelInviteInLiveConsultationJson.fromJson(Map<String, dynamic> map) {
-		return CancelInviteInLiveConsultationJson( 
-			userCodes: map['UserCodes'] != null ? map['UserCodes'].cast<String>().toList() : null,
-			roomCode: map['RoomCode'],
-			consultationRecordCode: map['ConsultationRecordCode'],
-			operatorCode: map['OperatorCode'],
-			initatorCode: map['InitatorCode'],
+	factory NotificationClientInfo.fromJson(Map<String, dynamic> map) {
+		return NotificationClientInfo( 
+			clientId: map['ClientId'],
+			loginServerUrl: map['LoginServerUrl'],
 		);
 	}
 
 	Map<String, dynamic> toJson() {
-		final map = super.toJson();
-		if(userCodes != null)
-			map['UserCodes'] = userCodes;
+		final map = Map<String, dynamic>();
+		if(clientId != null)
+			map['ClientId'] = clientId;
+		if(loginServerUrl != null)
+			map['LoginServerUrl'] = loginServerUrl;
 		return map;
 	}
 }
@@ -5620,16 +5829,6 @@ enum AgeUnitsEnum {
 	WeekAndDay,
 }
 
-enum AnnouncementTypeEnum {
-	Broadcast,
-	Maintenance,
-}
-
-enum AnnouncementStatusEnum {
-	Released,
-	Pending,
-}
-
 enum AnnounceTypeEnum {
 	Broadcast,
 	Maintain,
@@ -6809,6 +7008,33 @@ enum ReportTemplateQueryTypeEnum {
 	Organization,
 }
 
+enum SyncTypeEnum {
+	Initiate,
+	Accept,
+	Reject,
+	CancelInitiate,
+	HeartRateJoin,
+	NetworkErr,
+	HeartRateLeave,
+	Leave,
+	Close,
+	ChangeMuteState,
+	ChangeVideoOpenState,
+	InviteIn,
+	CancelInviteIn,
+	AcceptIn,
+	RejectIn,
+	ChangeConsultationStatus,
+	Agree,
+	Notification,
+}
+
+enum SyncServiceEnum {
+	placeHolder_0,
+	LiveConsultation,
+	Notification,
+}
+
 enum TransactionTypeEnum {
 	placeHolder_0,
 	Consultion,
@@ -11558,85 +11784,6 @@ class ConsultationExpertDTO extends UserBaseDTO{
 	}
 }
 
-class AnnouncementUserInfoDTO {
-	CMSMessageStatusEnum status;
-	String? userCode;
-
-	AnnouncementUserInfoDTO({
-		this.status = CMSMessageStatusEnum.UnRead,
-		this.userCode,
-	});
-
-	factory AnnouncementUserInfoDTO.fromJson(Map<String, dynamic> map) {
-		return AnnouncementUserInfoDTO( 
-			status: CMSMessageStatusEnum.values.firstWhere((e) => e.index == map['Status']),
-			userCode: map['UserCode'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = Map<String, dynamic>();
-		map['Status'] = status.index;
-		if(userCode != null)
-			map['UserCode'] = userCode;
-		return map;
-	}
-}
-
-class AnnouncementInfoDTO {
-	String? announcementCode;
-	AnnouncementTypeEnum announcementType;
-	DateTime? contentTime;
-	String? content;
-	List<AnnouncementUserInfoDTO >? userInfoList;
-	List<String >? organizationCodes;
-	AnnouncementStatusEnum announcementStatus;
-	String? languageCode;
-
-	AnnouncementInfoDTO({
-		this.announcementCode,
-		this.announcementType = AnnouncementTypeEnum.Broadcast,
-		this.contentTime,
-		this.content,
-		this.userInfoList,
-		this.organizationCodes,
-		this.announcementStatus = AnnouncementStatusEnum.Released,
-		this.languageCode,
-	});
-
-	factory AnnouncementInfoDTO.fromJson(Map<String, dynamic> map) {
-		return AnnouncementInfoDTO( 
-			announcementCode: map['AnnouncementCode'],
-			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
-			contentTime: map['ContentTime'] != null ? DateTime.parse(map['ContentTime']) : null,
-			content: map['Content'],
-			userInfoList: map['UserInfoList'] != null ? (map['UserInfoList'] as List).map((e)=>AnnouncementUserInfoDTO.fromJson(e as Map<String,dynamic>)).toList() : null,
-			organizationCodes: map['OrganizationCodes'] != null ? map['OrganizationCodes'].cast<String>().toList() : null,
-			announcementStatus: AnnouncementStatusEnum.values.firstWhere((e) => e.index == map['AnnouncementStatus']),
-			languageCode: map['LanguageCode'],
-		);
-	}
-
-	Map<String, dynamic> toJson() {
-		final map = Map<String, dynamic>();
-		if(announcementCode != null)
-			map['AnnouncementCode'] = announcementCode;
-		map['AnnouncementType'] = announcementType.index;
-		if(contentTime != null)
-			map['ContentTime'] = JsonRpcUtils.dateFormat(contentTime!);
-		if(content != null)
-			map['Content'] = content;
-		if(userInfoList != null)
-			map['UserInfoList'] = userInfoList;
-		if(organizationCodes != null)
-			map['OrganizationCodes'] = organizationCodes;
-		map['AnnouncementStatus'] = announcementStatus.index;
-		if(languageCode != null)
-			map['LanguageCode'] = languageCode;
-		return map;
-	}
-}
-
 class BannerSettingDTO {
 	String? bannerSettingCode;
 	StatisticsBannerTypeEnum settings;

+ 17 - 2
lib/services/user.dart

@@ -28,7 +28,10 @@ class UserService extends JsonRpcClientBase {
 		FJsonConvert.setDecoder((map) => UserFeatureInfoResult.fromJson(map));
 		FJsonConvert.setDecoder((map) => UserInfoByCodeDTO.fromJson(map));
 		FJsonConvert.setDecoder((map) => ClientScheduleDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => PageResult<MessageExtendInfoDTO>.fromJson(map));
 		FJsonConvert.setDecoder((map) => MessageExtendInfoDTO.fromJson(map));
+		FJsonConvert.setDecoder((map) => PageResult<AnnouncementExtendInfoDTO>.fromJson(map));
+		FJsonConvert.setDecoder((map) => AnnouncementExtendInfoDTO.fromJson(map));
 	}
 
 	Future<bool> heartRateAsync(TokenRequest request) async {
@@ -107,9 +110,9 @@ class UserService extends JsonRpcClientBase {
 		return result;
 	}
 
-	Future<List<MessageExtendInfoDTO>> getMessagesPageByCodeDBAsync(QueryMessageListRequest request) async {
+	Future<PageResult<MessageExtendInfoDTO>> getMessagesPageByCodeDBAsync(QueryMessageListRequest request) async {
 		var rpcRst = await call("GetMessagesPageByCodeDBAsync", request);
-		var result = (rpcRst as List).map((e)=>MessageExtendInfoDTO.fromJson(e as Map<String, dynamic>)).toList();
+		var result = PageResult<MessageExtendInfoDTO>.fromJson(rpcRst as Map<String, dynamic>);
 		return result;
 	}
 
@@ -128,5 +131,17 @@ class UserService extends JsonRpcClientBase {
 		return rpcRst;
 	}
 
+	Future<PageResult<AnnouncementExtendInfoDTO>> queryAnnouncementsDBAsync(QueryAnnouncementListRequest request) async {
+		var rpcRst = await call("QueryAnnouncementsDBAsync", request);
+		var result = PageResult<AnnouncementExtendInfoDTO>.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
+	Future<AnnouncementExtendInfoDTO> getAnnouncementDBAsync(GetAnnouncementRequest request) async {
+		var rpcRst = await call("GetAnnouncementDBAsync", request);
+		var result = AnnouncementExtendInfoDTO.fromJson(rpcRst as Map<String, dynamic>);
+		return result;
+	}
+
 }
 

+ 133 - 0
lib/services/user.m.dart

@@ -419,6 +419,7 @@ class GetUserListRequest extends TokenRequest{
 	String? positionCode;
 	bool exceptSelf;
 	String? language;
+	List<String >? roleCodes;
 
 	GetUserListRequest({
 		this.keyword,
@@ -428,6 +429,7 @@ class GetUserListRequest extends TokenRequest{
 		this.positionCode,
 		this.exceptSelf = false,
 		this.language,
+		this.roleCodes,
 		String? token,
 	}) : super(
 			token: token,
@@ -442,6 +444,7 @@ class GetUserListRequest extends TokenRequest{
 			positionCode: map['PositionCode'],
 			exceptSelf: map['ExceptSelf'],
 			language: map['Language'],
+			roleCodes: map['RoleCodes'] != null ? map['RoleCodes'].cast<String>().toList() : null,
 			token: map['Token'],
 		);
 	}
@@ -460,6 +463,8 @@ class GetUserListRequest extends TokenRequest{
 		map['ExceptSelf'] = exceptSelf;
 		if(language != null)
 			map['Language'] = language;
+		if(roleCodes != null)
+			map['RoleCodes'] = roleCodes;
 		return map;
 	}
 }
@@ -1169,4 +1174,132 @@ class SetMessageInfoReqeust extends TokenRequest{
 	}
 }
 
+enum AnnouncementTypeEnum {
+	placeHolder_0,
+	Broadcast,
+	Maintenance,
+}
+
+class AnnouncementExtendInfoDTO extends BaseDTO{
+	String? announcementCode;
+	AnnouncementTypeEnum announcementType;
+	String? language;
+	String? title;
+	String? content;
+
+	AnnouncementExtendInfoDTO({
+		this.announcementCode,
+		this.announcementType = AnnouncementTypeEnum.Broadcast,
+		this.language,
+		this.title,
+		this.content,
+		DateTime? createTime,
+		DateTime? updateTime,
+	}) : super(
+			createTime: createTime,
+			updateTime: updateTime,
+		);
+
+	factory AnnouncementExtendInfoDTO.fromJson(Map<String, dynamic> map) {
+		return AnnouncementExtendInfoDTO( 
+			announcementCode: map['AnnouncementCode'],
+			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
+			language: map['Language'],
+			title: map['Title'],
+			content: map['Content'],
+			createTime: map['CreateTime'] != null ? DateTime.parse(map['CreateTime']) : null,
+			updateTime: map['UpdateTime'] != null ? DateTime.parse(map['UpdateTime']) : null,
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(announcementCode != null)
+			map['AnnouncementCode'] = announcementCode;
+		map['AnnouncementType'] = announcementType.index;
+		if(language != null)
+			map['Language'] = language;
+		if(title != null)
+			map['Title'] = title;
+		if(content != null)
+			map['Content'] = content;
+		return map;
+	}
+}
+
+class QueryAnnouncementListRequest extends PageRequest{
+	AnnouncementTypeEnum announcementType;
+	String? language;
+	String? keyword;
+	DateTime? startTime;
+	DateTime? endTime;
+
+	QueryAnnouncementListRequest({
+		this.announcementType = AnnouncementTypeEnum.Broadcast,
+		this.language,
+		this.keyword,
+		this.startTime,
+		this.endTime,
+		int pageIndex = 0,
+		int pageSize = 0,
+		String? token,
+	}) : super(
+			pageIndex: pageIndex,
+			pageSize: pageSize,
+			token: token,
+		);
+
+	factory QueryAnnouncementListRequest.fromJson(Map<String, dynamic> map) {
+		return QueryAnnouncementListRequest( 
+			announcementType: AnnouncementTypeEnum.values.firstWhere((e) => e.index == map['AnnouncementType']),
+			language: map['Language'],
+			keyword: map['Keyword'],
+			startTime: map['StartTime'] != null ? DateTime.parse(map['StartTime']) : null,
+			endTime: map['EndTime'] != null ? DateTime.parse(map['EndTime']) : null,
+			pageIndex: map['PageIndex'],
+			pageSize: map['PageSize'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		map['AnnouncementType'] = announcementType.index;
+		if(language != null)
+			map['Language'] = language;
+		if(keyword != null)
+			map['Keyword'] = keyword;
+		if(startTime != null)
+			map['StartTime'] = JsonRpcUtils.dateFormat(startTime!);
+		if(endTime != null)
+			map['EndTime'] = JsonRpcUtils.dateFormat(endTime!);
+		return map;
+	}
+}
+
+class GetAnnouncementRequest extends TokenRequest{
+	String? announcementCode;
+
+	GetAnnouncementRequest({
+		this.announcementCode,
+		String? token,
+	}) : super(
+			token: token,
+		);
+
+	factory GetAnnouncementRequest.fromJson(Map<String, dynamic> map) {
+		return GetAnnouncementRequest( 
+			announcementCode: map['AnnouncementCode'],
+			token: map['Token'],
+		);
+	}
+
+	Map<String, dynamic> toJson() {
+		final map = super.toJson();
+		if(announcementCode != null)
+			map['AnnouncementCode'] = announcementCode;
+		return map;
+	}
+}
+