消息通知 #
功能介绍 #
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; }
使用说明 #
- 引用nuget包Mal3s.Server.SDK
- 配置文件appsettings.json中NacosConfig节点的Listeners添加配置
{
        "Optional": false,
        "DataId": "netcore-webapi.json",
        "Group": "DEFAULT_GROUP"
},
- 微服务配置
  services.AddServerApiService(_configuration);
- 注入服务IHttpSystemApi和IHttpMessageApi
private readonly IHttpSystemApi _httpSystemApi;
 public HomeController(IHttpSystemApi api)
{
  _httpSystemApi = api;
}
- 调用基础服务方法
   //发送站内信+钉钉消息
   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="" });
            
