提交代码
This commit is contained in:
parent
99d23e7f90
commit
9f298b5f00
|
|
@ -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) { };
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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,9 +255,54 @@ 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 (transactionParams.UserCurrencyType == UserCurrencyType.音乐VIP)
|
||||||
|
{
|
||||||
|
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) && transactionParams.Money > 0)
|
if (MUserCurrencyType.Contains(transactionParams.UserCurrencyType))
|
||||||
{
|
{
|
||||||
isMemoryCardTransaction = true;
|
isMemoryCardTransaction = true;
|
||||||
var memoryCardType = transactionParams.UserCurrencyType.GetUserMemoryCardType();
|
var memoryCardType = transactionParams.UserCurrencyType.GetUserMemoryCardType();
|
||||||
|
|
@ -297,6 +344,7 @@ namespace HuanMeng.MiaoYu.Code.Users
|
||||||
return true;
|
return true;
|
||||||
//transactionParams.Money = 1;
|
//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)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -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>
|
/// </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");
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user