示例#1
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(BCW.SSE.Model.SseBase model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update tb_SseBase set ");
            strSql.Append("sseNo=@sseNo,");
            strSql.Append("closePrice=@closePrice,");
            strSql.Append("bz=@bz");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters =
            {
                new SqlParameter("@sseNo",      SqlDbType.Int,        4),
                new SqlParameter("@closePrice", SqlDbType.Decimal,    9),
                new SqlParameter("@bz",         SqlDbType.NVarChar, 200),
                new SqlParameter("@id",         SqlDbType.Int, 4)
            };
            parameters[0].Value = model.sseNo;
            parameters[1].Value = model.closePrice;
            parameters[2].Value = model.bz;
            parameters[3].Value = model.id;

            int rows = SqlHelper.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// 取得每页记录
        /// </summary>
        /// <param name="p_pageIndex">当前页</param>
        /// <param name="p_pageSize">分页大小</param>
        /// <param name="p_recordCount">返回总记录数</param>
        /// <param name="strWhere">查询条件</param>
        /// <returns>IList Luckpay</returns>
        public IList <BCW.SSE.Model.SseBase> GetSseBasePages(int p_pageIndex, int p_pageSize, string strWhere, out int p_recordCount)
        {
            IList <BCW.SSE.Model.SseBase> listSseBase = new List <BCW.SSE.Model.SseBase>();
            string sTable     = "tb_SseBase";
            string sPkey      = "id";
            string sField     = "id,sseNo,closePrice,bz";
            string sCondition = strWhere;
            string sOrder     = "sseNo Desc";
            int    iSCounts   = 0;

            using (SqlDataReader reader = SqlHelper.RunProcedureMe(sTable, sPkey, sField, p_pageIndex, p_pageSize, sCondition, sOrder, iSCounts, out p_recordCount))
            {
                //计算总页数
                if (p_recordCount > 0)
                {
                    int pageCount = BasePage.CalcPageCount(p_recordCount, p_pageSize, ref p_pageIndex);
                }
                else
                {
                    return(listSseBase);
                }
                while (reader.Read())
                {
                    BCW.SSE.Model.SseBase objSseBase = new BCW.SSE.Model.SseBase();
                    objSseBase.id         = reader.GetInt32(0);
                    objSseBase.sseNo      = reader.GetInt32(1);
                    objSseBase.closePrice = reader.GetDecimal(2);
                    objSseBase.bz         = reader.GetString(3);


                    listSseBase.Add(objSseBase);
                }
            }
            return(listSseBase);
        }
示例#3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(BCW.SSE.Model.SseBase model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into tb_SseBase(");
            strSql.Append("sseNo,closePrice,bz)");
            strSql.Append(" values (");
            strSql.Append("@sseNo,@closePrice,@bz)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@sseNo",      SqlDbType.Int,      4),
                new SqlParameter("@closePrice", SqlDbType.Decimal,  9),
                new SqlParameter("@bz",         SqlDbType.NVarChar, 200)
            };
            parameters[0].Value = model.sseNo;
            parameters[1].Value = model.closePrice;
            parameters[2].Value = model.bz;

            object obj = SqlHelper.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
示例#4
0
 /// <summary>
 /// 得到一个对象实体
 /// </summary>
 public BCW.SSE.Model.SseBase DataRowToModel(DataRow row)
 {
     BCW.SSE.Model.SseBase model = new BCW.SSE.Model.SseBase();
     if (row != null)
     {
         if (row["id"] != null && row["id"].ToString() != "")
         {
             model.id = int.Parse(row["id"].ToString());
         }
         if (row["sseNo"] != null && row["sseNo"].ToString() != "")
         {
             model.sseNo = int.Parse(row["sseNo"].ToString());
         }
         if (row["closePrice"] != null && row["closePrice"].ToString() != "")
         {
             model.closePrice = decimal.Parse(row["closePrice"].ToString());
         }
         if (row["bz"] != null)
         {
             model.bz = row["bz"].ToString();
         }
     }
     return(model);
 }
示例#5
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public BCW.SSE.Model.SseBase GetModel(int id)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 id,sseNo,closePrice,bz from tb_SseBase ");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters =
            {
                new SqlParameter("@id", SqlDbType.Int, 4)
            };
            parameters[0].Value = id;

            BCW.SSE.Model.SseBase model = new BCW.SSE.Model.SseBase();
            DataSet ds = SqlHelper.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
