diff --git a/src/CloudGaming/Api/CloudGaming.PayApi/Controllers/PayController.cs b/src/CloudGaming/Api/CloudGaming.PayApi/Controllers/PayController.cs
index c5351a5..0249c6e 100644
--- a/src/CloudGaming/Api/CloudGaming.PayApi/Controllers/PayController.cs
+++ b/src/CloudGaming/Api/CloudGaming.PayApi/Controllers/PayController.cs
@@ -91,6 +91,7 @@ namespace CloudGaming.PayApi.Controllers
return "success";
}
DAO dao = new DAO(serviceProvider, appConfig);
+ //查询意向订单
var intentOrder = await dao.DaoUser.Context.T_User_IntentOrder.FirstOrDefaultAsync(it => it.OrderId == orderId);
if (intentOrder == null)
{
@@ -126,7 +127,7 @@ namespace CloudGaming.PayApi.Controllers
T_User_OrderItems orderItems = new T_User_OrderItems();
orderItems.PayUrl = context.Request.Path;
//orderItems.
- await product.OrderRewardsNoWorkAsync(user, pay, orderId, intentOrder.Price, intentOrder.CreatedAt, dao, orderItems);
+ await product.OrderRewardsNoWorkAsync(user, pay, orderId, intentOrder.Price, intentOrder.Channel ?? "", intentOrder.CreatedAt, dao, orderItems);
//intentOrder = await dao.daoDbMiaoYu.context.T_User_IntentOrder.FirstOrDefaultAsync(it => it.OrderId == orderId);
intentOrder.Status = (int)OrderState.已完成;
await dao.DaoUser.Context.SaveChangesAsync();
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Mall/OrderBLL.cs b/src/CloudGaming/Code/CloudGaming.Code/Mall/OrderBLL.cs
index ea2f949..911de5e 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Mall/OrderBLL.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Mall/OrderBLL.cs
@@ -71,7 +71,7 @@ public class OrderBLL : CloudGamingBase
price = (decimal)0.01;
}
(var orderId, var order, var payNotifyUrl) = await payment.CreateOrder(product.Id, product.ProductName, price, product, ip);
- var t = product.ToIntentOrder(paymentMethod, orderId);
+ var t = product.ToIntentOrder(paymentMethod, orderId, AppRequestInfo.Channel);
t.UserId = _UserId;
if (payNotifyUrl != null && payNotifyUrl.Length > 200)
{
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Monitor/GameMonitorProcessor.cs b/src/CloudGaming/Code/CloudGaming.Code/Monitor/GameMonitorProcessor.cs
new file mode 100644
index 0000000..0269da9
--- /dev/null
+++ b/src/CloudGaming/Code/CloudGaming.Code/Monitor/GameMonitorProcessor.cs
@@ -0,0 +1,82 @@
+using CloudGaming.DtoModel.Other;
+
+using HuanMeng.DotNetCore.QuartzExtend;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CloudGaming.Code.Monitor
+{
+ ///
+ /// 游戏控制器
+ ///
+ [QuartzTrigger("GameMonitorProcessor", "* 05 4 * * ?")]
+ public class GameMonitorProcessor : AppJobBase
+ {
+ public GameMonitorProcessor(IServiceScopeFactory scopeFactory) : base(scopeFactory)
+ {
+ }
+
+ public override async Task AppConfigProcessLoop(AppConfig appConfig, AppMonitorInfo appMonitorInfo, IServiceProvider serviceProvider, CloudGamingBase cloudGamingBase)
+ {
+ var dao = cloudGamingBase.Dao;
+ var now = DateTime.Now.AddDays(-1);
+ int day = int.Parse(now.ToString("yyyyMMdd"));
+ var nowDay = DateOnly.FromDateTime(now);
+ var gamePlay = dao.DaoPhone.Context.T_Game_PlayGameLog.Where(it => it.CreateDay == day).AsQueryable();
+ //启动游戏次数
+ var gamePlayCount = await gamePlay.GroupBy(log => log.Channel).ToDictionaryAsync(it => it.Key ?? "", it => it.Count());
+ //启动游戏人数
+ var gamePlayLog = await gamePlay.GroupBy(log => log.Channel).Select(group => new
+ {
+ Channel = group.Key,
+ UserCount = group.Select(log => log.UserId).Distinct().Count()
+ }).ToDictionaryAsync(it => it.Channel ?? "", it => it.UserCount);
+ // 游玩时间
+ var gamePlaySeconds = await gamePlay.GroupBy(log => log.Channel).Select(group => new
+ {
+ Channel = group.Key,
+ PlayGameTotalSeconds = group.Sum(it => it.PlayGameTotalSeconds)
+ }).ToDictionaryAsync(it => it.Channel ?? "", it => it.PlayGameTotalSeconds);
+
+ // 获取当前统计数据
+ var userStatistics = await dao.DaoExt.Context.T_Statistics_Game
+ .Where(it => it.LoginDay == day)
+ .ToDictionaryAsync(it => it.Channel ?? "");
+ // 更新或创建统计记录
+ void UpdateStatistics(string channel, int playGameCount, int playGameTimeCount, int startGameCount)
+ {
+ if (!userStatistics.TryGetValue(channel, out var statisticsUser))
+ {
+ statisticsUser = new T_Statistics_Game()
+ {
+ PlayGameCount = 0,
+ Channel = channel,
+ CreatedAt = DateTime.Now,
+ PlayGameTimeCount = 0,
+ StartGameCount = 0,
+ LoginDate = nowDay,
+ LoginDay = day,
+ UpdatedAt = DateTime.Now,
+ };
+ dao.DaoExt.Context.T_Statistics_Game.Add(statisticsUser);
+ userStatistics.Add(channel, statisticsUser);
+ }
+ statisticsUser.PlayGameCount = playGameCount;
+ statisticsUser.PlayGameTimeCount = playGameTimeCount > 0 ? playGameTimeCount / 60 / 60 : playGameTimeCount;
+ statisticsUser.StartGameCount = startGameCount;
+ statisticsUser.UpdatedAt = DateTime.Now;
+ }
+
+ foreach (var item in gamePlayCount)
+ {
+ UpdateStatistics(item.Key, item.Value, gamePlaySeconds.GetValueOrDefault(item.Key, 0), gamePlayLog.GetValueOrDefault(item.Key, 0));
+ }
+
+ await dao.DaoExt.Context.SaveChangesAsync();
+ }
+ }
+}
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Monitor/OrderMonitorProcessor.cs b/src/CloudGaming/Code/CloudGaming.Code/Monitor/OrderMonitorProcessor.cs
new file mode 100644
index 0000000..7b748b0
--- /dev/null
+++ b/src/CloudGaming/Code/CloudGaming.Code/Monitor/OrderMonitorProcessor.cs
@@ -0,0 +1,75 @@
+using CloudGaming.DtoModel.Other;
+
+using HuanMeng.DotNetCore.QuartzExtend;
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace CloudGaming.Code.Monitor
+{
+ ///
+ /// 订单数据统计
+ ///
+ [QuartzTrigger("UserMonitorProcessor", "* 25 4 * * ?")]
+ //[QuartzTrigger("OrderMonitorProcessor", "0 0/1 * * * ?")]
+ public class OrderMonitorProcessor : AppJobBase
+ {
+ public OrderMonitorProcessor(IServiceScopeFactory scopeFactory) : base(scopeFactory)
+ {
+ }
+
+ public override async Task AppConfigProcessLoop(AppConfig appConfig, AppMonitorInfo appMonitorInfo, IServiceProvider serviceProvider, CloudGamingBase cloudGamingBase)
+ {
+ var dao = cloudGamingBase.Dao;
+ var now = DateTime.Now.AddDays(-1);
+ int day = int.Parse(now.ToString("yyyyMMdd"));
+ var nowDay = DateOnly.FromDateTime(now);
+ //意向订单次数
+ var intendedOrder = await dao.DaoUser.Context.T_User_IntentOrder.Where(it => it.CreatedDay == day).GroupBy(it => it.Channel).ToDictionaryAsync(it => it.Key ?? "", it => it.Count());
+
+ //支付订单次数
+ var paidOrders = await dao.DaoUser.Context.T_User_Order.Where(it => it.PaymentDay == nowDay).GroupBy(it => it.Channel).ToDictionaryAsync(it => it.Key ?? "", it => it.Count());
+
+ //支付金额
+ var paidOrdersPrice = await dao.DaoUser.Context.T_User_Order.Where(it => it.PaymentDay == nowDay).GroupBy(it => it.Channel).ToDictionaryAsync(it => it.Key ?? "", it => it.Sum(it => it.TotalPrice));
+ //数据源
+ var orderStatistics = await dao.DaoExt.Context.T_Statistics_Order
+ .Where(it => it.LoginDay == day)
+ .ToDictionaryAsync(it => it.Channel ?? "");
+
+ // 更新或创建统计记录
+ void UpdateStatistics(string channel, int intendedOrderCount, int paidOrders, decimal rechargeAmount)
+ {
+ if (!orderStatistics.TryGetValue(channel, out var statisticsUser))
+ {
+ statisticsUser = new T_Statistics_Order()
+ {
+ RechargeAmount = 0,
+ Channel = channel,
+ CreatedAt = DateTime.Now,
+ IntendedOrderCount = 0,
+ PaidOrders = 0,
+ LoginDate = nowDay,
+ LoginDay = day,
+ UpdatedAt = DateTime.Now,
+ };
+ dao.DaoExt.Context.T_Statistics_Order.Add(statisticsUser);
+ orderStatistics.Add(channel, statisticsUser);
+ }
+ statisticsUser.RechargeAmount = rechargeAmount;
+ statisticsUser.IntendedOrderCount = intendedOrderCount;
+ statisticsUser.PaidOrders = paidOrders;
+ statisticsUser.UpdatedAt = DateTime.Now;
+ }
+ foreach (var item in intendedOrder)
+ {
+ UpdateStatistics(item.Key, item.Value, paidOrders.GetValueOrDefault(item.Key, 0), paidOrdersPrice.GetValueOrDefault(item.Key, 0));
+ }
+
+ await dao.DaoExt.Context.SaveChangesAsync();
+ }
+ }
+}
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Monitor/UserMonitorProcessor.cs b/src/CloudGaming/Code/CloudGaming.Code/Monitor/UserMonitorProcessor.cs
index 291511b..a1989f2 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Monitor/UserMonitorProcessor.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Monitor/UserMonitorProcessor.cs
@@ -12,7 +12,7 @@ using System.Threading.Tasks;
namespace CloudGaming.Code.Monitor;
///
-/// 用户定时类
+/// 用户定时类
///
[QuartzTrigger("UserMonitorProcessor", "* 15 4 * * ?")]
public class UserMonitorProcessor : AppJobBase
@@ -28,92 +28,57 @@ public class UserMonitorProcessor : AppJobBase
int day = int.Parse(now.ToString("yyyyMMdd"));
var nowDay = DateOnly.FromDateTime(now);
- //今日登录人数
- var todayLoggedInUsers = await cloudGamingBase.Dao.DaoExt.Context.T_User_LoginDay_Log.Where(it => it.CreateTimeDay == day)
+ // 获取所有用户数据
+ var userLoginData = cloudGamingBase.Dao.DaoExt.Context.T_User_LoginDay_Log
+ .Where(it => it.CreateTimeDay == day).AsQueryable();
+ //登录数据
+ var todayLoggedInUsers = await userLoginData.GroupBy(it => it.Channel ?? "")
+ .ToDictionaryAsync(g => g.Key, g => g.Count());
+ //注册数据
+ var todayRegisteredUsers = await userLoginData.Where(it => it.IsNew)
.GroupBy(it => it.Channel ?? "")
- .ToDictionaryAsync(it => it.Key, it => it.Count());
- //今日注册人数
- var todayRegisteredUsers = await cloudGamingBase.Dao.DaoExt.Context.T_User_LoginDay_Log.Where(it => it.CreateTimeDay == day && it.IsNew)
+ .ToDictionaryAsync(g => g.Key, g => g.Count());
+ //活跃数据
+ var todayActionUsers = await userLoginData.Where(it => it.LogInDay > 1)
.GroupBy(it => it.Channel ?? "")
- .ToDictionaryAsync(it => it.Key, it => it.Count());
- //今日活跃人数
- var todayActionUsers = await cloudGamingBase.Dao.DaoExt.Context.T_User_LoginDay_Log.Where(it => it.CreateTimeDay == day && it.LogInDay > 1)
- .GroupBy(it => it.Channel ?? "")
- .ToDictionaryAsync(it => it.Key, it => it.Count());
- //数据库中的数据
- var userStatistics = await dao.DaoExt.Context.T_Statistics_User.Where(it => it.LoginDay == day).ToDictionaryAsync(it => it.Channel ?? "");//.ToListAsync();
- //登录
- if (todayLoggedInUsers != null)
+ .ToDictionaryAsync(g => g.Key, g => g.Count());
+
+ // 获取当前统计数据
+ var userStatistics = await dao.DaoExt.Context.T_Statistics_User
+ .Where(it => it.LoginDay == day)
+ .ToDictionaryAsync(it => it.Channel ?? "");
+
+ // 更新或创建统计记录
+ void UpdateStatistics(string channel, int loginCount, int registrCount, int activeCount)
{
- foreach (var item in todayLoggedInUsers)
+ if (!userStatistics.TryGetValue(channel, out var statisticsUser))
{
- if (!userStatistics.TryGetValue(item.Key, out var statisticsUser))
+ statisticsUser = new T_Statistics_User()
{
- statisticsUser = new T_Statistics_User()
- {
- ActiveCount = 0,
- Channel = item.Key,
- CreatedAt = DateTime.Now,
- LoginCount = 0,
- RegistrCount = 0,
- LoginDate = nowDay,
- LoginDay = day,
- UpdatedAt = DateTime.Now,
- };
- await dao.DaoExt.Context.T_Statistics_User.AddAsync(statisticsUser);
- userStatistics.Add(item.Key, statisticsUser);
- }
- statisticsUser.LoginDay = item.Value;
+ ActiveCount = 0,
+ Channel = channel,
+ CreatedAt = DateTime.Now,
+ LoginCount = 0,
+ RegistrCount = 0,
+ LoginDate = nowDay,
+ LoginDay = day,
+ UpdatedAt = DateTime.Now,
+ };
+ dao.DaoExt.Context.T_Statistics_User.Add(statisticsUser);
+ userStatistics.Add(channel, statisticsUser);
}
+ statisticsUser.LoginCount = loginCount;
+ statisticsUser.RegistrCount = registrCount;
+ statisticsUser.ActiveCount = activeCount;
+ statisticsUser.UpdatedAt = DateTime.Now;
}
- //注册
- if (todayRegisteredUsers != null)
+
+ foreach (var item in todayLoggedInUsers)
{
- foreach (var item in todayRegisteredUsers)
- {
- if (!userStatistics.TryGetValue(item.Key, out var statisticsUser))
- {
- statisticsUser = new T_Statistics_User()
- {
- ActiveCount = 0,
- Channel = item.Key,
- CreatedAt = DateTime.Now,
- LoginCount = 0,
- RegistrCount = 0,
- LoginDate = nowDay,
- LoginDay = day,
- UpdatedAt = DateTime.Now,
- };
- await dao.DaoExt.Context.T_Statistics_User.AddAsync(statisticsUser);
- userStatistics.Add(item.Key, statisticsUser);
- }
- statisticsUser.RegistrCount = item.Value;
- }
- }
- //活跃
- if (todayActionUsers != null)
- {
- foreach (var item in todayActionUsers)
- {
- if (!userStatistics.TryGetValue(item.Key, out var statisticsUser))
- {
- statisticsUser = new T_Statistics_User()
- {
- ActiveCount = 0,
- Channel = item.Key,
- CreatedAt = DateTime.Now,
- LoginCount = 0,
- RegistrCount = 0,
- LoginDate = nowDay,
- LoginDay = day,
- UpdatedAt = DateTime.Now,
- };
- await dao.DaoExt.Context.T_Statistics_User.AddAsync(statisticsUser);
- userStatistics.Add(item.Key, statisticsUser);
- }
- statisticsUser.ActiveCount = item.Value;
- }
+ UpdateStatistics(item.Key, item.Value, todayRegisteredUsers.GetValueOrDefault(item.Key, 0), todayActionUsers.GetValueOrDefault(item.Key, 0));
}
+
await dao.DaoExt.Context.SaveChangesAsync();
}
+
}
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Payment/OrderExtend.cs b/src/CloudGaming/Code/CloudGaming.Code/Payment/OrderExtend.cs
index fa6f545..9a48dba 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Payment/OrderExtend.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Payment/OrderExtend.cs
@@ -29,7 +29,7 @@ public static class OrderExtend
///
///
///
- public static async Task OrderRewardsNoWorkAsync(this T_Products product, T_User user, string pay, string orderId, decimal price, DateTime intentDate, DAO dao, T_User_OrderItems orderItems = null)
+ public static async Task OrderRewardsNoWorkAsync(this T_Products product, T_User user, string pay, string orderId, decimal price,string channel, DateTime intentDate, DAO dao, T_User_OrderItems orderItems = null)
{
var userId = user.Id;
var chargeMoneyCount = dao.DaoUser.Context.T_User_Order.Count(it => it.UserId == userId && it.ProductId == product.ProductId);
@@ -68,6 +68,7 @@ public static class OrderExtend
TotalPrice = price,
UpdatedAt = DateTime.Now,
UserId = userId,
+ Channel= channel
};
if (orderItems == null)
{
diff --git a/src/CloudGaming/Code/CloudGaming.Code/Payment/PaymentExtend.cs b/src/CloudGaming/Code/CloudGaming.Code/Payment/PaymentExtend.cs
index 7602343..88f766d 100644
--- a/src/CloudGaming/Code/CloudGaming.Code/Payment/PaymentExtend.cs
+++ b/src/CloudGaming/Code/CloudGaming.Code/Payment/PaymentExtend.cs
@@ -164,7 +164,7 @@ public static class PaymentExtend
///
///
///
- public static T_User_IntentOrder ToIntentOrder(this ProductCache productCache, string payment, string orderId)
+ public static T_User_IntentOrder ToIntentOrder(this ProductCache productCache, string payment, string orderId, string channel)
{
T_User_IntentOrder t_User_IntentOrder = new T_User_IntentOrder()
{
@@ -178,6 +178,7 @@ public static class PaymentExtend
Status = (int)OrderState.已下单,
UpdatedAt = DateTime.Now,
OrderId = orderId,
+ Channel = channel
};
return t_User_IntentOrder;
}
diff --git a/src/CloudGaming/Model/CloudGaming.DtoModel/PlayGame/PlayGameUserInfo.cs b/src/CloudGaming/Model/CloudGaming.DtoModel/PlayGame/PlayGameUserInfo.cs
index 7aa01d0..1a555f7 100644
--- a/src/CloudGaming/Model/CloudGaming.DtoModel/PlayGame/PlayGameUserInfo.cs
+++ b/src/CloudGaming/Model/CloudGaming.DtoModel/PlayGame/PlayGameUserInfo.cs
@@ -195,6 +195,8 @@ public class PlayGameUserInfo
DiamondListId = DiamondListId,
GameStatus = (int)GameStatus,
GameUserOperationJson = GameUserOperation == null ? "" : JsonConvert.SerializeObject(GameUserOperation, settings),
+ Channel = Channel,
+ CreateDay = int.Parse(CreateDateTime.ToString("yyyyMMdd"))
};
return log;
}
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs
index 40aedb5..4b3251c 100644
--- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/CloudGamingCBTContext.cs
@@ -239,7 +239,9 @@ public partial class CloudGamingCBTContext : DbContext
entity.Property(e => e.LoginDate).HasComment("日期");
entity.Property(e => e.LoginDay).HasComment("天");
entity.Property(e => e.PaidOrders).HasComment("支付订单次数");
- entity.Property(e => e.RechargeAmount).HasComment("支付订单金额");
+ entity.Property(e => e.RechargeAmount)
+ .HasComment("支付订单金额")
+ .HasColumnType("decimal(18, 0)");
entity.Property(e => e.UpdatedAt)
.HasComment("修改时间")
.HasColumnType("datetime");
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Statistics_Order.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Statistics_Order.cs
index e3adf0a..b13e0c3 100644
--- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Statistics_Order.cs
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_Statistics_Order.cs
@@ -34,7 +34,7 @@ public partial class T_Statistics_Order
///
/// 支付订单金额
///
- public virtual int RechargeAmount { get; set; }
+ public virtual decimal RechargeAmount { get; set; }
///
/// 渠道号
diff --git a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_User_LoginDay_Log.cs b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_User_LoginDay_Log.cs
index 07fea84..6bc9a82 100644
--- a/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_User_LoginDay_Log.cs
+++ b/src/CloudGaming/Model/CloudGaming.GameModel/Db/Db_Ext/T_User_LoginDay_Log.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
namespace CloudGaming.GameModel.Db.Db_Ext;
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs
index 1f03c24..b6d01f7 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/CloudGamingPhoneContext.cs
@@ -209,7 +209,7 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext
public virtual DbSet T_Videos { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- { // => optionsBuilder.UseSqlServer("Server=192.168.195.6;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;");
+ { // => optionsBuilder.UseSqlServer("Server=192.168.195.8;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
@@ -683,6 +683,9 @@ public partial class CloudGamingPhoneContext : MultiTenantDbContext//DbContext
entity.ToTable(tb => tb.HasComment("用户玩游戏日志表"));
entity.Property(e => e.Id).HasComment("主键");
+ entity.Property(e => e.Channel)
+ .HasMaxLength(10)
+ .HasComment("渠道号");
entity.Property(e => e.Cpu)
.HasMaxLength(50)
.HasComment("用户cpu");
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_PlayGameLog.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_PlayGameLog.cs
index e5d3cc6..636a6f1 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_PlayGameLog.cs
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_Phone/T_Game_PlayGameLog.cs
@@ -148,4 +148,11 @@ public partial class T_Game_PlayGameLog: MultiTenantEntity
/// 用户操作内容
///
public virtual string? GameUserOperationJson { get; set; }
+
+ ///
+ /// 渠道号
+ ///
+ public virtual string? Channel { get; set; }
+
+ public virtual int CreateDay { get; set; }
}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/CloudGamingUserContext.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/CloudGamingUserContext.cs
index adcd151..479a84a 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/CloudGamingUserContext.cs
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/CloudGamingUserContext.cs
@@ -319,6 +319,9 @@ public partial class CloudGamingUserContext : MultiTenantDbContext//DbContext
entity.ToTable(tb => tb.HasComment("意向订单表"));
entity.Property(e => e.Id).HasComment("主键");
+ entity.Property(e => e.Channel)
+ .HasMaxLength(10)
+ .HasComment("渠道号");
entity.Property(e => e.CreatedAt)
.HasComment("创建时间")
.HasColumnType("datetime");
@@ -430,6 +433,9 @@ public partial class CloudGamingUserContext : MultiTenantDbContext//DbContext
entity.ToTable(tb => tb.HasComment("订单完成表"));
+ entity.Property(e => e.Channel)
+ .HasMaxLength(10)
+ .HasComment("渠道");
entity.Property(e => e.CreatedAt)
.HasComment("创建时间")
.HasColumnType("datetime");
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_IntentOrder.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_IntentOrder.cs
index 19a5328..b29ae61 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_IntentOrder.cs
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_IntentOrder.cs
@@ -73,4 +73,9 @@ public partial class T_User_IntentOrder: MultiTenantEntity
/// 创建天
///
public virtual int CreatedDay { get; set; }
+
+ ///
+ /// 渠道号
+ ///
+ public virtual string? Channel { get; set; }
}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_Order.cs b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_Order.cs
index daace75..20daade 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_Order.cs
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/Db_User/T_User_Order.cs
@@ -70,4 +70,9 @@ public partial class T_User_Order: MultiTenantEntity
/// 订单创建天
///
public virtual DateOnly PaymentDay { get; set; }
+
+ ///
+ /// 渠道
+ ///
+ public virtual string? Channel { get; set; }
}
diff --git a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md
index ee465f0..b705fd4 100644
--- a/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md
+++ b/src/CloudGaming/Model/CloudGaming.Model/DbSqlServer/efcore-gen.md
@@ -7,6 +7,6 @@ dotnet ef dbcontext scaffold "Server=192.168.195.8;Database=CloudGamingUser;User
--CloudGamingPhone
dotnet ef dbcontext scaffold "Server=192.168.1.17;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o DbSqlServer/Db_Phone/ --use-database-names --no-pluralize --force
-dotnet ef dbcontext scaffold "Server=192.168.195.6;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o DbSqlServer/Db_Phone/ --use-database-names --no-pluralize --force
+dotnet ef dbcontext scaffold "Server=192.168.195.8;Database=CloudGamingPhone;User Id=sa;Password=Dbt@com@123;TrustServerCertificate=true;" Microsoft.EntityFrameworkCore.SqlServer -o DbSqlServer/Db_Phone/ --use-database-names --no-pluralize --force
```
\ No newline at end of file