提交代码

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);
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}";
var info = Dao.daoDbMiaoYu.context.Database.SqlQueryRaw<MusicSongsInfo>(sqlString).FirstOrDefault();
@ -204,7 +204,7 @@ namespace HuanMeng.MiaoYu.Code.Music
throw new Exception("请先登录");
}
UserInfoBLL userInfoBLL = new UserInfoBLL(Dao, _UserId);
if (!userInfoBLL.IsCheckingSufficient(UserCurrencyType., 10))
if (!userInfoBLL.IsCheckingSufficient(UserCurrencyType., 10))
{
throw new Exception("音乐点数不足");
}
@ -274,7 +274,7 @@ namespace HuanMeng.MiaoYu.Code.Music
Dao.daoDbMiaoYu.context.Add(song2);
}
//扣除货币
userInfoBLL[UserCurrencyType.].ConsumeMoneyNoWork(-10, Dao);
userInfoBLL[UserCurrencyType.].ConsumeMoneyNoWork(-10, Dao);
Dao.daoDbMiaoYu.context.SaveChanges();
return new BaseResponse<int>(ResonseCode.Success, "音乐正在生成", m_SongInfo.Id) { };
}

View File

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

View File

@ -7,6 +7,8 @@ using HuanMeng.MiaoYu.Model.EnumModel.User;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.Extensions.Logging;
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
@ -253,49 +255,95 @@ namespace HuanMeng.MiaoYu.Code.Users
public static bool ConsumeMoneyNoWork(CurrencyTransactionParams transactionParams, DAO dao)
{
bool isMemoryCardTransaction = false;
// 记忆卡交易的特殊处理
if (MUserCurrencyType.Contains(transactionParams.UserCurrencyType) && transactionParams.Money > 0)
if (transactionParams.Money > 0)
{
isMemoryCardTransaction = true;
var memoryCardType = transactionParams.UserCurrencyType.GetUserMemoryCardType();
T_User_MemoryCard memoryCard = new T_User_MemoryCard()
if (transactionParams.UserCurrencyType == UserCurrencyType.VIP)
{
RemainingCount = (int)transactionParams.Money,
CharacterId = 0,
MemoryCardToken = memoryCardType.GetUserMemoryCardTypeToken(),
CreateTime = DateTime.Now,
MemoryCardType = (int)memoryCardType,
UseCount = 0,
Name = transactionParams.Products?.ProductName ?? transactionParams.UserCurrencyType.ToString(),
PopId = transactionParams.Products?.ProductId ?? transactionParams.ProductId,
Remark = transactionParams.Remarks,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
UpdateTime = DateTime.Now,
UserId = transactionParams.UserId,
Image = transactionParams.ImageUrl
};
dao.daoDbMiaoYu.context.T_User_MemoryCard.Add(memoryCard);
var mlog = new T_User_Currency_Log()
var songVip = dao.daoDbMiaoYu.context.M_SongVIP.FirstOrDefault(it => it.UserId == transactionParams.UserId && it.Vip == 1);
if (songVip == null)
{
songVip = new M_SongVIP()
{
UserId = transactionParams.UserId,
CreateAt = DateTime.Now,
ExpirationAt = DateTime.MinValue,
UpdateAt = DateTime.Now,
Vip = 1,
Notes = transactionParams.Products?.ToString() + "_" + transactionParams.OrderId,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
};
dao.daoDbMiaoYu.context.M_SongVIP.Add(songVip);
}
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,
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;
isMemoryCardTransaction = true;
var memoryCardType = transactionParams.UserCurrencyType.GetUserMemoryCardType();
T_User_MemoryCard memoryCard = new T_User_MemoryCard()
{
RemainingCount = (int)transactionParams.Money,
CharacterId = 0,
MemoryCardToken = memoryCardType.GetUserMemoryCardTypeToken(),
CreateTime = DateTime.Now,
MemoryCardType = (int)memoryCardType,
UseCount = 0,
Name = transactionParams.Products?.ProductName ?? transactionParams.UserCurrencyType.ToString(),
PopId = transactionParams.Products?.ProductId ?? transactionParams.ProductId,
Remark = transactionParams.Remarks,
TenantId = dao.daoDbMiaoYu.context.TenantInfo.TenantId,
UpdateTime = DateTime.Now,
UserId = transactionParams.UserId,
Image = transactionParams.ImageUrl
};
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);
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>
public virtual DbSet<M_SongInfo> M_SongInfo { get; set; }
/// <summary>
/// 音乐VIP等级
/// </summary>
public virtual DbSet<M_SongVIP> M_SongVIP { get; set; }
/// <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 =>
{
entity.HasKey(e => e.Id).HasName("PK__Songs__3214EC0728D42B46");

View File

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

View File

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