Exemplo n.º 1
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <Game> >(request);
            var cmd = CommandHelper.CreateProcedure <Game>(text: "sp_GetGame");

            cmd.Params.Add(CommandHelper.CreateParam("@userId", currentUser.Id));
            cmd.Params.Add(CommandHelper.CreateParam("@gameId", req.Filter.Id));

            var result = DbContext.GetInstance().Execute(cmd);

            if (result.Entities.IsNotNullOrEmpty())
            {
                var game = result.FirstEntity <Game>();
                SetHeadAndFiles(game);
                GameHelper.SetGameTeamList(game);
                game.SocketIpAndPort = UserHelper.GetConfig().IntranetSocketIpAndPort;//返回局域网内的地址
                game.IsInLive        = LiveHelper.Instance.IsInLive(game.Id);
                game.IsAudit         = game.AuditId == null || !game.AuditId.Contains(currentUser.Id) ? false : true;
                game.IsManage        = game.ManageId == null || !game.ManageId.Contains(currentUser.Id) ? false : true;
                game.AuditName       = UserHelper.GetMultiUserName(game.AuditId); //返回名称
                game.ManageName      = UserHelper.GetMultiUserName(game.ManageId);
                game.WinGameArr      = new int[] { 2, 3, 4 };                     //小局胜局数
            }

            return(result);
        }
Exemplo n.º 2
0
        public Response Execute(string request)
        {
            Response response = ResultHelper.CreateResponse();

            response.Tag = UserHelper.GetConfig().IntranetSocketIpAndPort;//局域网SOCKET地址
            return(response);
        }
Exemplo n.º 3
0
        public Response Execute(string request)
        {
            Response response = ResultHelper.CreateResponse();

            response.Tag = UserHelper.GetConfig().SocketIpAndPort;//云SOCKET地址,目前只供直播比分显示使用
            return(response);
        }
Exemplo n.º 4
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            var sql = @" 
  SELECT * FROM dbo.CoachPrice WHERE CityCode=@CityId
 ";
            var cmd = CommandHelper.CreateText <CoachPrice>(FetchType.Fetch, sql);

            cmd.Params.Add("@CityId", req.Filter.CityId);

            var result = DbContext.GetInstance().Execute(cmd);
            var obj    = result.FirstEntity <CoachPrice>();

            if (obj != null)
            {
                if (obj.IsEnabled == false)
                {
                    result.IsSuccess = false;
                    return(ResultHelper.Fail(ErrorCode.CITY_NOPRICE_COACH, "此城市暂无价格, 不能购买"));
                }
                obj.BigCourseValidDate = UserHelper.GetConfig().BigCourseValidDays / 30;
                obj.CityCode           = obj.CityCode.Trim();
            }
            else
            {
                return(ResultHelper.Fail(ErrorCode.CITY_NOPRICE_COACH, "此城市暂无价格, 不能购买"));
            }

            return(result);
        }
Exemplo n.º 5
0
        public static Response Execute(string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            Response rsp = ResultHelper.CreateResponse();

            rsp.Tag = UserHelper.GetConfig().IntranetSocketIpAndPort;
            return(rsp);
        }
Exemplo n.º 6
0
        public Response Execute(User currentUser, string request)
        {
            Response response = ResultHelper.CreateResponse();

            response.IsSuccess = true;
            response.Tag       = UserHelper.GetConfig().YueDouConvertibleProportion;
            return(response);
        }
Exemplo n.º 7
0
        public static Response Execute(string request)
        {
            Response rsp = ResultHelper.CreateResponse();

            rsp.Tag  = "http://" + UserHelper.GetConfig().IntranetHttpIpAndPort;
            rsp.Tag1 = UserHelper.GetConfig().IntranetSocketIpAndPort;
            return(rsp);
        }
