public static bool IsEffectiveStore(string mobile, string xcGameDBName, ref XCCloudService.Model.XCGame.t_member memberModel, out string errMsg) { errMsg = string.Empty; XCCloudService.BLL.IBLL.XCGame.IMemberService memberService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IMemberService>(xcGameDBName); var model = memberService.GetModels(p => p.Mobile.Equals(mobile, StringComparison.OrdinalIgnoreCase)).FirstOrDefault <XCCloudService.Model.XCGame.t_member>(); if (model == null) { errMsg = "会员信息不存在"; return(false); } else if (model.MemberState != "1") { errMsg = "会员卡已" + GetMemberStateName(model.MemberState); return(false); } else if (model.Lock == 1) { errMsg = "会员已被锁定"; return(false); } else { memberModel = model; return(true); } }
/// <summary> /// 读取会员信息 /// </summary> /// <param name="mobile">手机号码</param> /// <param name="xcGameDBName">XCGame数据库名</param> /// <param name="balance">会员卡余额</param> /// <param name="icCardId">会员卡号</param> /// <param name="memberLevelId">会员</param> /// <param name="errMsg">错误信息</param> /// <returns></returns> public static bool GetMemberInfo(XCGameManaDeviceStoreType deviceStoreType, string mobile, string xcGameDBName, out int balance, out int icCardId, out int memberLevelId, out string errMsg) { balance = 0; icCardId = 0; memberLevelId = 0; errMsg = string.Empty; if (deviceStoreType == XCGameManaDeviceStoreType.Store) { XCCloudService.Model.XCGame.t_member memberModel = null; if (XCCloudService.Business.XCGame.MemberBusiness.IsEffectiveStore(mobile, xcGameDBName, ref memberModel, out errMsg)) { balance = Convert.ToInt32(memberModel.Balance); icCardId = memberModel.ICCardID; memberLevelId = Convert.ToInt32(memberModel.MemberLevelID); return(true); } else { return(false); } } else if (deviceStoreType == XCGameManaDeviceStoreType.Merch) { XCCloudService.Model.XCCloudRS232.t_member memberModel = null; if (XCCloudService.Business.XCCloud.MemberBusiness.IsEffectiveStore(mobile, ref memberModel, out errMsg)) { balance = Convert.ToInt32(memberModel.Balance); icCardId = (int)(memberModel.ICCardID); return(true); } else { return(false); } } else { return(false); } }
public object GetGameInfo(Dictionary <string, object> dicParas) { //获取token模式 XCGameMemberTokenModel memberTokenModel = (XCGameMemberTokenModel)(dicParas[Constant.XCGameMemberTokenModel]); string deviceToken = dicParas.ContainsKey("deviceToken") ? dicParas["deviceToken"].ToString() : string.Empty; StoreBusiness store = new StoreBusiness(); string xcGameDBName = string.Empty; string password = string.Empty; string errMsg = string.Empty; string storeId = string.Empty; //验证门店信息 if (!store.IsEffectiveStore(memberTokenModel.StoreId, out xcGameDBName, out password, out errMsg)) { return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg)); } //验证设备信息 XCCloudService.Model.XCGameManager.t_device deviceModel = null; XCCloudService.Model.XCGame.t_member memberModel = null; if (!DeviceManaBusiness.ExistDevice(deviceToken, ref deviceModel, out errMsg)) { return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg)); } //验证设备门店信息和会员门店信息 if (!memberTokenModel.StoreId.Equals(deviceModel.StoreId)) { return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg)); } //验证会员信息 if (!MemberBusiness.IsEffectiveStore(memberTokenModel.Mobile, xcGameDBName, ref memberModel, out errMsg)) { return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, errMsg)); } //验证头信息 XCCloudService.BLL.IBLL.XCGame.IHeadService headService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IHeadService>(xcGameDBName); var headModel = headService.GetModels(p => p.MCUID.Equals(deviceModel.DeviceId)).FirstOrDefault <XCCloudService.Model.XCGame.t_head>(); if (headModel == null) { return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "设备门店头部信息不存在")); } //验证游戏机信息 XCCloudService.BLL.IBLL.XCGame.IGameService gameService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IGameService>(xcGameDBName); var gameModel = gameService.GetModels(p => p.GameID.Equals(headModel.GameID)).FirstOrDefault <XCCloudService.Model.XCGame.t_game>(); if (gameModel == null) { return(ResponseModelFactory.CreateModel(isSignKeyReturn, Return_Code.T, "", Result_Code.F, "设备门店头部信息不存在")); } //获取游戏机投币规则 XCCloudService.BLL.IBLL.XCGame.IPushRuleService pushRuleService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IPushRuleService>(xcGameDBName); List <XCCloudService.Model.XCGame.t_push_rule> pushRuleModelList = pushRuleService.GetModels(p => p.game_id.Equals(headModel.GameID) && p.member_level_id == memberModel.MemberLevelID).OrderBy(p => p.level).ToList <XCCloudService.Model.XCGame.t_push_rule>(); List <int> pushRuleModelResultList = new List <int>(); //验证会员是否存在优惠记录 List <object> gameFreeRuleObjList = new List <object>(); List <XCCloudService.Model.XCGame.t_game_free_rule> gameFreeRuleModelList = null; XCCloudService.BLL.IBLL.XCGame.IFlwGameFreeService flwGameFreeService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IFlwGameFreeService>(xcGameDBName); var flwGameFreeModel = flwGameFreeService.GetModels(p => p.GameID.Equals(headModel.GameID) && p.ICCardID.Equals(memberModel.ICCardID.ToString())).FirstOrDefault <XCCloudService.Model.XCGame.flw_game_free>(); if (flwGameFreeModel == null) { //如果不存在优惠记录,则返回优惠信息 XCCloudService.BLL.IBLL.XCGame.IGameFreeRuleService gameFreeRuleService = BLLContainer.Resolve <XCCloudService.BLL.IBLL.XCGame.IGameFreeRuleService>(xcGameDBName); gameFreeRuleModelList = gameFreeRuleService.GetModels( p => p.GameID.Equals(headModel.GameID) && p.MemberLevelID == memberModel.MemberLevelID && p.State == "启用").ToList <XCCloudService.Model.XCGame.t_game_free_rule>(); } gameFreeRuleModelList = gameFreeRuleModelList.OrderBy(p => p.FreeCoin / decimal.Parse(p.NeedCoin.ToString())).ToList <XCCloudService.Model.XCGame.t_game_free_rule>(); for (int i = 0; i < gameFreeRuleModelList.Count; i++) { DateTime currentTime = System.DateTime.Now; if (currentTime >= gameFreeRuleModelList[i].StartTime && currentTime <= gameFreeRuleModelList[i].EndTime) { var obj = new { id = gameFreeRuleModelList[i].ID, needCoin = gameFreeRuleModelList[i].NeedCoin, freeCoin = gameFreeRuleModelList[i].FreeCoin, exitCoin = gameFreeRuleModelList[i].ExitCoin }; gameFreeRuleObjList.Add(obj); } } foreach (var pushRuleModel in pushRuleModelList) { if (gameModel.PushReduceFromCard > pushRuleModel.coin) { pushRuleModelResultList.Add(Convert.ToInt32(gameModel.PushReduceFromCard)); } } if (pushRuleModelResultList.Count == 0) { pushRuleModelResultList.Add(Convert.ToInt32(gameModel.PushReduceFromCard)); } var obj2 = new { gameId = gameModel.GameID, gameName = gameModel.GameName, gameType = GetGameType(gameModel.GameType), price = gameModel.PushReduceFromCard, discountPrice = pushRuleModelResultList[0], gameFreeRule = gameFreeRuleObjList }; return(ResponseModelFactory.CreateAnonymousSuccessModel(isSignKeyReturn, obj2)); }