Пример #1
0
        public Response Execute(User currentUser, string request)
        {
            var               req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            Response          rsp = ResultHelper.CreateResponse();
            CoachOrganization obj = new CoachOrganization();

            if (!string.IsNullOrEmpty(req.Filter.SealedOrganizationManagerId))
            {
                obj = getOrgByManagerId(req.Filter.SealedOrganizationManagerId);
            }
            if (!string.IsNullOrEmpty(req.Filter.CoachId))
            {
                obj = getOrgByCoachId(req.Filter.CoachId);
            }
            else if (!string.IsNullOrEmpty(req.Filter.SealedOrganizationId))
            {
                obj = getOrgById(req.Filter.SealedOrganizationId);
            }
            //人员统计
            SetCoachCount(obj);
            SetStudentCount(obj);
            SetCourseCount(obj);
            rsp.Entities.Add(obj);
            return(rsp);
        }
Пример #2
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request);
            Response rsp = ResultHelper.CreateResponse();

            if (req.Filter.CourseTypeId == CoachDic.BootcampCourse)
            {
                //集训课程
                var cmd = CommandHelper.CreateProcedure <CoachCourse>(text: "GetBootcampHaveBeenCourseList");
                cmd.Params.Add(CommandHelper.CreateParam("@StudentId", req.Filter.CurrentUserId));
                cmd.CreateParamPager(req.Filter);

                rsp = DbContext.GetInstance().Execute(cmd);
                rsp.SetRowCount();
            }
            else
            {
                //常规课程
                var cmd = CommandHelper.CreateProcedure <CoachCourse>(text: "GetCourseList");
                cmd.Params.Add(CommandHelper.CreateParam("@ReservedPersonId", req.Filter.CurrentUserId));
                cmd.Params.Add(CommandHelper.CreateParam("@CourseType", req.Filter.CourseTypeId));
                cmd.CreateParamPager(req.Filter);

                rsp = DbContext.GetInstance().Execute(cmd);
                rsp.SetRowCount();
            }



            return(rsp);
        }
Пример #3
0
        public Response Execute(User currentUser, string request)
        {
            Response rsp = ResultHelper.CreateResponse();

            rsp.Tag = CoachHelper.Instance.IsSealedCoach(currentUser.Id);
            return(rsp);
        }
Пример #4
0
        /// <summary>
        /// 保存庄家的投注
        /// </summary>
        /// <param name="amount">庄家的投注总悦豆</param>
        /// <param name="guess"></param>
        /// <returns></returns>
        private void SaveDeclarerBet(string betType, int amount, Guess guess)
        {
            Response rsp = ResultHelper.CreateResponse();

            //扣除庄家的悦豆
            rsp = GuessHelper.Instance.AddOrSubYueDou(-amount, guess.CreatorId);
            SystemHelper.CheckResponseIfError(rsp);

            // 插入庄家的投注记录
            GuessBet          obj     = new GuessBet();
            List <EntityBase> entites = new List <EntityBase>();

            entites.Add(obj);
            obj.RowState = RowState.Added;
            obj.Amount   = amount;
            obj.GuessId  = guess.Id;
            obj.UserId   = guess.CreatorId;
            obj.BetType  = betType;
            obj.TrySetNewEntity();

            rsp = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));
            SystemHelper.CheckResponseIfError(rsp);

            //插入悦豆消费账单
            var yueDouFlow = new YueDouFlow();

            yueDouFlow.Amount   = -amount;
            yueDouFlow.UserId   = guess.CreatorId;
            yueDouFlow.FlowType = GuessDic.GuessCost;
            yueDouFlow.GuessId  = guess.Id;
            rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
            SystemHelper.CheckResponseIfError(rsp);
        }