Exemplo n.º 8
0
 /// <summary>
 /// 获取有效期
 /// </summary>
 /// <param name="CourseTypeId"></param>
 /// <param name="times">倍数(数据库配置1个单位课程的有效期,购买N个单位,即为此有效期的N倍)</param>
 /// <returns></returns>
 public static DateTime GetDeadline(string CourseTypeId, int times)
 {
     if (CourseTypeId == Model.CoachDic.BigCourse)
     {
         var validDays = UserHelper.GetConfig().BigCourseValidDays;
         return(DateTime.Now.AddDays(validDays * times));
     }
     else
     {
         return(DateTime.MaxValue);
     }
 }
Exemplo n.º 9
0
        /// <summary>
        /// 增减庄家的悦豆
        /// 业务逻辑:
        /// 如果输的一方全部陪给赢的一方, 钱还不够, 就从庄家哪里扣.
        /// 如果输的一方赔完了,输的那方还有剩, 就把这剩的钱给庄家.
        /// </summary>
        /// <param name="guess"></param>
        /// <param name="totalYuedou"></param>
        /// <param name="bingoTotalYueDou"></param>
        /// <param name="declarerDeposit">庄家的钱</param>
        /// <returns></returns>
        public Response AddOrSubDeclarerYueDou(Guess guess, int totalYuedou
                                               , int bingoTotalYueDou, int declarerDeposit, string betType)
        {
            Response rsp = ResultHelper.CreateResponse();
            //悦豆账单实体
            var yueDouFlow = new YueDouFlow();

            yueDouFlow.UserId       = guess.CreatorId;
            yueDouFlow.FlowType     = GuessDic.GuessEarn;
            yueDouFlow.GameId       = guess.GuessVSDetail.GameId;
            yueDouFlow.GuessId      = guess.Id;
            yueDouFlow.GuessBetType = betType;

            var defeatTotal     = totalYuedou - bingoTotalYueDou;                //输方总悦豆
            var differenceValue = defeatTotal - guess.NeedPayToBingoTotalYueDou; //用输方的钱来支付, 看是余还是差

            if (differenceValue == 0)                                            //刚好够,庄家的钱不扣, 本金原路返回到他的账户
            {
                //返还悦豆
                rsp = GuessHelper.Instance.AddOrSubYueDou(declarerDeposit, guess.CreatorId);
                //记录账单
                yueDouFlow.Amount = declarerDeposit;
                rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
            }
            else if (differenceValue > 0)//有余, 就将余下的钱返给庄家(含本金), 返前扣除手续费
            {
                //返还悦豆
                var serviceCharge    = differenceValue * (UserHelper.GetConfig().GuessServiceCharge / 100);//手续费
                var earnValueDecimal = differenceValue - serviceCharge;
                var earnYueDou       = Convert.ToInt32(earnValueDecimal);
                var amount           = declarerDeposit + earnYueDou;//本金+赚得的
                rsp = GuessHelper.Instance.AddOrSubYueDou(amount, guess.CreatorId);
                //记录账单
                yueDouFlow.Amount        = amount;
                yueDouFlow.ServiceCharge = serviceCharge;
                rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
            }
            else if (differenceValue < 0)//不够,就从庄家押金里面扣, 将剩余的再返给庄家账户
            {
                var restOfValueDecimal = declarerDeposit + differenceValue;
                if (restOfValueDecimal > 0)
                {
                    var restOfValue = Convert.ToInt32(restOfValueDecimal);
                    rsp = GuessHelper.Instance.AddOrSubYueDou(restOfValue, guess.CreatorId);
                    //记录账单
                    yueDouFlow.Amount = restOfValue;
                    rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
                }
            }

            SystemHelper.CheckResponseIfError(rsp);
            return(rsp);
        }
Exemplo n.º 10
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <Game> >(request);
            var obj = req.FirstEntity();
            var sql = @"
