消息通知 #

功能介绍 #

Mall3s获取主要通过nuget包封装(Mal3s.Server.SDK),可以发送站内信公共通知以及发送全渠道通知消息(企业微信、钉钉、邮件、站内信)。通用消息中心组件(业务代办通知,钉钉/企业微信/飞书/邮件)

注意:目前存在小bug,微信、钉钉、没配置,只能发站内信。

功能清单

目前在Mall3s.Server工程的Message上面。

  • 发送站内信通知

public async Task SentMessage(List<string> toUserIds, string title, string bodyText = null)

  • 发送公告

​ public async Task SentNotice(List<string> toUserIds, MessageEntity entity)

  • 发送全渠道通知消息

参考FlowTaskService工程下, 推送企业微信、钉钉、邮件、站内信

​ private async Task SendNodeMessage(List<string> typeList, string titile, List<string> userList, string context)

备注:本地调试请启动Mall3s.Server项目,否则本地无法启动。

  • 功能清单
    • 全渠道通知消息, 推送企业****微信、钉钉、邮件、站内信
 public interface IHttpSystemApi : IHttpApi
    {

        /// <summary>
        /// 发送全平台渠道消息(1站内信,2邮件,3短信,4钉钉,5企业微信)
        /// </summary>
        /// <param name="body">实体对象</param>
        /// <param name="cancellationToken">cancellationToken</param>
        /// <returns>Success</returns>
        [HttpPost("api/notice/SendMessage")]
        Task<RESTfulResult<object>> SendMessageAsync([JsonContent] SysNoticeInput body, CancellationToken cancellationToken = default);

参数如下:

/// <summary>
        /// 推送方式(1站内信,2邮件,3短信,4钉钉,5企业微信)
        /// </summary>
        [JsonProperty("typeList")]
        public List\<string\> TypeList { get; set; }
        /// <summary>
        /// 用户Id集合
        /// </summary>
        [JsonProperty("list")]
        public List\<string\> List { get; set; }
        /// <summary>
        /// 发送类型(role代表角色集合,user代表用户集合(默认),position代表岗位集合,organize代表组织集合)
        /// </summary>
        [JsonProperty("type")]
        public string type { get; set; } = "user";
        /// <summary>
        /// 标题
        /// </summary>
        [JsonProperty("title")]
        public string Title { get; set; }
        /// <summary>
        /// 内容
        /// </summary>
        [JsonProperty("body")]
        public string Body { get; set; }
  • 站内信通知公告
    public interface IHttpMessageApi : IHttpApi
    {
        /// <summary>
        /// 新建
        /// </summary>
        /// <param name="body">实体对象</param>
        /// <param name="cancellationToken">cancellationToken</param>
        /// <returns>Success</returns>
        [HttpPost("api/message/CreateMessage")]
        Task<RESTfulResult<object>> CreateMessageAsync([JsonContent] MessageCrInput body, CancellationToken cancellationToken = default);
    }

参数如下:

  /// <summary>
        /// 标题
        /// </summary>
        public string title { get; set; }

        /// <summary>
        /// 正文内容	
        /// </summary>
        public string bodyText { get; set; }

        /// <summary>
        /// 类别:1-通知公告,2-系统消息、3-私信消息
        /// </summary>
        public int? type { get; set; }

        /// <summary>
        /// 优先
        /// </summary>
        public int? priorityLevel { get; set; }

        /// <summary>
        /// 收件用户
        /// </summary>
        public string toUserIds { get; set; }

使用说明 #

  1. 引用nuget包Mal3s.Server.SDK
  2. 配置文件appsettings.json中NacosConfig节点的Listeners添加配置
{
        "Optional": false,
        "DataId": "netcore-webapi.json",
        "Group": "DEFAULT_GROUP"
},
  1. 微服务配置
  services.AddServerApiService(_configuration);
  1. 注入服务IHttpSystemApi和IHttpMessageApi
private readonly IHttpSystemApi _httpSystemApi;
 public HomeController(IHttpSystemApi api)
{
  _httpSystemApi = api;
}
  1. 调用基础服务方法
   //发送站内信+钉钉消息
   var result = await _sysApi.SendMessageAsync(new SysNoticeInput() { Title = "测试消息", Body = "测试消息", TypeList = new List\<string\>() {"1","4" }, List=new List\<string\>() { "276306228529857797" } });
   //发送站内信,全公司人员发送
   var result = await _msgApi.CreateMessageAsync(new MessageCrInput() {title="1",bodyText="test",type=1,priorityLevel=1,toUserIds="" });
            
上次更新: 3/8/2023, 4:23:32 PM