Пример #5
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <GetGuessRelatedFilter> >(request);
            Response rsp = ResultHelper.CreateResponse();

            rsp.IsSuccess = true;
            if (req.Filter.WinNumber == 3)
            {
                rsp.Entities.AddRange(GetFiveHitThreeVictory());
            }
            else if (req.Filter.WinNumber == 2)
            {
                rsp.Entities.AddRange(GetThreeHitTwoVictory());
            }
            else if (req.Filter.WinNumber == 4)
            {
                rsp.Entities.AddRange(GetSevenHitFourVictory());
            }
            //所有的赔率默认值给2
            foreach (var item in rsp.Entities)
            {
                var guessScore = item as GuessScore;
                guessScore.Odds = 2;
            }
            return(rsp);
        }
Пример #6
0
        public Response Execute(string request)
        {
            Response response = ResultHelper.CreateResponse();

            response.Tag = UserHelper.GetConfig().SocketIpAndPort;//云SOCKET地址,目前只供直播比分显示使用
            return(response);
        }
Пример #7
0
        public Response Execute(string request)
        {
            Response response = ResultHelper.CreateResponse();

            response.Tag = UserHelper.GetConfig().IntranetSocketIpAndPort;//局域网SOCKET地址
            return(response);
        }
Пример #8
0
        /// <summary>
        /// 增减悦豆(如果用户悦豆余额记录不存在,会创建一条余额记录)
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public Response AddOrSubYueDou(int Amount, string UserId)
        {
            Response rsp = ResultHelper.CreateResponse();
            //先判断此用户是否存在余额记录
            var balance = GetYueDouBalance(UserId);

            if (balance == null)
            {
                //不存在就插入初始记录
                YueDou            obj     = new YueDou();
                List <EntityBase> entites = new List <EntityBase>();
                entites.Add(obj);
                obj.UserId   = UserId;
                obj.Balance  = 0;
                obj.RowState = RowState.Added;
                obj.TrySetNewEntity();
                rsp = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));
                if (!rsp.IsSuccess)
                {
                    return(rsp);
                }
            }

            //增减悦豆
            var sql = @" UPDATE dbo.YueDou SET Balance=Balance+@Amount WHERE UserId=@UserId ";
            var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql);

            cmd.Params.Add("@Amount", Amount);//正数加, 负数为减
            cmd.Params.Add("@UserId", UserId);
            rsp = DbContext.GetInstance().Execute(cmd);
            return(rsp);
        }
Пример #9
0
        public Response Execute(User currentUser, string request)
        {
            var req    = JsonConvert.DeserializeObject <Request <VipUse> >(request);
            var vipUse = req.FirstEntity();

            if (string.IsNullOrEmpty(vipUse.CityId))
            {
                vipUse.CityId = "75";
            }

            Response rsp = ResultHelper.CreateResponse();

            //生成 待支付订单
            vipUse.Id          = Ext.NewId();
            vipUse.MasterType  = MasterType.YUEDOUPAY.Id;
            vipUse.MasterId    = "";
            vipUse.VenueId     = "";
            vipUse.CostTypeId  = CostType.YUEDOUCOST.Id;
            vipUse.Discount    = 1;
            vipUse.Amount      = vipUse.TotalAmount * vipUse.Discount;
            vipUse.PayState    = PayState.PAY.Id;//待支付
            vipUse.IsOwnCreate = true;
            vipUse.CreatorId   = currentUser.Id;
            vipUse.CreateDate  = DateTime.Now;
            rsp.Tag            = VipHelper.SaveVipUse(vipUse);
            rsp.IsSuccess      = true;
            return(rsp);
        }
Пример #10
0
        public static Response Execute(string request)
        {
            Response rsp = ResultHelper.CreateResponse();

            rsp.Tag  = "http://" + UserHelper.GetConfig().IntranetHttpIpAndPort;
            rsp.Tag1 = UserHelper.GetConfig().IntranetSocketIpAndPort;
            return(rsp);
        }
Пример #11
0
        public Response Execute(User currentUser, string request)
        {
            Response response = ResultHelper.CreateResponse();

            response.IsSuccess = true;
            response.Tag       = UserHelper.GetConfig().YueDouConvertibleProportion;
            return(response);
        }
Пример #12
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);
        }
