Ejemplo n.º 1
0
        /// <summary>
        /// 获取红包实体
        /// </summary>
        /// <param name="ID">红包编号</param>
        /// <returns></returns>
        public HongBao GetInfo(string Id)
        {
            HongBao model = null;

            StringBuilder strSql = new StringBuilder();

            strSql.Append("SELECT  ID , UserID , IssueTime , HongBaoJinE ,UserName,ContactName  FROM   view_hongbao WHERE   ID =@ID   ");

            DbCommand cmd = this._db.GetSqlStringCommand(strSql.ToString());

            this._db.AddInParameter(cmd, "ID", System.Data.DbType.AnsiStringFixedLength, Id);

            using (IDataReader dr = DbHelper.ExecuteReader(cmd, this._db))
            {
                while (dr.Read())
                {
                    model             = new HongBao();
                    model.ID          = dr.GetString(dr.GetOrdinal("ID"));
                    model.UserID      = dr.GetString(dr.GetOrdinal("UserID"));
                    model.IssueTime   = dr.GetDateTime(dr.GetOrdinal("IssueTime"));
                    model.HongBaoJinE = dr.GetDecimal(dr.GetOrdinal("HongBaoJinE"));
                    model.UserName    = dr.GetString(dr.GetOrdinal("UserName"));
                    model.ContactName = dr.GetString(dr.GetOrdinal("ContactName"));
                }
            }

            return(model);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 添加一个红包
        /// </summary>
        /// <param name="info">红包</param>
        /// <returns></returns>
        public int Insert(HongBao info)
        {
            if (string.IsNullOrEmpty(info.UserID))
            {
                return(0);
            }

            info.ID        = Guid.NewGuid().ToString();
            info.IssueTime = DateTime.Now;
            int result = dal.Insert(info);

            if (result == 1)//修改账户金额
            {
                Eyousoft_yhq.BLL.BConDetaile   bll = new Eyousoft_yhq.BLL.BConDetaile();
                Eyousoft_yhq.Model.MConDetaile con = new Eyousoft_yhq.Model.MConDetaile();
                con.JiaoYiHao      = info.IssueTime.ToString("yyyyMMddhhmmssfff");
                con.DingDanBianHao = info.IssueTime.ToString("yyyyMMddhhmmssfff");
                con.JinE           = info.HongBaoJinE;
                con.JiaoYiShiJian  = DateTime.Now;
                con.XFway          = Eyousoft_yhq.Model.XFfangshi.红包抽奖;
                con.HuiYuanID      = info.UserID;
                bll.Add(con);
            }

            return(result);
        }
Ejemplo n.º 3
0
        public static Packet OpenHongbao(Player player, HongBao hongBao)
        {
            PacketWriter pWriter = PacketWriter.Of(SendOp.PLAYER_HOST);

            pWriter.WriteEnum(PlayerHostPacketMode.OpenHongbao);
            pWriter.WriteInt(hongBao.ItemId);
            pWriter.WriteInt(hongBao.Id);
            pWriter.WriteInt(hongBao.RewardId);
            pWriter.WriteInt(hongBao.RewardAmount);
            pWriter.WriteInt(hongBao.MaxReceivers);
            pWriter.WriteUnicodeString(player.Name);
            return(pWriter);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 修改红包金额
        /// </summary>
        /// <param name="model">红包</param>
        /// <returns></returns>
        public int Update(HongBao info)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("UPDATE tbl_HongBao   SET       HongBaoJinE = @HongBaoJinE WHERE ID=@ID");

            DbCommand cmd = this._db.GetSqlStringCommand(strSql.ToString());

            this._db.AddInParameter(cmd, "ID", System.Data.DbType.AnsiStringFixedLength, info.ID);
            this._db.AddInParameter(cmd, "HongBaoJinE", System.Data.DbType.Decimal, info.HongBaoJinE);

            return(DbHelper.ExecuteSql(cmd, this._db));
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 添加一个红包
        /// </summary>
        /// <param name="info">红包</param>
        /// <returns></returns>
        public int Insert(HongBao info)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(" INSERT INTO tbl_HongBao (ID ,UserID ,IssueTime ,HongBaoJinE) VALUES (@ID ,@UserID ,@IssueTime ,@HongBaoJinE) ");

            DbCommand cmd = this._db.GetSqlStringCommand(strSql.ToString());

            this._db.AddInParameter(cmd, "ID", System.Data.DbType.AnsiStringFixedLength, info.ID);
            this._db.AddInParameter(cmd, "UserID", System.Data.DbType.AnsiStringFixedLength, info.UserID);
            this._db.AddInParameter(cmd, "IssueTime", System.Data.DbType.DateTime, info.IssueTime);
            this._db.AddInParameter(cmd, "HongBaoJinE", System.Data.DbType.Decimal, info.HongBaoJinE);

            return(DbHelper.ExecuteSql(cmd, this._db));
        }
Ejemplo n.º 6
0
        public static Packet HongbaoGiftNotice(Player receiver, HongBao hongBao, int dividedRewardAmount)
        {
            PacketWriter pWriter = PacketWriter.Of(SendOp.PLAYER_HOST);

            pWriter.WriteEnum(PlayerHostPacketMode.HongbaoGiftNotice);
            pWriter.WriteBool(hongBao.Active);
            if (hongBao.Active)
            {
                pWriter.WriteInt(hongBao.ItemId);
                pWriter.WriteInt(hongBao.RewardId);
                pWriter.WriteInt(dividedRewardAmount);
                pWriter.WriteUnicodeString(hongBao.Giver.Name);
                pWriter.WriteUnicodeString(receiver.Name);
            }
            return(pWriter);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 修改红包金额
        /// </summary>
        /// <param name="model">红包</param>
        /// <returns></returns>
        public int Update(HongBao info)
        {
            if (string.IsNullOrEmpty(info.ID))
            {
                return(0);
            }

            var yuan = GetInfo(info.ID);

            if (yuan == null)
            {
                return(0);
            }
            decimal yuanJinE = yuan.HongBaoJinE;
            int     result   = dal.Update(info);

            return(result);
        }
Ejemplo n.º 8
0
    private static void HandleClaim(GameSession session, PacketReader packet)
    {
        int hongBaoId = packet.ReadInt();

        HongBao hongBao = GameServer.HongBaoManager.GetHongBaoById(hongBaoId);

        if (hongBao == null)
        {
            return;
        }

        if (hongBao.Active == false)
        {
            session.Send(PlayerHostPacket.HongbaoGiftNotice(session.Player, hongBao, 0));
            return;
        }

        hongBao.AddReceiver(session.Player);
    }
Ejemplo n.º 9
0
        /// <summary>
        /// 获取分页数据
        /// </summary>
        /// <param name="PageSize"></param>
        /// <param name="PageIndex"></param>
        /// <param name="RecordCount"></param>
        /// <param name="serModel"></param>
        /// <returns></returns>
        public IList <HongBao> GetList(int PageSize, int PageIndex, ref int RecordCount, HongBaoSer serModel)
        {
            IList <HongBao> list = new List <HongBao>();


            string tableName     = "view_hongbao";
            string fileds        = "  ID , UserID , IssueTime , HongBaoJinE,UserName,ContactName    ";
            string orderByString = "IssueTime desc";

            StringBuilder query = new StringBuilder();

            query.AppendFormat(" 1=1 ");

            if (serModel != null)
            {
                if (!string.IsNullOrEmpty(serModel.UserID))
                {
                    query.AppendFormat(" and  userid  = '{0}' ", serModel.UserID);
                }
            }


            using (IDataReader dr = DbHelper.ExecuteReader1(this._db, PageSize, PageIndex, ref RecordCount, tableName, fileds, query.ToString(), orderByString, null))
            {
                while (dr.Read())
                {
                    HongBao model = new HongBao();
                    model.ID          = dr.GetString(dr.GetOrdinal("ID"));
                    model.UserID      = dr.GetString(dr.GetOrdinal("UserID"));
                    model.IssueTime   = dr.GetDateTime(dr.GetOrdinal("IssueTime"));
                    model.HongBaoJinE = dr.GetDecimal(dr.GetOrdinal("HongBaoJinE"));
                    model.UserName    = dr.GetString(dr.GetOrdinal("UserName"));
                    model.ContactName = dr.GetString(dr.GetOrdinal("ContactName"));
                    list.Add(model);
                }
            }
            return(list);
        }
Ejemplo n.º 10
0
    private static async Task Start(HongBao hongBao)
    {
        await Task.Delay(hongBao.Duration * 1000);

        hongBao.DistributeReward();
    }
Ejemplo n.º 11
0
 public void RemoveHongBao(HongBao hongBao)
 {
     HongBaoList.Remove(hongBao.Id);
 }
Ejemplo n.º 12
0
 public void AddHongBao(HongBao hongBao)
 {
     HongBaoList.Add(hongBao.Id, hongBao);
 }
Ejemplo n.º 13
0
        /// <summary>
        /// 红包开关
        /// </summary>
        /// <param name="companyId">公司ID</param>
        /// <returns></returns>
        public string OpenRedBag(string companyID)
        {
            HF.Cloud.BLL.Common.Logger.Error("OpenRedBag 获取到的参数CompanyID:" + companyID);
            //查看时间,过期则不可打开
            //if(DateTime.Now.ToString()<"2018-02-16 23:12:12:123")
            //{
            //}
            string resultStr     = "";
            long   companyIdLong = 0;//公司ID

            if (long.TryParse(companyID, out companyIdLong))
            {
                //1通过公司id在用户表中看当前公司够5个人不够
                SB_UserEL userEL = new SB_UserEL();
                userEL.CompanyID = companyIdLong;
                DataTable dt_User = userEL.ExecDT(44);
                //1.1够5个人则开始在红包表里面添加红包数据
                if (dt_User != null && dt_User.Rows.Count >= 5)
                {
                    //2 查看已经发了多少钱,发过的总数大于1000停止发送
                    DataTable dt_HongBalAllVa = DbHelperSQL.Query("select sum(HongBaoValue) as AllValue from T_HongBao where Valid=1").Tables[0];
                    string    allValueStr     = dt_HongBalAllVa.Rows[0][0].ToString();
                    //2.1已经发送的总金额小于900的话继续发
                    if (string.IsNullOrEmpty(allValueStr) || double.Parse(allValueStr) < 850)
                    {
                        T_HongBaoEL hongBaoEl = new T_HongBaoEL();
                        //查看红包表是否已经存在记录,存在则不添加红包记录
                        hongBaoEl.CompanyID = companyIdLong;
                        DataTable dt_HongBao = hongBaoEl.ExecDT(33);
                        if (dt_HongBao == null || dt_HongBao.Rows.Count < 1)
                        {
                            //3发红包表添加记录
                            //3.1生成公司红包金额10-100随机数,红包个数是金额的0.5-1倍
                            Random ran = new Random();
                            //3.1.1红包金额,取下不取上
                            int comAllValue = ran.Next(10, 100);
                            //3.1.2人数
                            int comNumber = (int)Math.Floor(ran.Next(5, 10) * 0.1 * comAllValue);
                            HF.Cloud.BLL.Common.Logger.Error("OpenRedBag方法红包总金额是:" + comAllValue + "---总人数:" + comNumber);
                            //3.2通过总金额和人数获取评分后的红包值
                            List <Double> listHongV = HongBao.GetRedBagList(double.Parse(comAllValue.ToString()), comNumber, 1.00);
                            //3.3通过获取到的红包值列表,给红包表添加记录
                            for (int i = 0; i < listHongV.Count; i++)
                            {
                                //ID,CompanyID,HongBaoValue,GetUserID,IsGet,
                                //CreateTime,GiveOutTime,Valid
                                //HF.Cloud.BLL.Common.Logger.Error("OpenRedBag方法获得的红包值listHongV是:" + listHongV[i]);
                                hongBaoEl.CompanyID = companyIdLong;
                                //hongBaoEl.HongBaoValue = decimal.Round((decimal)listHongV[i],2);
                                hongBaoEl.HongBaoValue = decimal.Parse(listHongV[i].ToString());
                                hongBaoEl.IsGet        = 1;
                                hongBaoEl.CreateTime   = DateTime.Now.ToString();
                                hongBaoEl.GiveOutTime  = "";
                                hongBaoEl.Valid        = 1;
                                int ra;
                                hongBaoEl.ExecNonQuery(1, out ra);
                            }
                            HF.Cloud.BLL.Common.Logger.Error("OpenRedBag方法生成的红包个数:" + listHongV.Count);
                            resultStr = "success";
                        }
                        else    //已经激活不能再次激活
                        {
                            resultStr = "actived";
                        }
                    }
                    else    //2.2红包奖金池已经用完额度
                    {
                        resultStr = "empty";
                    }
                }
                else//1.2不够5个人则提示人数不够
                {
                    resultStr = "notenough";
                }
            }
            else
            {
                resultStr = "error";
            }
            HF.Cloud.BLL.Common.Logger.Error("OpenRedBag 结果:" + resultStr);
            return(resultStr);
        }