示例#1
0
        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();
        }
示例#2
0
        /// <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);
            }
        }
示例#3
0
        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);
                }
            }
        }
示例#4
0
        /// <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);
            }
        }
示例#5
0
        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();
        }