Пример #13
0
        public Response Execute(User currentUser, string request)
        {
            var           req = JsonConvert.DeserializeObject <Request <GetSystemManageRelatedFilter> >(request);
            Response      rsp = ResultHelper.CreateResponse();
            CoachBootcamp obj = CoachHelper.Instance.GetCoachBootcampById(req.Filter.CoachBootcampId);

            rsp.Entities.Add(obj);
            return(rsp);
        }
Пример #14
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <GetGuessRelatedFilter> >(request);
            Response rsp = ResultHelper.CreateResponse();

            rsp.IsSuccess = true;
            rsp.Entities.Add(GuessHelper.Instance.GetYueDouBalance(req.Filter.CurrentUserId));
            return(rsp);
        }
Пример #15
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);
        }
Пример #16
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <VipPayInfo> >(request);
            var      obj = req.FirstEntity();
            Response rsp = ResultHelper.CreateResponse();

            //判断余额是否够
            if (!GuessHelper.Instance.IsBalanceSufficient(obj.CurrentUserId, obj.YueDouAmount))
            {
                return(ResultHelper.Fail("没有足够的悦豆余额, 请充值"));
            }

            //扣除悦豆
            rsp = GuessHelper.Instance.AddOrSubYueDou(-obj.YueDouAmount, obj.CurrentUserId);
            //插入悦豆账单
            if (rsp.IsSuccess)
            {
                var yueDouFlow = new YueDouFlow();
                yueDouFlow.Amount   = -obj.YueDouAmount;
                yueDouFlow.UserId   = obj.CurrentUserId;
                yueDouFlow.FlowType = GuessDic.VenueCost;
                rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
            }

            //增加场馆创建者的悦豆数
            Venue venue = VenueHelper.Instance.GetVenueById(obj.VenueId);

            if (rsp.IsSuccess)
            {
                rsp = GuessHelper.Instance.AddOrSubYueDou(obj.YueDouAmount, venue.CreatorId);
                //插入悦豆账单
                var yueDouFlow = new YueDouFlow();
                yueDouFlow.Amount   = obj.YueDouAmount;
                yueDouFlow.UserId   = venue.CreatorId;
                yueDouFlow.FlowType = GuessDic.VenueEarn;
                rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
            }

            //返回成功支付的信息
            VipUse vipUse = new VipUse();

            vipUse.OrderNo    = SystemHelper.GetSerialNo(SerialNoType.VipUse);
            vipUse.Amount     = obj.YueDouAmount;
            vipUse.Remark     = "";
            vipUse.PayDate    = DateTime.Now;
            vipUse.MasterName = venue.Name;
            rsp.Entities.Add(vipUse);
            return(rsp);
        }
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <CoachBootcampCourse> >(request);
            var      obj = req.FirstEntity();
            Response rsp = ResultHelper.CreateResponse();

            //删除
            if (obj.RowState == RowState.Deleted)
            {
                return(Delete(obj));
            }

            #region 添加或修改
            string errorMsg;
            //判断时间是否有效
            errorMsg = CoachHelper.Instance.CheckTimeValidForBootcampCourseTemplate(obj.BeginTime, obj.EndTime);
            if (errorMsg != "")
            {
                return(ResultHelper.Fail(errorMsg));
            }

            //判断时间范围是否和已有课程时间范围重合
            if (IsRepeatPeriodInPrivateCoach(obj))
            {
                return(ResultHelper.Fail("和其他课程时间已重合, 不能创建课程"));
            }

            List <EntityBase> entites = new List <EntityBase>();
            entites.Add(obj);

            if (obj.RowState == RowState.Added)
            {
                obj.TrySetNewEntity();
            }
            var bootcamp = CoachHelper.Instance.GetCoachBootcampById(obj.CoachBootcampId);
            if (bootcamp != null)
            {
                obj.SealedOrganizationId = bootcamp.SealedOrganizationId;
            }
            else
            {
                return(ResultHelper.Fail("封闭机构id不能为空"));
            }

            rsp = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));
            return(rsp);

            #endregion 添加或修改
        }
