/// <summary>
        /// 用户中心 修改基础信息
        /// </summary>
        /// <param name="info"></param>
        /// <param name="errmsg"></param>
        /// <returns></returns>
        internal static bool PutUserInfo(base_users info, out string errmsg)
        {
            MySqlTransactionHelper tran = new MySqlTransactionHelper();

            if (!tran.TransactionBegin(out errmsg))
            {
                return(false);
            }

            List <DataParameter> pars = new List <DataParameter>();

            pars.Add(new DataParameter("@userid", info.userid));
            pars.Add(new DataParameter("@nickname", info.nickname));
            pars.Add(new DataParameter("@sex", info.sex));
            pars.Add(new DataParameter("@birthday", info.birthday));
            pars.Add(new DataParameter("@phone", info.phone));
            pars.Add(new DataParameter("@email", info.email));
            pars.Add(new DataParameter("@realname", info.realname));            //pars.Add(new DataParameter("@realname", info.degree));

            pars.Add(new DataParameter("@photo", info.photo));

            string sqlstr = "update base_users set nickname=@nickname,sex=@sex,birthday=@birthday,phone=@phone,email=@email,realname=@realname,photo=@photo where userid=@userid";

            tran.TransactionExecuteCommand(sqlstr, out errmsg, pars);
            if (!string.IsNullOrEmpty(errmsg))
            {
                string err;
                tran.TransactionRollback(out err);
                return(false);
            }
            return(tran.TransactionCommit(out errmsg));
        }
        internal static bool  PutUserInforname(int userid, string realname, string email, string phone, string opinion, int period, int grade, string classname, string school, out string errmsg)
        {
            MySqlTransactionHelper tran = new MySqlTransactionHelper();

            if (!tran.TransactionBegin(out errmsg))
            {
                return(false);
            }
            List <DataParameter> pars = new List <DataParameter>();

            pars.Add(new DataParameter("@realname", realname));
            pars.Add(new DataParameter("@email", email));
            pars.Add(new DataParameter("@phone", phone));
            pars.Add(new DataParameter("@userid", userid));
            pars.Add(new DataParameter("@period", period));
            pars.Add(new DataParameter("@grade", grade));
            pars.Add(new DataParameter("@classname", classname));
            pars.Add(new DataParameter("@school", school));
            string sqlstr = "update base_users set realname=@realname,email=@email,phone=@phone,period=@period,grade=@grade,classname=@classname,school=@school where userid=@userid";

            tran.TransactionExecuteCommand(sqlstr, out errmsg, pars);
            if (!string.IsNullOrEmpty(errmsg))
            {
                string err;
                tran.TransactionRollback(out err);
                return(false);
            }
            List <DataParameter> pars2 = new List <DataParameter>();

            pars2.Add(new DataParameter("@opinion", opinion));
            pars2.Add(new DataParameter("@userid", userid));
            string sqlstr2 = "insert into chosen_feedback(userid,opinion) values (@userid,@opinion)";

            tran.TransactionExecuteCommand(sqlstr2, out errmsg, pars2);
            if (!string.IsNullOrEmpty(errmsg))
            {
                string err;
                tran.TransactionRollback(out err);
                return(false);
            }
            return(tran.TransactionCommit(out errmsg));
        }
