飞书通知优化及添加会销协作人通知增加移动端跳转

This commit is contained in:
feng.li
2024-01-12 11:09:08 +08:00
parent e041693d1b
commit d5aeaf364c
3 changed files with 29 additions and 26 deletions

View File

@@ -17,8 +17,8 @@ public enum FeiShuNoticeMsgEnum {
INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人 {0} 手机号 {1} 于 {2} 提交加盟意向申请,请及时处理", "img_v2_c909097d-67d1-4c11-a911-a2584b67ca6g", "1567d83b966f2d312fd7fcd2e72dbce9"),
FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_1960b7ef-8c4e-4c3d-8b67-3d918a85578g", "1567d83b966f2d312fd7fcd2e72dbce9"),
INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {2} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g", "1567d83b966f2d312fd7fcd2e72dbce9"),
EXHIBITION_COLLABORATOR("会销协作通知", "{0} 已将您添加为【{1}】的会销协作人,日期为 {2},地点为“{3}” ","img_v3_026c_d561bb71-f085-40ca-9c36-5fe134cacd2g", "1567d83b966f2d312fd7fcd2e72dbce9", "/joint-sales/manage-detail", "/mobile/joint-sales/manage-detail"),
PARTNER_SIGNUP_EXHIBITION("线索已报名会销", "您跟进的线索客户{0} {1} 已报名于 {2} 举办的【{3}】 ,地点为“{4}”","img_v3_026c_5bcf178d-19e6-4445-9677-f748a3f916fg", "1567d83b966f2d312fd7fcd2e72dbce9", "/clue/details"),
EXHIBITION_COLLABORATOR("会销协作通知", "{0} 已将您添加为【{1}】的会销协作人,日期为 {2},地点为“{3}” ","img_v3_026c_d561bb71-f085-40ca-9c36-5fe134cacd2g", "1567d83b966f2d312fd7fcd2e72dbce9", "/joint-sales/manage-detail?id={0}", "/mobile/joint-sales/manage-detail?id={0}"),
PARTNER_SIGNUP_EXHIBITION("线索已报名会销", "您跟进的线索客户{0} {1} 已报名于 {2} 举办的【{3}】 ,地点为“{4}”","img_v3_026c_5bcf178d-19e6-4445-9677-f748a3f916fg", "1567d83b966f2d312fd7fcd2e72dbce9", "/clue/details?lineId={0}&clueType=private&partnerId={1}"),
;
private String title;

View File

@@ -86,19 +86,18 @@ public class EventCenterHttpRequest {
public void sendFeiShuNotice(FeiShuNoticeMsgEnum msgEnum, List<String> receiverIds, Object... objects) throws ApiException {
//1. 组织消息参数SendMsgRequest 的 cardParams需要填入的参数为模板中 ${} 中的参数
HashMap<String, String> cardParams = new HashMap<>();
String pathVariable = getPathVariable(msgEnum, objects);
String PCPath = null;
String mobilePath = null;
String PCPath = getPath(msgEnum.getPCPath(), false, objects);
String mobilePath = getPath(msgEnum.getMobilePath(), true, objects);
try {
PCPath = URLEncoder.encode(msgEnum.getPCPath() + pathVariable, "UTF-8");
mobilePath = URLEncoder.encode(msgEnum.getMobilePath() + pathVariable, "UTF-8");
PCPath = URLEncoder.encode(PCPath, "UTF-8");
mobilePath = URLEncoder.encode(mobilePath, "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new ApiException("URL 编码错误");
}
String PCWholePath = PCLinkUrl + PCPath;
String mobileWholePath = mobileLinkUrl + mobilePath;
cardParams.put("title", msgEnum.getTitle());
cardParams.put("content", MessageFormat.format(msgEnum.getContent(),objects));
cardParams.put("content", MessageFormat.format(msgEnum.getContent(), objects));
cardParams.put("img_key", msgEnum.getImageMediaId());
cardParams.put("common_url", PCWholePath);
cardParams.put("pc_url", PCWholePath);
@@ -168,25 +167,25 @@ public class EventCenterHttpRequest {
createSingleEvent(createEventRequest);
}
private String getPathVariable(FeiShuNoticeMsgEnum msgEnum, Object... objects) {
StringBuilder pathVariable = new StringBuilder();
switch (msgEnum) {
case EXHIBITION_COLLABORATOR:
pathVariable.append("?id=").append(objects[0]);
System.arraycopy(objects, 1, objects, 0, objects.length - 1);
break;
case PARTNER_SIGNUP_EXHIBITION:
pathVariable.append("?lineId=")
.append(objects[0])
.append("&clueType=private")
.append("&partnerId=")
.append(objects[1]);
System.arraycopy(objects, 2, objects, 0, objects.length - 2);
break;
default:
return "";
/**
* 根据消息路径模板返回格式化参数后的路径
* @param pathPattern 路径模板
* @param whetherSpliceParamsArray 是否裁剪参数,将数组用于格式化的参数从数组中裁剪
* @param objects 参数数组
* @return 格式化后的带参数路径
*/
private String getPath(String pathPattern, boolean whetherSpliceParamsArray, Object... objects) {
//无需格式化
if (!pathPattern.contains("{0}")) {
return pathPattern;
}
return new String(pathVariable);
MessageFormat messageFormat = new MessageFormat(pathPattern);
int paramsCount = messageFormat.getFormatsByArgumentIndex().length;
String wholePath = messageFormat.format(objects);
if (whetherSpliceParamsArray) {
System.arraycopy(objects, paramsCount, objects, 0, objects.length - paramsCount);
}
return wholePath;
}
}

View File

@@ -96,6 +96,10 @@ class EventRequestTest extends AbstractJUnit4SpringContextTests {
eventCenterHttpRequest.sendSmsVariable(testPhone, SMSMsgEnum.EXHIBITION_INFO_UPDATE, "测试", "2023-12-24", "1008611", testWXUrl);
//8. 展会结束
eventCenterHttpRequest.sendSmsVariable(testPhone, SMSMsgEnum.EXHIBITION_CLOSE, "");
randomStr = RandomUtil.randomString(12);
testWXUrl = wxUrlPrefix + randomStr;
//8. 面试未通过结束
eventCenterHttpRequest.sendSmsVariable(testPhone, SMSMsgEnum.INTERVIEW_REJECT, "不太行", testWXUrl);
}
}