Exemple #1
0
        /// <summary>
        /// 根据用户传递的  省、市、区名称、级别(省1,市2,区3),转换为 国标码
        /// 例如:用户传的是 Name:北京市,Code:1,级别:1,调用该方法返回:Name:北京市,Code:110000,级别:1
        /// 在查询不到的情况下,返回null
        /// wc
        /// </summary>
        /// <param name="from"></param>
        /// <returns></returns>
        public AreaModelTranslate GetNationalAreaInfo(AreaModelTranslate from)
        {
            var redis = new ETS.NoSql.RedisCache.RedisCache();
            //List<AreaModel> list = new List<AreaModel>();
            string key        = ETS.Const.RedissCacheKey.Common_GetNationalAreaInfo;
            var    cacheValue = redis.Get <string>(key);
            List <AreaModelTranslate> cacheAreaModelList = null;

            if (!string.IsNullOrEmpty(cacheValue))
            {
                cacheAreaModelList = JsonHelper.ToObject <List <AreaModelTranslate> >(cacheValue);
            }
            else
            {
                cacheAreaModelList = dao.GetRegionInfo().ToList();
                redis.Add(key, JsonHelper.ToJson(cacheAreaModelList), DateTime.Now.AddDays(1));
            }
            //cacheAreaModelList = CacheFactory.Instance[key] as List<AreaModelTranslate>;
            //if (cacheAreaModelList == null) //为null的时候,取数据库
            //{
            //    cacheAreaModelList = dao.GetRegionInfo().ToList();
            //    redis.Add(key, Letao.Util.JsonHelper.ToJson(cacheAreaModelList));
            //    CacheFactory.Instance.AddObject(key, cacheAreaModelList);
            //}
            AreaModelTranslate areaModel       = new AreaModelTranslate();
            AreaModelTranslate resultAreaModel = new AreaModelTranslate();

            if (from.JiBie == 2)
            {
                if (from.Name.Contains("北京"))
                {
                    from.Name = "北京市";
                }
                if (from.Name.Contains("上海"))
                {
                    from.Name = "上海市";
                }
                if (from.Name.Contains("天津"))
                {
                    from.Name = "天津市";
                }
                if (from.Name.Contains("重庆"))
                {
                    from.Name = "重庆市";
                }
            }
            areaModel = cacheAreaModelList.FirstOrDefault(s => s.Name == from.Name.Trim() && s.JiBie == from.JiBie);

            if (areaModel != null)
            {
                resultAreaModel.NationalCode = areaModel.NationalCode;
                //resultAreaModel.Name = areaModel.Name;
                //resultAreaModel.JiBie = from.JiBie;
            }
            else
            {
                resultAreaModel = null;
            }
            return(resultAreaModel);
        }