消息通知 #
功能介绍 #
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="" });