Пример #18
0
        public Response Execute(User currentUser, string request)
        {
            var      req   = JsonConvert.DeserializeObject <Request <Guess> >(request);
            var      guess = req.FirstEntity();
            Response rsp   = ResultHelper.CreateResponse();
            //判断庄家的余额是否够
            var amount         = guess.VictoryDefeatDeclarerDeposit + guess.ScoreDeclarerDeposit;//庄家押的悦豆
            int declarerAmount = Convert.ToInt32(amount);

            if (!GuessHelper.Instance.IsBalanceSufficient(guess.CreatorId, declarerAmount))
            {
                return(ResultHelper.Fail(ErrorCode.YUEDOU_INSUFFICIENT, "没有足够的悦豆余额, 请充值"));
            }

            //保存竞猜
            List <EntityBase> entites = new List <EntityBase>();

            entites.Add(guess);

            if (guess.RowState == RowState.Added)
            {
                guess.State = GuessDic.NotSettlement;
                guess.TrySetNewEntity();
            }

            //庄家押金相关处理
            if (guess.RowState == RowState.Added)
            {
                AddDeclarerDeposit(guess);
            }

            if (guess.RowState == RowState.Modified)
            {
                ModifiedDeclarerDeposit(guess);
            }

            //保存竞猜
            rsp = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));
            //保存比分列表
            if (guess.GuessType == GuessDic.Score || guess.GuessType == GuessDic.VictoryDefeatAndScore)
            {
                rsp = SaveScoreList(guess);
            }

            return(rsp);
        }
Пример #19
0
        /// <summary>
        /// 封闭机构教练处理
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public Response SaveSealedOrganizationCoach(Coach obj)
        {
            Response rsp = ResultHelper.CreateResponse();

            if (IsInYDLAuditFlow(obj.Id))
            {
                return(ResultHelper.Fail("悦动力审核中的教练,不允许添加"));
            }
            if (obj.RowState == RowState.Added)
            {
                //先删除
                rsp = DeleteCoach(obj.Id);
                if (rsp.IsSuccess)
                {
                    //后添加
                    obj.RowState = RowState.Added;
                    rsp          = AddCoach(obj);
                }
            }
            else if (obj.RowState == RowState.Modified)
            {
                //从数据库查询出原始教练信息
                Coach originalCoach = CoachHelper.Instance.GetCoach(obj.Id);
                //赋新修改的值
                originalCoach.HeadUrl = obj.HeadUrl;
                originalCoach.Name    = obj.Name;

                originalCoach.IdCardBackUrl  = obj.IdCardBackUrl;
                originalCoach.IdCardFrontUrl = obj.IdCardFrontUrl;
                originalCoach.CardId         = obj.CardId;

                originalCoach.VenueId           = obj.VenueId;
                originalCoach.BeginTeachingDate = obj.BeginTeachingDate;
                originalCoach.Qualification     = obj.Qualification;
                //先删除
                rsp = DeleteCoach(originalCoach.Id);
                if (rsp.IsSuccess)
                {
                    //后添加
                    originalCoach.RowState = RowState.Added;
                    rsp = AddCoach(originalCoach);
                }
            }

            return(rsp);
        }
