Esempio n. 1
0
        /// <summary>
        /// 根据appkey和版本查询配置信息
        /// </summary>
        /// <param name="appkey"></param>
        /// <param name="version"></param>
        /// <returns></returns>
        public GroupApiConfigModel GetGroupApiConfigByAppKey(string appkey, string version)
        {
            string        sql          = @" select AppSecret,GroupId,IsValid from GroupApiConfig with(nolock) inner join [group] with(nolock) 
                             on GroupApiConfig.groupid=[group].id
                             where AppKey=@AppKey and AppVersion=@AppVersion ";
            IDbParameters dbParameters = DbHelper.CreateDbParameters();

            dbParameters.AddWithValue("AppKey", appkey);
            dbParameters.AddWithValue("AppVersion", version);
            var dr = DbHelper.ExecuteReader(Config.SuperMan_Read, sql, dbParameters);
            GroupApiConfigModel config = null;

            if (dr.Read())
            {
                config = new GroupApiConfigModel {
                    AppKey = appkey, AppVersion = version
                };
                if (dr["AppSecret"] != null)
                {
                    config.AppSecret = dr["AppSecret"].ToString();
                }
                if (dr["GroupId"] != null)
                {
                    config.GroupId = int.Parse(dr["GroupId"].ToString());
                }
                if (dr["IsValid"] != null)
                {
                    config.IsValid = (byte)int.Parse(dr["IsValid"].ToString());
                }
            }
            return(config);
        }
Esempio n. 2
0
        /// <summary>
        /// 创建集团Api配置
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public bool CreateGroupApiConfig(GroupApiConfigModel model)
        {
            string        sql          = @" if not exists (select 1 from GroupApiConfig with(nolock) where AppKey=@AppKey and AppVersion=@AppVersion) begin INSERT INTO GroupApiConfig
                                   (AppKey
                                   ,AppSecret
                                   ,AppVersion
                                   ,GroupId)
                             VALUES
                                   (@AppKey
                                   ,@AppSecret
                                   ,@AppVersion
                                   ,@GroupId);select @@IDENTITY end select 0 ";
            IDbParameters dbParameters = DbHelper.CreateDbParameters();

            dbParameters.AddWithValue("AppKey", model.AppKey);
            dbParameters.AddWithValue("AppSecret", model.AppSecret);
            dbParameters.AddWithValue("AppVersion", model.AppVersion);
            dbParameters.AddWithValue("GroupId", model.GroupId);
            object i = DbHelper.ExecuteScalar(Config.SuperMan_Write, sql, dbParameters);

            if (i != null)
            {
                return(int.Parse(i.ToString()) > 0);
            }
            return(false);
        }
Esempio n. 3
0
        /// <summary>
        /// 修改集团api配置
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool UpdateGroupApiConfig(GroupApiConfigModel model)
        {
            string        sql          = " update GroupApiConfig set AppKey=@AppKey,AppSecret=@AppSecret,AppVersion=@AppVersion where GroupId=@id";
            IDbParameters dbParameters = DbHelper.CreateDbParameters();

            dbParameters.AddWithValue("GroupId", model.GroupId);
            dbParameters.AddWithValue("AppKey", model.AppKey);
            dbParameters.AddWithValue("AppSecret", model.AppSecret);
            dbParameters.AddWithValue("AppVersion", model.AppVersion);
            int i = DbHelper.ExecuteNonQuery(Config.SuperMan_Write, sql, dbParameters);

            if (i > 0)
            {
                return(true);
            }
            return(false);
        }
