From b819883786267c0e4e4a1de6ad17f86e23eda88f Mon Sep 17 00:00:00 2001 From: zpc Date: Thu, 18 Jul 2024 20:05:58 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DbSqlServer/Db_MiaoYu/MiaoYuContext.cs | 17 +++++++++++++++-- .../DbSqlServer/Db_MiaoYu/T_Character.cs | 4 ++-- .../DbSqlServer/Db_MiaoYu/T_Image_Config.cs | 13 ++++++++++++- .../DbSqlServer/Db_MiaoYu/T_User_Chat.cs | 5 +++++ 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs index d8a537d..c371295 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs @@ -128,7 +128,7 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext .HasComment("创建时间") .HasColumnType("datetime"); entity.Property(e => e.Gender).HasComment("性别0男1女2其他"); - entity.Property(e => e.IconImg).HasComment("角色头像"); + entity.Property(e => e.IconImg).HasComment("角色头像(是id)"); entity.Property(e => e.ModelConfigId).HasComment("模型Id"); entity.Property(e => e.Name) .HasMaxLength(50) @@ -322,13 +322,23 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext { entity.HasKey(e => e.Id).HasName("PK__T_Image___3214EC072BCFE4E5"); - entity.ToTable(tb => tb.HasComment("图片表")); + entity.ToTable(tb => + { + tb.HasComment("图片表"); + tb.HasTrigger("trg_UpdateImageId"); + }); + entity.Property(e => e.CreateAt) + .HasComment("创建时间") + .HasColumnType("datetime"); entity.Property(e => e.ImageId).HasComment("图片Id"); entity.Property(e => e.Name) .HasMaxLength(50) .HasComment("图片名称"); entity.Property(e => e.TenantId).HasComment("租户"); + entity.Property(e => e.UpdateAt) + .HasComment("修改时间") + .HasColumnType("datetime"); entity.Property(e => e.Url) .HasMaxLength(500) .HasComment("图片地址"); @@ -425,6 +435,9 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext .HasComment("创建时间") .HasColumnType("datetime"); entity.Property(e => e.IsDelete).HasComment("是否删除"); + entity.Property(e => e.LastMessage) + .HasMaxLength(1000) + .HasComment("最后一条消息"); entity.Property(e => e.ModelConfigId).HasComment("使用模型Id"); entity.Property(e => e.SessionId).HasComment("会话Id"); entity.Property(e => e.SessionName) diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Character.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Character.cs index 1adee90..eea1696 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Character.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Character.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace HuanMeng.MiaoYu.Model.DbSqlServer.Db_MiaoYu; @@ -64,7 +64,7 @@ public partial class T_Character: MultiTenantEntity public int? BgImg { get; set; } /// - /// 角色头像 + /// 角色头像(是id) /// public int? IconImg { get; set; } } diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs index a593bd1..a1c06a0 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs @@ -1,4 +1,5 @@ - +using System; + namespace HuanMeng.MiaoYu.Model.DbSqlServer.Db_MiaoYu; /// @@ -23,4 +24,14 @@ public partial class T_Image_Config: MultiTenantEntity /// 图片地址 /// public string Url { get; set; } = null!; + + /// + /// 创建时间 + /// + public DateTime CreateAt { get; set; } + + /// + /// 修改时间 + /// + public DateTime UpdateAt { get; set; } } diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Chat.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Chat.cs index cfbbfa5..a52d312 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Chat.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Chat.cs @@ -46,4 +46,9 @@ public partial class T_User_Chat: MultiTenantEntity /// 是否删除 /// public bool IsDelete { get; set; } + + /// + /// 最后一条消息 + /// + public string? LastMessage { get; set; } } From eb7699b435301ce4af5a3b58f627149697828a42 Mon Sep 17 00:00:00 2001 From: zpc Date: Fri, 19 Jul 2024 01:06:15 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A7=E5=B8=81?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DbSqlServer/Db_MiaoYu/MiaoYuContext.cs | 47 +++++++++++++++++-- .../DbSqlServer/Db_MiaoYu/T_Image_Config.cs | 15 ++++++ .../DbSqlServer/Db_MiaoYu/T_User.cs | 5 ++ .../DbSqlServer/Db_MiaoYu/T_User_Currency.cs | 36 ++++++++++++++ 4 files changed, 98 insertions(+), 5 deletions(-) create mode 100644 src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs index c371295..2050f5a 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs @@ -93,6 +93,11 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext /// public virtual DbSet T_User_Chat { get; set; } + /// + /// 用户货币表 + /// + public virtual DbSet T_User_Currency { get; set; } + /// /// 用户信息表 /// @@ -322,12 +327,11 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext { entity.HasKey(e => e.Id).HasName("PK__T_Image___3214EC072BCFE4E5"); - entity.ToTable(tb => - { - tb.HasComment("图片表"); - tb.HasTrigger("trg_UpdateImageId"); - }); + entity.ToTable(tb => tb.HasComment("图片表")); + entity.Property(e => e.Bucket) + .HasMaxLength(100) + .HasComment("存储桶"); entity.Property(e => e.CreateAt) .HasComment("创建时间") .HasColumnType("datetime"); @@ -335,6 +339,12 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext entity.Property(e => e.Name) .HasMaxLength(50) .HasComment("图片名称"); + entity.Property(e => e.OssPath) + .HasMaxLength(200) + .HasComment("oss存放路径"); + entity.Property(e => e.Region) + .HasMaxLength(100) + .HasComment("地域"); entity.Property(e => e.TenantId).HasComment("租户"); entity.Property(e => e.UpdateAt) .HasComment("修改时间") @@ -396,6 +406,7 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext entity.Property(e => e.Email) .HasMaxLength(255) .HasComment("绑定的邮箱"); + entity.Property(e => e.GoldCoinCount).HasComment("金币数量"); entity.Property(e => e.Ip) .HasMaxLength(100) .HasComment("Ip地址"); @@ -455,6 +466,32 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext } }); + modelBuilder.Entity(entity => + { + entity.HasKey(e => e.Id).HasName("PK__T_User_C__3214EC0728E86D78"); + + entity.ToTable(tb => tb.HasComment("用户货币表")); + + entity.Property(e => e.CreateAt) + .HasComment("创建时间") + .HasColumnType("datetime"); + entity.Property(e => e.CurrencyMoney) + .HasComment("货币余额") + .HasColumnType("decimal(10, 2)"); + entity.Property(e => e.CurrencyName) + .HasMaxLength(20) + .HasComment("货币名称"); + entity.Property(e => e.CurrencyType).HasComment("货币类型"); + entity.Property(e => e.UpdateAt) + .HasComment("修改时间") + .HasColumnType("datetime"); + //添加全局筛选器 + if (this.TenantInfo != null) + { + entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId); + } + }); + modelBuilder.Entity(entity => { entity.HasKey(e => new { e.Id, e.UserId }).HasName("PK__T_User_D__E36C60C3D959FD89"); diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs index a1c06a0..b943c7e 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_Image_Config.cs @@ -34,4 +34,19 @@ public partial class T_Image_Config: MultiTenantEntity /// 修改时间 /// public DateTime UpdateAt { get; set; } + + /// + /// oss存放路径 + /// + public string? OssPath { get; set; } + + /// + /// 存储桶 + /// + public string? Bucket { get; set; } + + /// + /// 地域 + /// + public string? Region { get; set; } } diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs index 8e97d1e..a4d50ed 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User.cs @@ -67,4 +67,9 @@ public partial class T_User: MultiTenantEntity /// Ip地址 /// public string? Ip { get; set; } + + /// + /// 金币数量 + /// + public int? GoldCoinCount { get; set; } } diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs new file mode 100644 index 0000000..6b2bd0d --- /dev/null +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs @@ -0,0 +1,36 @@ +using System; + +namespace HuanMeng.MiaoYu.Model.DbSqlServer.Db_MiaoYu; + +/// +/// 用户货币表 +/// +public partial class T_User_Currency: MultiTenantEntity +{ + public int Id { get; set; } + + /// + /// 货币类型 + /// + public int CurrencyType { get; set; } + + /// + /// 货币名称 + /// + public string CurrencyName { get; set; } = null!; + + /// + /// 货币余额 + /// + public decimal CurrencyMoney { get; set; } + + /// + /// 修改时间 + /// + public DateTime UpdateAt { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateAt { get; set; } +} From da4a977034d9b59b99da877b38e79384846fc27b Mon Sep 17 00:00:00 2001 From: zpc Date: Fri, 19 Jul 2024 03:20:25 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A7=E5=B8=81?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HuanMeng.DotNetCore/Base/BLLBase.cs | 2 +- .../HuanMeng.MiaoYu.Code/Base/MiaoYuBase.cs | 2 +- .../HuanMeng.MiaoYu.Code/Users/UserBLL.cs | 6 ++- .../Users/UserCurrencyBLL.cs | 49 +++++++++++++++++++ .../HuanMeng.MiaoYu.Code/Users/UserInfoBLL.cs | 42 ++++++++++++++++ .../DbSqlServer/Db_MiaoYu/MiaoYuContext.cs | 2 + .../DbSqlServer/Db_MiaoYu/T_User_Currency.cs | 6 +++ .../Dto/ResponseUserInfo.cs | 5 ++ .../EnumModel/User/UserCurrencyType.cs | 27 ++++++++++ 9 files changed, 138 insertions(+), 3 deletions(-) create mode 100644 src/0-core/HuanMeng.MiaoYu.Code/Users/UserCurrencyBLL.cs create mode 100644 src/0-core/HuanMeng.MiaoYu.Code/Users/UserInfoBLL.cs create mode 100644 src/0-core/HuanMeng.MiaoYu.Model/EnumModel/User/UserCurrencyType.cs diff --git a/src/0-core/HuanMeng.DotNetCore/Base/BLLBase.cs b/src/0-core/HuanMeng.DotNetCore/Base/BLLBase.cs index 9d265a9..54d58b0 100644 --- a/src/0-core/HuanMeng.DotNetCore/Base/BLLBase.cs +++ b/src/0-core/HuanMeng.DotNetCore/Base/BLLBase.cs @@ -11,7 +11,7 @@ namespace HuanMeng.DotNetCore.Base /// /// _dao,提供数据访问支持 /// - protected abstract TDao Dao { get; } + public abstract TDao Dao { get; } /// diff --git a/src/0-core/HuanMeng.MiaoYu.Code/Base/MiaoYuBase.cs b/src/0-core/HuanMeng.MiaoYu.Code/Base/MiaoYuBase.cs index 52d8826..cb2993c 100644 --- a/src/0-core/HuanMeng.MiaoYu.Code/Base/MiaoYuBase.cs +++ b/src/0-core/HuanMeng.MiaoYu.Code/Base/MiaoYuBase.cs @@ -41,7 +41,7 @@ namespace HuanMeng.MiaoYu.Code.Base /// /// dao 数据库 /// - protected override DAO Dao + public override DAO Dao { get { diff --git a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs index e8be460..634f005 100644 --- a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs +++ b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserBLL.cs @@ -106,12 +106,16 @@ namespace HuanMeng.MiaoYu.Code.Users { var user = await Dao.daoDbMiaoYu.context.T_User.FirstOrDefaultAsync(it => it.Id == _UserId); var userData = await Dao.daoDbMiaoYu.context.T_User_Data.FirstOrDefaultAsync(it => it.Id == _UserId); + //获取用户余额 + var Currency = user.GetUserCurrency(Model.EnumModel.User.UserCurrencyType.付费币, Dao); + var RemainingChatCount = user.GetUserCurrency(Model.EnumModel.User.UserCurrencyType.聊天次数, Dao); return new BaseResponse(ResonseCode.Success, "请求成功", new ResponseUserInfo { NickName = user.NickName, UserId = user.Id, Currency = userData.Currency, - UserIconUrl = userData.UserIconUrl + UserIconUrl = userData.UserIconUrl, + RemainingChatCount= RemainingChatCount }); } } diff --git a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserCurrencyBLL.cs b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserCurrencyBLL.cs new file mode 100644 index 0000000..f7eca5e --- /dev/null +++ b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserCurrencyBLL.cs @@ -0,0 +1,49 @@ +using HuanMeng.MiaoYu.Code.Base; +using HuanMeng.MiaoYu.Model.EnumModel.User; + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HuanMeng.MiaoYu.Code.Users +{ + /// + /// 用户货币记录 + /// + public class UserCurrencyBLL(MiaoYuBase miaoYuBase) + { + /// + /// 获取货币余额 + /// + /// + /// + public decimal GetUserCurrency(UserCurrencyType userCurrencyType) + { + var userCurrency = miaoYuBase.Dao.daoDbMiaoYu.context.T_User_Currency.FirstOrDefault(it => it.UserId == miaoYuBase._UserId && it.CurrencyType == (int)userCurrencyType); + return userCurrency?.CurrencyMoney ?? 0; + } + + + } + + /// + /// + /// + public static class UserCurrencyExtend + { + /// + /// 获取用户货币余额 + /// + /// + /// + /// + /// + public static decimal GetUserCurrency(this T_User user, UserCurrencyType userCurrencyType, DAO dao) + { + var userCurrency = dao.daoDbMiaoYu.context.T_User_Currency.FirstOrDefault(it => it.UserId == user.Id && it.CurrencyType == (int)userCurrencyType); + return userCurrency?.CurrencyMoney ?? 0; + } + } +} diff --git a/src/0-core/HuanMeng.MiaoYu.Code/Users/UserInfoBLL.cs b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserInfoBLL.cs new file mode 100644 index 0000000..46aa883 --- /dev/null +++ b/src/0-core/HuanMeng.MiaoYu.Code/Users/UserInfoBLL.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HuanMeng.MiaoYu.Code.Users +{ + /// + /// 用户信息 + /// + public class UserInfoBLL : MiaoYuBase + { + public UserInfoBLL(IServiceProvider serviceProvider) : base(serviceProvider) + { + } + private T_User? _user; + /// + /// 用户表 + /// + public T_User User + { + get + { + + if (_user == null) + { + if (_UserId == 0) + { + throw new Exception("未找到用户"); + } + _user = Dao.daoDbMiaoYu.context.T_User.FirstOrDefault(it => it.Id == _UserId); + if (_user == null) + { + throw new Exception("未找到用户"); + } + } + return _user; + } + } + } +} diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs index 2050f5a..1f49e16 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/MiaoYuContext.cs @@ -482,9 +482,11 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext .HasMaxLength(20) .HasComment("货币名称"); entity.Property(e => e.CurrencyType).HasComment("货币类型"); + entity.Property(e => e.TenantId).HasComment("租户Id"); entity.Property(e => e.UpdateAt) .HasComment("修改时间") .HasColumnType("datetime"); + entity.Property(e => e.UserId).HasComment("用户Id"); //添加全局筛选器 if (this.TenantInfo != null) { diff --git a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs index 6b2bd0d..f4bb487 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/DbSqlServer/Db_MiaoYu/T_User_Currency.cs @@ -33,4 +33,10 @@ public partial class T_User_Currency: MultiTenantEntity /// 创建时间 /// public DateTime CreateAt { get; set; } + + /// + /// 用户Id + /// + public int UserId { get; set; } + } diff --git a/src/0-core/HuanMeng.MiaoYu.Model/Dto/ResponseUserInfo.cs b/src/0-core/HuanMeng.MiaoYu.Model/Dto/ResponseUserInfo.cs index 2d1353b..1c79d2a 100644 --- a/src/0-core/HuanMeng.MiaoYu.Model/Dto/ResponseUserInfo.cs +++ b/src/0-core/HuanMeng.MiaoYu.Model/Dto/ResponseUserInfo.cs @@ -31,5 +31,10 @@ namespace HuanMeng.MiaoYu.Model.Dto /// 用户昵称,需要和主表保持一致 /// public string? NickName { get; set; } + + /// + /// 聊天次数 + /// + public int RemainingChatCount { get; set; } } } diff --git a/src/0-core/HuanMeng.MiaoYu.Model/EnumModel/User/UserCurrencyType.cs b/src/0-core/HuanMeng.MiaoYu.Model/EnumModel/User/UserCurrencyType.cs new file mode 100644 index 0000000..9daede9 --- /dev/null +++ b/src/0-core/HuanMeng.MiaoYu.Model/EnumModel/User/UserCurrencyType.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace HuanMeng.MiaoYu.Model.EnumModel.User +{ + /// + /// 用户货币类型 + /// + public enum UserCurrencyType + { + /// + /// 免费币 + /// + 免费币 = 0, + /// + /// 付费币 + /// + 付费币 = 1, + /// + /// + /// + 聊天次数 = 2 + } +}