Пример #20
0
        ///// <summary>
        ///// 处理比分竞猜 庄家的押金投注
        ///// </summary>
        ///// <returns></returns>
        //private Response DealScoreDeclarerBet(Guess guess)
        //{
        //    Response rsp = ResultHelper.CreateResponse();

        //    if (guess.RowState == RowState.Added)//添加操作
        //    {
        //        //扣除庄家的投注
        //        rsp = SaveDeclarerBet(GuessDic.DeclarerScore, Convert.ToInt32(guess.ScoreDeclarerDeposit), guess);
        //        SystemHelper.CheckResponseIfError(rsp);
        //    }

        //    if (guess.RowState == RowState.Modified)////修改操作
        //    {
        //        var oldGuess = GuessHelper.Instance.GetGuess(guess.Id);

        //        //如果是从胜负竞猜切换到 比分竞猜,检查胜负竞猜那边有木有押金需要返回, 如果有就返还
        //        if ((oldGuess.GuessType == GuessDic.VictoryDefeat || oldGuess.GuessType == GuessDic.VictoryDefeatAndScore)
        //            && guess.GuessType == GuessDic.Score)
        //        {
        //            //返还之前的胜负投注
        //            UndoDeclarerBet(GuessDic.DeclarerVictoryDefeat, Convert.ToInt32(oldGuess.VictoryDefeatDeclarerDeposit), guess);
        //        }

        //        //先撤销之前的比分投注
        //        UndoDeclarerBet(GuessDic.DeclarerScore, Convert.ToInt32(oldGuess.ScoreDeclarerDeposit), guess);
        //        //再进行新的比分的投注
        //        SaveDeclarerBet(GuessDic.DeclarerScore, Convert.ToInt32(guess.ScoreDeclarerDeposit), guess);

        //    }


        //    return rsp;
        //}

        ///// <summary>
        ///// 处理胜负 庄家的押金投注
        ///// </summary>
        ///// <returns></returns>
        //private Response DeaVictoryDefeatDeclarerBet(Guess guess)
        //{
        //    Response rsp = ResultHelper.CreateResponse();

        //    if (guess.RowState == RowState.Added)//添加操作
        //    {
        //        //扣除庄家的投注
        //        rsp = SaveDeclarerBet(GuessDic.DeclarerVictoryDefeat, Convert.ToInt32(guess.VictoryDefeatDeclarerDeposit), guess);
        //        SystemHelper.CheckResponseIfError(rsp);
        //    }
        //    else if (guess.RowState == RowState.Modified)////修改操作
        //    {

        //        var oldGuess = GuessHelper.Instance.GetGuess(guess.Id);
        //        //如果是从比分竞猜切换到 胜负竞猜,检查比分竞猜那边有木有押金需要返回, 如果有就返还
        //        if ((oldGuess.GuessType == GuessDic.Score || oldGuess.GuessType == GuessDic.VictoryDefeatAndScore)
        //            && guess.GuessType == GuessDic.VictoryDefeat)
        //        {
        //            //返还之前的比分投注
        //            UndoDeclarerBet(GuessDic.DeclarerScore, Convert.ToInt32(oldGuess.ScoreDeclarerDeposit), guess);
        //        }


        //        //先撤销之前的胜负投注
        //        UndoDeclarerBet(GuessDic.DeclarerVictoryDefeat, Convert.ToInt32(oldGuess.VictoryDefeatDeclarerDeposit), guess);
        //        //再插入新的庄家胜负投注
        //        SaveDeclarerBet(GuessDic.DeclarerVictoryDefeat, Convert.ToInt32(guess.VictoryDefeatDeclarerDeposit), guess);

        //    }


        //    return rsp;
        //}


        public void AddDeclarerDeposit(Guess guess)
        {
            Response rsp = ResultHelper.CreateResponse();

            //比分竞猜的相关处理
            if (guess.GuessType == GuessDic.Score || guess.GuessType == GuessDic.VictoryDefeatAndScore)
            {
                //添加时扣除庄家的比分投注
                SaveDeclarerBet(GuessDic.DeclarerScore, Convert.ToInt32(guess.ScoreDeclarerDeposit), guess);
            }

            //胜负竞猜的相关处理
            if (guess.GuessType == GuessDic.VictoryDefeat || guess.GuessType == GuessDic.VictoryDefeatAndScore)
            {
                //添加时扣除庄家的胜负投注
                SaveDeclarerBet(GuessDic.DeclarerVictoryDefeat, Convert.ToInt32(guess.VictoryDefeatDeclarerDeposit), guess);
            }
        }
Пример #21
0
        public Response SetSealedOrganizationId(Coach obj)
        {
            Response rsp = ResultHelper.CreateResponse();

            if (obj.RowState == RowState.Added)
            {
                var sql = @"
UPDATE dbo.Coach SET SealedOrganizationId=@SealedOrganizationId WHERE Id=@Id
";
                var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql);
                cmd.Params.Add("@SealedOrganizationId", obj.SealedOrganizationId);
                cmd.Params.Add("@Id", obj.Id);

                rsp = DbContext.GetInstance().Execute(cmd);
            }
            else if (obj.RowState == RowState.Modified)
            {
                return(ResultHelper.Fail("悦动力教练不允许修改"));
            }
            return(rsp);
        }
