|
|
@@ -1,5 +1,6 @@
|
|
|
package com.fs.sop.service.impl;
|
|
|
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
@@ -88,6 +89,8 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
|
|
|
private static final String appActivityLink = "/pages_course/luckybag.html?link=";
|
|
|
private static final String signArticleLink = "/pages_course/article.html?link=";
|
|
|
+ private static final String shareMaterialLink = "/pages_course/customerStatistics.html?link=";
|
|
|
+ private static final String phoneNumberLink = "/pages_course/getPhoneNumber.html?link=";
|
|
|
private static final String REAL_LINK_PREFIX = "/courseH5/pages/course/learning?course=";
|
|
|
private static final String SHORT_LINK_PREFIX = "/courseH5/pages/course/learning?s=";
|
|
|
private static final String miniappRealLink = "/pages_course/video.html?course=";
|
|
|
@@ -96,6 +99,10 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
private static final String appLink = "https://jump.ylrztop.com/jumpapp/pages/index/index?link=";
|
|
|
// private static final String miniappRealLink = "/pages/index/index?course=";
|
|
|
|
|
|
+ //商城小程序appId配置常量
|
|
|
+ private static final String APP_ID_CONFIG_KEY = "appStore.appId.config";
|
|
|
+ private static final String DEFAULT_APP_ID = "wx50bcb040b4963a7e";
|
|
|
+
|
|
|
@Autowired
|
|
|
private ISysConfigService configService;
|
|
|
|
|
|
@@ -179,6 +186,9 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
@Lazy
|
|
|
private IQwSopTempVoiceService sopTempVoiceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ISysConfigService sysConfigService;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public void save(SopUserLogsInfo sopUserLogsInfo) {
|
|
|
@@ -655,6 +665,22 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
st.setMiniprogramTitle("打卡文章");
|
|
|
st.setMiniprogramPage(linkByMiniApp);
|
|
|
break;
|
|
|
+ //素材分享
|
|
|
+ case "16":
|
|
|
+ linkByMiniApp = createShareMaterialLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,groupUser.getChatId());
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("每日一享");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
+ //素材分享
|
|
|
+ case "17":
|
|
|
+ linkByMiniApp = createPhoneNumberLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,groupUser.getChatId());
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("领取开箱密码");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
setting.setSetting(list);
|
|
|
@@ -778,6 +804,22 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
st.setMiniprogramTitle("打卡文章");
|
|
|
st.setMiniprogramPage(linkByMiniApp);
|
|
|
break;
|
|
|
+ //素材分享
|
|
|
+ case "16":
|
|
|
+ linkByMiniApp = createShareMaterialLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,groupChat.getChatId());
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("每日一享");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
+ //素材分享
|
|
|
+ case "17":
|
|
|
+ linkByMiniApp = createPhoneNumberLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,groupChat.getChatId());
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("领取开箱密码");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
setting.setSetting(list);
|
|
|
@@ -1007,6 +1049,22 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
st.setMiniprogramTitle("打卡文章");
|
|
|
st.setMiniprogramPage(linkByMiniApp);
|
|
|
break;
|
|
|
+ //素材分享
|
|
|
+ case "16":
|
|
|
+ linkByMiniApp = createShareMaterialLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,null);
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("每日一享");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
+ //素材分享
|
|
|
+ case "17":
|
|
|
+ linkByMiniApp = createPhoneNumberLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,null);
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("领取开箱密码");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
|
|
|
case "21":
|
|
|
if (sopLogs.getFsUserId() != null && !Long.valueOf(0L).equals(sopLogs.getFsUserId())) {
|
|
|
@@ -1590,6 +1648,22 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
st.setMiniprogramTitle("打卡文章");
|
|
|
st.setMiniprogramPage(linkByMiniApp);
|
|
|
break;
|
|
|
+ //素材分享
|
|
|
+ case "16":
|
|
|
+ linkByMiniApp = createShareMaterialLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,null);
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("每日一享");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
+ //素材分享
|
|
|
+ case "17":
|
|
|
+ linkByMiniApp = createPhoneNumberLinkByMiniApp(st,sopLogs, qwUser.getCorpId(), new Date(), param.getCourseId(), param.getVideoId(),
|
|
|
+ String.valueOf(qwUser.getId()), qwUser.getCompanyUserId().toString(), qwUser.getCompanyId().toString(), config,null);
|
|
|
+ st.setMiniprogramAppid(getAppId());
|
|
|
+ st.setMiniprogramTitle("领取开箱密码");
|
|
|
+ st.setMiniprogramPage(linkByMiniApp);
|
|
|
+ break;
|
|
|
|
|
|
case "21":
|
|
|
if (sopLogs.getFsUserId() != null && !Long.valueOf(0L).equals(sopLogs.getFsUserId())) {
|
|
|
@@ -1993,5 +2067,76 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
|
|
|
return link.getRealLink();
|
|
|
}
|
|
|
|
|
|
+ public String createShareMaterialLinkByMiniApp(QwSopCourseFinishTempSetting.Setting st, QwSopLogs sopLogs, String corpId, Date sendTime, Integer courseId, Integer videoId, String qwUserId, String companyUserId, String companyId, CourseConfig config, String chatId) {
|
|
|
+ FsCourseLink link = createFsCourseLink(corpId, sendTime, courseId, videoId, Long.parseLong(qwUserId),
|
|
|
+ companyUserId, companyId, null, 3, chatId);
|
|
|
+
|
|
|
+ Date updateTime = createUpdateTime(st, sendTime, config);
|
|
|
+ link.setUpdateTime(updateTime);
|
|
|
+
|
|
|
+ FsCourseRealLink courseMap = new FsCourseRealLink();
|
|
|
+ BeanUtils.copyProperties(link, courseMap);
|
|
|
|
|
|
+ st.setExternalUserId(sopLogs.getExternalUserId());
|
|
|
+ st.setChatId(chatId);
|
|
|
+
|
|
|
+ st.setMiniprogramPicUrl(st.getShareMaterialUrl());
|
|
|
+ courseMap.setQwExternalId(sopLogs.getExternalId());
|
|
|
+ String realLinkFull = shareMaterialLink + JSON.toJSONString(courseMap);
|
|
|
+ link.setRealLink(realLinkFull);
|
|
|
+ log.error("存入fs_course_link:" + registeredRealLink );
|
|
|
+ log.error("QwSopCourseFinishTempSetting.Setting:{}" ,st );
|
|
|
+ //存短链-
|
|
|
+ fsCourseLinkMapper.insertFsCourseLink(link);
|
|
|
+ return link.getRealLink();
|
|
|
+ }
|
|
|
+
|
|
|
+ public String createPhoneNumberLinkByMiniApp(QwSopCourseFinishTempSetting.Setting st, QwSopLogs sopLogs, String corpId, Date sendTime, Integer courseId, Integer videoId, String qwUserId, String companyUserId, String companyId, CourseConfig config, String chatId) {
|
|
|
+ FsCourseLink link = createFsCourseLink(corpId, sendTime, courseId, videoId, Long.parseLong(qwUserId),
|
|
|
+ companyUserId, companyId, null, 3, chatId);
|
|
|
+
|
|
|
+ Date updateTime = createUpdateTime(st, sendTime, config);
|
|
|
+ link.setUpdateTime(updateTime);
|
|
|
+
|
|
|
+ FsCourseRealLink courseMap = new FsCourseRealLink();
|
|
|
+ BeanUtils.copyProperties(link, courseMap);
|
|
|
+
|
|
|
+ st.setExternalUserId(sopLogs.getExternalUserId());
|
|
|
+ st.setChatId(chatId);
|
|
|
+
|
|
|
+ st.setMiniprogramPicUrl(st.getShareMaterialUrl());
|
|
|
+ courseMap.setQwExternalId(sopLogs.getExternalId());
|
|
|
+ String realLinkFull = phoneNumberLink + JSON.toJSONString(courseMap);
|
|
|
+ link.setRealLink(realLinkFull);
|
|
|
+ log.error("存入fs_course_link:" + registeredRealLink );
|
|
|
+ log.error("QwSopCourseFinishTempSetting.Setting:{}" ,st );
|
|
|
+ //存短链-
|
|
|
+ fsCourseLinkMapper.insertFsCourseLink(link);
|
|
|
+ return link.getRealLink();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取 appId 的私有方法
|
|
|
+ */
|
|
|
+ private String getAppId() {
|
|
|
+ try {
|
|
|
+ String configValue = sysConfigService.selectConfigByKey(APP_ID_CONFIG_KEY);
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotEmpty(configValue)) {
|
|
|
+ JSONObject json = JSONUtil.parseObj(configValue);
|
|
|
+ String appId = json.getStr("appId");
|
|
|
+ if (org.apache.commons.lang3.StringUtils.isNotEmpty(appId)) {
|
|
|
+ return appId;
|
|
|
+ } else {
|
|
|
+ log.warn("配置 {} 中 appId 字段为空,使用默认值", APP_ID_CONFIG_KEY);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.warn("未找到配置 {},使用默认值", APP_ID_CONFIG_KEY);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("解析 appId 配置异常,configValue={}",
|
|
|
+ sysConfigService.selectConfigByKey(APP_ID_CONFIG_KEY), e);
|
|
|
+ }
|
|
|
+ //默认值
|
|
|
+ return DEFAULT_APP_ID;
|
|
|
+ }
|
|
|
}
|