refactor: 重构项目基础架构与实体体系

- 替换原有自定义生命周期接口为通用基础服务体系
- 将所有实体基类替换为带雪花ID的SqlSugarBaseEntity
- 迁移DTO到Models项目并统一管理
- 移除冗余的Repository层实现,改用通用基础服务
- 添加Yitter.IdGenerator雪花ID生成支持
- 重构SqlSugar数据库上下文与依赖注入配置
- 新增微信用户、用户勋章、背包等实体与配套服务
- 整理分页查询与结果封装类
- 优化WebApi控制器结构
This commit is contained in:
glz
2026-06-02 14:10:43 +08:00
parent 831f8ba7f5
commit 8ed012bba8
51 changed files with 1762 additions and 1141 deletions

View File

@ -0,0 +1,96 @@
using QYZH.InteractiveMagazine.Models.Dto;
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 管理员创建/更新输入
/// </summary>
public class AdminUserInput
{
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; } = string.Empty;
/// <summary>
/// 密码(创建时必填,更新时为空表示不修改密码)
/// </summary>
public string? Password { get; set; }
/// <summary>
/// 管理员类型: SuperAdmin, Editor
/// </summary>
public string Type { get; set; } = "Editor";
/// <summary>
/// 状态: Active, Inactive
/// </summary>
public string Status { get; set; } = "Active";
}
/// <summary>
/// 管理员输出
/// </summary>
public class AdminUserOutput
{
/// <summary>
/// 主键ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; } = string.Empty;
/// <summary>
/// 管理员类型
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; } = string.Empty;
/// <summary>
/// 创建人
/// </summary>
public string? CreatedBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// 更新人
/// </summary>
public string? UpdatedBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdatedAt { get; set; }
}
/// <summary>
/// 管理员分页查询输入
/// </summary>
public class AdminUserQueryInput : PageQueryModel
{
/// <summary>
/// 用户名(模糊查询)
/// </summary>
public string? UserName { get; set; }
/// <summary>
/// 管理员类型
/// </summary>
public string? Type { get; set; }
/// <summary>
/// 状态
/// </summary>
public string? Status { get; set; }
}

View File

@ -0,0 +1,40 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 管理员登录输入
/// </summary>
public class AdminLoginInput
{
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; } = string.Empty;
/// <summary>
/// 密码
/// </summary>
public string Password { get; set; } = string.Empty;
}
public class AdminLoginOutput
{
public string Token { get; set; } = string.Empty;
public long UserId { get; set; }
public string UserName { get; set; } = string.Empty;
public string Type { get; set; } = string.Empty;
}
public class AdminUserInfoOutput
{
public long UserId { get; set; }
public string UserName { get; set; } = string.Empty;
public string Type { get; set; } = string.Empty;
public string Status { get; set; } = string.Empty;
}

View File

@ -1,33 +1,73 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 分页输出
/// 通用分页信息类
/// </summary>
/// <typeparam name="T">数据类型</typeparam>
public class PageListModel<T>
{
/// <summary>
/// 页码
/// 每页行数
/// </summary>
public int PageIndex { get; set; }
public int PageSize { get; set; } = 10;
/// <summary>
/// 每页条数
/// 当前页
/// </summary>
public int PageSize { get; set; }
public int PageIndex { get; set; } = 1;
/// <summary>
/// 总记录数
/// </summary>
public long TotalCount { get; set; }
public int TotalNum { get; set; }
/// <summary>
/// 总页数
/// </summary>
public int TotalPages => PageSize > 0 ? (int)Math.Ceiling((double)TotalCount / PageSize) : 0;
public int TotalPage
{
get
{
if (TotalNum > 0)
return TotalNum % PageSize == 0 ? TotalNum / PageSize : TotalNum / PageSize + 1;
else
return 0;
}
}
public List<T> Result { get; set; }
/// <summary>
/// 数据列表
/// 额外数据
/// </summary>
public List<T>? List { get; set; }
public Dictionary<string, object> Extra { get; set; } = new Dictionary<string, object>();
/// <summary>
/// 是否有上一页
/// </summary>
public bool HasPrev
{
get
{
return PageIndex > 1;
}
}
/// <summary>
/// 下一页是否可用
/// </summary>
public bool HasNext
{
get
{
return TotalPage > PageIndex;
}
}
public PageListModel()
{
}
public PageListModel(List<T> result, int pageIndex, int pageSize, int totalNum)
{
PageIndex = pageIndex;
PageSize = pageSize;
TotalNum = totalNum;
Result = result;
}
}

