跳到主要内容

开发者必读

以上是对消息平台的设计、实现及功能的介绍。为了方便开发者对消息平台的使用,使其将更多的精力放在业务上,对消息平台的使用进行了聚合。

1.前端

消息平台支持的是模板消息,故在发消息之前要先配置消息模板。这里封装了一个前端组件,开发者命名好模板编码及名称即可。

组件MessageList 的两个参数:

taskCode:业务系统编码。(获取方式详见平台介绍>4.接入条件)

messageData:消息模板对象数组。(消息模板对象,enCode:模板编码;fullName:模板名称)

<template>
<div style="height: 100%">
<MessageList :messageData="messageData" :taskCode="taskCode" />
</div>
</template>

<script>
import MessageList from "@/views/message/mcComponentsList/index.vue";
export default {
components: {
MessageList,
},
data() {
return {
taskCode: "fixedAssetsManager",
messageData: [
{
enCode: "borrow_return_notification",
fullName: "资产借用资产归还通知",
},
{
enCode: "self_inventory_notification",
fullName: "资产盘点自盘上报通知",
},
],
};
},
};
</script>

<style lang="scss" scoped>
</style>

2.后端

封装了针对后勤消息业务,封装了消息发送的工具类SendTaskMsgUtils。

开发者,可以直接使用jsbos-system模块工具类SendTaskMsgUtils的sendTaskMsg进行消息发送开发。

/**
* 消息中心-业务消息发送工具类
*
* @版本: V1.0.0
* @版权: 荣科科技股份有限公司
* @作者: RKKJ开发平台组
*/
public class SendTaskMsgUtils {

/**
* 创建并发送业务消息
*
* @param taskMsg
*/
public void sendTaskMsg(TaskMsg taskMsg) throws Exception {
// 创建业务消息并下发
}

}

SendTaskMsgUtils.sendTaskMsg的入参封装了一个实体类TaskMsg,开发者创建TaskMsg并按实际消息类型设置对象属性值。

public class TaskMsg {

/**
* 业务系统
**/
@NotBlank(message = "业务系统不能为空")
@Size(max = 200, message = "业务系统最多为200个字符!")
@JsonProperty("taskCode")
private String taskCode;

/**
* 发送配置
**/
@NotBlank(message = "发送配置不能为空")
@Size(max = 200, message = "发送配置最多为200个字符!")
@JsonProperty("sendCode")
private String sendCode;

/**
* 场景关键词
**/
@JsonProperty("businessKey")
private BusinessKeys businessKey;

/**
* 自定义参数
**/
@JsonProperty("customKey")
private CustomKeysLink customKey;

/**
* 接收者
**/
@JsonProperty("toUserIds")
private String toUserIds;

/**
* 接收者的部门
**/
@JsonProperty("toDeptIds")
private String toDeptIds;

/**
* 描述
**/
@JsonProperty("description")
private String description;

/**
* 渠道消息未发出,自动重发最大限制次数
**/
@Size(max = 100, message = "重发尝试次数最大100次")
@JsonProperty("autoAgainMaxNum")
private Integer autoAgainMaxNum;
}

不同消息类型共同属性抽象出的超类

/**
* 场景配置关键参数
*/
public class BusinessKeys {
/**
* 消息关键参数
*/
private Map<String, String> keys;
/**
* 消息体跳转链接地址
*/
private String linkUrl;
/**
* 电子邮箱 跳转链接地址
*/
private String linkUrl2;
/**
* 短信 跳转链接地址
*/
private String linkUrl3;
/**
* 阿里钉钉 跳转链接地址
*/
private String linkUrl4;
/**
* 企业微信 跳转链接地址
*/
private String linkUrl5;
/**
* 微信小程序 跳转链接地址
*/
private String linkUrl6;
/**
* 微信公众号 跳转链接地址
*/
private String linkUrl7;
/**
* webhook 跳转链接地址
*/
private String linkUrl8;
/**
* 图片链接地址
*/
private String picUrl;
}

文本消息直接封装消息变量及变量值即可,变量来源【场景管理】的关键词

/**
* 文本消息
*/
public class TextMsgKeys extends BusinessKeys {
}

链接消息需要封装消息变量及变量值,还需要设置linkUrl,即点击消息需要打开的地址或解析自定义参数的公共地址。

/**
* 链接消息
*/
public class LinkMsgKeys extends BusinessKeys {
/**
* 消息体跳转链接地址
*/
private String linkUrl;
/**
* 电子邮箱 跳转链接地址
*/
private String linkUrl2;
/**
* 短信 跳转链接地址
*/
private String linkUrl3;
/**
* 阿里钉钉 跳转链接地址
*/
private String linkUrl4;
/**
* 企业微信 跳转链接地址
*/
private String linkUrl5;
/**
* 微信小程序 跳转链接地址
*/
private String linkUrl6;
/**
* 微信公众号 跳转链接地址
*/
private String linkUrl7;
/**
* webhook 跳转链接地址
*/
private String linkUrl8;
}

链接消息需要封装消息变量及变量值,同时设置图片的全链接地址,可设置链接跳转地址。


/**
* 图文消息
*/
public class ImgTextMsgKeys extends BusinessKeys {
/**
* 消息体跳转链接地址
*/
private String linkUrl;
/**
* 图片链接地址
*/
private String picUrl;
}

若业务系统需要依托消息做业务处理,可自定义封装CustomKeysLink。

/**
* 自定义关键参数
*/
public class CustomKeysLink {
/**
* pc端详情链接
*/
private String pcUrl;

/**
* 手机端详情链接
*/
private String appUrl;

/**
* 消息链接多端类型 1:支持app端;2:支持pc端;3:支持app和pc端
*/
private String termType;

/**
* 消息链接多端类型 提示内容
*/
private String termTypeDesc;

/**
* 其他自定义关键参数
*/
private Map<String, String> otherKey;
}