/// <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); } }
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); }
/// <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(); } }