Exemple #3
0
        /// <summary>
        /// 判断全文资源计费情况
        /// </summary>
        /// <param name="restype">资源库id</param>
        /// <param name="seqid">资源id</param>
        /// <param name="userid">用户id</param>
        /// <param name="customerid">客户id</param>
        /// <param name="userIp">用户ip</param>
        /// <param name="tablename">资源库名</param>
        /// <param name="costtype">计费类型 【0免费资源;1 客户计时订单;2 客户计量订单;3 用户订单;】</param>
        /// <param name="m_price">单条价格</param>
        /// <param name="m_discount">单条折扣</param>
        /// <param name="serviceno">客户服务编号</param>
        /// <param name="orderno">客户服务订单号</param>
        /// <param name="errmsg"></param>
        /// <returns></returns>
        public static int GetFullPathResourceCheckCost(int restype, long seqid, int userid, int customerid, string userIp, out string tablename, out int costtype, out decimal m_price, out decimal m_discount, out string serviceno, out string orderno, out string errmsg)
        {
            errmsg     = null;
            tablename  = null;
            costtype   = 0;
            m_price    = 0;
            m_discount = 0;
            serviceno  = null;
            orderno    = null;
            string          sqlstr = string.Format("select mouldid,databasename,databasecname,isware from db_datalibrarys where databaseid={0}", restype);
            db_datalibrarys dbinfo = MySqlHelper.GetDataInfo <db_datalibrarys>(sqlstr, out errmsg);

            if (!string.IsNullOrEmpty(errmsg))
            {
                errmsg = "查询资源库出错" + errmsg;
                return(-1);
            }
            if (dbinfo == null)
            {
                errmsg = "资源库参数错误";
                return(-1);
            }
            tablename = dbinfo.databasename;
            DataTable dt;

            //首先判断是否商品库中的资源,如果是,判断单条资源是否收费 如果是,资源是否在用户已完成的订单中 (以前购买过,可以直接使用)
            string shopname = null;

            if (dbinfo.isware == 1 && userid > 0)
            {
                sqlstr = string.Format("select m_price,m_discount,title from {0} where seqid={1}", tablename, seqid);
                dt     = MySqlHelper.GetDataTable(sqlstr, out errmsg);
                if (!string.IsNullOrEmpty(errmsg) || dt == null)
                {
                    errmsg = "查询资源费用信息出错" + errmsg;
                    return(-1);
                }
                if (dt.Rows.Count == 0)
                {
                    errmsg = "资源不存在";
                    return(-1);
                }
                if (!decimal.TryParse(dt.Rows[0][0].ToString(), out m_price) || !decimal.TryParse(dt.Rows[0][1].ToString(), out m_discount))
                {
                    errmsg = "查询资源价格及折扣信息出错";
                    return(-1);
                }
                if (m_price * m_discount == 0) //免费资源,直接使用
                {
                    costtype = 0;
                    return(1);
                }
                shopname = dt.Rows[0][2].ToString();
                sqlstr   = string.Format("select count(1) from chosen_orderinfo a,chosen_ordershop b where a.orderno=b.orderno and a.status=9 and a.userid={0} and b.restype='{1}' and rescode={2}", userid, tablename, seqid);
                long count = MySqlHelper.GetRecCount(sqlstr, out errmsg);
                if (!string.IsNullOrEmpty(errmsg))
                {
                    errmsg = "查询用户订单信息出错" + errmsg;
                    return(-1);
                }
                if (count > 0) //用户购买过,直接使用
                {
                    costtype = 3;
                    return(1);
                }
            }
            // 用户是否在客户已购买并有效的授权服务当中
            if (customerid > 0)
            {
                sqlstr = string.Format("select a.orderno,a.serviceno,b.stype,b.starttime,b.endtime,b.maxnum,b.leftnum,d.rulename,d.rulevalue from chosen_orderinfo a,chosen_serviceinfo b,chosen_servicepermit c,chosen_servicecont d where a.serviceno=b.serviceno and a.serviceno=c.serviceno and a.serviceno=d.serviceno and a.status=9 and a.customerid={0} and d.restype='{1}' ", customerid, tablename);
                dt     = MySqlHelper.GetDataTable(sqlstr, out errmsg);
                if (!string.IsNullOrEmpty(errmsg))
                {
                    errmsg = "查询资源服务信息出错" + errmsg;
                    return(-1);
                }
                if (dt != null && dt.Rows.Count > 0)
                {
                    //资源是否在服务内容当中
                    orderno   = dt.Rows[0]["orderno"].ToString();
                    serviceno = dt.Rows[0]["serviceno"].ToString();
                    costtype  = int.Parse(dt.Rows[0]["stype"].ToString());
                    return(1);
                }
            }
            //都不符合,生成用户订单,返回需要计费信息
            if (m_price * m_discount > 0)
            {
                chosen_orderinfo order = new chosen_orderinfo();
                order.GetNo();
                order.ordername = string.Format("订购资源库 {0} 的资源 {1} 的全文", dbinfo.databasecname, seqid);


                MySqlTransactionHelper tran = new MySqlTransactionHelper();
                if (tran.TransactionBegin(out errmsg))
                {
                    //写入用户订单
                    List <DataParameter> pars = new List <DataParameter>();
                    pars.Add(new DataParameter("orderno", order.orderno));
                    pars.Add(new DataParameter("ordername", order.ordername));
                    pars.Add(new DataParameter("userid", userid));
                    pars.Add(new DataParameter("m_price", m_price));
                    pars.Add(new DataParameter("s_price", m_price * m_discount));
                    pars.Add(new DataParameter("ctype", 1));
                    pars.Add(new DataParameter("paytype", 1));
                    pars.Add(new DataParameter("status", 1));
                    pars.Add(new DataParameter("Creator", userid));
                    pars.Add(new DataParameter("createdtime", DateTime.Now));
                    string sqlor = "insert into chosen_orderinfo (orderno,ordername,userid,m_price,s_price,ctype,paytype,status,creator,createdtime) values (orderno,ordername,userid,m_price,s_price,ctype,paytype,status,creator,createdtime) ";
                    tran.TransactionExecuteCommand(sqlor, out errmsg, pars);
                    if (!string.IsNullOrEmpty(errmsg))
                    {
                        string err;
                        tran.TransactionRollback(out err);
                        return(-1);
                    }
                    pars.Clear();
                    pars.Add(new DataParameter("shopname", string.IsNullOrEmpty(shopname) ? order.ordername : shopname));
                    pars.Add(new DataParameter("orderno", order.orderno));
                    pars.Add(new DataParameter("restype", restype));
                    pars.Add(new DataParameter("rescode", seqid));
                    pars.Add(new DataParameter("prices", m_price));
                    pars.Add(new DataParameter("thumbnail", null));
                    pars.Add(new DataParameter("shopnum", 1));
                    sqlstr = "insert into chosen_ordershop (shopname,orderno,restype,rescode,prices,thumbnail,shopnum) values (@shopname,@orderno,@restype,@rescode,@prices,@thumbnail,@shopnum) ";
                    tran.TransactionExecuteCommand(sqlstr, out errmsg, pars);
                    if (!string.IsNullOrEmpty(errmsg))
                    {
                        string err;
                        tran.TransactionRollback(out err);
                        return(-1);
                    }
                    bool issuc = tran.TransactionCommit(out errmsg);
                    if (!string.IsNullOrEmpty(errmsg) || !issuc)
                    {
                        errmsg = "提交订单出错:" + errmsg;
                        return(-1);
                    }
                    costtype = 3;
                    orderno  = order.orderno;
                    return(0);
                }
                return(-1);
            }
            else //免费资源
            {
                costtype = 0;
                return(1);
            }
        }
        internal static base_users GetUserInfoByOther(base_users user, out string errmsg)
        {
            string sqlstr = "select a.userid,a.username,a.nickname,a.realname,a.usertype,a.customerid,a.sourcetype,a.sourceremarks,a.photo from base_users a,base_otherloginbind b where a.UserID=b.userid and b.bindtype=@bindtype and b.code=@code";

            DataParameter[] pars = new DataParameter[]
            {
                new DataParameter("bindtype", user.sourceremarks),
                new DataParameter("code", user.sourcetypename)
            };
            base_users userinfo = MySqlHelper.GetDataInfo <base_users>(sqlstr, out errmsg, pars);

            if (!string.IsNullOrEmpty(errmsg))
            {
                return(null);
            }
            if (userinfo != null && userinfo.userid > 0)
            {
                return(userinfo);
            }
            MySqlTransactionHelper tran = new MySqlTransactionHelper();

            if (tran.TransactionBegin(out errmsg))
            {
                sqlstr = "insert into base_users (username,nickname,passwd,usertype,photo,sex,createdtime,sourcetype,sourceremarks,customerid,status) values (@username,@nickname,@passwd,@usertype,@photo,@sex,@createdtime,@sourcetype,@sourceremarks,0,1)";
                pars   = new DataParameter[]
                {
                    new DataParameter("@username", user.username),
                    new DataParameter("@nickname", user.nickname),
                    new DataParameter("@passwd", user.passwd),
                    new DataParameter("@usertype", user.usertype),
                    new DataParameter("@photo", user.photo),
                    new DataParameter("@sex", user.sex),
                    new DataParameter("@createdtime", user.createdtime),
                    new DataParameter("@sourcetype", user.sourcetype),
                    new DataParameter("@sourceremarks", user.sourceremarks)
                };
                string userIdstr = tran.TransactionExecuteInsert(sqlstr, out errmsg, pars);
                int    userId;
                if (!string.IsNullOrEmpty(errmsg) || !int.TryParse(userIdstr, out userId) || userId < 1)
                {
                    string err;
                    tran.TransactionRollback(out err);
                    return(null);
                }
                user.userid = userId;
                sqlstr      = "insert into base_otherloginbind (bindtype,userid,code,token,createdtime) values (@bindtype,@userid,@code,@token,@createdtime)";
                pars        = new DataParameter[]
                {
                    new DataParameter("@bindtype", user.sourceremarks),
                    new DataParameter("@userid", user.userid),
                    new DataParameter("@code", user.sourcetypename),
                    new DataParameter("@token", user.usertypename),
                    new DataParameter("@createdtime", user.createdtime)
                };
                tran.TransactionExecuteCommand(sqlstr, out errmsg, pars);
                if (!string.IsNullOrEmpty(errmsg))
                {
                    string err;
                    tran.TransactionRollback(out err);
                    return(null);
                }
                bool issuc = tran.TransactionCommit(out errmsg);
                if (!issuc)
                {
                    string err;
                    tran.TransactionRollback(out err);
                    return(null);
                }
                return(user);
            }
            return(null);
        }