public void Run() { var pkService = new PKService(); var bonusService = new PKBonusService(); var betService = new BetService(); var pks = pkService.GetNotBonusPKs(); foreach (var pk in pks) { if (pk != null && !string.IsNullOrEmpty(pk.Ranks)) { // 生成奖金 if (!pk.IsBonused) { // 更新 奖金生成标志, 防止多次计算 pkService.UpdateIsBonused(pk.PKId, true); // 生成奖金 bonusService.GenerateBonus(pk); var msg = string.Format("Generate Bonus - PKId : {0} - Time : {1}", pk.PKId, DateTime.Now.ToString(DateFormatConst.yMd_Hms)); _logger.Info(msg); } } } // 更新Bet表已结算标志 betService.UpdateSettlementDone(); }
/// <summary> /// 退水 /// 每隔10秒执行一次 /// </summary> public void Execute(IJobExecutionContext context) { try { var pkService = new PKService(); var bonusService = new PKBonusService(); var pks = pkService.GetNotRebatePKs(); foreach (var pk in pks) { var msg = string.Format("Rebate - PKId : {0} - Time : {1}", pk.PKId, DateTime.Now.ToString(DateFormatConst.yMd_Hms)); _logger.Info(msg); // 更新 退水生成标志, 防止多次计算 pkService.UpdateIsRebated(pk.PKId, true); // 生成退水 bonusService.GenerateRebate(pk); } } catch (Exception ex) { _logger.Info(ex); } }
public void Run() { var pkService = new PKService(); var bonusService = new PKBonusService(); var pk = pkService.GetNotBonusPKs(); if (pk != null) { // 生成奖金 if (!pk.IsBonused) { // 更新 奖金生成标志, 防止多次计算 pkService.UpdateIsBonused(pk.PKId, true); // 生成奖金 var bonus = GetBonus(pk); if (bonus != null && bonus.Count > 0) { bonusService.GenerateBonus(bonus); } var msg = string.Format("[PkGameBonusJob] Generate Bonus - PKId : {0} - Time : {1} - Bonus Count : {2}", pk.PKId, DateTime.Now.ToString(DateFormatConst.yMd_Hms), bonus.Count); _logger.Info(msg); } } }
/// <summary> /// 2. 中奖结果: 回调微信端接口, 返回下单中奖结果 /// </summary> private void SyncBonus() { try { var betItemService = new BetItemService(); var pkBonusService = new PKBonusService(); var wechatWebUrl = System.Configuration.ConfigurationManager.AppSettings["WechatWebUrl"]; var wechatWebPath = System.Configuration.ConfigurationManager.AppSettings["WechatWebPath"]; //wechat订单 var orderNos = betItemService.GetNotSyncedOrderNos(); foreach (var orderNo in orderNos) { // 按wechat订单生成奖金+退水 var amount = GetBonusAndRebateAmount(orderNo); RestClient client = new RestClient(wechatWebUrl); var resource = string.Format("/{0}/orderreturn?orderId={1}&score={2}", wechatWebPath, orderNo, amount); var request = new RestRequest(resource, Method.POST); //request.AddJsonBody(new //{ // OrderNo = orderNo, // Amount = amount //}); var response = client.Execute(request); if (response != null && !string.IsNullOrEmpty(response.Content)) { dynamic res = JsonConvert.DeserializeObject(response.Content); /* * result: * 0:成功 * 1:失败 */ if (res.result.ToString() == "1") { _logger.Info("[SyncBonus Failed] [" + resource + "] " + response.Content); } else { _logger.Info("[SyncBonus Success] [" + resource + "] " + response.Content); betItemService.UpdateIsSynced(orderNo, true); } } } } catch (Exception ex) { _logger.Info(ex); } }
public void Run() { var pkService = new PKService(); var bonusService = new PKBonusService(); var betService = new BetService(); //var pk = pkService.GetCurrentPK(); var pks = pkService.GetNotCalculatePKs(); foreach (var pk in pks) { if (pk != null && string.IsNullOrEmpty(pk.Ranks)) { var now = DateTime.Now; if (now >= pk.BeginTime.AddSeconds(pk.OpeningSeconds))// 封盘 { // 计算名次 var rankList = betService.CalculateRanks(pk.PKId); var ranks = string.Join(",", rankList); pk.Ranks = ranks; var success = pkService.UpdateRanks(pk.PKId, ranks); if (success) { var msg = string.Format("Calculate Ranks - PKId : {0} - Ranks : {1} - Time : {2}", pk.PKId, ranks, now.ToString(DateFormatConst.yMd_Hms)); _logger.Info(msg); } else { var msg = string.Format("Calculate Ranks Failed, 已经生成过Ranks - PKId : {0} - Ranks : {1} - Time : {2}", pk.PKId, ranks, now.ToString(DateFormatConst.yMd_Hms)); _logger.Info(msg); } } } } // 更新Bet表已结算标志 betService.UpdateSettlementDone(); }