提交代码
This commit is contained in:
parent
99d23e7f90
commit
9f298b5f00
|
|
@ -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) { };
|
||||
}
|
||||
|
|
|
|||
|
|
@ -174,7 +174,7 @@ namespace HuanMeng.MiaoYu.Code.Order
|
|||
if (currencyTransactionParams.Log != null)
|
||||
{
|
||||
currencyTransactionParams.Log.IsHide = true;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Dao.daoDbMiaoYu.context.SaveChanges();
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
}
|
||||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -32,7 +32,11 @@ namespace HuanMeng.MiaoYu.Model.EnumModel.User
|
|||
/// <summary>
|
||||
/// 生成音乐次数
|
||||
/// </summary>
|
||||
生成音乐点数 = 4,
|
||||
音乐点数 = 4,
|
||||
/// <summary>
|
||||
/// 音乐VIP
|
||||
/// </summary>
|
||||
音乐VIP = 5,
|
||||
/// <summary>
|
||||
/// 初级记忆卡
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user