.Net6+Furion+Sqlsugar+SenparcSdk开发微信公众号系列之十二:用户管理

一、用户标签管理

1.1、创建标签

Services文件夹下新建User文件夹和用户服务类

Dto文件夹下新建TagInput.cs

    public class TagInput
    {
        /// <summary>
        /// 标签名称
        /// </summary>
        public string Name { get; set; }
    }

新建添加标签接口

        /// <summary>
        /// 创建标签
        /// </summary>
        /// <returns></returns>
        [HttpPost("/user/tag/add")]
        public async Task<dynamic> CreateTag(TagInput input)
        {
            return await UserTagApi.CreateAsync(AppId, input.Name);
        }

测试一下,成功显示

 

1.2、获取公众号已创建的标签

新建接口

/// <summary>
        /// 获取公众号已创建的标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/tag/list")]
        public async Task<dynamic> GetTags(TagInput input)
        {
            return await UserTagApi.GetAsync(AppId);
        }

测试接口

1.3、编辑标签

TagInput.cs新增UpdateTagInput类

public class UpdateTagInput: TagInput
    {
        public int Id { get; set; }
    }

新建接口

        /// <summary>
        /// 编辑标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/update")]
        public async Task<dynamic> UpdateTag(UpdateTagInput input)
        {
            return await UserTagApi.UpdateAsync(AppId, input.Id, input.Name);
        }

 测试一下

再查看接口

1.4、删除标签

 新建接口

        /// <summary>
        /// 删除标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/delete")]
        public async Task<dynamic> DeleteTag(UpdateTagInput input)
        {
            return await UserTagApi.DeleteAsync(AppId, input.Id);
        }

测试一下

再获取一下列表,成功删除

1.5、获取标签下粉丝列表

新建接口

        /// <summary>
        /// 获取标签下粉丝列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/tag/user")]
        public async Task<dynamic> GetTagUser(UpdateTagInput input)
        {
            return await UserTagApi.GetAsync(AppId, input.Id);
        }

测试一下,因为还没打标签所以是空的

二、用户管理

2.1、批量为用户打标签

TagInput.cs新建UserTagInput.cs

  public class UserTagInput : UpdateTagInput
    {
        public List<string> Users { get; set; } = new List<string>();
    }

新建接口

        /// <summary>
        /// 批量为用户打标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/batch")]
        public async Task<dynamic> BatchTag(UserTagInput input)
        {
            return await UserTagApi.BatchTaggingAsync(AppId, input.Id, input.Users);
        }

测试接口

再看一下获取标签下用户接口

2.2、批量为用户取消标签

新建接口

        /// <summary>
        /// 批量为用户取消标签
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/tag/unbatch")]
        public async Task<dynamic> BatchUnTag(UserTagInput input)
        {
            return await UserTagApi.BatchUntaggingAsync(AppId, input.Id, input.Users);
        }

测试接口

再获取一下

2.3、获取用户身上的标签列表

新建接口

        /// <summary>
        /// 获取用户身上的标签列表
        /// </summary>
        /// <param name="openid"></param>
        /// <returns></returns>
        [HttpGet("/user/tag/batchlist/{openid}")]
        public async Task<dynamic> UserTagList(string openid)
        {
            return await UserTagApi.UserTagListAsync(AppId, openid);
        }

测试一下

2.4、设置用户备注名

Dto文件夹新建UserInput.cs


namespace WeiXinApi.Application.Services
{
    public class UserInput
    {
        /// <summary>
        /// 微信号
        /// </summary>
        public string OpenId { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string Remark { get; set; }
    }
}

新建接口

        /// <summary>
        /// 设置用户备注名
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/updateremark")]
        public async Task<dynamic> UpdateRemark(UserInput input)
        {
            return await UserApi.UpdateRemarkAsync(AppId, input.OpenId, input.Remark);
        }

测试接口

2.5、获取用户基本信息

新建接口

        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="openid"></param>
        /// <returns></returns>
        [HttpGet("/user/info/{openid}")]
        public async Task<dynamic> UserInfo(string openid)
        {
            return await UserApi.InfoAsync(AppId, openid);
        }

 测试一下,可以看到备注是我们之前设置的

2.6、获取用户列表

UserInput.cs下新建UserListInput.cs

    public class UserListInput
    {

        /// <summary>
        /// 第一个拉取的OPENID,不填默认从头开始拉取
        /// </summary>
        public string NextOpenId { get; set; }
    }

新建接口

        /// <summary>
        /// 获取用户列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/list")]
        public async Task<dynamic> UserList([FromQuery] UserListInput input)
        {
            return await UserApi.GetAsync(AppId, input.NextOpenId);
        }

测试一下

三、黑名单管理

3.1、拉黑用户

        /// <summary>
        /// 批量拉黑用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/batchblacklist")]
        public async Task<dynamic> Batchblacklist(BlackInput input)
        {
            return await UserApi.BatchBlackListAsync(AppId, input.OpenidList);
        }

测试接口

3.2、黑名单列表

BlackInput新增字段

        /// <summary>
        /// 当 begin_openid 为空时,默认从开头拉取。
        /// </summary>
        public string BeginOpenid { get; set; }

新增接口

        /// <summary>
        /// 获取黑名单列表
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpGet("/user/blacklist")]
        public async Task<dynamic> GetBlackList([FromQuery] BlackInput input)
        {
            return await UserApi.GetBlackListAsync(AppId, input.BeginOpenid);
        }

测试一下

3.3、取消拉黑用户

新建接口

        /// <summary>
        /// 批量取消拉黑用户
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        [HttpPost("/user/batchunblackList")]
        public async Task<dynamic> BatchUnBlackList(BlackInput input)
        {
            return await UserApi.BatchUnBlackListAsync(AppId, input.OpenidList);
        }

测试一下

再获取黑名单看下

四、本章Gitee链接地址

https://gitee.com/huguodong520/weixinapi/tree/%E7%94%A8%E6%88%B7%E7%AE%A1%E7%90%86/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章