提交代码

This commit is contained in:
zpc 2024-09-27 16:13:27 +08:00
parent 99d23e7f90
commit 9f298b5f00
7 changed files with 174 additions and 45 deletions

View File

@ -64,7 +64,7 @@ namespace HuanMeng.MiaoYu.Code.Music
} }
//获取用户余额 //获取用户余额
UserInfoBLL userInfoBLL = new UserInfoBLL(Dao, _UserId); UserInfoBLL userInfoBLL = new UserInfoBLL(Dao, _UserId);
var Currency = userInfoBLL[UserCurrencyType.]?.CurrencyMoney; var Currency = userInfoBLL[UserCurrencyType.]?.CurrencyMoney;
string sqlString = $@"select isnull(sum(PlayCount),0) PlayCount,isnull(sum(LikeCount),0) LikeCount,isnull(sum(DownloadCount),0) DownloadCount from M_Songs where AuthorId={_UserId}"; string sqlString = $@"select isnull(sum(PlayCount),0) PlayCount,isnull(sum(LikeCount),0) LikeCount,isnull(sum(DownloadCount),0) DownloadCount from M_Songs where AuthorId={_UserId}";
var info = Dao.daoDbMiaoYu.context.Database.SqlQueryRaw<MusicSongsInfo>(sqlString).FirstOrDefault(); var info = Dao.daoDbMiaoYu.context.Database.SqlQueryRaw<MusicSongsInfo>(sqlString).FirstOrDefault();
@ -204,7 +204,7 @@ namespace HuanMeng.MiaoYu.Code.Music
throw new Exception("请先登录"); throw new Exception("请先登录");
} }
UserInfoBLL userInfoBLL = new UserInfoBLL(Dao, _UserId); UserInfoBLL userInfoBLL = new UserInfoBLL(Dao, _UserId);
if (!userInfoBLL.IsCheckingSufficient(UserCurrencyType., 10)) if (!userInfoBLL.IsCheckingSufficient(UserCurrencyType., 10))
{ {
throw new Exception("音乐点数不足"); throw new Exception("音乐点数不足");
} }
@ -274,7 +274,7 @@ namespace HuanMeng.MiaoYu.Code.Music
Dao.daoDbMiaoYu.context.Add(song2); Dao.daoDbMiaoYu.context.Add(song2);
} }
//扣除货币 //扣除货币
userInfoBLL[UserCurrencyType.].ConsumeMoneyNoWork(-10, Dao); userInfoBLL[UserCurrencyType.].ConsumeMoneyNoWork(-10, Dao);
Dao.daoDbMiaoYu.context.SaveChanges(); Dao.daoDbMiaoYu.context.SaveChanges();
return new BaseResponse<int>(ResonseCode.Success, "音乐正在生成", m_SongInfo.Id) { }; return new BaseResponse<int>(ResonseCode.Success, "音乐正在生成", m_SongInfo.Id) { };
} }

View File

@ -174,7 +174,7 @@ namespace HuanMeng.MiaoYu.Code.Order
if (currencyTransactionParams.Log != null) if (currencyTransactionParams.Log != null)
{ {
currencyTransactionParams.Log.IsHide = true; currencyTransactionParams.Log.IsHide = true;
} }
} }
Dao.daoDbMiaoYu.context.SaveChanges(); Dao.daoDbMiaoYu.context.SaveChanges();

View File