Пример #22
0
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <LimitFilter> >(request);
            var obj = req.Filter;
            Dictionary <string, HashSet <int> > dic = LimitHelper.GetLimitByUser(currentUser.Id, obj.LimitName);
            Response res = ResultHelper.CreateResponse();

            foreach (var item in dic)
            {
                Limit limit = new Limit();
                int   rang  = 0;
                foreach (int k in item.Value)
                {
                    rang += k;
                }
                limit.LimitName   = item.Key;
                limit.LimitDetail = rang;
                res.Entities.Add(limit);
            }
            return(res);
        }
Пример #23
0
        /// <summary>
        /// 撤销庄家的投注
        /// </summary>
        /// <param name="amount">庄家之前的投注总悦豆</param>
        /// <param name="guess"></param>
        /// <returns></returns>
        private Response UndoDeclarerBet(string betType, int amount, Guess guess)
        {
            Response rsp = ResultHelper.CreateResponse();

            if (amount > 0)
            {
                //返回庄家的悦豆
                rsp = GuessHelper.Instance.AddOrSubYueDou(amount, guess.CreatorId);
                SystemHelper.CheckResponseIfError(rsp);
                //插入悦豆返回账单
                var yueDouFlow = new YueDouFlow();
                yueDouFlow.Amount   = amount;
                yueDouFlow.UserId   = guess.CreatorId;
                yueDouFlow.FlowType = GuessDic.DepositReturn;
                yueDouFlow.GuessId  = guess.Id;
                rsp = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
                SystemHelper.CheckResponseIfError(rsp);
            }

            //删除庄家的投注记录
            var sql = @"
 DELETE FROM dbo.GuessBet 
 WHERE
		GuessId=@GuessId
		AND UserId=@UserId
		AND BetType=@BetType

";
            var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql);

            cmd.Params.Add("@GuessId", guess.Id);
            cmd.Params.Add("@UserId", guess.CreatorId);
            cmd.Params.Add("@BetType", betType);
            rsp = DbContext.GetInstance().Execute(cmd);
            SystemHelper.CheckResponseIfError(rsp);

            return(rsp);
        }
Пример #24
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <CoachCourse> >(request);
            Response rsp = ResultHelper.CreateResponse();
            var      obj = req.FirstEntity();

            //获取课程信息
            var coachCourse = GetCoachCourse(obj);

            if (coachCourse == null)
            {
                //如果不存在, 说明是首次通过集训模板课程创建实际课程的情况, 那就去创建一个实际课程
                coachCourse = CreateActualCoachCourse(obj);
            }
            obj.Id = coachCourse.Id;//补全Id

            //删除之前的学员列表并返还次数
            DeleteOldStudentList(obj);
            //如果学员列表为空就删除此课程
            if (obj.CoursePersonInfoList.Count == 0)
            {
                return(DeleteCoachCourse(obj));
            }
            //保存新的学员列表
            foreach (var personInfo in obj.CoursePersonInfoList)
            {
                personInfo.CourseId = obj.Id;
                User user = UserHelper.GetUserById(personInfo.YdlUserId);
                personInfo.StudentName   = UserHelper.GetUserName(user);
                personInfo.StudentMobile = user.Mobile;
                //插入一个学员
                SystemHelper.Instance.InsertEntity(personInfo);
                //扣除一次学员的集训余额
                CoachHelper.Instance.SubBootcampBalanceOne(personInfo.YdlUserId, obj.CoachBootcampId);
            }
            rsp.Tag = obj.Id;
            return(rsp);
        }
