/// <summary> /// 业务类请求处理 /// </summary> /// <param name="rpcRequest"></param> /// <returns></returns> private static RpcResponse HandleBusinessRequest(RpcRequest rpcRequest) { var masProtocol = rpcRequest.ToRequest <GatewayRpcRequest>().MasProtocol; //todo 处理业务 if (masProtocol.ProtocolType == ProtocolType.QueryCacheDataRequest) //网关请求获取缓存信息 { QueryCacheDataResponse queryCacheDataResponse = QueryCacheDataToGateway.QueryServiceCacheDataToGateway(); return(RpcResponse.Response <QueryCacheDataResponse>(queryCacheDataResponse)); } return(RpcResponse.Response <GatewayRpcResponse>(new GatewayRpcResponse())); }
/// <summary> /// 查询服务接口端缓存信息,并同步到网关 /// </summary> /// <returns></returns> public static QueryCacheDataResponse QueryServiceCacheDataToGateway() { QueryCacheDataResponse queryCacheDataResponse = new QueryCacheDataResponse(); //获取定义、设备类型、网络模块、手动/交叉控制缓存信息 List <Jc_DefInfo> PointDefineCacheList = _PointDefineService.GetAllPointDefineCache().Data.FindAll(a => a.Upflag != "1");//修改,不向网关同步由子系统同步的数据 20180131 List <Jc_DevInfo> DeviceDefineCacheList = _DeviceDefineService.GetAllDeviceDefineCache().Data; List <Jc_MacInfo> NetworkModuleCacheList = _NetworkModuleService.GetAllNetworkModuleCache().Data; List <Jc_JcsdkzInfo> ManualCrossControlCacheList = _ManualCrossControlService.GetAllManualCrossControl().Data; //数据转换 List <DeviceInfo> GatewayPointDefineCacheList = Basic.Framework.Common.ObjectConverter.CopyList <Jc_DefInfo, DeviceInfo>(PointDefineCacheList).ToList(); List <DeviceTypeInfo> GatewayDeviceDefineCacheList = Basic.Framework.Common.ObjectConverter.CopyList <Jc_DevInfo, DeviceTypeInfo>(DeviceDefineCacheList).ToList(); List <NetworkDeviceInfo> GatewayNetworkModuleCacheList = Basic.Framework.Common.ObjectConverter.CopyList <Jc_MacInfo, NetworkDeviceInfo>(NetworkModuleCacheList).ToList(); List <DeviceAcrossControlInfo> GatewayManualCrossControlCacheList = Basic.Framework.Common.ObjectConverter.CopyList <Jc_JcsdkzInfo, DeviceAcrossControlInfo>(ManualCrossControlCacheList).ToList(); //key赋值 foreach (DeviceInfo PointDefine in GatewayPointDefineCacheList) { PointDefine.UniqueKey = PointDefine.Point; } foreach (DeviceTypeInfo DeviceDefine in GatewayDeviceDefineCacheList) { DeviceDefine.UniqueKey = DeviceDefine.Devid; } foreach (NetworkDeviceInfo NetworkModule in GatewayNetworkModuleCacheList) { NetworkModule.UniqueKey = NetworkModule.MAC; } foreach (DeviceAcrossControlInfo ManualCrossControl in GatewayManualCrossControlCacheList) { ManualCrossControl.UniqueKey = ManualCrossControl.ID; } queryCacheDataResponse.DeviceList = GatewayPointDefineCacheList; queryCacheDataResponse.DeviceTypeList = GatewayDeviceDefineCacheList; queryCacheDataResponse.NetworkDeviceList = GatewayNetworkModuleCacheList; queryCacheDataResponse.DeviceAcrossControlList = GatewayManualCrossControlCacheList; return(queryCacheDataResponse); }