Exemplo n.º 1
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Model.manager_oauth model)
        {
            StringBuilder strSql = new StringBuilder();
            StringBuilder str1   = new StringBuilder();

            //利用反射获得属性的所有公共属性
            PropertyInfo[]      pros  = model.GetType().GetProperties();
            List <SqlParameter> paras = new List <SqlParameter>();

            strSql.Append("update  " + databaseprefix + "manager_oauth set ");
            foreach (PropertyInfo pi in pros)
            {
                //如果不是主键则追加sql字符串
                if (!pi.Name.Equals("id"))
                {
                    //判断属性值是否为空
                    if (pi.GetValue(model, null) != null && !pi.GetValue(model, null).ToString().Equals(""))
                    {
                        str1.Append(pi.Name + "=@" + pi.Name + ",");                          //声明参数
                        paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null))); //对参数赋值
                    }
                }
            }
            strSql.Append(str1.ToString().Trim(','));
            strSql.Append(" where id=@id");
            paras.Add(new SqlParameter("@id", model.id));
            return(DbHelperSQL.ExecuteSql(strSql.ToString(), paras.ToArray()) > 0);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 根据开放平台和openid返回一个实体
        /// </summary>
        public Model.manager_oauth GetModel(string username)
        {
            StringBuilder strSql = new StringBuilder();
            StringBuilder str1   = new StringBuilder();

            Model.manager_oauth model = new Model.manager_oauth();
            //利用反射获得属性的所有公共属性
            PropertyInfo[] pros = model.GetType().GetProperties();
            foreach (PropertyInfo p in pros)
            {
                str1.Append(p.Name + ",");//拼接字段
            }
            strSql.Append("select top 1 " + str1.ToString().Trim(','));
            strSql.Append(" from " + databaseprefix + "manager_oauth");
            strSql.Append(" where manager_name=@manager_name");
            SqlParameter[] parameters =
            {
                new SqlParameter("@manager_name", SqlDbType.NVarChar, 100)
            };
            parameters[0].Value = username;

            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Model.manager_oauth GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();
            StringBuilder str1   = new StringBuilder();

            Model.manager_oauth model = new Model.manager_oauth();
            //利用反射获得属性的所有公共属性
            PropertyInfo[] pros = model.GetType().GetProperties();
            foreach (PropertyInfo p in pros)
            {
                str1.Append(p.Name + ",");//拼接字段
            }
            strSql.Append("select top 1 " + str1.ToString().Trim(','));
            strSql.Append(" from " + databaseprefix + "manager_oauth");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters =
            {
                new SqlParameter("@id", SqlDbType.Int, 4)
            };
            parameters[0].Value = id;
            DataTable dt = DbHelperSQL.Query(strSql.ToString(), parameters).Tables[0];

            if (dt.Rows.Count > 0)
            {
                return(DataRowToModel(dt.Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Exemplo n.º 4
0
        private void Dingtalk_userid_validate_Test(HttpContext context)
        {
            StreamReader stream  = new StreamReader(context.Request.InputStream);
            string       payload = stream.ReadToEnd();
            JObject      jo      = JObject.Parse(payload);

            if (jo == null || jo["code"] == null || string.IsNullOrWhiteSpace(jo["code"].ToString()))
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"ParameterIsNull\"}");
                return;
            }
            OapiGettokenResponse response = dingtalk_helper.GetDingTalkAccessToken();
            string userid = dingtalk_helper.GetDingTalkUserid(jo["code"].ToString(), response.AccessToken);

            //context.Response.Write("{\"status\":2, \"msg\": \"UseridIsNoOauth\"}");
            //return;
            //string userid = "wangyu";
            //string userid = jo["oauth_userid"].ToString();
            //如果为Null,退出
            if (string.IsNullOrEmpty(userid))
            {
                //context.Response.Write("{\"status\": 1, \"msg\": \"UseridIsNull\"}");
                return;
            }
            BLL.manager_oauth   bll        = new BLL.manager_oauth();
            Model.manager_oauth oauthModel = bll.GetModel("dingtalk", userid.Trim());
            //查询数据库
            if (oauthModel == null)
            {
                context.Response.Write("{\"status\":2, \"msg\": \"UseridIsNoOauth\"}");
                return;
            }
            else
            {
                Model.manager model = new BLL.manager().GetModel(oauthModel.manager_id);
                //写入登录日志
                Model.sysconfig sysConfig = new BLL.sysconfig().loadConfig();
                if (sysConfig.logstatus > 0)
                {
                    new BLL.manager_log().Add(model.id, model.user_name, DTEnums.ActionEnum.Login.ToString(), "用户登录钉钉平台");
                }
                context.Response.Write("{\"status\": 3, \"msg\": \"success\",\"model\":" + JObject.FromObject(model) + "}");
                return;
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// 将对象转换实体
 /// </summary>
 public Model.manager_oauth DataRowToModel(DataRow row)
 {
     Model.manager_oauth model = new Model.manager_oauth();
     if (row != null)
     {
         //利用反射获得属性的所有公共属性
         Type modelType = model.GetType();
         for (int i = 0; i < row.Table.Columns.Count; i++)
         {
             //查找实体是否存在列表相同的公共属性
             PropertyInfo proInfo = modelType.GetProperty(row.Table.Columns[i].ColumnName);
             if (proInfo != null && row[i] != DBNull.Value)
             {
                 proInfo.SetValue(model, row[i], null);//用索引值设置属性值
             }
         }
     }
     return(model);
 }
Exemplo n.º 6
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(Model.manager_oauth model)
        {
            StringBuilder strSql = new StringBuilder();
            StringBuilder str1   = new StringBuilder(); //数据字段
            StringBuilder str2   = new StringBuilder(); //数据参数

            //利用反射获得属性的所有公共属性
            PropertyInfo[]      pros  = model.GetType().GetProperties();
            List <SqlParameter> paras = new List <SqlParameter>();

            strSql.Append("insert into  " + databaseprefix + "manager_oauth(");
            foreach (PropertyInfo pi in pros)
            {
                //如果不是主键则追加sql字符串
                if (!pi.Name.Equals("id"))
                {
                    //判断属性值是否为空
                    if (pi.GetValue(model, null) != null && !pi.GetValue(model, null).ToString().Equals(""))
                    {
                        str1.Append(pi.Name + ",");                                           //拼接字段
                        str2.Append("@" + pi.Name + ",");                                     //声明参数
                        paras.Add(new SqlParameter("@" + pi.Name, pi.GetValue(model, null))); //对参数赋值
                    }
                }
            }
            strSql.Append(str1.ToString().Trim(','));
            strSql.Append(") values (");
            strSql.Append(str2.ToString().Trim(','));
            strSql.Append(") ");
            strSql.Append(";select @@IDENTITY;");
            object obj = DbHelperSQL.GetSingle(strSql.ToString(), paras.ToArray());

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
Exemplo n.º 7
0
        private void removeOauthBind(HttpContext context)
        {
            string username = DTRequest.GetFormString("username");

            BLL.manager_oauth   oauthBll   = new BLL.manager_oauth();
            Model.manager_oauth oauthModel = oauthBll.GetModel(username);
            if (oauthModel == null || oauthModel.is_lock == 0)
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"该账号还未绑定钉钉\"}");
                return;
            }
            if (oauthModel.is_lock == 1)
            {
                if (oauthBll.Delete(oauthModel.id))
                {
                    context.Response.Write("{\"status\": 1, \"msg\": \"移除绑定成功\"}");
                    return;
                }
            }
            context.Response.Write("{\"status\": 0, \"msg\": \"移除绑定失败\"}");
            return;
        }
Exemplo n.º 8
0
        private void Manager_oauth_remove(HttpContext context)
        {
            StreamReader stream  = new StreamReader(context.Request.InputStream);
            string       payload = stream.ReadToEnd();
            JObject      jo      = JObject.Parse(payload);

            if (jo == null || jo["code"] == null || string.IsNullOrWhiteSpace(jo["code"].ToString()))
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"CodeIsNull\"}");
                return;
            }
            //获取钉钉授权数据
            OapiGettokenResponse response = dingtalk_helper.GetDingTalkAccessToken();
            string userid = dingtalk_helper.GetDingTalkUserid(jo["code"].ToString(), response.AccessToken);

            BLL.manager_oauth   oauthBll   = new BLL.manager_oauth();
            Model.manager_oauth oauthModel = oauthBll.GetModel("dingtalk", userid);
            if (oauthModel != null)
            {
                if (!oauthBll.UpdateField("dingtalk", userid, "is_lock=0"))
                {
                    context.Response.Write("{\"status\": 0, \"msg\": \"解除用户授权失败,请联系技术支持处理!\"}");
                    return;
                }
                else
                {
                    context.Response.Write("{\"status\": 1, \"msg\": \"解除用户授权成功\"}");
                    return;
                }
            }
            else
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"该钉钉账户未授权或员工用户已不存在\"}");
                return;
            }
        }
