public static void AddNewViper(VipInfo vip, string CardNum) { if (ControCenter.AddNewViper(vip, CardNum)) { MessageBox.Show("成功"); } }
public static bool ReissueCard(VipInfo vip, string NewCard) { if (vip.ConnectCarNum != null) { if (DataService.ChangeCardStatus(vip.ConnectCarNum, SentCardInfo.CardStatus.废弃) > 0) { if (DataService.GetVipId(NewCard) > 0) { MessageBox.Show("已存在关联vip"); return(false); } else if (DataService.GetCardInfoAct(NewCard) == null) { MessageBox.Show("此卡未发"); return(false); } else if (DataService.ChangeVipConnCard(NewCard, vip) > 0) { return(true); } else { return(false); } } else { return(false); } } else { return(false); } }
public static bool AddNewViper(VipInfo vip, string CardNum) { if (DataService.GetVipId(CardNum) > 0 || DataService.GetVipIdFromVipInfo(CardNum) > 0) { MessageBox.Show("已存在关联vip或vip已关联此卡"); return(false); } else if (DataService.GetCardInfoAct(CardNum) == null) { MessageBox.Show("此卡未发"); return(false); } else { if (vip.Name == "" || vip.Phone == "") { MessageBox.Show("信息不全"); return(false); } if (DataService.AddNewVip(vip, CardNum) > 0) { return(true); } else { return(false); } } }
public static VipInfo SearchVipInfo(string CardNum, VipInfo vipinfo) { uint VipId = DataService.GetVipId(CardNum); vipinfo = DataService.GetVipInfo(VipId, vipinfo); return(vipinfo); }
public static void ReissueCard(VipInfo vip, string NewCard) { if (ControCenter.ReissueCard(vip, NewCard)) { MessageBox.Show("成功"); } }
public static VipInfo SearchVipInfo(string CardNum, VipInfo vip) { if (CardNum != "未读取到卡号") { vip = ControCenter.SearchVipInfo(CardNum, vip); } return(vip); }
private void updateVipInfo() { if (textBoxVipId.Text.Length < 3) { clearVip(false); return; } else if (textBoxVipId.Text.Length == 3) { int vipId; if (int.TryParse(textBoxVipId.Text, out vipId) && vipId > 0) { currVip = DbHelper.Instance.GetVipInfo(vipId); if (currVip != null) { //textBoxVipId.Text = currVip.vipId.ToString(); textBoxVipName.Text = currVip.vipName; textBoxTel.Text = currVip.tel; textBoxCurrBonus.Text = currVip.bonus.ToString(); buttonAddBonus.Enabled = true; buttonConsume.Enabled = true; return; } } } else if (textBoxVipId.Text.Length > 3) { //currVip = DbHelper.Instance.GetVipInfoByTel(textBoxVip.Text); //if (currVip != null) //{ // textBoxVipId.Text = currVip.vipId.ToString(""); // textBoxVipName.Text = currVip.vipName; // textBoxTel.Text = currVip.tel; // textBoxCurrBonus.Text = currVip.bonus.ToString(); // buttonAddBonus.Enabled = true; // buttonConsume.Enabled = true; // return; //} //var vips = DbHelper.Instance.FindVips(textBoxVip.Text); //if (vips.Count > 0) //{ // listBoxVip.Items.Clear(); // listBoxVip.Visible = true; // listBoxVip.Size = new Size(listBoxVip.Size.Width, listBoxVip.ItemHeight * (vips.Count + 1)); // foreach (var vip in vips) // { // string text = string.Format("{0}\t{1}\t{2}\t{3}\t{4}", vip.vipId, vip.vipName, vip.tel, vip.maxBonus, vip.bonus); // listBoxVip.Items.Add(vip); // } //} //else //{ // listBoxVip.Visible = false; //} } clearVip(false); }
public static void ReportLoss(string CardNum, VipInfo vip) { if (ControCenter.ReportLoss(CardNum, vip)) { MessageBox.Show("成功"); } else { MessageBox.Show("失败"); } }
/// <summary> /// 保存从终端上来的会员信息 /// </summary> /// <param name="loggingSession">当前用户的登录信息</param> /// <param name="vipExchanges">会员信息列表</param> /// <returns></returns> public string SaveVips(LoggingSessionInfo loggingSession, IList <VipExchangeInfo> vipExchanges) { ISqlMapper sqlmap = cSqlMapper.Instance(loggingSession.CurrentLoggingManager); try { sqlmap.BeginTransaction(); Hashtable ht = new Hashtable(); foreach (VipExchangeInfo vip in vipExchanges) { //校验会员是否是新建还是修改 VipInfo old_vip = sqlmap.QueryForObject <VipInfo>("Promotion.Vip.SelectByID", vip.ID); bool is_new = (old_vip == null); //校验会员号 ht["vip_no"] = vip.No; ht["vip_id"] = vip.ID; int count = sqlmap.QueryForObject <int>("Promotion.Vip.CountVip", ht); if (count > 0) { sqlmap.RollBackTransaction(); return(string.Format("会员号已经存在[会员号:{0},ID:{1}]", vip.No, vip.ID)); } if (is_new) { //新建会员 sqlmap.Insert("Promotion.Vip.Insert", vip); } else { //修改会员 //判断会员状态 if (old_vip.Status == -1) { sqlmap.RollBackTransaction(); return(string.Format("会员被停用,不能修改[会员号:{0},ID:{1}]", vip.No, vip.ID)); } count = sqlmap.Update("Promotion.Vip.Update", vip); if (count == 0) { sqlmap.RollBackTransaction(); return(string.Format("会员版本不正确,不能修改[会员号:{0},ID:{1}]", vip.No, vip.ID)); } } } sqlmap.CommitTransaction(); } catch (Exception ex) { sqlmap.RollBackTransaction(); throw ex; } return(""); }
private void clearVip(bool all) { currVip = null; if (all) { textBoxVipId.Text = ""; } textBoxVipName.Text = ""; textBoxTel.Text = ""; textBoxCurrBonus.Text = ""; buttonAddBonus.Enabled = false; buttonConsume.Enabled = false; }
public VipInfo GetVipInfo(int vipId) { VipInfo vipInfo = null; SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "select vipId,vipName,tel,bonus,maxBonus from members where vipId=" + vipId; SQLiteDataReader reader = cmd.ExecuteReader(); if (reader.HasRows && reader.Read()) { vipInfo = new VipInfo(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetFloat(3), reader.GetFloat(4)); } cmd.Dispose(); return(vipInfo); }
public static bool ReportLoss(string CardNum, VipInfo vip) { if (DataService.GetVipId(CardNum) == uint.Parse(vip.VipId)) { if (DataService.ChangeCardStatus(CardNum, SentCardInfo.CardStatus.挂失) > 0) { return(true); } else { return(false); } } else { return(false); } }
public VipInfo GetVipInfoByTel(string val) { VipInfo vipInfo = null; SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "select vipId,vipName,tel,bonus,maxBonus from members where tel=@tel"; cmd.Parameters.AddWithValue("@tel", "%" + val + "%"); SQLiteDataReader reader = cmd.ExecuteReader(); int count = 0; while (reader.Read()) { count++; if (count > 1) { vipInfo = null; break; } vipInfo = new VipInfo(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetFloat(3), reader.GetFloat(4)); } cmd.Dispose(); return(vipInfo); }
public List <VipInfo> FindVips(string val) { List <VipInfo> list = new List <VipInfo>(); int intVal = 0; VipInfo vipInfoForVipId = null; List <VipInfo> listForTel = new List <VipInfo>(); if (int.TryParse(val, out intVal) && intVal > 0 && intVal < 1000) { SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "select vipId,vipName,tel,bonus,maxBonus from members where vipId=" + val; SQLiteDataReader reader = cmd.ExecuteReader(); if (reader.HasRows && reader.Read()) { vipInfoForVipId = new VipInfo(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetFloat(3), reader.GetFloat(4)); } cmd.Dispose(); } if (Regex.IsMatch(val, @"^\d{4,12}$")) { SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = string.Format("select vipId,vipName,tel,bonus,maxBonus from members where tel like '%{0}%' order by tel", val); SQLiteDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { if (vipInfoForVipId != null && vipInfoForVipId.vipId == reader.GetInt32(0)) { continue; } listForTel.Add(new VipInfo(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetFloat(3), reader.GetFloat(4))); } cmd.Dispose(); } try { SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = "select vipId,vipName,tel,bonus,maxBonus from members where vipName like @vipName order by vipName"; cmd.Parameters.AddWithValue("@vipName", "%" + val + "%"); SQLiteDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { if (vipInfoForVipId != null && vipInfoForVipId.vipId == reader.GetInt32(0)) { continue; } VipInfo vipInfo = new VipInfo(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), reader.GetFloat(3), reader.GetFloat(4)); if (!listForTel.Contains(vipInfo, new EqualityComparer())) { list.Add(vipInfo); } } cmd.Dispose(); } catch { } list.InsertRange(0, listForTel); if (vipInfoForVipId != null) { list.Insert(0, vipInfoForVipId); } return(list); }
public ActionResult MemberUpdateForVIP(Dictionary <string, string> queryvalues) { int _type = queryvalues.ContainsKey("Type") ? Convert.ToInt32(queryvalues["Type"]) : 0; int _id = queryvalues.ContainsKey("ID") ? Convert.ToInt32(queryvalues["ID"]) : 0; int _level = queryvalues.ContainsKey("Grade") ? Convert.ToInt32(queryvalues["Grade"]) : 0; int _point = queryvalues.ContainsKey("Point") ? Convert.ToInt32(queryvalues["Point"]) : 0; Role model = new Role(); model = RoleBLL.GetRoleByString(new Role() { ID = _id }); if (model == null) { return(View(model)); } model.UpdateProperty = _type; //数据修改操作 if (Request.IsAjaxRequest()) { //没有封号不能修改 if (model.IsFreeze == isSwitch.开) { return(Content("-1")); } if (_type == 3) //绑定俱乐部 { //检查是不是俱乐部,不是俱乐部,不让绑定 IEnumerable <ClubInfo> clubs = ClubBLL.GetClubInfo(_level); if (clubs != null && clubs.Count() > 0) { } else { return(Content("4"));//不是俱乐部 } Beland_Club_C BelandlubC; // model.Minu 传一个时间长短给服务器 BelandlubC = Beland_Club_C.CreateBuilder() .SetClubID((uint)_level) .SetDwUserID((uint)_id) .Build(); Bind tbind = Cmd.runClient(new Bind(ServiceCmd.SC_BELAND_CLUB, BelandlubC.ToByteArray())); switch ((CenterCmd)tbind.header.CommandID) { case CenterCmd.CS_BELAND_CLUB: Beland_Club_S BelandClubS = Beland_Club_S.ParseFrom(tbind.body.ToBytes()); bool res = BelandClubS.Suc; if (res) { return(Content("5")); } else { return(Content("6")); } case CenterCmd.CS_CONNECT_ERROR: break; } return(Content("6")); //model.ClubID = _level; //int res = RoleBLL.UpdateRoleClub(model); //if(res == 1) //绑定不是俱乐部ID //{ // return Content("4"); //} //else //{ // return Content(res.ToString()); //} } //玩家数据为空 if (model.ExtInfo == null) { return(Content("-2")); } else { ///////////////////////////////////////////////////////////////////////////////// if (SystemType == "2")//万人德州 { BExtInfo BExtInfo = BExtInfo.ParseFrom(model.ExtInfo); if (_type == 1) //修改VIP等级 { VipInfo VipInfo22; VipInfo22 = VipInfo.CreateBuilder(BExtInfo.VipInfo) .SetGrade((int)_level) .SetCurrent((int)_point) .Build(); BExtInfo = BExtInfo.CreateBuilder(BExtInfo) .SetVipInfo(VipInfo22) .Build(); } else if (_type == 2) //修改等级 { LevelInfo LevelInfo22; LevelInfo22 = LevelInfo.CreateBuilder(BExtInfo.LevelInfo) .SetLevel(_level) .SetExp(_point) .Build(); BExtInfo = BExtInfo.CreateBuilder(BExtInfo) .SetLevelInfo(LevelInfo22) .Build(); } byte[] bs = BExtInfo.ToByteArray(); model.ExtInfo = bs; return(Content(RoleBLL.UpdateRole(model).ToString())); } else if (SystemType == "1") { byte[] Data = new byte[4]; Array.Copy(model.ExtInfo, 4, Data, 0, 4); int num = System.BitConverter.ToInt32(Data, 0); byte[] Grade = System.BitConverter.GetBytes(_level); byte[] Point = System.BitConverter.GetBytes(_point); for (int j = 0; j < 4; j++) { if (_type == 1) //修改VIP等级 { model.ExtInfo[16 + j] = Grade[j]; model.ExtInfo[20 + j] = Point[j]; } else if (_type == 2) //修改等级 { model.ExtInfo[36 + j] = Grade[j]; model.ExtInfo[40 + j] = Point[j]; } } return(Content(RoleBLL.UpdateRole(model).ToString())); } else { } } } //数据查询操作 if (model.ExtInfo == null) { return(View(model)); } else { if (SystemType == "2") { BExtInfo BExtInfo = BExtInfo.ParseFrom(model.ExtInfo); model.VipGrade = BExtInfo.VipInfo.Grade; //VIP等级 model.VipPoint = BExtInfo.VipInfo.Current; //VIP等级 model.LevelGrade = BExtInfo.LevelInfo.Level; //玩家等级 model.LevelPoint = BExtInfo.LevelInfo.Exp; //玩家等级 return(View(model)); } else { int indexData = 4; byte[] numData = new byte[4]; Array.Copy(model.ExtInfo, indexData, numData, 0, 4); int num = System.BitConverter.ToInt32(numData, 0); indexData = indexData + 4; byte[] DataInfo = new byte[num]; Array.Copy(model.ExtInfo, 0, DataInfo, 0, num); while (indexData < num) { //类型ID int typeid = System.BitConverter.ToInt32(DataInfo, indexData); indexData = indexData + 4; //数据长度 int datanum = System.BitConverter.ToInt32(DataInfo, indexData); indexData = indexData + 4; //VIP等级 if (typeid == 1) { model.VipGrade = System.BitConverter.ToInt32(DataInfo, indexData); model.VipPoint = System.BitConverter.ToInt32(DataInfo, indexData + 4); indexData = indexData + datanum; } //玩家等级 else if (typeid == 2) { model.LevelGrade = System.BitConverter.ToInt32(DataInfo, indexData); model.LevelPoint = System.BitConverter.ToInt32(DataInfo, indexData + 4); indexData = indexData + datanum; } else { indexData = indexData + datanum; } } return(View(model)); } } }
public bool AddBonus(int vipId, int level, DateTime startTime, DateTime endTime, int duration, float changeBonus, out string msg) { VipInfo vipInfo = GetVipInfo(vipId); if (vipInfo == null) { msg = "不存在会员号" + vipId; return(false); } SQLiteCommand cmd = conn.CreateCommand(); cmd.CommandText = string.Format("select startTime,endTime from bonus_change where id=(select max(id) from bonus_change where vipId={0} and status={1} and type<{2})" , vipId, (int)BonusChangeStatus.Normal, (int)BonusChangeType.Consume); SQLiteDataReader reader = cmd.ExecuteReader(); if (reader.Read()) { DateTime lastStartTime = reader.GetDateTime(0); DateTime lastEndTime = reader.GetDateTime(1); if ((startTime >= lastStartTime && startTime < lastEndTime) || (endTime > lastStartTime && endTime <= lastEndTime)) { msg = string.Format("当前会员该时间段已经积过分,最后一次积分时段为{0}至{1}", lastStartTime, lastEndTime); cmd.Dispose(); return(false); } } reader.Dispose(); SQLiteTransaction transaction = conn.BeginTransaction(); try { float currBonus = vipInfo.bonus + changeBonus; cmd.CommandText = string.Format("update members set bonus={0},maxBonus=maxBonus+{1},playCount=playCount+1,playDuration=playDuration+{2} where vipId={3}", currBonus, changeBonus, duration, vipId); int result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = "更新会员积分失败"; return(false); } cmd.CommandText = string.Format("insert into bonus_change(vipId, type, startTime, endTime, duration, changeBonus, currBonus) values({0}, {1}, datetime('{2}'), datetime('{3}'), {4}, {5}, {6})" , vipId, level, startTime.ToString("yyyy-MM-dd HH:mm:ss"), endTime.ToString("yyyy-MM-dd HH:mm:ss"), duration, changeBonus, currBonus); result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = "新增积分记录失败"; return(false); } transaction.Commit(); msg = string.Format("成功积分{0},当前剩余总积分{1}", changeBonus, currBonus); return(true); } catch (Exception ex) { transaction.Rollback(); msg = ex.Message; return(false); } finally { cmd.Dispose(); } }
public bool ConsumeBonus(int vipId, List <GoodsInfo> listGoodsInfo, float consumeBonus, out string msg) { VipInfo vipInfo = GetVipInfo(vipId); if (vipInfo == null) { msg = "不存在会员号" + vipId; return(false); } if (vipInfo.bonus < consumeBonus || listGoodsInfo.Count == 0) { msg = "兑换积分失败,会员剩余积分不够兑换商品"; return(false); } listGoodsInfo.Sort(); string desc = "兑换:"; string consume = ""; foreach (var goodsInfo in listGoodsInfo) { desc += goodsInfo.ToString() + ","; consume += string.Format("{0},{1},{2};", goodsInfo.id, goodsInfo.price, goodsInfo.count); } desc = desc.TrimEnd(','); SQLiteCommand cmd = conn.CreateCommand(); SQLiteTransaction transaction = conn.BeginTransaction(); try { float changeBonus = -consumeBonus; float currBonus = vipInfo.bonus + changeBonus; cmd.CommandText = string.Format("update members set bonus=bonus-{0} where vipId={1}", consumeBonus, vipId); int result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = "兑换积分失败,更新积分出错"; return(false); } cmd.CommandText = string.Format("insert into bonus_change(vipId, type, changeBonus, currBonus, desc,consume) values({0}, {1}, {2}, {3}, @desc, @consume)" , vipId, (int)BonusChangeType.Consume, changeBonus, currBonus); cmd.Parameters.AddWithValue("@desc", desc); cmd.Parameters.AddWithValue("@consume", consume); result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = "兑换积分失败,生成兑换记录出错"; return(false); } foreach (var goodsInfo in listGoodsInfo) { cmd.CommandText = string.Format("update goods set soldCount=soldCount+{0},soldBonus=soldBonus+{1} where id={2}", goodsInfo.count, goodsInfo.price * goodsInfo.count, goodsInfo.id); result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = "兑换积分失败,更新商品数量出错"; return(false); } } transaction.Commit(); msg = string.Format("积分兑换成功,兑换后会员剩余积分为{0}", currBonus); return(true); } catch (Exception ex) { transaction.Rollback(); msg = ex.Message; return(false); } finally { cmd.Dispose(); } }
public bool RevokeBonus(long id, int type, string typeName, int status, int vipId, float changeBonus, int duration, string consume, out string msg) { if (status != (int)BonusChangeStatus.Normal) { msg = "此记录不能撤销"; return(false); } VipInfo vipInfo = GetVipInfo(vipId); if (vipInfo == null) { msg = "不存在会员号" + vipId; return(false); } SQLiteCommand cmd = conn.CreateCommand(); SQLiteTransaction transaction = conn.BeginTransaction(); try { float currBonus = vipInfo.bonus - changeBonus; if (type == (int)BonusChangeType.Consume) { cmd.CommandText = string.Format("update members set bonus={0} where vipId={1}", currBonus, vipId); } else { cmd.CommandText = string.Format("update members set bonus={0},maxBonus=maxBonus-{1},playCount=playCount-1,playDuration=playDuration-{2} where vipId={3}", currBonus, changeBonus, duration, vipId); } int result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = "更新会员积分失败"; return(false); } cmd.CommandText = string.Format("insert into bonus_change(vipId, type, status, changeBonus, currBonus, desc) values({0}, {1}, {2},{3},{4},@desc)" , vipId, type, (int)BonusChangeStatus.Revoke, -changeBonus, currBonus); cmd.Parameters.AddWithValue("@desc", "撤销:序号" + id); result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = string.Format("撤销{0}记录失败", typeName); return(false); } cmd.CommandText = string.Format("update bonus_change set status={0} where id={1} and status={2}", (int)BonusChangeStatus.RevokeMark, id, (int)BonusChangeStatus.Normal); result = cmd.ExecuteNonQuery(); if (result != 1) { transaction.Rollback(); msg = string.Format("撤销{0}记录失败,可能此记录已撤销过", typeName); return(false); } transaction.Commit(); msg = string.Format("成功撤销{0},会员当前总剩余积分为{1}", typeName, currBonus); return(true); } catch (Exception ex) { transaction.Rollback(); msg = ex.Message; return(false); } finally { cmd.Dispose(); } }