Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.Models/Dto/WeChat/WeChatDto.cs
glz 32989e1fa0 refactor: 重构用户与商品模块,统一业务模型与服务
1.  新增用户状态枚举UserStatusEnum,统一用户状态定义
2.  重构用户体系:合并WxUser与User实体为Users实体,统一用户管理
3.  新增微信小程序认证相关服务与控制器,实现一键登录功能
4.  新增商品管理完整服务与控制器,修复商品表字段映射问题
5.  删除冗余的WxUser相关服务与控制器代码
6.  新增Newtonsoft.Json依赖用于微信接口响应解析
7.  清理无用的文件夹引用配置
2026-06-03 16:09:56 +08:00

228 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using QYZH.InteractiveMagazine.Models.Dto;
using Newtonsoft.Json;
namespace QYZH.InteractiveMagazine.IService.Dto;
/// <summary>
/// 微信小程序登录输入
/// </summary>
public class WeChatLoginInput
{
/// <summary>
/// 微信登录凭证wx.login 获取的 code
/// </summary>
public string Code { get; set; } = string.Empty;
}
/// <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>
/// 微信 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; }
}