UPDATE dbo.Game 
SET IsEnableTV=@IsEnableTV 
WHERE Id=@Id 
";
            var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql);

            cmd.Params.Add("@IsEnableTV", obj.IsEnableTV);
            cmd.Params.Add("@Id", obj.Id);

            var result = DbContext.GetInstance().Execute(cmd);

            result.Tag = UserHelper.GetConfig().SocketIpAndPort;
            return(result);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 用户登录(done)
        /// </summary>
        public Response Execute(string request)
        {
            var req  = JsonConvert.DeserializeObject <Request <User> >(request);
            var temp = req.Filter;

            ////移动内部测试版本,PC版本跳过版本验证
            //if (!req.IsInnerTest && temp.DeviceType != DeviceType.PC)
            //{
            //    if (temp.DeviceVersion.IsNullOrEmpty())
            //    {
            //        return ResultHelper.Fail("没有附加版本号。");
            //    }
            //    else if (SystemHelper.HasNewVersion(temp.DeviceType, temp.DeviceVersion))
            //    {
            //        return ResultHelper.Fail(ErrorCode.NEW_VERSION, "发现新版本,请更新。");
            //    }
            //}

            //登录验证
            var user = CacheUserBuilder.Instance.Login(temp.Code, temp.Password, temp.DeviceType);

            if (user != null)
            {
                user.UserLimit = UserHelper.GetUserLimit(user.Id);
                user.Config    = UserHelper.GetConfig();
                user.userId    = user.Id;
                user.LoginType = SystemDic.YDL_LOGIN;
                user.LimitList = GetLimitByUser_196.GetLimitList(user.Id);

                //获取IM TOKEN
                IMToken token = new IMToken();
                token.UserSig     = IMUserSig.GetUserSig(user.Code);
                token.Sdkappid    = IMRequest.sdkappid;
                token.AccountType = IMRequest.AccountType;
                token.Identifier  = user.Code;
                user.ImToken      = token;
            }
            Response result = ResultHelper.Success(new List <EntityBase> {
                user
            });

            return(result);
        }
Exemplo n.º 12
0
        public Response Execute(string request)
        {
            var req = JsonConvert.DeserializeObject <Request <Game> >(request);
            var cmd = CommandHelper.CreateProcedure <Game>(text: "sp_GetGame");

            cmd.Params.Add(CommandHelper.CreateParam("@userId", "tourist"));
            cmd.Params.Add(CommandHelper.CreateParam("@gameId", req.Filter.Id));

            var result = DbContext.GetInstance().Execute(cmd);

            if (result.Entities.IsNotNullOrEmpty())
            {
                var game = result.FirstEntity <Game>();
                GetGame.SetHeadAndFiles(game);
                GameHelper.SetGameTeamList(game);
                game.SocketIpAndPort = UserHelper.GetConfig().IntranetSocketIpAndPort;//返回局域网内的地址
            }

            return(result);
        }
Exemplo n.º 13
0
        public Response GetVenuePayInfo(Request <GetVipRelatedFilter> req, VipPayInfo obj, User currentUser)
        {
            Response rsp = new Response();
            //获取 Name, HeadUrl
            var sql = @"
SELECT HeadUrl,Name FROM dbo.Venue WHERE Id=@Id
";
            var cmd = CommandHelper.CreateText <Venue>(FetchType.Fetch, sql);

            cmd.Params.Add("@Id", req.Filter.MasterId);
            rsp = DbContext.GetInstance().Execute(cmd);
            if (rsp.Entities.Count > 0)
            {
                obj.HeadUrl = rsp.FirstEntity <Venue>().HeadUrl;
                obj.Name    = rsp.FirstEntity <Venue>().Name;
            }
            //获取我的余额
            var myBalance = VipHelper.GetVipAccount(currentUser.Id).FirstEntity <VipAccount>();

            if (myBalance != null)
            {
                obj.MyBalance = myBalance.Balance;
            }
            //折扣信息
            obj.Discount = 1;
            //支付状态
            if (req.Filter.PayType == "Use")
            {
                obj.PayState = GetVipUsePayState(req.Filter.PayId, req.Filter.PayType);
            }
            else
            {
                obj.PayState = GetVipBuyPayState(req.Filter.PayId, req.Filter.PayType);
            }

            obj.VipRechargeScaleList  = VipHelper.GetVipRechargeScaleList().Entities.ToList <EntityBase, VipRechargeScale>();
            obj.YueDouBalance         = PayHelper.Instance.GetYueDouBalance(currentUser.Id);
            obj.ConvertibleProportion = UserHelper.GetConfig().YueDouConvertibleProportion;

            return(rsp);
        }