Esempio n. 4
0
        /// <summary>
        /// 重写OnActionExecuting方法   在进入控制器之前验证 sign以及 参数合法性信息 add by caoheyang 20150318
        /// </summary>
        /// <param name="actionContext"></param>
        public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            Stopwatch stop = new Stopwatch();

            actionContext.Request.Properties[Key] = stop;
            stop.Start();
            dynamic paramodel = actionContext.ActionArguments["paramodel"]; //当前请求的参数对象

            lock (paramodel)
            {
                if (actionContext.ModelState.Count > 0 || paramodel == null) //参数错误,请求中止
                {
                    actionContext.Response = actionContext.ActionDescriptor.ResultConverter.Convert
                                                 (actionContext.ControllerContext, ResultModel <object> .Conclude(OrderApiStatusType.ParaError, actionContext.ModelState.Keys));
                    return;
                }
                IGroupProvider      groupProvider  = new GroupProvider();
                GroupApiConfigModel groupCofigInfo = groupProvider.GetGroupApiConfigByAppKey(paramodel.app_key, paramodel.v);
                LogHelper.LogWriter("groupCofigInfo", new { groupCofigInfo = groupCofigInfo });
                if (groupCofigInfo != null && groupCofigInfo.IsValid == 1)//集团可用,且有appkey信息
                {
                    string signStr = groupCofigInfo.AppSecret + "app_key" + paramodel.app_key + "timestamp"
                                     + paramodel.timestamp + "v" + paramodel.v + groupCofigInfo.AppSecret;
                    string sign = MD5.Encrypt(signStr);
                    LogHelper.LogWriter("签名是否一致:", new { sign = sign, sign1 = paramodel.sign });
                    if (sign != paramodel.sign)   //sign错误,请求中止
                    {
                        actionContext.Response = actionContext.ActionDescriptor.ResultConverter.Convert
                                                     (actionContext.ControllerContext, ResultModel <object> .Conclude(OrderApiStatusType.SignError));
                        return;
                    }
                    else
                    {
                        paramodel.group = ParseHelper.ToInt(groupCofigInfo.GroupId, 0); //设置集团
                        actionContext.ActionArguments["paramodel"] = paramodel;         //更新参数实体
                    }
                }
                else
                {
                    actionContext.Response = actionContext.ActionDescriptor.ResultConverter.Convert
                                                 (actionContext.ControllerContext, ResultModel <object> .Conclude(OrderApiStatusType.SignError)); //sign错误,请求中止
                    return;
                }
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 修改集团api配置
        /// </summary>
        /// <param name="config"></param>
        /// <returns></returns>
        public ResultInfo <bool> UpdateGroupApiConfig(GroupApiConfigModel config)
        {
            var result = new ResultInfo <bool> {
                Message = "", Result = false, Data = false
            };

            try
            {
                result.Data    = _dao.UpdateGroupApiConfig(config);
                result.Message = "执行成功";
                result.Result  = true;
            }
            catch (Exception ex)
            {
                result.Message = ex.ToString();
                result.Result  = false;
                LogHelper.LogWriterFromFilter(ex);
            }
            return(result);
        }
Esempio n. 6
0
        public JsonResult AddGroupConfig(GroupApiConfigModel model)
        {
            if (model.GroupId == 0)
            {
                return(Json(new ResultModel(false, "集团ID不能为空")));
            }
            if (string.IsNullOrEmpty(model.AppKey))
            {
                return(Json(new ResultModel(false, "集团AppKey不能为空")));
            }
            if (string.IsNullOrEmpty(model.AppVersion))
            {
                return(Json(new ResultModel(false, "集团AppVersion不能为空")));
            }
            var res = iGroupServices.CreateGroupApiConfig(model);

            if (res.Result)
            {
                return(Json(res.Data ? new ResultModel(true, "成功") : new ResultModel(false, "已存在该appkey")));
            }
            return(Json(new ResultModel(false, "服务器异常")));
        }
Esempio n. 7
0
        /// <summary>
        /// 根据appkey和版本查询配置信息
        /// </summary>
        /// <param name="appkey">appkey</param>
        /// <param name="version">版本号码</param>
        /// <returns></returns>
        public GroupApiConfigModel GetGroupApiConfigByAppKey(string appkey, string version)
        {
            var redis = new ETS.NoSql.RedisCache.RedisCache();
            GroupApiConfigModel model = redis.Get <GroupApiConfigModel>(appkey + version);

            if (model == null)
            {
                GroupApiConfigModel tempmodel = _dao.GetGroupApiConfigByAppKey(appkey, version);
                if (tempmodel == null)
                {
                    return(null);
                }
                else
                {
                    redis.Set(appkey + version, tempmodel);
                    return(redis.Get <GroupApiConfigModel>(appkey + version));
                }
            }
            else
            {
                return(model);
            }
        }