.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/

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