Esempio n. 1
0
        /// <summary>
        /// 发货接口
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="userId"></param>
        /// <param name="goodsId"></param>
        /// <param name="goodsNum"></param>
        /// <param name="price"></param>
        public static async Task UserRecharge(int orderId, long userId, int goodsId, int goodsNum, float price)
        {
            try
            {
                string           reward         = "";
                DBProxyComponent proxyComponent = Game.Scene.GetComponent <DBProxyComponent>();
                ShopConfig       config         = ConfigHelp.Get <ShopConfig>(goodsId);

                List <Log_Recharge> log_Recharge = await proxyComponent.QueryJson <Log_Recharge>($"{{Uid:{userId}}}");

                if (log_Recharge.Count == 0)
                {
                    reward = "1:120000;105:20;104:1;107:1";
                    await DBCommonUtil.changeWealthWithStr(userId, reward, "首充奖励");
                }

                reward = config.Items;

                await DBCommonUtil.changeWealthWithStr(userId, reward, "购买元宝");

                //向gate服务器发送请求
                StartConfigComponent startConfig    = Game.Scene.GetComponent <StartConfigComponent>();
                IPEndPoint           gateIPEndPoint = startConfig.GateConfigs[0].GetComponent <InnerConfig>().IPEndPoint;
                Session gateSession = Game.Scene.GetComponent <NetInnerComponent>().Get(gateIPEndPoint);

                G2H_GamerCharge g2HGamerCharge = (G2H_GamerCharge)await gateSession.Call(new H2G_GamerCharge()
                {
                    goodsId = goodsId,
                    UId     = userId
                });

//                UserComponent userComponent = Game.Scene.GetComponent<UserComponent>();
//                User user = userComponent.Get(userId);
//                //给玩家发送消息
//                user?.session?.Send(new Actor_GamerBuyYuanBao()
//                {
//                    goodsId = goodsId
//                });

                // 记录日志
                {
                    Log_Recharge log_recharge = ComponentFactory.CreateWithId <Log_Recharge>(IdGenerater.GenerateId());
                    log_recharge.Uid     = userId;
                    log_recharge.GoodsId = config.Id;
                    log_recharge.Price   = config.Price;
                    log_recharge.OrderId = orderId;
                    await proxyComponent.Save(log_recharge);
                }
            }
            catch (Exception e)
            {
                Log.Error(e);
            }
        }
Esempio n. 2
0
        public static void Recharge(string uid, string nickName, string orderId, string goodsId, string goodsNum,
                                    string price)
        {
            Log_Recharge recharge = new Log_Recharge()
            {
                uid       = uid,
                nick_name = nickName,
                order_id  = orderId,
                goods_id  = goodsId,
                goods_num = goodsNum,
                price     = price
            };

            NHibernateHelper.LogRechargeManager.Add(recharge);
        }
Esempio n. 3
0
        /// <summary>
        /// 充值日志记录
        /// </summary>
        /// <param name="amount">金额</param>
        /// <param name="paymentInterfaceLog">支付接口日志</param>
        /// <param name="errorLog">错误日志</param>
        public void AddRechargeLog(decimal amount, string paymentInterfaceLog = null, string errorLog = null)
        {
            var log = new Log_Recharge()
            {
                Amount     = amount,
                CreateTime = DateTime.Now,
                OpenId     = OpenId,
                TenantId   = CurrentTenantId
            };

            Db.Log_Recharges.Add(log);
            var financialMonitoringsLog = new Log_FinancialMonitoring()
            {
                TenantId            = CurrentTenantId,
                Amount              = amount,
                ClientIpAddress     = ClientIpAddress,
                CreateTime          = DateTime.Now,
                IsSuccess           = string.IsNullOrEmpty(errorLog),
                OpenId              = OpenId,
                PaymentInterfaceLog = paymentInterfaceLog,
                ErrorLog            = errorLog,
                Type = FinancialMonitoringTypes.Recharge
            };

            Db.Log_FinancialMonitorings.Add(financialMonitoringsLog);
            lock (lockObj)
            {
                var user = Db.User_Infos.Find(OpenId);
                if (user == null)
                {
                    user = new Data.Models.User.User_Info()
                    {
                        OpenId      = OpenId,
                        Balance     = 0,
                        Integral    = 0,
                        State       = EnumUserState.Normal,
                        TenantId    = TenantId,
                        CreateTime  = DateTime.Now,
                        LastLoginOn = DateTime.Now,
                        LoginCount  = 0
                    };
                    Db.User_Infos.Add(user);
                }
                user.Balance = user.Balance + amount;
                Db.SaveChanges();
            }
        }