|
@@ -459,16 +459,6 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
-// String[] userKey = logVo.getUserId().split("\\|");
|
|
|
-// if (userKey.length < 3) {
|
|
|
-// log.error("用户 ID {} 格式不正确,跳过处理。", logVo.getUserId());
|
|
|
-// return;
|
|
|
-// }
|
|
|
-
|
|
|
-// String qwUserId = userKey[0].trim();
|
|
|
-// String companyUserId = userKey[1].trim();
|
|
|
-// String companyId = userKey[2].trim();
|
|
|
-
|
|
|
|
|
|
//获取企业微信员工的称呼//从redis里或者从库里取
|
|
|
QwUser qwUserByRedis = qwExternalContactService.getQwUserByRedis(logVo.getCorpId(),logVo.getQwUserId());
|
|
@@ -943,33 +933,21 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
|
String sortLink = createLinkByMiniApp(setting, logVo, sendTime, courseId, videoId,
|
|
|
qwUserId, companyUserId, companyId, externalId,isOfficial,sopLogs.getFsUserId());
|
|
|
|
|
|
- if (!miniMap.isEmpty() && sendMsgType==1) {
|
|
|
- Map<Integer, List<CompanyMiniapp>> integerListMap = miniMap.get(Long.valueOf(companyId));
|
|
|
- if (integerListMap != null) {
|
|
|
|
|
|
- int effectiveGrade = (grade == null) ? 5 : grade;
|
|
|
- int listIndex = (effectiveGrade == 1 || effectiveGrade == 2) ? 0 : 1;
|
|
|
- List<CompanyMiniapp> miniapps = integerListMap.get(listIndex);
|
|
|
+ //算主备小程序
|
|
|
+ String finalAppId = getAppIdFromMiniMap(miniMap, companyId, sendMsgType, grade);
|
|
|
|
|
|
- if (miniapps != null && !miniapps.isEmpty()) {
|
|
|
- CompanyMiniapp companyMiniapp = miniapps.get(0);
|
|
|
- if (companyMiniapp != null && !StringUtil.strIsNullOrEmpty(companyMiniapp.getAppId())) {
|
|
|
- setting.setMiniprogramAppid(companyMiniapp.getAppId());
|
|
|
- }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
|
|
|
- setting.setMiniprogramAppid(miniAppId);
|
|
|
- }
|
|
|
- }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
|
|
|
- setting.setMiniprogramAppid(miniAppId);
|
|
|
- }
|
|
|
- }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
|
|
|
- setting.setMiniprogramAppid(miniAppId);
|
|
|
- }
|
|
|
- }else if (!StringUtil.strIsNullOrEmpty(miniAppId)){
|
|
|
- setting.setMiniprogramAppid(miniAppId);
|
|
|
- }else {
|
|
|
+ if (StringUtil.strIsNullOrEmpty(finalAppId)) {
|
|
|
+ finalAppId = miniAppId;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtil.strIsNullOrEmpty(finalAppId)) {
|
|
|
+ setting.setMiniprogramAppid(finalAppId);
|
|
|
+ } else {
|
|
|
log.error("公司的小程序id为空:采用了前端传的固定值" + sopLogs.getSopId());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
setting.setMiniprogramPage(sortLink.replaceAll("^[\\s\\u2005]+", ""));
|
|
|
|
|
|
try {
|
|
@@ -999,6 +977,33 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
|
|
|
enqueueQwSopLogs(sopLogs);
|
|
|
}
|
|
|
|
|
|
+ private String getAppIdFromMiniMap(Map<Long, Map<Integer, List<CompanyMiniapp>>> miniMap,
|
|
|
+ String companyId,
|
|
|
+ int sendMsgType,
|
|
|
+ Integer grade) {
|
|
|
+ if (miniMap.isEmpty() || sendMsgType != 1) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Integer, List<CompanyMiniapp>> gradeMap = miniMap.get(Long.valueOf(companyId));
|
|
|
+ if (gradeMap == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ int effectiveGrade = (grade == null) ? 5 : grade;
|
|
|
+ int listIndex = (effectiveGrade == 1 || effectiveGrade == 2) ? 0 : 1;
|
|
|
+ List<CompanyMiniapp> miniapps = gradeMap.get(listIndex);
|
|
|
+
|
|
|
+ if (miniapps == null || miniapps.isEmpty()) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ CompanyMiniapp companyMiniapp = miniapps.get(0);
|
|
|
+ return (companyMiniapp != null && !StringUtil.strIsNullOrEmpty(companyMiniapp.getAppId()))
|
|
|
+ ? companyMiniapp.getAppId()
|
|
|
+ : null;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 深拷贝 Content 对象,避免使用 JSON 进行序列化和反序列化
|
|
|
*/
|