Пример #25
0
        /// <summary>
        /// 胜负竞猜结算
        /// </summary>
        /// <param name="guess"></param>
        public Response VictoryDefeatSettlement(Guess guess, GuessVS guessVS)
        {
            Response rsp = ResultHelper.CreateResponse();

            //取出胜方的Id和赔率, 赋到guess 实体上
            GuessHelper.Instance.SetVictoryIdAndOdds(guess, guessVS);
            //查出胜方用户列表, 进行返钱
            var victoryBetList = GetGuessVictoryDefeatBetList(guess.VictoryId, guess.Id);

            if (victoryBetList.Count > 0)
            {
                rsp = BackYueDouToUser(victoryBetList, guess, guess.VictoryOdds);
            }
            //增减庄家的悦豆
            var totalYuedou      = GuessHelper.Instance.GetGuessTotalYueDouByType(guess.Id, GuessDic.VictoryDefeat); //胜负投注的总悦豆
            var bingoTotalYueDou = GuessHelper.Instance.GetVictoryOrDefeatTotalYueDou(guess.Id, guess.VictoryId);    //胜方总悦豆
            var declareDeposit   = Convert.ToInt32(guess.VictoryDefeatDeclarerDeposit);

            rsp = AddOrSubDeclarerYueDou(guess, totalYuedou
                                         , bingoTotalYueDou, declareDeposit, GuessDic.DeclarerVictoryDefeat);
            SystemHelper.CheckResponseIfError(rsp);
            return(rsp);
        }
Пример #26
0
        public Response Execute(User currentUser, string request)
        {
            var      req = JsonConvert.DeserializeObject <Request <Coach> >(request);
            Response rsp = ResultHelper.CreateResponse();

            foreach (var obj in req.Entities)
            {
                if (IsYDLCoach(obj.Id))//如果是ydl机构教练
                {
                    //特殊处理: 在 SealedOrganizationId字段上赋值表示, 此教练即是悦动力教练又是封闭机构教练
                    rsp = SetSealedOrganizationId(obj);
                    SystemHelper.CheckResponseIfError(rsp);
                }
                else
                {
                    //添加或修改封闭机构教练
                    rsp = SaveSealedOrganizationCoach(obj);
                    SystemHelper.CheckResponseIfError(rsp);
                }
            }

            return(rsp);
        }
Пример #27
0
        /// <summary>
        /// 比分竞猜结算
        /// </summary>
        /// <param name="guess"></param>
        public Response ScoreSettlement(Guess guess, GuessVS guessVS)
        {
            Response rsp = ResultHelper.CreateResponse();

            //取出猜中的比分和赔率, 赋到guess 实体上
            GuessHelper.Instance.SetBingoScoreAndOdds(guess, guessVS);
            //查出胜方用户列表, 进行返钱
            var bingoBetList = GetGuessScoreBetList(guess);

            if (bingoBetList.Count > 0)
            {
                rsp = BackYueDouToUser(bingoBetList, guess, guess.BingoScoreOdds);
            }
            //增减庄家的悦豆
            var totalYuedou      = GuessHelper.Instance.GetGuessTotalYueDouByType(guess.Id, GuessDic.Score); //比分投注的总悦豆
            var bingoTotalYueDou = GuessHelper.Instance.GetBingoScoreTotalYueDou(guess);                     //猜中比分的总悦豆
            var declareDeposit   = Convert.ToInt32(guess.ScoreDeclarerDeposit);

            rsp = AddOrSubDeclarerYueDou(guess, totalYuedou
                                         , bingoTotalYueDou, declareDeposit, GuessDic.DeclarerScore);
            SystemHelper.CheckResponseIfError(rsp);
            return(rsp);
        }
