/// <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); }
/// <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); }
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); }
/// <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)); }
/// <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)); }
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); }
/// <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); }
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); }
/// <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); }
private static async Task Start(HongBao hongBao) { await Task.Delay(hongBao.Duration * 1000); hongBao.DistributeReward(); }
public void RemoveHongBao(HongBao hongBao) { HongBaoList.Remove(hongBao.Id); }
public void AddHongBao(HongBao hongBao) { HongBaoList.Add(hongBao.Id, hongBao); }
/// <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); }