From da4a977034d9b59b99da877b38e79384846fc27b Mon Sep 17 00:00:00 2001 From: zpc Date: Fri, 19 Jul 2024 03:20:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=A7=E5=B8=81=E4=BF=A1?= =?UTF-8?q?=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 + } +}