Exemplo n.º 9
0
 /// <summary>
 /// 更新一条数据
 /// </summary>
 public bool Update(Model.manager_oauth model)
 {
     return(dal.Update(model));
 }
Exemplo n.º 10
0
 /// <summary>
 /// 增加一条数据
 /// </summary>
 public int Add(Model.manager_oauth model)
 {
     return(dal.Add(model));
 }
Exemplo n.º 11
0
        private void Manager_oauth_bind(HttpContext context)
        {
            StreamReader stream  = new StreamReader(context.Request.InputStream);
            string       payload = stream.ReadToEnd();
            JObject      jo      = JObject.Parse(payload);

            if (jo == null || jo["code"] == null || string.IsNullOrWhiteSpace(jo["code"].ToString()))
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"CodeIsNull\"}");
                return;
            }
            //检查用户名密码
            if (jo["username"] == null || string.IsNullOrWhiteSpace(jo["username"].ToString()))
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"用户名不能为空\"}");
                return;
            }
            if (jo["password"] == null || string.IsNullOrWhiteSpace(jo["password"].ToString()))
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"密码不能为空\"}");
                return;
            }
            string username = jo["username"].ToString().ToUpper();
            string password = jo["password"].ToString();

            BLL.manager   bll   = new BLL.manager();
            Model.manager model = bll.GetModel(username, password, true);
            if (model == null)
            {
                context.Response.Write("{\"status\":0, \"msg\":\"该员工账号不存在或密码不正确\"}");
                return;
            }
            BLL.manager_oauth   oauthBll    = new BLL.manager_oauth();
            Model.manager_oauth oauthModel1 = oauthBll.GetModel(username);
            if (oauthModel1 != null && oauthModel1.is_lock == 1)
            {
                context.Response.Write("{\"status\": 0, \"msg\": \"该账号已经绑定过钉钉,不能重复绑定\"}");
                return;
            }

            //获取钉钉授权数据
            OapiGettokenResponse response = dingtalk_helper.GetDingTalkAccessToken();
            string userid = dingtalk_helper.GetDingTalkUserid(jo["code"].ToString(), response.AccessToken);

            Model.manager_oauth oauthModel = oauthBll.GetModel("dingtalk", userid.Trim());
            if (oauthModel != null)
            {
                if (oauthModel.manager_name != username)
                {
                    context.Response.Write("{\"status\":0, \"msg\":\"已经绑定了工号" + oauthModel.manager_name + ",要重新绑定须先解除绑定!\"}");
                    return;
                }
                oauthModel.manager_id         = model.id;
                oauthModel.manager_name       = model.user_name;
                oauthModel.oauth_access_token = response.AccessToken;
                oauthModel.is_lock            = 1;
                if (!oauthBll.Update(oauthModel))
                {
                    context.Response.Write("{\"status\":0, \"msg\":\"绑定用户授权失败,请联系技术支持处理!\"}");
                    return;
                }
            }
            else
            {
                //开始绑定
                oauthModel                    = new Model.manager_oauth();
                oauthModel.oauth_name         = "dingtalk";
                oauthModel.manager_id         = model.id;
                oauthModel.manager_name       = model.user_name;
                oauthModel.oauth_access_token = response.AccessToken;
                oauthModel.oauth_userid       = userid;
                oauthModel.is_lock            = 1;
                int newId = oauthBll.Add(oauthModel);
                if (newId < 1)
                {
                    context.Response.Write("{\"status\":0, \"msg\":\"绑定用户授权失败,请联系技术支持处理!\"}");
                    return;
                }
            }
            //写入登录日志
            Model.sysconfig sysConfig = new BLL.sysconfig().loadConfig();
            if (sysConfig.logstatus > 0)
            {
                new BLL.manager_log().Add(model.id, model.user_name, DTEnums.ActionEnum.Login.ToString(), "用户授权绑定钉钉平台");
            }
            //返回实体类
            context.Response.Write("{\"status\": 1, \"msg\": \"success\",\"model\":" + JObject.FromObject(model) + "}");
            return;
        }