Exemplo n.º 14
0
        public static void SendRefreshCacheMsg()
        {
            //设定服务器IP地址
            string[]  ipPort       = UserHelper.GetConfig().IntranetSocketIpAndPort.Split(new char[] { ':' });
            string    ipStr        = ipPort[0];
            string    port         = ipPort[1];
            IPAddress ip           = IPAddress.Parse(ipStr);
            Socket    clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try
            {
                clientSocket.Connect(new IPEndPoint(ip, Convert.ToInt32(port))); //配置服务器IP与端口
                Console.WriteLine("连接服务器成功");
            }
            catch
            {
                Console.WriteLine("连接服务器失败,请按回车键退出!");
                return;
            }

            //通过 clientSocket 发送数据

            try
            {
                SocketMessage msgObj = new SocketMessage();
                msgObj.ServerAction = "RefreshTVConfigCache";
                string msg = JsonConvert.SerializeObject(msgObj);
                clientSocket.Send(Encoding.UTF8.GetBytes(msg));
                Console.WriteLine("向服务器发送消息:{0}" + msg);
            }
            catch
            {
                clientSocket.Shutdown(SocketShutdown.Both);
                clientSocket.Close();
            }
            Console.WriteLine("发送完毕,按回车键退出");
        }
Exemplo n.º 15
0
        /// <summary>
        /// 返悦豆给用户
        /// </summary>
        /// <param name="bingoBetList"></param>
        /// <param name="guess"></param>
        /// <param name="odds">赔率</param>
        /// <returns></returns>
        public Response BackYueDouToUser(List <GuessBet> bingoBetList, Guess guess, decimal odds)
        {
            Response rsp = ResultHelper.CreateResponse();
            int      NeedPayToBingoTotalYueDou = 0;

            foreach (var item in bingoBetList)
            {
                var     earnYueDou               = item.Amount * (odds - 1);                                       //赚得的悦豆
                var     serviceChargeDecimal     = earnYueDou * (UserHelper.GetConfig().GuessServiceCharge / 100); //手续费
                int     serviceCharge            = Convert.ToInt32(serviceChargeDecimal);                          //舍弃小数位,少收点手续费
                decimal finalEarn                = earnYueDou - serviceCharge;                                     //最后赚的
                var     returnYuedouTotalDecimal = item.Amount + finalEarn;                                        //返回的总悦豆=本金+最后赚得
                int     returnYuedouTotal        = Convert.ToInt32(returnYuedouTotalDecimal);                      //返回的总悦豆,舍弃小数位
                //返还悦豆给此用户
                rsp = GuessHelper.Instance.AddOrSubYueDou(returnYuedouTotal, item.UserId);
                SystemHelper.CheckResponseIfError(rsp);

                //保存此用户的悦豆账单(含手续费数据)
                var yueDouFlow = new YueDouFlow();
                yueDouFlow.Amount        = returnYuedouTotal;//返回的总悦豆-本金=赚的
                yueDouFlow.UserId        = item.UserId;
                yueDouFlow.FlowType      = GuessDic.GuessEarn;
                yueDouFlow.ServiceCharge = serviceCharge;
                yueDouFlow.GameId        = guess.GuessVSDetail.GameId;
                yueDouFlow.GuessId       = guess.Id;
                rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
                SystemHelper.CheckResponseIfError(rsp);

                //累计需要支付的总悦豆
                NeedPayToBingoTotalYueDou += Convert.ToInt32(earnYueDou);
            }
            rsp.IsSuccess = true;
            guess.NeedPayToBingoTotalYueDou = NeedPayToBingoTotalYueDou;

            return(rsp);
        }