我的账号

This commit is contained in:
bibabo 2024-07-20 12:54:13 +08:00
commit 88f2b30c79
9 changed files with 132 additions and 5 deletions

View File

@ -11,7 +11,7 @@ namespace HuanMeng.DotNetCore.Base
/// <summary>
/// _dao,提供数据访问支持
/// </summary>
protected abstract TDao Dao { get; }
public abstract TDao Dao { get; }
/// <summary>

View File

@ -41,7 +41,7 @@ namespace HuanMeng.MiaoYu.Code.Base
/// <summary>
/// dao 数据库
/// </summary>
protected override DAO Dao
public override DAO Dao
{
get
{

View File

@ -106,13 +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<ResponseUserInfo>(ResonseCode.Success, "请求成功", new ResponseUserInfo
{
NickName = user.NickName,
UserId = user.Id,
Currency = userData.Currency,
UserIconUrl = userData.UserIconUrl,
TalkCount = 1
RemainingChatCount= RemainingChatCount
});
}
}

View File

@ -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
{
/// <summary>
/// 用户货币记录
/// </summary>
public class UserCurrencyBLL(MiaoYuBase miaoYuBase)
{
/// <summary>
/// 获取货币余额
/// </summary>
/// <param name="userCurrencyType"></param>
/// <returns></returns>
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;
}
}
/// <summary>
///
/// </summary>
public static class UserCurrencyExtend
{
/// <summary>
/// 获取用户货币余额
/// </summary>
/// <param name="user"></param>
/// <param name="userCurrencyType"></param>
/// <param name="dao"></param>
/// <returns></returns>
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;
}
}
}

View File

@ -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
{
/// <summary>
/// 用户信息
/// </summary>
public class UserInfoBLL : MiaoYuBase<UserInfoBLL>
{
public UserInfoBLL(IServiceProvider serviceProvider) : base(serviceProvider)
{
}
private T_User? _user;
/// <summary>
/// 用户表
/// </summary>
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;
}
}
}
}

View File

@ -495,6 +495,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地址");

View File

@ -67,4 +67,9 @@ public partial class T_User: MultiTenantEntity
/// Ip地址
/// </summary>
public string? Ip { get; set; }
/// <summary>
/// 金币数量
/// </summary>
public int? GoldCoinCount { get; set; }
}

View File

@ -33,8 +33,8 @@ namespace HuanMeng.MiaoYu.Model.Dto
public string? NickName { get; set; }
/// <summary>
/// 聊过的数量
/// 聊天次数
/// </summary>
public int TalkCount { get;set; }
public int RemainingChatCount { get; set; }
}
}

View File

@ -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
{
/// <summary>
/// 用户货币类型
/// </summary>
public enum UserCurrencyType
{
/// <summary>
/// 免费币
/// </summary>
= 0,
/// <summary>
/// 付费币
/// </summary>
= 1,
/// <summary>
///
/// </summary>
= 2
}
}