| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 从缓存获取指定类型的全量路由数据,缓存不存在时自动从数据库加载并写入缓存 |
| | | /// </summary> |
| | | /// <param name="routeType">路由类型(入口/出口)</param> |
| | | /// <returns>该类型的全部路由列表</returns> |
| | | private List<Dt_Router> GetAllRoutersFromCache(int routeType) |
| | | { |
| | | // 根据路由类型构建缓存Key,In类型对应"In",Out类型对应"Out" |
| | | string cacheKey = $"Router:AllRouters:{(routeType == RouterInOutType.In.ObjToInt() ? "In" : "Out")}"; |
| | | // 通过缓存服务获取数据,缓存未命中时调用工厂方法从数据库查询并写入缓存 |
| | | return _cacheService.GetOrAdd( |
| | | cacheKey, |
| | | _ => BaseDal.QueryData(x => x.InOutType == routeType) |
| | | ); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据起点/当前位置、终点获取下一个子节点。 |
| | | /// </summary> |
| | | /// <param name="startPosi">起点/当前位置。</param> |