Пример #28
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);
        }
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <CoachStudent> >(request);
            //实体转换
            List <CoachBootcampStudent> studentList = new List <CoachBootcampStudent>();

            foreach (var item in req.Entities)
            {
                CoachBootcampStudent student = new CoachBootcampStudent();
                var coachStudent             = item as CoachStudent;
                student.CoachBootcampId = coachStudent.CoachBootcampId;
                student.StudentId       = coachStudent.UserId;
                student.RowState        = coachStudent.RowState;
                studentList.Add(student);
            }
            //开始业务逻辑操作
            Response rsp        = ResultHelper.CreateResponse();
            var      studentObj = req.FirstEntity();

            if (studentObj.RowState == RowState.Added)//添加
            {
                foreach (var obj in studentList)
                {
                    //先检查是否已添加
                    var student = GetCoachBootcampStudent(obj);
                    if (student != null)
                    {
                        return(ResultHelper.Fail("学员:[ " + student.StudentName + " ]已添加,不能再添加"));
                    }
                    //再添加
                    var bootcamp = CoachHelper.Instance.GetCoachBootcampById(obj.CoachBootcampId);
                    if (bootcamp != null)
                    {
                        obj.SealedOrganizationId = bootcamp.SealedOrganizationId;
                    }
                    else
                    {
                        return(ResultHelper.Fail("封闭机构Id获取失败"));
                    }
                    List <EntityBase> entites = new List <EntityBase>();
                    if (obj.RowState == RowState.Added)
                    {
                        obj.TrySetNewEntity();
                    }
                    entites.Add(obj);
                    rsp = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));
                    SystemHelper.CheckResponseIfError(rsp);
                    //为学员充值集训余额次数
                    SaveSealedCoachStudentMoney(obj, bootcamp);
                }
            }
            else if (studentObj.RowState == RowState.Deleted) //删除
            {
                CoachBootcampStudent coachBootcampStudent = new CoachBootcampStudent();
                //删除学员的余额信息
                coachBootcampStudent = CoachHelper.Instance.GetBootcampStudentById(studentObj.Id);
                DeleteStudentBalance(coachBootcampStudent);
                //删除学员
                SystemHelper.Instance.DeleteEntity(coachBootcampStudent);
            }

            return(rsp);
        }
Пример #30
0
        public Response Execute(User currentUser, string request)
        {
            var      req      = JsonConvert.DeserializeObject <Request <GuessBet> >(request);
            var      guessBet = req.FirstEntity();
            Response rsp      = ResultHelper.CreateResponse();

            //检查数据,避免脏数据(BetVSId 和 LeftScore,RightScore 互斥,只存在一种数据)
            if (!string.IsNullOrEmpty(guessBet.BetVSId))
            {
                guessBet.LeftScore  = 0;
                guessBet.RightScore = 0;
                guessBet.BetType    = GuessDic.VictoryDefeat; //胜负投注
            }
            if (guessBet.LeftScore != 0 && guessBet.RightScore != 0)
            {
                guessBet.BetVSId = "";
                guessBet.BetType = GuessDic.Score; //比分投注
            }

            //判断余额是否够
            if (!GuessHelper.Instance.IsBalanceSufficient(guessBet.UserId, guessBet.Amount))
            {
                return(ResultHelper.Fail(ErrorCode.YUEDOU_INSUFFICIENT, ""));
            }
            //设置对阵信息(后面好用)
            var guess = GuessHelper.Instance.GetGuess(guessBet.GuessId);

            guess.GuessVSDetail = GuessHelper.Instance.GetVSDetail(guess);
            //检查能否投注
            string errorMsg = CheckCanBetInPool(guess, guessBet);

            if (!string.IsNullOrEmpty(errorMsg))
            {
                return(ResultHelper.Fail(errorMsg));
            }

            //扣除余额
            rsp = GuessHelper.Instance.AddOrSubYueDou(-guessBet.Amount, guessBet.UserId);
            if (!rsp.IsSuccess)
            {
                return(rsp);
            }
            //插入投注记录
            List <EntityBase> entites = new List <EntityBase>();

            entites.Add(guessBet);

            if (guessBet.RowState == RowState.Added)
            {
                if (!string.IsNullOrEmpty(guessBet.BetVSId))
                {
                    guessBet.BetType = GuessDic.VictoryDefeat;
                }
                else
                {
                    guessBet.BetType = GuessDic.Score;
                }

                guessBet.TrySetNewEntity();
            }

            var result = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));

            //插入悦豆消费账单
            if (result.IsSuccess)
            {
                var yueDouFlow = new YueDouFlow();
                yueDouFlow.Amount   = -guessBet.Amount;
                yueDouFlow.UserId   = guessBet.UserId;
                yueDouFlow.FlowType = GuessDic.GuessCost;
                yueDouFlow.GuessId  = guessBet.GuessId;
                result = GuessHelper.Instance.AddYueDouFlow(yueDouFlow);
            }
            return(result);
        }