feat:搭建积分领域

This commit is contained in:
陈淳
2024-01-11 18:51:53 +08:00
parent 3ee8419802
commit 5a65a2e49f
46 changed files with 466 additions and 80 deletions

View File

@@ -27,15 +27,27 @@ namespace Yi.Framework.Bbs.Domain.Entities
/// </summary>
public Guid UserId { get; set; }
/// <summary>
/// 用户限制
/// </summary>
public UserLimitEnum UserLimit { get; set; } = UserLimitEnum.Normal;
/// <summary>
/// 用户等级
/// </summary>
public int Level { get; set; } = 1;
/// <summary>
/// 用户限制
/// 钱钱
/// </summary>
public UserLimitEnum UserLimit { get; set; } = UserLimitEnum.Normal;
public decimal Money { get; set; } = 0m;
/// <summary>
/// 经验
/// </summary>
public long Experience { get; set; } = 0;
}
}

View File

@@ -2,7 +2,7 @@
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("Agree")]
public class AgreeEntity : Entity<Guid>, ICreationAuditedObject

View File

@@ -3,10 +3,10 @@ using Volo.Abp;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("Article")]
public class ArticleEntity : Entity<Guid>, ISoftDelete,IAuditedObject
public class ArticleEntity : Entity<Guid>, ISoftDelete, IAuditedObject
{
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true)]
public override Guid Id { get; protected set; }

View File

@@ -3,7 +3,7 @@ using Volo.Abp;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("Banner")]
public class BannerEntity : Entity<Guid>, ISoftDelete, IAuditedObject

View File

@@ -4,7 +4,7 @@ using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
using Yi.Framework.Rbac.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
/// <summary>
@@ -29,7 +29,7 @@ namespace Yi.Framework.Bbs.Domain.Entities
public override Guid Id { get; protected set; }
public bool IsDeleted { get; set; }
[SugarColumn(Length =500)]
[SugarColumn(Length = 500)]
public string Content { get; set; }
public Guid DiscussId { get; set; }

View File

@@ -4,7 +4,7 @@ using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
using Yi.Framework.Bbs.Domain.Shared.Enums;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("Discuss")]
public class DiscussEntity : Entity<Guid>, ISoftDelete, IAuditedObject

View File

@@ -1,7 +1,7 @@
using SqlSugar;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("DiscussMyType")]
public class DiscussMyTypeEntity : Entity<Guid>

View File

@@ -7,7 +7,7 @@ using SqlSugar;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
/// <summary>
/// 首页置顶主题

View File

@@ -2,7 +2,7 @@
using Volo.Abp;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("MyType")]
public class MyTypeEntity : Entity<Guid>, ISoftDelete

View File

@@ -3,7 +3,7 @@ using Volo.Abp.Domain.Entities;
using Volo.Abp;
using Volo.Abp.Auditing;
namespace Yi.Framework.Bbs.Domain.Entities
namespace Yi.Framework.Bbs.Domain.Entities.Forum
{
[SugarTable("Plate")]
public class PlateEntity : Entity<Guid>, ISoftDelete, IAuditedObject

View File

@@ -0,0 +1,51 @@
using SqlSugar;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities.Integral
{
/// <summary>
/// 等级表
/// </summary>
[SugarTable("Level")]
public class LevelEntity : Entity<Guid>
{
public LevelEntity() { }
public LevelEntity(int currentLevel, string name, decimal minExperience)
{
this.CurrentLevel = currentLevel;
this.Name = name;
this.MinExperience = minExperience;
}
[SugarColumn(IsPrimaryKey = true)]
public override Guid Id { get; protected set; }
/// <summary>
/// 当前等级
/// </summary>
public int CurrentLevel { get; set; }
/// <summary>
/// 最小所需经验值
/// </summary>
public decimal MinExperience { get; set; }
/// <summary>
/// 等级名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 等级称号
/// </summary>
public string? Nick { get; set; }
/// <summary>
/// 等候logo
/// </summary>
public string? Logo { get; set; }
}
}

View File

@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
using Volo.Abp.Auditing;
using Volo.Abp.Domain.Entities;
namespace Yi.Framework.Bbs.Domain.Entities.Integral
{
/// <summary>
/// 签到表
/// </summary>
[SugarTable("SignIn")]
public class SignInEntity : Entity<Guid>, ICreationAuditedObject
{
[SugarColumn(IsPrimaryKey = true)]
public override Guid Id { get; protected set; }
/// <summary>
/// 签到时间
/// </summary>
public DateTime CreationTime { get; set; }
//签到用户
public Guid? CreatorId { get; set; }
}
}

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Yi.Framework.Bbs.Domain.Entities;
using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Shared.Model;
using Yi.Framework.Core.Data;

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Bbs.Domain.Entities;
using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Shared.Model;
namespace Yi.Framework.Bbs.Domain.Managers.ArticleImport

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Yi.Framework.Bbs.Domain.Entities;
using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Shared.Model;
namespace Yi.Framework.Bbs.Domain.Managers.ArticleImport

View File

@@ -1,7 +1,7 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Domain.Services;
using Yi.Framework.Bbs.Domain.Entities;
using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.Bbs.Domain.Managers.ArticleImport;
using Yi.Framework.Bbs.Domain.Shared.Enums;
using Yi.Framework.Bbs.Domain.Shared.Model;

View File

@@ -0,0 +1,49 @@
using Volo.Abp.Domain.Services;
using Volo.Abp.EventBus.Local;
using Yi.Framework.Bbs.Domain.Entities.Integral;
using Yi.Framework.Bbs.Domain.Shared.Etos;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Bbs.Domain.Managers
{
public class IntegralManager : DomainService
{
private ISqlSugarRepository<LevelEntity> _levelRepository;
private ISqlSugarRepository<SignInEntity> _signInRepository;
private readonly ILocalEventBus _localEventBus;
public IntegralManager(ISqlSugarRepository<LevelEntity> levelRepository, ISqlSugarRepository<SignInEntity> signInRepository, ILocalEventBus localEventBus)
{
_levelRepository = levelRepository;
_localEventBus = localEventBus;
_signInRepository = signInRepository;
}
/// <summary>
/// 签到
/// </summary>
/// <returns></returns>
public async Task PostSignInAsync(Guid userId)
{
//签到,添加用户钱钱
//发送一个充值的领域事件即可
//签到添加的钱钱,跟连续签到有关系
//每天随机3-10连续签到每次累加多1点最多一天30
//额外
//如果随机数数字都相同额外再获取乘10倍
//这种逻辑,就是属于核心领域业务了
decimal number = 3;
//发布一个其他领域的事件
await _localEventBus.PublishAsync(new MoneyChangeEventArgs() { UserId = userId, Number = number });
}
}
}

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
using Yi.Framework.Bbs.Domain.Entities;
using Yi.Framework.Bbs.Domain.Entities.Forum;
using Yi.Framework.SqlSugarCore.Abstractions;
namespace Yi.Framework.Bbs.Domain.Repositories