View File

@ -1,27 +1,57 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 分页查询输入
/// 通用分页查询
/// </summary>
public class PageQueryModel
{
/// <summary>
/// 页码默认1
///当前页
/// </summary>
public int PageIndex { get; set; } = 1;
/// <summary>
/// 每页条数默认10
///每页条数
/// </summary>
public int PageSize { get; set; } = 10;
/// <summary>
/// 排序字段
/// </summary>
public string? SortField { get; set; }
public string Sort { get; set; } = string.Empty;
/// <summary>
/// 排序类型,前端传入的是"ascending""descending"
/// </summary>
public string SortType { get; set; } = string.Empty;
/// <summary>
/// 排序方式asc/desc
/// 关键字
/// </summary>
public string? SortOrder { get; set; }
public string? KeyWord { get; set; }
}
/// <summary>
/// 分页查询泛型类
/// </summary>
/// <typeparam name="T">查询参数类型</typeparam>
public class PageQueryModel<T> : PageQueryModel where T : class, new()
{
/// <summary>
/// 查询参数
/// </summary>
public T Params { get; set; } = new T();
public TP ConvertTo<TP>() where TP : class
{
if (Params != null)
{
return Params as TP;
}
return default;
}
public int Start => (PageIndex - 1) * PageSize + 1;
public int End => PageIndex * PageSize;
}

View File

@ -0,0 +1,198 @@
using QYZH.InteractiveMagazine.Models.Dto;
namespace QYZH.InteractiveMagazine.IService.Dto;
/// <summary>
/// 微信登录输出
/// </summary>
public class WeChatLoginOutput
{
/// <summary>
/// 访问令牌
/// </summary>
public string Token { get; set; } = string.Empty;
/// <summary>
/// 用户ID
/// </summary>
public long UserId { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; } = string.Empty;
/// <summary>
/// 微信OpenId
/// </summary>
public string OpenId { get; set; } = string.Empty;
}
/// <summary>
/// 微信用户创建/更新输入
/// </summary>
public class WxUserInput
{
/// <summary>
/// 微信OpenId
/// </summary>
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 微信UnionId
/// </summary>
public string? UnionId { get; set; }
/// <summary>
/// 昵称
/// </summary>
public string? NickName { get; set; }
/// <summary>
/// 头像地址
/// </summary>
public string? AvatarUrl { get; set; }
/// <summary>
/// 手机号
/// </summary>
public string? Phone { get; set; }
/// <summary>
/// 积分余额
/// </summary>
public int Points { get; set; } = 0;
/// <summary>
/// 用户类型: Normal, VIP
/// </summary>
public string Type { get; set; } = "Normal";
/// <summary>
/// 状态: Active, Disabled
/// </summary>
public string Status { get; set; } = "Active";
/// <summary>
/// 密码默认手机后4位
/// </summary>
public string? Pwd { get; set; }
/// <summary>
/// 当前成长值
/// </summary>
public int GrowthPoints { get; set; } = 0;
}
/// <summary>
/// 微信用户输出
/// </summary>
public class WxUserOutput
{
/// <summary>
/// 主键ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 微信OpenId
/// </summary>
public string OpenId { get; set; } = string.Empty;
/// <summary>
/// 微信UnionId
/// </summary>
public string? UnionId { get; set; }
/// <summary>
/// 昵称
/// </summary>
public string? NickName { get; set; }
/// <summary>
/// 头像地址
/// </summary>
public string? AvatarUrl { get; set; }
/// <summary>
/// 手机号
/// </summary>
public string? Phone { get; set; }
/// <summary>
/// 积分余额
/// </summary>
public int Points { get; set; }
/// <summary>
/// 用户类型
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; } = string.Empty;
/// <summary>
/// 当前成长值
/// </summary>
public int GrowthPoints { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string? CreatedBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// 更新人
/// </summary>
public string? UpdatedBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdatedAt { get; set; }
}
/// <summary>
/// 微信用户分页查询输入
/// </summary>
public class WxUserQueryInput : PageQueryModel
{
/// <summary>
/// 昵称(模糊查询)
/// </summary>
public string? NickName { get; set; }
/// <summary>
/// 手机号(模糊查询)
/// </summary>
public string? Phone { get; set; }
/// <summary>
/// 用户类型
/// </summary>
public string? Type { get; set; }
/// <summary>
/// 状态
/// </summary>
public string? Status { get; set; }
}
/// <summary>
/// 微信手机号获取输出
/// </summary>
public class WeChatPhoneNumberOutput
{
/// <summary>
/// 手机号
/// </summary>
public string PhoneNumber { get; set; } = string.Empty;
}

