提交 5266853d 作者: 沈振路

客服消息适配”阅文1小程序“【未测试】

上级 6db036f6
......@@ -713,6 +713,10 @@ public class CustomerServiceCommonAsyncComponent {
referralEntity.setMediaSource("2");
}
}
referralEntity.setMiniProgramQuery(Boolean.TRUE);
}
if (STORE_NAME_YUE_WEN_1.equals(authInfoVo.getStoreType()) && CUSTOMER_TYPE_VALUE_MINI_PROGRAM.equals(referralEntity.getCustomerMsgType())) {
referralEntity.setMiniProgramQuery(Boolean.TRUE);
}
// LOCAL_LOG.info("获取链接, 参数: {}", referralEntity);
R r = referralFeignClient.productReferral(referralEntity);
......@@ -732,60 +736,87 @@ public class CustomerServiceCommonAsyncComponent {
String referral = jsonObject1.getString("referral");
referralEntity.setPromoteId(jsonObject1.getString("promoteId"));
referralEntity.setReferral(referral);
// 取链接成功之后,后置处理番茄小程序
suffixHandleTomatoMiniProgram(authInfoVo, referralEntity);
if (CustomerCommonConstant.STORE_NAME_TOMATO.equals(authInfoVo.getStoreType()) && CUSTOMER_TYPE_VALUE_MINI_PROGRAM.equals(referralEntity.getCustomerMsgType())) {
// 取链接成功之后,后置处理番茄小程序
suffixHandleTomatoMiniProgram(authInfoVo, referralEntity);
}
if (STORE_NAME_YUE_WEN_1.equals(authInfoVo.getStoreType()) && CUSTOMER_TYPE_VALUE_MINI_PROGRAM.equals(referralEntity.getCustomerMsgType())) {
// 取链接成功之后,后置处理阅文1小程序
suffixHandleYwMiniProgram(authInfoVo, referralEntity, jsonObject1);
}
}
private void suffixHandleTomatoMiniProgram(AuthInfoVO authInfoVo, ReferralEntity referralEntity) {
if (CustomerCommonConstant.STORE_NAME_TOMATO.equals(authInfoVo.getStoreType()) && CUSTOMER_TYPE_VALUE_MINI_PROGRAM.equals(referralEntity.getCustomerMsgType())) {
String referral = referralEntity.getReferral();
// 番茄小程序
if (CustomerCommonConstant.ACTIVITY_NEWS_TYPE.equals(referralEntity.getNewsType())) {
// 活动需要后置查询番茄小程序链接
// 根据 promoteId 查询番茄链接详情,番茄活动接口创建链接返回的是http链接,需要查询接口获取其小程序 /page 链接
R r = referralFeignClient.queryActivityInfo(referralEntity.getAccountId(), referralEntity.getPromoteId());
if (!r.getCode().equals(ApiResultConstant.SUCCESS_CODE)) {
throw new RuntimeException("获取活动链接详情失败: " + r.getMessage());
}
String res = r.getData("activityData", new TypeReference<String>() {});
JSONObject jsonObject = JSON.parseObject(res);
referral = jsonObject.getString("url");
String referral = referralEntity.getReferral();
// 番茄小程序
if (CustomerCommonConstant.ACTIVITY_NEWS_TYPE.equals(referralEntity.getNewsType())) {
// 活动需要后置查询番茄小程序链接
// 根据 promoteId 查询番茄链接详情,番茄活动接口创建链接返回的是http链接,需要查询接口获取其小程序 /page 链接
R r = referralFeignClient.queryActivityInfo(referralEntity.getAccountId(), referralEntity.getPromoteId());
if (!r.getCode().equals(ApiResultConstant.SUCCESS_CODE)) {
throw new RuntimeException("获取活动链接详情失败: " + r.getMessage());
}
String res = r.getData("activityData", new TypeReference<String>() {});
JSONObject jsonObject = JSON.parseObject(res);
referral = jsonObject.getString("url");
}
if (StringUtils.isNotBlank(referral) && isMiniProgramPath(referral)) {
// 添加 get_book_item_id=true 参数
if (!referral.contains(GET_BOOK_ITEM)) {
referral = referral + "&" + GET_BOOK_ITEM_VAL;
}
// 添加 from_oa_app_id={flagId} 参数
if (!referral.contains(FROM_APPID)) {
referral = referral + "&" + FROM_APPID + "=" + authInfoVo.getExpandFlagId();
}
if (StringUtils.isNotBlank(referral) && isMiniProgramPath(referral)) {
// 添加 get_book_item_id=true 参数
if (!referral.contains(GET_BOOK_ITEM)) {
referral = referral + "&" + GET_BOOK_ITEM_VAL;
}
// 添加 from_oa_app_id={flagId} 参数
if (!referral.contains(FROM_APPID)) {
referral = referral + "&" + FROM_APPID + "=" + authInfoVo.getExpandFlagId();
}
// 添加 landing_page=reader 参数
if (!referral.contains(LANDING_PAGE) && !CustomerCommonConstant.USUAL_LINK_NEWS_TYPE.equals(referralEntity.getNewsType())) {
referral = referral + "&" + LANDING_PAGE_VAL;
}
// 常用链接换掉scene
if (CustomerCommonConstant.USUAL_LINK_NEWS_TYPE.equals(referralEntity.getNewsType())) {
referral = referral.replace("scene=0", "scene=1");
}
// 添加 landing_page=reader 参数
if (!referral.contains(LANDING_PAGE) && !CustomerCommonConstant.USUAL_LINK_NEWS_TYPE.equals(referralEntity.getNewsType())) {
referral = referral + "&" + LANDING_PAGE_VAL;
}
// 常用链接换掉scene
if (CustomerCommonConstant.USUAL_LINK_NEWS_TYPE.equals(referralEntity.getNewsType())) {
referral = referral.replace("scene=0", "scene=1");
}
referralEntity.setMpAppId(authInfoVo.getExpandMpAppId());
referralEntity.setMpPath(referral);
// 暂时将小程序地址也赋值到跳转链接地址上
referralEntity.setReferral(referral);
}
referralEntity.setMpAppId(authInfoVo.getExpandMpAppId());
referralEntity.setMpPath(referral);
// 暂时将小程序地址也赋值到跳转链接地址上
referralEntity.setReferral(referral);
// 上传腾讯图片素材
TencentMediaResponseVO uploadResult = tencentCustomerUtil.uploadTencentMedia(authInfoVo.getAppId(), referralEntity.getMediaOriginUrl(), referralEntity.getCustomerMsgType());
if (StringUtils.isNotEmpty(uploadResult.getErrmsg())) {
LOCAL_LOG.warn("公众号: {} 上传素材失败 {}", authInfoVo.getAppId(), uploadResult.getErrmsg());
}
referralEntity.setMediaId(uploadResult.getMedia_id());
}
/**
* 阅文小程序链接后置处理
* @param referralEntity 链接
* @param responseJson 响应
*/
private void suffixHandleYwMiniProgram(AuthInfoVO authInfoVo, ReferralEntity referralEntity, JSONObject responseJson) {
// 上传腾讯图片素材
TencentMediaResponseVO uploadResult = tencentCustomerUtil.uploadTencentMedia(authInfoVo.getAppId(), referralEntity.getMediaOriginUrl(), referralEntity.getCustomerMsgType());
if (StringUtils.isNotEmpty(uploadResult.getErrmsg())) {
LOCAL_LOG.warn("公众号: {} 上传素材失败 {}", authInfoVo.getAppId(), uploadResult.getErrmsg());
}
referralEntity.setMediaId(uploadResult.getMedia_id());
// 原始字段
referralEntity.setPromoteId(responseJson.getString("promoteId"));
String referral = responseJson.getString("referral");
referralEntity.setReferral(referral);
// 小程序字段
String mpPath = responseJson.getString("mpPath");
referralEntity.setMpPath(StringUtils.isNotBlank(mpPath) ? mpPath : (isMiniProgramPath(referral) ? referral : null));
referralEntity.setMpAppId(responseJson.getString("mpAppId"));
// 上传腾讯图片素材
TencentMediaResponseVO uploadResult = tencentCustomerUtil.uploadTencentMedia(authInfoVo.getAppId(), referralEntity.getMediaOriginUrl(), referralEntity.getCustomerMsgType());
if (StringUtils.isNotEmpty(uploadResult.getErrmsg())) {
LOCAL_LOG.warn("公众号: {} 上传素材失败 {}", authInfoVo.getAppId(), uploadResult.getErrmsg());
}
referralEntity.setMediaId(uploadResult.getMedia_id());
}
private Boolean isMiniProgramPath(String path) {
return StringUtils.isNotBlank(path) && (path.startsWith("page") || path.startsWith("/page"));
}
......
......@@ -30,6 +30,7 @@ public class CustomerCommonConstant {
public final static String STORE_NAME_YANG_GUANG = "YANG_GUANG";
public final static String STORE_NAME_ZHANG_ZHONG_YUN = "ZHANG_ZHONG_YUN";
public final static String STORE_NAME_YUE_WEN = "YUE_WEN";
public final static String STORE_NAME_YUE_WEN_1 = "YUE_WEN_1";
public final static String STORE_NAME_TOMATO = "TOMATO";
public final static String ERROR_LABEL = "error";
......
......@@ -246,6 +246,11 @@ public class ReferralEntity implements Serializable {
@TableField(exist = false)
private String mediaSource;
/**
* 是否小程序相关请求
*/
@TableField(exist = false)
private Boolean miniProgramQuery;
public static final String COL_ID = "id";
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论