Esempio n. 1
0
        public Response UpdateGuess(string GuessId)
        {
            var sql = @"
UPDATE Guess 
SET 
    State=@State 
WHERE Id=@Id ";
            var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql);

            cmd.Params.Add("@State", GuessDic.AlreadySettlement);
            cmd.Params.Add("@Id", GuessId);

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

            SystemHelper.CheckResponseIfError(result);
            return(result);
        }
        public void DeleteStudentBalance(CoachBootcampStudent obj)
        {
            var sql = @"
DELETE FROM dbo.CoachStudentMoney 
WHERE 
    StudentUserId=@StudentUserId 
    AND CoachBootcampId=@CoachBootcampId
";
            var cmd = CommandHelper.CreateText <ClubUser>(FetchType.Execute, sql);

            cmd.Params.Add("@StudentUserId", obj.StudentId);
            cmd.Params.Add("@CoachBootcampId", obj.CoachBootcampId);

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

            SystemHelper.CheckResponseIfError(result);
        }
Esempio n. 3
0
        /// <summary>
        /// 如果不存在就添加此课程
        /// </summary>
        public CoachCourse CreateActualCoachCourse(CoachCourse obj)
        {
            var bootcamp = CoachHelper.Instance.GetCoachBootcampById(obj.CoachBootcampId);

            obj.VenueId  = bootcamp.VenueId;
            obj.Type     = CoachDic.BootcampCourse;
            obj.State    = CoachDic.CourseNotStart;
            obj.RowState = RowState.Added;
            obj.CityId   = CoachDic.DefaultCityId;
            obj.TrySetNewEntity();
            List <EntityBase> entites = new List <EntityBase>();

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

            SystemHelper.CheckResponseIfError(result);
            return(obj);
        }
Esempio n. 4
0
        /// <summary>
        /// 保存退款单
        /// </summary>
        /// <param name="request">实体VipRefund</param>
        /// <returns></returns>
        public Response Execute(User currentUser, string request)
        {
            var req = JsonConvert.DeserializeObject <Request <VipRefund> >(request);
            var obj = req.Entities.FirstOrDefault();

            obj.SetNewEntity();
            obj.OrderNo = SystemHelper.GetSerialNo(SerialNoType.VipRefund);

            var cmd = CommandHelper.CreateProcedure(FetchType.Execute, "sp_SaveVipRefund");

            cmd.Params.Add("@id", obj.Id);
            cmd.Params.Add("@orderNo", obj.OrderNo);
            cmd.Params.Add("@UserId", obj.UserId);
            cmd.Params.Add("@AppliedAmount", obj.AppliedAmount, DataType.Decimal);
            cmd.Params.Add("@amount", obj.Amount, DataType.Decimal);
            cmd.Params.Add("@CreatorId", obj.CreatorId.GetId());
            cmd.Params.Add("@Remark", obj.Remark);
            cmd.CreateParamMsg();

            return(DbContext.GetInstance().Execute(cmd));
        }
        /// <summary>
        /// 为学员充值集训余额次数
        /// </summary>
        /// <returns></returns>
        public void SaveSealedCoachStudentMoney(CoachBootcampStudent coachBootcampStudent, CoachBootcamp bootcamp)
        {
            Response          rsp = new Response();
            CoachStudentMoney obj = new CoachStudentMoney();

            obj.StudentUserId   = coachBootcampStudent.StudentId;
            obj.Amount          = bootcamp.CourseCount;
            obj.ThenTotalAmount = bootcamp.CourseCount;
            obj.IsPay           = true;
            obj.CourseTypeId    = CoachDic.BootcampCourse;
            obj.CourseTypeName  = "集训课";
            obj.CoachBootcampId = coachBootcampStudent.CoachBootcampId;
            obj.Deadline        = (DateTime)bootcamp.EndTime;
            obj.RowState        = RowState.Added;
            obj.TrySetNewEntity();

            List <EntityBase> entites = new List <EntityBase>();

            entites.Add(obj);
            rsp = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));
            SystemHelper.CheckResponseIfError(rsp);
        }
Esempio n. 6
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);
        }
Esempio n. 7
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);
        }
Esempio n. 8
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);
        }
Esempio n. 9
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);
        }
Esempio n. 10
0
        /// <summary>
        /// 保存比分赔率列表(包含添加和修改操作)
        /// </summary>
        /// <returns></returns>
        private Response SaveScoreList(Guess guess)
        {
            //先删除
            var sql = @"DELETE FROM dbo.GuessScore WHERE GuessId=@GuessId ";
            var cmd = CommandHelper.CreateText <Guess>(FetchType.Execute, sql);

            cmd.Params.Add("@GuessId", guess.Id);
            DbContext.GetInstance().Execute(cmd);

            //后添加
            List <EntityBase> entites = new List <EntityBase>();

            foreach (var obj in guess.ScoreList)
            {
                entites.Add(obj);
                obj.RowState = RowState.Added;
                obj.GuessId  = guess.Id;
                obj.TrySetNewEntity();
            }
            var result = DbContext.GetInstance().Execute(CommandHelper.CreateSave(entites));

            SystemHelper.CheckResponseIfError(result);
            return(result);
        }
Esempio n. 11
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);
        }