View File

@ -6,19 +6,12 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///后台管理员表
///</summary>
[SugarTable("AdminUser")]
public partial class AdminUser : BaseEntity
public partial class AdminUser : SqlSugarBaseEntity
{
public AdminUser(){
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
public new int Id { get; set; }
/// <summary>
/// Desc:用户名

View File

@ -1,43 +0,0 @@
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity;
/// <summary>
/// 基础实体类
/// </summary>
public abstract class BaseEntity
{
/// <summary>
/// 主键Id
/// </summary>
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public long Id { get; set; }
/// <summary>
/// 是否已删除
/// </summary>
[SugarColumn(IsIgnore = false)]
public bool IsDeleted { get; set; } = false;
/// <summary>
/// 创建人
/// </summary>
[SugarColumn(Length = 50)]
public string? CreatedBy { get; set; } = "System";
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; } = DateTime.Now;
/// <summary>
/// 更新人
/// </summary>
[SugarColumn(Length = 50)]
public string? UpdatedBy { get; set; } = "System";
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdatedAt { get; set; } = DateTime.Now;
}

View File

@ -6,19 +6,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///签到配置表
///</summary>
[SugarTable("CheckInConfig")]
public partial class CheckInConfig : BaseEntity
public partial class CheckInConfig : SqlSugarBaseEntity
{
public CheckInConfig(){
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
public new int Id {get;set;}
/// <summary>
/// Desc:连续签到天数

View File

@ -6,18 +6,18 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///签到记录表
///</summary>
[SugarTable("CheckInRecord")]
public partial class CheckInRecord : BaseEntity
public partial class CheckInRecord : SqlSugarBaseEntity
{
public CheckInRecord(){
}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:签到日期

View File

@ -6,18 +6,19 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///社区预置消息表
///</summary>
[SugarTable("CommunityMessage")]
public partial class CommunityMessage : BaseEntity
public partial class CommunityMessage : SqlSugarBaseEntity
{
public CommunityMessage(){
}
/// <summary>
/// Desc:期刊Id
/// Default:
/// Nullable:False
/// </summary>
public long JournalId {get;set;}
/// <summary>
/// Desc:期刊Id
/// Default:
/// Nullable:False
/// </summary>
public long JournalId {get;set;}
/// <summary>
/// Desc:消息内容

View File

@ -6,18 +6,18 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///期刊表
///</summary>
[SugarTable("Journal")]
public partial class Journal : BaseEntity
public partial class Journal : SqlSugarBaseEntity
{
public Journal(){
}
/// <summary>
/// Desc:期刊号
/// Default:
/// Nullable:False
/// </summary>
public int IssueNumber {get;set;}
/// <summary>
/// Desc:期刊号
/// Default:
/// Nullable:False
/// </summary>
public int IssueNumber {get;set;}
/// <summary>
/// Desc:期刊标题

View File

@ -6,74 +6,68 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///勋章定义表
///</summary>
[SugarTable("Medal")]
public partial class Medal : BaseEntity
public partial class Medal : SqlSugarBaseEntity
{
public Medal(){
public Medal()
{
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
public new int Id {get;set;}
}
/// <summary>
/// Desc:勋章名称
/// Default:
/// Nullable:False
/// </summary>
public string Name {get;set;}
/// <summary>
/// Desc:勋章名称
/// Default:
/// Nullable:False
/// </summary>
public string Name { get; set; }
/// <summary>
/// Desc:获得条件描述
/// Default:
/// Nullable:True
/// </summary>
public string Description {get;set;}
/// <summary>
/// Desc:获得条件描述
/// Default:
/// Nullable:True
/// </summary>
public string Description { get; set; }
/// <summary>
/// Desc:图片地址
/// Default:
/// Nullable:True
/// </summary>
public string ImageUrl {get;set;}
/// <summary>
/// Desc:图片地址
/// Default:
/// Nullable:True
/// </summary>
public string ImageUrl { get; set; }
/// <summary>
/// Desc:条件类型: EvolutionCount, FeedingCount等
/// Default:
/// Nullable:False
/// </summary>
public string ConditionType {get;set;}
/// <summary>
/// Desc:条件类型: EvolutionCount, FeedingCount等
/// Default:
/// Nullable:False
/// </summary>
public string ConditionType { get; set; }
/// <summary>
/// Desc:条件阈值
/// Default:
/// Nullable:False
/// </summary>
public int ConditionValue {get;set;}
/// <summary>
/// Desc:条件阈值
/// Default:
/// Nullable:False
/// </summary>
public int ConditionValue { get; set; }
/// <summary>
/// Desc:排序
/// Default:0
/// Nullable:False
/// </summary>
public int SortOrder {get;set;}
/// <summary>
/// Desc:排序
/// Default:0
/// Nullable:False
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// Desc:勋章的类型: Pet, Community
/// Default:Pet
/// Nullable:False
/// </summary>
public string Type {get;set;}
/// <summary>
/// Desc:勋章的类型: Pet, Community
/// Default:Pet
/// Nullable:False
/// </summary>
public string Type { get; set; }
/// <summary>
/// Desc:状态: Active, Inactive
/// Default:Active
/// Nullable:False
/// </summary>
public string Status {get;set;}
/// <summary>
/// Desc:状态: Active, Inactive
/// Default:Active
/// Nullable:False
/// </summary>
public string Status { get; set; }
}
}

View File

@ -6,18 +6,19 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///模板评论表
///</summary>
[SugarTable("MessageComment")]
public partial class MessageComment : BaseEntity
public partial class MessageComment : SqlSugarBaseEntity
{
public MessageComment(){
}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:消息Id

View File

@ -6,18 +6,18 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///点赞记录表
///</summary>
[SugarTable("MessageLike")]
public partial class MessageLike : BaseEntity
public partial class MessageLike : SqlSugarBaseEntity
{
public MessageLike(){
}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:消息Id

View File

@ -6,18 +6,18 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///宠物实例表
///</summary>
[SugarTable("Pet")]
public partial class Pet : BaseEntity
public partial class Pet : SqlSugarBaseEntity
{
public Pet(){
}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:宠物昵称

View File

@ -6,19 +6,12 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///宠物进化链定义表
///</summary>
[SugarTable("PetEvolution")]
public partial class PetEvolution : BaseEntity
public partial class PetEvolution : SqlSugarBaseEntity
{
public PetEvolution(){
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
public new int Id {get;set;}
/// <summary>
/// Desc:阶段名称

View File

@ -6,18 +6,19 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///宠物喂养记录表
///</summary>
[SugarTable("PetFeedingRecord")]
public partial class PetFeedingRecord : BaseEntity
public partial class PetFeedingRecord : SqlSugarBaseEntity
{
public PetFeedingRecord(){
}
/// <summary>
/// Desc:宠物Id
/// Default:
/// Nullable:False
/// </summary>
public long PetId {get;set;}
/// <summary>
/// Desc:宠物Id
/// Default:
/// Nullable:False
/// </summary>
public long PetId {get;set;}
/// <summary>
/// Desc:用户Id

View File

@ -6,18 +6,19 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///积分流水记录表
///</summary>
[SugarTable("PointsRecord")]
public partial class PointsRecord : BaseEntity
public partial class PointsRecord : SqlSugarBaseEntity
{
public PointsRecord(){
}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:用户Id
/// Default:
/// Nullable:False
/// </summary>
public long UserId {get;set;}
/// <summary>
/// Desc:变动数值

View File

@ -6,19 +6,12 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///虚拟商品表
///</summary>
[SugarTable("Product")]
public partial class Product : BaseEntity
public partial class Product : SqlSugarBaseEntity
{
public Product(){
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
public new int Id {get;set;}
/// <summary>
/// Desc:商品名称

View File

@ -0,0 +1,63 @@
using SqlSugar;
using Yitter.IdGenerator;
namespace QYZH.InteractiveMagazine.Models.Entity
{
public class SqlSugarBaseEntity
{
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
public long Id { get; set; } = YitIdHelper.NextId();
/// <summary>
/// Desc:状态 0禁用 1启用
/// Default:1
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName = "Status")]
public string Status { get; set; }
/// <summary>
/// Desc:是否删除
/// Default:b'0'
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName = "IsDeleted")]
public bool IsDeleted { get; set; } = false;
/// <summary>
/// Desc:创建人
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName = "CreatedBy", IsOnlyIgnoreUpdate = true)]
public string CreatedBy { get; set; }
/// <summary>
/// Desc:创建时间
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName = "CreatedAt", IsOnlyIgnoreUpdate = true)]
public DateTime CreatedAt { get; set; }
/// <summary>
/// Desc:修改人
/// Default:
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName = "updatedBy", IsOnlyIgnoreInsert = true)]
public string UpdatedBy { get; set; }
/// <summary>
/// Desc:修改时间
/// Default:
/// Nullable:True
/// </summary>
[SugarColumn(ColumnName = "UpdatedAt", IsOnlyIgnoreInsert = true)]
public DateTime? UpdatedAt { get; set; }
}
}

View File

@ -6,19 +6,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///固定模板言论表
///</summary>
[SugarTable("TemplateSentence")]
public partial class TemplateSentence : BaseEntity
public partial class TemplateSentence : SqlSugarBaseEntity
{
public TemplateSentence(){
}
/// <summary>
/// Desc:主键
/// Default:
/// Nullable:False
/// </summary>
[SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
public new int Id {get;set;}
/// <summary>
/// Desc:模板内容

View File

@ -1,71 +0,0 @@
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity
{
///<summary>
///用户表
///</summary>
[SugarTable("User")]
public partial class User : BaseEntity
{
public User(){
}
/// <summary>
/// Desc:微信OpenId
/// Default:
/// Nullable:False
/// </summary>
public string OpenId {get;set;}
/// <summary>
/// Desc:微信UnionId
/// Default:
/// Nullable:True
/// </summary>
public string UnionId {get;set;}
/// <summary>
/// Desc:昵称
/// Default:
/// Nullable:True
/// </summary>
public string NickName {get;set;}
/// <summary>
/// Desc:头像地址
/// Default:
/// Nullable:True
/// </summary>
public string AvatarUrl {get;set;}
/// <summary>
/// Desc:手机号
/// Default:
/// Nullable:True
/// </summary>
public string Phone {get;set;}
/// <summary>
/// Desc:积分余额
/// Default:0
/// Nullable:False
/// </summary>
public int Points {get;set;}
/// <summary>
/// Desc:用户类型: Normal, VIP
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type {get;set;}
/// <summary>
/// Desc:状态: Active, Disabled
/// Default:Active
/// Nullable:False
/// </summary>
public string Status {get;set;}
}
}

View File

@ -0,0 +1,80 @@
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity
{
///<summary>
///用户表
///</summary>
[SugarTable("WxUser")]
public partial class WxUser : SqlSugarBaseEntity
{
/// <summary>
/// Desc:微信OpenId
/// Default:
/// Nullable:False
/// </summary>
public string OpenId { get; set; }
/// <summary>
/// Desc:微信UnionId
/// Default:
/// Nullable:True
/// </summary>
public string UnionId { get; set; }
/// <summary>
/// Desc:昵称
/// Default:
/// Nullable:True
/// </summary>
public string NickName { get; set; }
/// <summary>
/// Desc:头像地址
/// Default:
/// Nullable:True
/// </summary>
public string AvatarUrl { get; set; }
/// <summary>
/// Desc:手机号
/// Default:
/// Nullable:True
/// </summary>
public string Phone { get; set; }
/// <summary>
/// Desc:积分余额
/// Default:0
/// Nullable:False
/// </summary>
public int Points { get; set; }
/// <summary>
/// Desc:用户类型: Normal, VIP
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
/// <summary>
/// Desc:状态: Active, Disabled
/// Default:Active
/// Nullable:False
/// </summary>
public string Status { get; set; }
/// <summary>
/// Desc:密码默认手机后4位
/// Default:Active
/// Nullable:False
/// </summary>
public string Pwd { get; set; }
/// <summary>
/// Desc:当前成长值
/// Default:0
/// Nullable:False
/// </summary>
public int GrowthPoints { get; set; }
}
}

View File

@ -5,10 +5,10 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///<summary>
///用户背包表
///</summary>
[SugarTable("UserBag")]
public partial class UserBag : BaseEntity
[SugarTable("WxUserBag")]
public partial class WxUserBag : SqlSugarBaseEntity
{
public UserBag(){
public WxUserBag(){
}

View File

@ -5,10 +5,10 @@ namespace QYZH.InteractiveMagazine.Models.Entity
///<summary>
///用户勋章表
///</summary>
[SugarTable("UserMedal")]
public partial class UserMedal : BaseEntity
[SugarTable("WxUserMedal")]
public partial class WxUserMedal : SqlSugarBaseEntity
{
public UserMedal(){
public WxUserMedal(){
}

View File

@ -8,7 +8,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Mapster" Version="7.4.0" />
<PackageReference Include="SqlSugarCore" Version="5.1.4.166" />
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
</ItemGroup>
</Project>