2026-06-02 14:10:43 +08:00
|
|
|
|
using QYZH.InteractiveMagazine.Models.Dto;
|
2026-06-03 16:09:56 +08:00
|
|
|
|
using Newtonsoft.Json;
|
2026-06-02 14:10:43 +08:00
|
|
|
|
|
|
|
|
|
|
namespace QYZH.InteractiveMagazine.IService.Dto;
|
|
|
|
|
|
|
2026-06-03 16:09:56 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 微信小程序登录输入
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class WeChatLoginInput
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 微信登录凭证(wx.login 获取的 code)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string Code { get; set; } = string.Empty;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-06-02 14:10:43 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 微信登录输出
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class WeChatLoginOutput
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 访问令牌
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string Token { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-06-03 18:28:45 +08:00
|
|
|
|
/// 微信OpenId
|
2026-06-02 14:10:43 +08:00
|
|
|
|
/// </summary>
|
2026-06-03 18:28:45 +08:00
|
|
|
|
public string OpenId { get; set; } = string.Empty;
|
2026-06-02 14:10:43 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-06-03 18:28:45 +08:00
|
|
|
|
/// 该 OpenId 下的用户列表
|
2026-06-02 14:10:43 +08:00
|
|
|
|
/// </summary>
|
2026-06-03 18:28:45 +08:00
|
|
|
|
public List<WxUserOutput> Users { get; set; } = [];
|
2026-06-02 14:10:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <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; }
|
|
|
|
|
|
|
2026-06-03 18:28:45 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否上次在线用户
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public bool IsLastOnline { get; set; }
|
|
|
|
|
|
|
2026-06-02 14:10:43 +08:00
|
|
|
|
/// <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; }
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-06-03 16:09:56 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 微信 code2session 接口响应
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class WxCode2SessionResponse
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 用户唯一标识
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[JsonProperty("openid")]
|
|
|
|
|
|
public string? OpenId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 会话密钥
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[JsonProperty("session_key")]
|
|
|
|
|
|
public string? SessionKey { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 用户统一标识(在开放平台绑定了多个应用时使用)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[JsonProperty("unionid")]
|
|
|
|
|
|
public string? UnionId { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 错误码
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[JsonProperty("errcode")]
|
|
|
|
|
|
public int ErrCode { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 错误信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[JsonProperty("errmsg")]
|
|
|
|
|
|
public string? ErrMsg { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-06-03 18:28:45 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 微信切换用户输入
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class WeChatSwitchUserInput
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 目标用户ID
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public long UserId { get; set; }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 微信切换用户输出
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class WeChatSwitchUserOutput
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 新的访问令牌
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string Token { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 当前切换的用户详情
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public WxUserOutput User { get; set; } = new();
|
|
|
|
|
|
}
|
|
|
|
|
|
|