示例#6
0
文件: SSE.cs 项目: radtek/GitKB288
        //查询是否已抓取当天的收盘数据

        public bool GetNewSSEData()
        {
            this.xmlPath = "/Controls/SSE.xml";

            DateTime _openPrizeTime = DateTime.Parse(ub.GetSub("SSEOpen", xmlPath));

            //周末休市.
            if (System.DateTime.Now.DayOfWeek == DayOfWeek.Saturday || System.DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
            {
                return(false);
            }

            //自动开奖,开奖时间不能早于设定的开奖时间
            if (autoOpenPrize == true && System.DateTime.Now < _openPrizeTime)
            {
                return(false);
            }


            BCW.SSE.BLL.SseBase _sseBase;


            //获取上次的记录.

            decimal _lastPrice = 0;

            //获取上一个开奖日数据
            _sseBase = new BCW.SSE.BLL.SseBase();
            DataSet _dsLastRecord = _sseBase.GetList(1, "", "sseNo desc");

            if (_dsLastRecord.Tables[0].Rows.Count > 0)
            {
                _lastPrice = decimal.Parse(_dsLastRecord.Tables[0].Rows[0]["closePrice"].ToString());
            }

            //开奖的期号

            string _sseNo = System.DateTime.Now.Year.ToString("#0000") + System.DateTime.Now.Month.ToString("#00") + System.DateTime.Now.Day.ToString("#00");

            _sseBase = new BCW.SSE.BLL.SseBase();
            DataSet _dataSet = _sseBase.GetList(string.Format("sseNo={0}", _sseNo));

            if (_dataSet.Tables[0].Rows.Count <= 0)
            {
                mIsOpenPrize = true;                 //正在开奖.

                //获取当天收盘价(调用新浪接口取数据).
                string _closePrice;
                if (closePrice == "0")
                {
                    _closePrice = new BCW.Service.GetStk().GetStkXMLFormat();
                }
                else
                {
                    _closePrice = closePrice;
                }
                BCW.SSE.Model.SseBase _sseModel = new BCW.SSE.Model.SseBase();
                _sseModel.sseNo      = int.Parse(_sseNo);
                _sseModel.closePrice = decimal.Parse(_closePrice);
                _sseModel.bz         = _sseModel.closePrice > _lastPrice ? "1" : _sseModel.closePrice < _lastPrice ? "0":"-1"; //1:涨  0:跌  -1:平
                _sseBase.Add(_sseModel);

                //开奖处理.
                //开出平局,处理退注. TODO by zhc 暂时用下面的循环先,数据量大时这种方式效率极差,日后改用数据批量更新.
                if (_sseModel.bz == "-1")
                {
                    DataSet ds = BCW.Data.SqlHelper.Query(string.Format("select * from tb_SseOrder where sseNo={0} and state=0", _sseNo));

                    if (ds != null && ds.Tables[0].Rows.Count > 0)
                    {
                        for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                        {
                            //退还相应的币种.
                            int   _orderId   = int.Parse(ds.Tables[0].Rows[i]["id"].ToString());                  //订单用户ID.
                            int   _userId    = int.Parse(ds.Tables[0].Rows[i]["userId"].ToString());              //订单用户ID.
                            int   _moneyType = int.Parse(ds.Tables[0].Rows[i]["orderType"].ToString());           //订单货币类型.
                            Int64 _backMoney = (Int64)decimal.Parse(ds.Tables[0].Rows[i]["buyMoney"].ToString()); //订单金额.


                            //变更订单状态
                            BCW.SSE.Model.SseOrder modelSseOrder = new BCW.SSE.BLL.SseOrder().GetModel(_orderId);
                            modelSseOrder.bz = "2";                                    //2:特殊处理;记录一下订单是系统平局退回
                            new BCW.SSE.BLL.SseOrder().Update(modelSseOrder);


                            //退还酷币
                            string strLog = "";
                            if (_moneyType == 0)
                            {
                                new BCW.BLL.User().UpdateiGold(_userId, ( long )_backMoney, string.Format("上证【{0}】期平局退回|标识({1})", _sseNo, _orderId));
                                strLog = string.Format("上证【{0}】期平局退回|金额{1}),请注意查收", _sseNo, _backMoney.ToString("0") + ub.Get("SiteBz"));
                            }
                            //退还农场金币
                            else
                            {
                                new BCW.farm.BLL.NC_user().UpdateiGold(_userId, new BCW.BLL.User().GetUsName(_userId), ( long )_backMoney, string.Format("上证【{0}】期平局退回|标识({1})|获得{2}金币|结{3}金币)", _sseNo, _orderId, Math.Abs(_backMoney), (new BCW.farm.BLL.NC_user().GetGold(_userId) + _backMoney).ToString("#0")), 8);
                                strLog = string.Format("上证【{0}】期平局退回|金额{1}),请注意查收", _sseNo, _backMoney.ToString("0") + "金币");
                            }

                            //发内线
                            if (string.IsNullOrEmpty(strLog) == false)
                            {
                                new BCW.BLL.Guest().Add(0, _userId, new BCW.BLL.User().GetUsName(_userId), strLog);
                            }


                            //更新奖池.
                            IDataParameter[] _parameters = new SqlParameter[3];
                            _parameters[0]       = new SqlParameter("@orderId", SqlDbType.Int);
                            _parameters[1]       = new SqlParameter("@operType", SqlDbType.Int);
                            _parameters[2]       = new SqlParameter("@operUserId", SqlDbType.Int);
                            _parameters[0].Value = _orderId;            //订单ID.
                            _parameters[1].Value = 1;                   //系统退回
                            _parameters[2].Value = -1;                  //系统id为-1
                            BCW.Data.SqlHelper.ExecuteRunProcedure("sp_SseChangePrizePool", _parameters);
                        }
                    }
                }


                //如果正常涨跌,交由存储过程处理相关开奖逻辑

                //酷币开奖.
                IDataParameter[] _parameters2 = new SqlParameter[4];
                _parameters2[0]       = new SqlParameter("@sseNo", SqlDbType.Int);
                _parameters2[1]       = new SqlParameter("@prizeCalcRate", SqlDbType.Float);
                _parameters2[2]       = new SqlParameter("@poundageRate", SqlDbType.Float);
                _parameters2[3]       = new SqlParameter("@orderType", SqlDbType.Int);
                _parameters2[0].Value = _sseNo;                                     //订单ID.
                _parameters2[1].Value = ub.GetSub("SSEPrizeCalcRate", xmlPath);     //订单计奖率.
                _parameters2[2].Value = ub.GetSub("SSEPrizePoundageRate", xmlPath); //订单兑奖手续费率.
                _parameters2[3].Value = 0;
                BCW.Data.SqlHelper.ExecuteRunProcedure("sp_SseOpenPrize", _parameters2);


                //金币开奖.
                _parameters2[0]       = new SqlParameter("@sseNo", SqlDbType.Int);
                _parameters2[1]       = new SqlParameter("@prizeCalcRate", SqlDbType.Float);
                _parameters2[2]       = new SqlParameter("@poundageRate", SqlDbType.Float);
                _parameters2[3]       = new SqlParameter("@orderType", SqlDbType.Int);
                _parameters2[0].Value = _sseNo;                                     //订单ID.
                _parameters2[1].Value = ub.GetSub("SSEPrizeCalcRate", xmlPath);     //订单计奖率.
                _parameters2[2].Value = ub.GetSub("SSEPrizePoundageRate", xmlPath); //订单兑奖手续费率.
                _parameters2[3].Value = 1;
                BCW.Data.SqlHelper.ExecuteRunProcedure("sp_SseOpenPrize", _parameters2);



                //内线通知中奖玩家
                DataSet _dsGetPrizeUser = new BCW.SSE.BLL.SseGetPrize().GetList("sseNo =" + _sseNo);
                for (int i = 0; i < _dsGetPrizeUser.Tables[0].Rows.Count; i++)
                {
                    //发内线
                    //退还酷币
                    string strLog = "";
                    string getStr = "";
                    if (int.Parse(_dsGetPrizeUser.Tables[0].Rows[i]["orderType"].ToString()) == 0)
                    {
                        getStr = "[url=/bbs/game/SSE.aspx?sseVe=0&amp;act=getPirze]马上兑奖[/URL]";
                        strLog = string.Format("恭喜您在上证第{0}期赢得{1}", _sseNo, decimal.Parse(_dsGetPrizeUser.Tables[0].Rows[i]["prizeVal"].ToString()).ToString("#0") + ub.Get("SiteBz"));
                    }
                    //退还农场金币
                    else
                    {
                        getStr = "[url=/bbs/game/SSE.aspx?sseVe=1&amp;act=getPirze]马上兑奖[/URL]";
                        strLog = string.Format("恭喜您在上证第{0}期赢得{1}", _sseNo, decimal.Parse(_dsGetPrizeUser.Tables[0].Rows[i]["prizeVal"].ToString()).ToString("#0") + "金币");
                    }


                    new BCW.BLL.Guest().Add(0, int.Parse(_dsGetPrizeUser.Tables[0].Rows[i]["userId"].ToString()), new BCW.BLL.User().GetUsName(int.Parse(_dsGetPrizeUser.Tables[0].Rows[i]["userId"].ToString())), strLog + getStr);
                }


                mIsOpenPrize = false;
                return(true);
            }
            return(false);
        }