Пример #1
0
        /// <summary>
        /// 获取微信粉丝绑定的用户列表
        /// </summary>
        /// <param name="wxopenid">微信粉丝ID</param>
        /// <param name="dt">返回列表</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        //public bool GetWXFansBindUserInfo(string wxopenid, ref DataTable dt,  ref string errmsg)
        //{
        //    bool result = true;
        //    OracleDBO mydbo = new OracleDBO();
        //    mydbo.IsByParamName = true;
        //    mydbo.IsThrowException = true;

        //    try
        //    {
        //        string sql2 = @"select t.usercode,t.username,t.account,t.wxopenid,t.usertype,t.state from WOW_A_USERINFO t where t.wxopenid='oeZqt5jQPCvZubmkNqXwhaE4q-cE'";
        //        OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[1];
        //        oparam2[0].Name = ":wxopenid";
        //        oparam2[0].Type = OracleDbType.Varchar2;
        //        oparam2[0].Value = wxopenid;

        //        dt = mydbo.GetDataTable(sql2, oparam2);

        //    }
        //    catch (Exception ex)
        //    {
        //        errmsg = ex.Message.ToString();
        //        result = false;
        //        LogWriter.WriteLog(ex);
        //    }
        //    finally
        //    {
        //        mydbo.Close();
        //    }
        //    return result;
        //}


        public bool GetWXFansBindUserInfo(string wxopenid, ref DataTable dt, ref DataTable dt1, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsThrowException = true;
            mydbo.AutoClose        = false;
            try
            {
                string sql2 = @"select t.usercode,t.username,t.account,t.wxopenid,t.usertype,t.state from wow_a_userinfo t where t.wxopenid=:wxopenid";
                OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[1];
                oparam2[0].Name  = ":wxopenid";
                oparam2[0].Type  = OracleDbType.Varchar2;
                oparam2[0].Value = wxopenid;

                dt = mydbo.GetDataTable(sql2, oparam2);
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #2
0
        /// <summary>
        /// 取消关注
        /// </summary>
        /// <param name="wxopenid">微信粉丝ID</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool UnSubscribe(string wxopenid, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsByParamName    = true;
            mydbo.IsThrowException = true;
            try
            {
                string sql1 = @"update sys_s_wxfansinfo t
                                   set t.subscribed = 0, t.subscribetime = :subscribetime
                                 where t.wxopenid = :wxopenid";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[2];
                oparam1[0].Name  = ":subscribetime";
                oparam1[0].Type  = OracleDbType.Date;
                oparam1[0].Value = DateTime.Now;

                oparam1[1].Name  = ":wxopenid";
                oparam1[1].Type  = OracleDbType.Varchar2;
                oparam1[1].Value = wxopenid;

                int n = mydbo.ExecuteNonQuery(sql1, oparam1);
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #3
0
        /// <summary>
        /// 存
        /// </summary>
        /// <param name="wxopenid">微信粉丝ID</param>
        /// <param name="dt">返回列表</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool Getopenid(string wxopenid, string account, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsThrowException = true;
            mydbo.IsByParamName    = true;
            mydbo.AutoClose        = false;
            try
            {
                string sql12 = @"select * from W_LOGIN t where t.opcode=:opcode";
                OracleDBO.OracleCmdParam[] oparam12 = new OracleDBO.OracleCmdParam[1];
                oparam12[0].Name  = ":opcode";
                oparam12[0].Type  = OracleDbType.Varchar2;
                oparam12[0].Value = account;

                DataTable dt = mydbo.GetDataTable(sql12, oparam12);
                if (dt.Rows.Count > 0)
                {
                    string sql1 = @"update  W_LOGIN t set t.wxopenid=:wxopenid  where t.opcode=:opcode";
                    OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[2];
                    oparam1[0].Name  = ":wxopenid";
                    oparam1[0].Type  = OracleDbType.Varchar2;
                    oparam1[0].Value = wxopenid;

                    oparam1[1].Name  = ":opcode";
                    oparam1[1].Type  = OracleDbType.Varchar2;
                    oparam1[1].Value = account;

                    int n = mydbo.ExecuteNonQuery(sql1, oparam1);
                }
                else
                {
                    string sql1 = @"insert into W_LOGIN(wxopenid,opcode) values(:wxopenid,:opcode)";
                    OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[2];
                    oparam1[0].Name  = ":wxopenid";
                    oparam1[0].Type  = OracleDbType.Varchar2;
                    oparam1[0].Value = wxopenid;

                    oparam1[1].Name  = ":opcode";
                    oparam1[1].Type  = OracleDbType.Varchar2;
                    oparam1[1].Value = account;

                    int n = mydbo.ExecuteNonQuery(sql1, oparam1);
                }
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
        /// <summary>
        /// 事件消息防复重
        /// </summary>
        /// <returns></returns>
        public bool EventMsgPreventDuplicates(string fromusername, double createtime)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsThrowException = true;
            mydbo.AutoClose        = false;
            mydbo.BeginTransaction();
            try
            {
                string sql = "select 1 from sys_p_wxeventmsglog t where t.fromusername=:fromusername and t.createtime=:createtime and rownum<2";
                OracleDBO.OracleCmdParam[] oparam = new OracleDBO.OracleCmdParam[2];
                oparam[0].Name  = ":fromusername";
                oparam[0].Type  = OracleDbType.Varchar2;
                oparam[0].Value = fromusername;

                oparam[1].Name  = ":createtime";
                oparam[1].Type  = OracleDbType.Double;
                oparam[1].Value = createtime;

                DataTable dt = mydbo.GetDataTable(sql, oparam);
                if (dt != null && dt.Rows.Count > 0)
                {
                    result = false;
                    mydbo.Rollback();
                    return(result);
                }
                sql = "insert into sys_p_wxeventmsglog(fromusername,createtime,logtime) values(:fromusername,:createtime,sysdate)";
                mydbo.ExecuteNonQuery(sql, oparam);
                mydbo.Commit();
            }
            catch (Exception ex)
            {
                mydbo.Rollback();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #5
0
        /// <summary>
        /// 关注取消日志记录
        /// </summary>
        /// <param name="wxopenid">微信粉丝ID</param>
        /// <param name="subscribed">是否关注,0取消关注,1关注</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool SubscribeLog(string wxopenid, int subscribed, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsByParamName    = true;
            mydbo.IsThrowException = true;
            try
            {
                string sql1 = @"insert into sys_p_wxsubscribelog
                                  (wxopenid, createdate, subscribed)
                                values
                                  (:wxopenid, :createdate, :subscribed)";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[3];
                oparam1[0].Name  = ":wxopenid";
                oparam1[0].Type  = OracleDbType.Varchar2;
                oparam1[0].Value = wxopenid;

                oparam1[1].Name  = ":createdate";
                oparam1[1].Type  = OracleDbType.Date;
                oparam1[1].Value = DateTime.Now;

                oparam1[2].Name  = ":subscribed";
                oparam1[2].Type  = OracleDbType.Int32;
                oparam1[2].Value = subscribed;

                int n = mydbo.ExecuteNonQuery(sql1, oparam1);
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #6
0
        public bool GetUsercode(string id, string account, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsThrowException = true;
            mydbo.IsByParamName    = true;
            mydbo.AutoClose        = false;
            try
            {
                string wxopenid = "";
                int    n        = 0;
                account = account.Trim();

                string sql12 = @"select t.wxopenid from W_LOGIN t where t.opcode=:account";
                OracleDBO.OracleCmdParam[] oparam12 = new OracleDBO.OracleCmdParam[1];
                oparam12[0].Name  = ":account";
                oparam12[0].Type  = OracleDbType.Varchar2;
                oparam12[0].Value = account;

                DataTable dt1 = mydbo.GetDataTable(sql12, oparam12);

                if (dt1.Rows.Count > 0)
                {
                    wxopenid = dt1.Rows[0]["wxopenid"].ToString();
                }
                if (id == "0")
                {
                    string sql1 = @"update  WOW_A_USERINFO t2 set t2.wxopenid=:wxopenid where t2.username=:username";
                    OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[2];
                    oparam1[0].Name  = ":wxopenid";
                    oparam1[0].Type  = OracleDbType.Varchar2;
                    oparam1[0].Value = wxopenid;

                    oparam1[1].Name  = ":username";
                    oparam1[1].Type  = OracleDbType.Varchar2;
                    oparam1[1].Value = account;
                    n = mydbo.ExecuteNonQuery(sql1, oparam1);
                }

                if (id == "1")
                {
                    DALWXMessageHandleBasic mysend = new DALWXMessageHandleBasic();

                    bool success = mysend.Sendfalse(WXApiInfo.wxappid, wxopenid, "绑定被拒绝", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), ref errmsg);
                    //推送绑定不被允许
                    string sql4 = @"delete from W_LOGIN t t.opcode=:opcode";
                    OracleDBO.OracleCmdParam[] oparam4 = new OracleDBO.OracleCmdParam[1];
                    oparam4[0].Name  = ":opcode";
                    oparam4[0].Type  = OracleDbType.Varchar2;
                    oparam4[0].Value = account;
                    int n4 = mydbo.ExecuteNonQuery(sql4, oparam4);
                    result = false;
                }

                if (n > 0)
                {
                    //推送绑定允许

                    DALWXMessageHandleBasic mysend = new DALWXMessageHandleBasic();

                    bool success = mysend.SendSecss(WXApiInfo.wxappid, wxopenid, "绑定已同意", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), ref errmsg);

                    string sql4 = @"delete from W_LOGIN t t.opcode=:opcode";
                    OracleDBO.OracleCmdParam[] oparam4 = new OracleDBO.OracleCmdParam[1];
                    oparam4[0].Name  = ":opcode";
                    oparam4[0].Type  = OracleDbType.Varchar2;
                    oparam4[0].Value = account;
                    int n4 = mydbo.ExecuteNonQuery(sql4, oparam4);
                }
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #7
0
        /// <summary>
        /// 更新微信
        /// </summary>
        /// <param name="wxfansinfo">微信粉丝信息</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool UpdateWXFansInfo(WXFansInfo wxfansinfo, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsByParamName    = true;
            mydbo.IsThrowException = true;
            try
            {
                string sql1 = @"select count(*) from sys_s_wxfansinfo t where t.wxopenid = :wxopenid";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[1];
                oparam1[0].Name  = ":wxopenid";
                oparam1[0].Type  = OracleDbType.Varchar2;
                oparam1[0].Value = wxfansinfo.openid;

                int num = Convert.ToInt32(mydbo.ExecuteScalar(sql1, oparam1));
                if (num == 0)
                {
                    #region 添加粉丝
                    string sql2 = @"insert into sys_s_wxfansinfo
                                      (wxopenid,
                                       nickname,
                                       sex,
                                       province,
                                       city,
                                       country,
                                       headimgurl,
                                       subscribed)
                                    values
                                      (:wxopenid,
                                       :nickname,
                                       :sex,
                                       :province,
                                       :city,
                                       :country,
                                       :headimgurl,
                                       :subscribed)";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[8];
                    oparam2[0].Name  = ":wxopenid";
                    oparam2[0].Type  = OracleDbType.Varchar2;
                    oparam2[0].Value = wxfansinfo.openid;

                    oparam2[1].Name  = ":nickname";
                    oparam2[1].Type  = OracleDbType.Varchar2;
                    oparam2[1].Value = wxfansinfo.nickname;

                    oparam2[2].Name  = ":sex";
                    oparam2[2].Type  = OracleDbType.Varchar2;
                    oparam2[2].Value = wxfansinfo.sex == "1" ? "男" : "女";

                    oparam2[3].Name  = ":province";
                    oparam2[3].Type  = OracleDbType.Varchar2;
                    oparam2[3].Value = wxfansinfo.province;

                    oparam2[4].Name  = ":city";
                    oparam2[4].Type  = OracleDbType.Varchar2;
                    oparam2[4].Value = wxfansinfo.city;

                    oparam2[5].Name  = ":country";
                    oparam2[5].Type  = OracleDbType.Varchar2;
                    oparam2[5].Value = wxfansinfo.country;

                    oparam2[6].Name  = ":headimgurl";
                    oparam2[6].Type  = OracleDbType.Varchar2;
                    oparam2[6].Value = wxfansinfo.headimgurl;

                    oparam2[7].Name  = ":subscribed";
                    oparam2[7].Type  = OracleDbType.Int32;
                    oparam2[7].Value = 1;

                    int n = mydbo.ExecuteNonQuery(sql2, oparam2);
                    #endregion
                }
                else
                {
                    #region 更新粉丝数据
                    string sql2 = @"update sys_s_wxfansinfo t
                                       set t.nickname   = :nickname,
                                           t.sex        = :sex,
                                           t.province   = :province,
                                           t.city       = :city,
                                           t.country    = :country,
                                           t.headimgurl = :headimgurl
                                     where t.wxopenid = :wxopenid";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[7];

                    oparam2[0].Name  = ":wxopenid";
                    oparam2[0].Type  = OracleDbType.Varchar2;
                    oparam2[0].Value = wxfansinfo.openid;

                    oparam2[1].Name  = ":nickname";
                    oparam2[1].Type  = OracleDbType.Varchar2;
                    oparam2[1].Value = wxfansinfo.nickname;

                    oparam2[2].Name  = ":sex";
                    oparam2[2].Type  = OracleDbType.Varchar2;
                    oparam2[2].Value = wxfansinfo.sex == "1" ? "男" : "女";

                    oparam2[3].Name  = ":province";
                    oparam2[3].Type  = OracleDbType.Varchar2;
                    oparam2[3].Value = wxfansinfo.province;

                    oparam2[4].Name  = ":city";
                    oparam2[4].Type  = OracleDbType.Varchar2;
                    oparam2[4].Value = wxfansinfo.city;

                    oparam2[5].Name  = ":country";
                    oparam2[5].Type  = OracleDbType.Varchar2;
                    oparam2[5].Value = wxfansinfo.country;

                    oparam2[6].Name  = ":headimgurl";
                    oparam2[6].Type  = OracleDbType.Varchar2;
                    oparam2[6].Value = wxfansinfo.headimgurl;

                    int n = mydbo.ExecuteNonQuery(sql2, oparam2);
                    #endregion
                }
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #8
0
        /// <summary>
        /// 返回序列
        /// </summary>
        /// <param name="SeqType">类型</param>
        /// <param name="SeqLength">长度</param>
        /// <param name="Prefix">前缀</param>
        /// <param name="Sequence">序列</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool GenerateSequence(string SeqType, int SeqLength, string Prefix, ref int Sequence, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsThrowException = true;
            mydbo.IsByParamName    = true;
            mydbo.AutoClose        = false;
            try
            {
                #region 查询该类型在数据库中是否有记录
                int    n;
                string sql1 = @"select t.seq from sys_p_sequence t where t.seqtype=:seqtype";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[1];
                oparam1[0].Name  = ":seqtype";
                oparam1[0].Type  = OracleDbType.Varchar2;
                oparam1[0].Value = SeqType;

                DataTable dt = mydbo.GetDataTable(sql1, oparam1);

                #endregion
                if (dt.Rows.Count > 0)
                {
                    #region 更新该类型序列的值
                    string sql2 = @"update sys_p_sequence t set t.seq = :seq where t.seqtype = :seqtype";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[2];
                    oparam2[0].Name  = ":seq";
                    oparam2[0].Type  = OracleDbType.Int32;
                    oparam2[0].Value = Convert.ToInt32(dt.Rows[0]["seq"]) + 1;

                    oparam2[1].Name  = ":seqtype";
                    oparam2[1].Type  = OracleDbType.Varchar2;
                    oparam2[1].Value = SeqType;

                    n        = mydbo.ExecuteNonQuery(sql2, oparam2);
                    Sequence = Convert.ToInt32(dt.Rows[0]["seq"]);
                    #endregion
                }
                else
                {
                    #region 添加序列类型
                    string sql2 = @"insert into sys_p_sequence(seqtype,seqlength,prefix,seq) values(:seqtype,:seqlength,:prefix,:seq)";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[4];
                    oparam2[0].Name  = ":seqtype";
                    oparam2[0].Type  = OracleDbType.Varchar2;
                    oparam2[0].Value = SeqType;

                    oparam2[1].Name  = ":seqlength";
                    oparam2[1].Type  = OracleDbType.Int32;
                    oparam2[1].Value = SeqLength;

                    oparam2[2].Name  = ":prefix";
                    oparam2[2].Type  = OracleDbType.Varchar2;
                    oparam2[2].Value = Prefix;

                    oparam2[3].Name  = ":seq";
                    oparam2[3].Type  = OracleDbType.Int32;
                    oparam2[3].Value = 2;

                    n = mydbo.ExecuteNonQuery(sql2, oparam2);

                    Sequence = 1;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #9
0
        /// <summary>
        /// 二维码扫描关注
        /// </summary>
        /// <param name="wxopenid">微信粉丝ID</param>
        /// <param name="scene_id">场景ID</param>
        /// <param name="wxuser">粉丝信息</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool QRCodeApplication(string wxopenid, string scene_id, WXFansInfo wxuser, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsByParamName    = true;
            mydbo.IsThrowException = true;
            mydbo.AutoClose        = false;
            try
            {
                #region 查询是否存在该粉丝
                string sql1 = @"select count(*) from sys_s_wxfansinfo t where t.wxopenid = :wxopenid";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[1];
                oparam1[0].Name  = ":wxopenid";
                oparam1[0].Type  = OracleDbType.Varchar2;
                oparam1[0].Value = wxopenid;

                int num = Convert.ToInt32(mydbo.ExecuteScalar(sql1, oparam1));
                #endregion

                mydbo.BeginTransaction();
                if (num == 0)
                {
                    #region 添加微信粉丝信息
                    string sql2 = @"insert into sys_s_wxfansinfo
                                      (wxopenid,
                                       nickname,
                                       sex,
                                       province,
                                       city,
                                       country,
                                       headimgurl,
                                       subscribetime,
                                       subscribed)
                                    values
                                      (:wxopenid,
                                       :nickname,
                                       :sex,
                                       :province,
                                       :city,
                                       :country,
                                       :headimgurl,
                                       :subscribetime,
                                       :subscribed)";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[9];
                    oparam2[0].Name  = ":wxopenid";
                    oparam2[0].Type  = OracleDbType.Varchar2;
                    oparam2[0].Value = wxopenid;

                    oparam2[1].Name  = ":nickname";
                    oparam2[1].Type  = OracleDbType.Varchar2;
                    oparam2[1].Value = wxuser.nickname;

                    oparam2[2].Name  = ":sex";
                    oparam2[2].Type  = OracleDbType.Varchar2;
                    oparam2[2].Value = wxuser.sex;

                    oparam2[3].Name  = ":province";
                    oparam2[3].Type  = OracleDbType.Varchar2;
                    oparam2[3].Value = wxuser.province;

                    oparam2[4].Name  = ":city";
                    oparam2[4].Type  = OracleDbType.Varchar2;
                    oparam2[4].Value = wxuser.city;

                    oparam2[5].Name  = ":country";
                    oparam2[5].Type  = OracleDbType.Varchar2;
                    oparam2[5].Value = wxuser.country;

                    oparam2[6].Name  = ":headimgurl";
                    oparam2[6].Type  = OracleDbType.Varchar2;
                    oparam2[6].Value = wxuser.headimgurl;

                    oparam2[7].Name  = ":subscribetime";
                    oparam2[7].Type  = OracleDbType.Date;
                    oparam2[7].Value = DateTime.Now;

                    oparam2[8].Name  = ":subscribed";
                    oparam2[8].Type  = OracleDbType.Varchar2;
                    oparam2[8].Value = 1;

                    int n = mydbo.ExecuteNonQuery(sql2, oparam2);
                    #endregion
                }
                else
                {
                    #region 更新微信粉丝信息
                    string sql2 = @"update sys_s_wxfansinfo t
                                       set t.nickname      = :nickname,
                                           t.sex           = :sex,
                                           t.province      = :province,
                                           t.city          = :city,
                                           t.country       = :country,
                                           t.headimgurl    = :headimgurl,
                                           t.subscribetime = :subscribetime,
                                           t.subscribed    = :subscribed
                                     where t.wxopenid = :wxopenid";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[9];
                    oparam2[0].Name  = ":wxopenid";
                    oparam2[0].Type  = OracleDbType.Varchar2;
                    oparam2[0].Value = wxopenid;

                    oparam2[1].Name  = ":nickname";
                    oparam2[1].Type  = OracleDbType.Varchar2;
                    oparam2[1].Value = wxuser.nickname;

                    oparam2[2].Name  = ":sex";
                    oparam2[2].Type  = OracleDbType.Varchar2;
                    oparam2[2].Value = wxuser.sex;

                    oparam2[3].Name  = ":province";
                    oparam2[3].Type  = OracleDbType.Varchar2;
                    oparam2[3].Value = wxuser.province;

                    oparam2[4].Name  = ":city";
                    oparam2[4].Type  = OracleDbType.Varchar2;
                    oparam2[4].Value = wxuser.city;

                    oparam2[5].Name  = ":country";
                    oparam2[5].Type  = OracleDbType.Varchar2;
                    oparam2[5].Value = wxuser.country;

                    oparam2[6].Name  = ":headimgurl";
                    oparam2[6].Type  = OracleDbType.Varchar2;
                    oparam2[6].Value = wxuser.headimgurl;

                    oparam2[7].Name  = ":subscribetime";
                    oparam2[7].Type  = OracleDbType.Date;
                    oparam2[7].Value = DateTime.Now;

                    oparam2[8].Name  = ":subscribed";
                    oparam2[8].Type  = OracleDbType.Varchar2;
                    oparam2[8].Value = 1;

                    int n = mydbo.ExecuteNonQuery(sql2, oparam2);
                    #endregion
                }

                string sql3 = @"select t.val1
                                  from sys_p_wxqrmanage t
                                 where t.scene_id = :scene_id
                                   and t.intentions = '绑定用户'
                                   and t.valid = 1";
                OracleDBO.OracleCmdParam[] oparam3 = new OracleDBO.OracleCmdParam[1];
                oparam3[0].Name  = ":scene_id";
                oparam3[0].Type  = OracleDbType.Int32;
                oparam3[0].Value = Convert.ToInt32(scene_id);

                DataTable dt = mydbo.GetDataTable(sql3, oparam3);
                if (dt != null && dt.Rows.Count > 0)
                {
                    string usercode = dt.Rows[0]["val1"].ToString();

                    #region 更新二维码为已使用
                    string sql4 = @"update sys_p_wxqrmanage t
                                       set t.valid = 0
                                     where t.scene_id = :scene_id
                                       and t.intentions = '绑定用户'
                                       and t.valid = 1";
                    OracleDBO.OracleCmdParam[] oparam4 = new OracleDBO.OracleCmdParam[1];
                    oparam4[0].Name  = ":scene_id";
                    oparam4[0].Type  = OracleDbType.Int32;
                    oparam4[0].Value = scene_id;

                    int n = mydbo.ExecuteNonQuery(sql4, oparam4);
                    #endregion

                    #region 更新用户绑定微信信息
                    string sql5 = @"update sys_s_user t set t.wxopenid = :wxopenid where t.usercode = :usercode";
                    OracleDBO.OracleCmdParam[] oparam5 = new OracleDBO.OracleCmdParam[2];

                    oparam5[0].Name  = ":wxopenid";
                    oparam5[0].Type  = OracleDbType.Varchar2;
                    oparam5[0].Value = wxopenid;

                    oparam5[1].Name  = ":usercode";
                    oparam5[1].Type  = OracleDbType.Varchar2;
                    oparam5[1].Value = usercode;

                    n = mydbo.ExecuteNonQuery(sql5, oparam5);
                    #endregion

                    string sql6 = @"select t.username from sys_s_userinfo t where t.usercode=:usercode";
                    OracleDBO.OracleCmdParam[] oparam6 = new OracleDBO.OracleCmdParam[1];
                    oparam6[0].Name  = ":usercode";
                    oparam6[0].Type  = OracleDbType.Varchar2;
                    oparam6[0].Value = usercode;

                    DataTable dt2 = mydbo.GetDataTable(sql6, oparam6);
                    if (dt2 != null && dt2.Rows.Count > 0)
                    {
                        errmsg = "成功绑定用户:" + dt2.Rows[0]["username"].ToString();
                    }

                    mydbo.Commit();
                }
                else
                {
                    result = false;
                    errmsg = "该二维码已失效";
                    mydbo.Commit();
                }
            }
            catch (Exception ex)
            {
                mydbo.Rollback();
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #10
0
        /// <summary>
        /// 创建临时二维码
        /// </summary>
        /// <param name="ticket">获取的二维码ticket,凭借此ticket可以在有效时间内换取二维码。</param>
        /// <param name="expire_seconds">该二维码有效时间,以秒为单位。 最大不超过2592000(即30天)。</param>
        /// <param name="url">二维码图片解析后的地址,开发者可根据该地址自行生成需要的二维码图片</param>
        /// <param name="qrtype">二维码类型,0为临时二维码,1为永久二维码</param>
        /// <param name="scene_id">二维码的场景ID</param>
        /// <param name="intentions">意图,【关注公众号】【绑定用户】</param>
        /// <param name="failuredate">失效时间</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool CreateTmpQRCode(string ticket, int expire_seconds, string url, int qrtype, int scene_id, string intentions, DateTime failuredate, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsByParamName    = true;
            mydbo.IsThrowException = true;
            mydbo.AutoClose        = false;
            try
            {
                #region 获取微信二维码是否存在记录
                string sql1 = @"select coun(*)
                                  from sys_p_wxqrmanage t
                                 where t.valid = 1
                                   and t.scene_id = :scene_id";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[1];
                oparam1[0].Name  = ":scene_id";
                oparam1[0].Type  = OracleDbType.Int32;
                oparam1[0].Value = scene_id;

                int num = Convert.ToInt32(mydbo.ExecuteScalar(sql1, oparam1));
                #endregion

                if (num == 0)
                {
                    #region 添加二维码信息
                    string sql2 = @"insert into sys_p_wxqrmanage
                                  (ticket, expire_seconds, url, qrtype, scene_id, intentions, failuredate)
                                values
                                  (:ticket,
                                   :expire_seconds,
                                   :url,
                                   :qrtype,
                                   :scene_id,
                                   :intentions,
                                   :failuredate)";
                    OracleDBO.OracleCmdParam[] oparam2 = new OracleDBO.OracleCmdParam[7];
                    oparam2[0].Name  = ":ticket";
                    oparam2[0].Type  = OracleDbType.Varchar2;
                    oparam2[0].Value = ticket;

                    oparam2[1].Name  = ":expire_seconds";
                    oparam2[1].Type  = OracleDbType.Int32;
                    oparam2[1].Value = expire_seconds;

                    oparam2[2].Name  = ":url";
                    oparam2[2].Type  = OracleDbType.Varchar2;
                    oparam2[2].Value = url;

                    oparam2[3].Name  = ":qrtype";
                    oparam2[3].Type  = OracleDbType.Int32;
                    oparam2[3].Value = qrtype;

                    oparam2[4].Name  = ":scene_id";
                    oparam2[4].Type  = OracleDbType.Int32;
                    oparam2[4].Value = scene_id;

                    oparam2[5].Name  = ":intentions";
                    oparam2[5].Type  = OracleDbType.Varchar2;
                    oparam2[5].Value = intentions;

                    oparam2[6].Name  = ":failuredate";
                    oparam2[6].Type  = OracleDbType.Date;
                    oparam2[6].Value = failuredate;

                    int n = mydbo.ExecuteNonQuery(sql2, oparam2);
                    #endregion
                }
                else
                {
                    errmsg = "该场景ID已存在";
                    result = false;
                }
            }
            catch (Exception ex)
            {
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }
Пример #11
0
        /// <summary>
        /// 获取微信粉丝绑定的用户列表
        /// </summary>
        /// <param name="wxopenid">微信粉丝ID</param>
        /// <param name="dt">返回列表</param>
        /// <param name="errmsg">出错时返回的错误提示信息</param>
        /// <returns>是否成功执行</returns>
        public bool GetWXFansBindUserInfo(string wxopenid, ref DataTable dt, ref DataTable dt_page, ref string errmsg)
        {
            bool      result = true;
            OracleDBO mydbo  = new OracleDBO();

            mydbo.IsThrowException = true;
            mydbo.IsByParamName    = true;
            mydbo.AutoClose        = false;
            try
            {
                mydbo.BeginTransaction();
                string sql1 = @"select t1.usercode,
                                       t1.password,
                                       t1.usertype,
                                       t1.createdate,
                                       t1.wxopenid,
                                       t1.account,
                                       t2.username,
                                       t2.position,
                                       t2.sex,
                                       t2.birthday,
                                       t2.address,
                                       t2.phonenumber,
                                       t2.hiredate,
                                       t3.nickname,
                                       t3.headimgurl,
                                       t4.departmentcode,
                                       t4.departmentname department,
                                       t1.idnumber,
                                       t1.idkey
                                  from sys_s_user t1
                                  join sys_s_userinfo t2
                                    on t2.usercode = t1.usercode
                                  left join sys_s_wxfansinfo t3
                                    on t3.wxopenid = t1.wxopenid
                                  left join sys_s_departmentinfo t4
                                    on t4.departmentcode = t2.department
                                 where t1.status = 1
                                   and t1.usertype in (0, 2)
                                   and t1.wxopenid = :wxopenid";
                OracleDBO.OracleCmdParam[] oparam1 = new OracleDBO.OracleCmdParam[1];
                oparam1[0].Name  = ":wxopenid";
                oparam1[0].Type  = OracleDbType.Varchar2;
                oparam1[0].Value = wxopenid;
                dt = mydbo.GetDataTable(sql1, oparam1);

                if (dt != null && dt.Rows.Count > 0)
                {
                    string usercode = dt.Rows[0]["usercode"].ToString();
                    //这里去查页面列表,dt_page

                    string rolecode = "";
                    string sql      = @"select t.rolecode from SYS_S_USER t where t.usercode=:usercode";
                    OracleDBO.OracleCmdParam[] oparam13 = new OracleDBO.OracleCmdParam[1];
                    oparam13[0].Name  = ":usercode";
                    oparam13[0].Type  = OracleDbType.Varchar2;
                    oparam13[0].Value = usercode;

                    DataTable abc = mydbo.GetDataTable(sql, oparam13);
                    for (int i = 0; i < abc.Rows.Count; i++)
                    {
                        rolecode = abc.Rows[i]["rolecode"].ToString();
                    }

                    string sql2 = @"select t1.pagecode, t1.pagename, t1.ico, t1.url, t1.superior
                                      from M_WX_ROLEPAGE t, M_WX_PCPAGEMANAGE t1
                                     where t.pagecode = t1.pagecode
                                       and t.rolecode = :rolecode ";
                    OracleDBO.OracleCmdParam[] oparam12 = new OracleDBO.OracleCmdParam[1];
                    oparam12[0].Name  = ":rolecode";
                    oparam12[0].Type  = OracleDbType.Varchar2;
                    oparam12[0].Value = rolecode;

                    dt_page = mydbo.GetDataTable(sql2, oparam12);
                }
            }
            catch (Exception ex)
            {
                mydbo.Rollback();
                errmsg = ex.Message.ToString();
                result = false;
                LogWriter.WriteLog(ex);
            }
            finally
            {
                mydbo.Close();
            }
            return(result);
        }