@ -7,6 +7,8 @@ using HuanMeng.MiaoYu.Model.EnumModel.User;
using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using StackExchange.Redis;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -253,49 +255,95 @@ namespace HuanMeng.MiaoYu.Code.Users
public static bool ConsumeMoneyNoWork(CurrencyTransactionParams transactionParams, DAO dao) public static bool ConsumeMoneyNoWork(CurrencyTransactionParams transactionParams, DAO dao)
{ {
bool isMemoryCardTransaction = false; bool isMemoryCardTransaction = false;
if (transactionParams.Money > 0)
// 记忆卡交易的特殊处理
if (MUserCurrencyType.Contains(transactionParams.UserCurrencyType) && transactionParams.Money > 0)
{ {
isMemoryCardTransaction = true; if (transactionParams.UserCurrencyType == UserCurrencyType.VIP)
var memoryCardType = transactionParams.UserCurrencyType.GetUserMemoryCardType();
T_User_MemoryCard memoryCard = new T_User_MemoryCard()
{ {
RemainingCount = (int)transactionParams.Money, var songVip = dao.daoDbMiaoYu.context.M_SongVIP.FirstOrDefault(it => it.UserId == transactionParams.UserId && it.Vip == 1);
CharacterId = 0, if (songVip == null)
MemoryCardToken = memoryCardType.GetUserMemoryCardTypeToken(), {
CreateTime = DateTime.Now, songVip = new M_SongVIP()
MemoryCardType = (int)memoryCardType, {
UseCount = 0, UserId = transactionParams.UserId,
Name = transactionParams.Products?.ProductName ?? transactionParams.UserCurrencyType.ToString(), CreateAt = DateTime.Now,
PopId = transactionParams.Products?.ProductId ?? transactionParams.ProductId, ExpirationAt = DateTime.MinValue,
Remark = transactionParams.Remarks, UpdateAt = DateTime.Now,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId, Vip = 1,
UpdateTime = DateTime.Now, Notes = transactionParams.Products?.ToString() + "_" + transactionParams.OrderId,
UserId = transactionParams.UserId, TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
Image = transactionParams.ImageUrl };
}; dao.daoDbMiaoYu.context.M_SongVIP.Add(songVip);
dao.daoDbMiaoYu.context.T_User_MemoryCard.Add(memoryCard); }
var mlog = new T_User_Currency_Log() if (songVip.ExpirationAt < DateTime.Now)
{
songVip.ExpirationAt = DateTime.Now;
}
songVip.ExpirationAt.AddHours((int)transactionParams.Money);
var mlog = new T_User_Currency_Log()
{
Consume = 1,
ConsumeType = (int)UserCurrencyConsumeType.,
CreateTime = DateTime.Now,
CurrencyType = (int)transactionParams.UserCurrencyType,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
UpdateTime = DateTime.Now,
UserId = transactionParams.UserId,
Remarks = transactionParams.Remarks,
Title = $"{transactionParams.UserCurrencyType}",
OrderId = transactionParams.OrderId,
IsHide = false
};
mlog.Remarks += $"于{DateTime.Now:yyyy-MM-dd HH:mm:ss}购买[{transactionParams.UserCurrencyType}][{Math.Abs(transactionParams.Money)}]";
dao.daoDbMiaoYu.context.T_User_Currency_Log.Add(mlog);
transactionParams.Log = mlog;
dao.daoDbMiaoYu.context.SaveChanges();
return true;
}
// 记忆卡交易的特殊处理
if (MUserCurrencyType.Contains(transactionParams.UserCurrencyType))
{ {
Consume = 1, isMemoryCardTransaction = true;
ConsumeType = (int)UserCurrencyConsumeType., var memoryCardType = transactionParams.UserCurrencyType.GetUserMemoryCardType();
CreateTime = DateTime.Now, T_User_MemoryCard memoryCard = new T_User_MemoryCard()
CurrencyType = (int)transactionParams.UserCurrencyType, {
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId, RemainingCount = (int)transactionParams.Money,
UpdateTime = DateTime.Now, CharacterId = 0,
UserId = transactionParams.UserId, MemoryCardToken = memoryCardType.GetUserMemoryCardTypeToken(),
Remarks = transactionParams.Remarks, CreateTime = DateTime.Now,
Title = $"{transactionParams.UserCurrencyType}", MemoryCardType = (int)memoryCardType,
OrderId = transactionParams.OrderId, UseCount = 0,
IsHide = false Name = transactionParams.Products?.ProductName ?? transactionParams.UserCurrencyType.ToString(),
}; PopId = transactionParams.Products?.ProductId ?? transactionParams.ProductId,
mlog.Remarks += $"于{DateTime.Now:yyyy-MM-dd HH:mm:ss}购买[{transactionParams.UserCurrencyType}][{Math.Abs(transactionParams.Money)}]"; Remark = transactionParams.Remarks,
dao.daoDbMiaoYu.context.T_User_Currency_Log.Add(mlog); TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
transactionParams.Log = mlog; UpdateTime = DateTime.Now,
dao.daoDbMiaoYu.context.SaveChanges(); UserId = transactionParams.UserId,
return true; Image = transactionParams.ImageUrl
//transactionParams.Money = 1; };
dao.daoDbMiaoYu.context.T_User_MemoryCard.Add(memoryCard);
var mlog = new T_User_Currency_Log()
{
Consume = 1,
ConsumeType = (int)UserCurrencyConsumeType.,
CreateTime = DateTime.Now,
CurrencyType = (int)transactionParams.UserCurrencyType,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
UpdateTime = DateTime.Now,
UserId = transactionParams.UserId,
Remarks = transactionParams.Remarks,
Title = $"{transactionParams.UserCurrencyType}",
OrderId = transactionParams.OrderId,
IsHide = false
};
mlog.Remarks += $"于{DateTime.Now:yyyy-MM-dd HH:mm:ss}购买[{transactionParams.UserCurrencyType}][{Math.Abs(transactionParams.Money)}]";
dao.daoDbMiaoYu.context.T_User_Currency_Log.Add(mlog);
transactionParams.Log = mlog;
dao.daoDbMiaoYu.context.SaveChanges();
return true;
//transactionParams.Money = 1;
}
} }
var userCurrency = dao.daoDbMiaoYu.context.T_User_Currency.FirstOrDefault(it => it.UserId == transactionParams.UserId && it.CurrencyType == (int)transactionParams.UserCurrencyType); var userCurrency = dao.daoDbMiaoYu.context.T_User_Currency.FirstOrDefault(it => it.UserId == transactionParams.UserId && it.CurrencyType == (int)transactionParams.UserCurrencyType);
if (userCurrency == null) if (userCurrency == null)

View File

@ -0,0 +1,43 @@
using System;
namespace HuanMeng.MiaoYu.Model.DbSqlServer.Db_MiaoYu;
/// <summary>
/// 音乐VIP等级
/// </summary>
public partial class M_SongVIP: MultiTenantEntity
{
public virtual int Id { get; set; }
/// <summary>
/// vip等级
/// </summary>
public virtual int Vip { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public virtual DateTime CreateAt { get; set; }
/// <summary>
/// 过期时间
/// </summary>
public virtual DateTime ExpirationAt { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public virtual DateTime UpdateAt { get; set; }
/// <summary>
/// 备注
/// </summary>
public virtual string? Notes { get; set; }
/// <summary>
/// 用户Id
/// </summary>
public virtual int UserId { get; set; }
public override Guid TenantId { get; set; }
}

View File

@ -78,6 +78,11 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext
/// </summary> /// </summary>
public virtual DbSet<M_SongInfo> M_SongInfo { get; set; } public virtual DbSet<M_SongInfo> M_SongInfo { get; set; }
/// <summary>
/// 音乐VIP等级
/// </summary>
public virtual DbSet<M_SongVIP> M_SongVIP { get; set; }
/// <summary> /// <summary>
/// 存储所有生成的歌曲的信息 /// 存储所有生成的歌曲的信息
/// </summary> /// </summary>
@ -417,6 +422,34 @@ public partial class MiaoYuContext : MultiTenantDbContext//DbContext
} }
}); });
modelBuilder.Entity<M_SongVIP>(entity =>
{
entity.HasKey(e => e.Id).HasName("PK__M_SongVI__3214EC07B0ECE451");
entity.ToTable(tb => tb.HasComment("音乐VIP等级"));
entity.Property(e => e.CreateAt)
.HasComment("创建时间")
.HasColumnType("datetime");
entity.Property(e => e.ExpirationAt)
.HasComment("过期时间")
.HasColumnType("datetime");
entity.Property(e => e.Notes)
.HasMaxLength(200)
.HasComment("备注");
entity.Property(e => e.TenantId).HasComment("租户");
entity.Property(e => e.UpdateAt)
.HasComment("修改时间")
.HasColumnType("datetime");
entity.Property(e => e.UserId).HasComment("用户Id");
entity.Property(e => e.Vip).HasComment("vip等级");
//添加全局筛选器
if (this.TenantInfo != null)
{
entity.HasQueryFilter(it => it.TenantId == this.TenantInfo.TenantId);
}
});
modelBuilder.Entity<M_Songs>(entity => modelBuilder.Entity<M_Songs>(entity =>
{ {
entity.HasKey(e => e.Id).HasName("PK__Songs__3214EC0728D42B46"); entity.HasKey(e => e.Id).HasName("PK__Songs__3214EC0728D42B46");

View File

@ -32,7 +32,11 @@ namespace HuanMeng.MiaoYu.Model.EnumModel.User
/// <summary> /// <summary>
/// 生成音乐次数 /// 生成音乐次数
/// </summary> /// </summary>
= 4, = 4,
/// <summary>
/// 音乐VIP
/// </summary>
VIP = 5,
/// <summary> /// <summary>
/// 初级记忆卡 /// 初级记忆卡
/// </summary> /// </summary>

View File

@ -176,6 +176,7 @@ namespace HuanMeng.MiaoYu.WebApi.Controllers
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpGet] [HttpGet]
[AllowAnonymous]
public async Task<BaseResponse<MShopInfoDto>> GetShopInfoList() public async Task<BaseResponse<MShopInfoDto>> GetShopInfoList()
{ {
MusicBLL musicBLL = new MusicBLL(ServiceProvider); MusicBLL musicBLL = new MusicBLL(ServiceProvider);