feat:搭建积分领域
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -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; }
|
||||
@@ -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
|
||||
@@ -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; }
|
||||
@@ -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
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
/// 首页置顶主题
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 });
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user