diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java index a9dc06759..0e595171c 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java @@ -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; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/EventCenterHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/EventCenterHttpRequest.java index e8f1ea5ff..c9c26eeb2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/http/EventCenterHttpRequest.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/http/EventCenterHttpRequest.java @@ -86,19 +86,18 @@ public class EventCenterHttpRequest { public void sendFeiShuNotice(FeiShuNoticeMsgEnum msgEnum, List receiverIds, Object... objects) throws ApiException { //1. 组织消息参数,SendMsgRequest 的 cardParams,需要填入的参数为模板中 ${} 中的参数 HashMap 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; } } diff --git a/coolstore-partner-webb/src/test/java/com/cool/store/service/EventRequestTest.java b/coolstore-partner-webb/src/test/java/com/cool/store/service/EventRequestTest.java index 2589e7f8b..7faa80ef8 100644 --- a/coolstore-partner-webb/src/test/java/com/cool/store/service/EventRequestTest.java +++ b/coolstore-partner-webb/src/test/java/com/cool/store/service/EventRequestTest.java @@ -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); } }