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); }
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); }
public Response Execute(User currentUser, string request) { Response rsp = ResultHelper.CreateResponse(); rsp.Tag = CoachHelper.Instance.IsSealedCoach(currentUser.Id); return(rsp); }
/// <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); }
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); }
public Response Execute(string request) { Response response = ResultHelper.CreateResponse(); response.Tag = UserHelper.GetConfig().SocketIpAndPort;//云SOCKET地址,目前只供直播比分显示使用 return(response); }
public Response Execute(string request) { Response response = ResultHelper.CreateResponse(); response.Tag = UserHelper.GetConfig().IntranetSocketIpAndPort;//局域网SOCKET地址 return(response); }
/// <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); }
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); }
public static Response Execute(string request) { Response rsp = ResultHelper.CreateResponse(); rsp.Tag = "http://" + UserHelper.GetConfig().IntranetHttpIpAndPort; rsp.Tag1 = UserHelper.GetConfig().IntranetSocketIpAndPort; return(rsp); }
public Response Execute(User currentUser, string request) { Response response = ResultHelper.CreateResponse(); response.IsSuccess = true; response.Tag = UserHelper.GetConfig().YueDouConvertibleProportion; return(response); }
public static Response Execute(string request) { var req = JsonConvert.DeserializeObject <Request <GetCoachRelatedFilter> >(request); Response rsp = ResultHelper.CreateResponse(); rsp.Tag = UserHelper.GetConfig().IntranetSocketIpAndPort; return(rsp); }
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); }
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); }
/// <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); }
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 添加或修改 }
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); }
/// <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); }
///// <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); } }
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); }
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); }
/// <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); }
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); }
/// <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); }
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); }
/// <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); }
/// <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); }
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); }