Ver Fonte

新飞书逻辑4

cgp há 2 dias atrás
pai
commit
798ed9bccf

+ 1 - 1
fs-ipad-task/src/main/java/com/fs/app/service/IpadSendServer.java

@@ -399,9 +399,9 @@ public class IpadSendServer {
 
             Client client = buildClient(account);
 
+            content.setLinkUrl(completeFeiShuLinkUrl);
             //更新qwSopLogs
             qwSopLogsService.updateLinkUrlInContentJson(qwSopLogs, completeFeiShuLinkUrl);
-            content.setLinkUrl(completeFeiShuLinkUrl);
             String authUrl = buildNewFeiSHuCourseLink(companyId, companyUserId, courseId, videoId, qwSopLogs.getFsUserId(), fsCourseLink,logId);
             // ============ 异步调用飞书API完善文档内容与文档权限 ============
             //异步之前要做个判断,如果缓存中的课程填充标识为true,则不需要进行异步处理(因为已经填充过了)

+ 4 - 3
fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java

@@ -1671,10 +1671,11 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                     String shortLink = feiShuLinkMap.get("link");
 
                     //3.调用生成飞书注册授权链接(这个是在ipad发送时取缓存的docId)
-                    String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId,companyIdLong,courseId,companyUserIdLong,shortLink);
-                    if (StringUtils.isNotEmpty(feishuLink)) {
+//                    String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId,companyIdLong,courseId,companyUserIdLong,shortLink);
+                    String feishuLink = "https://www.feishu.cn/docx/"+shortLink;
+//                    if (StringUtils.isNotEmpty(feishuLink)) {
                         setting.setLinkUrl(feishuLink);
-                    }
+//                    }
                     break;
                 case "21"://短信看课
                     if (sopLogs.getFsUserId() != null && !Long.valueOf(0L).equals(sopLogs.getFsUserId())) {

+ 6 - 6
fs-service/src/main/java/com/fs/sop/service/impl/QwSopLogsServiceImpl.java

@@ -2164,7 +2164,7 @@ public class QwSopLogsServiceImpl extends ServiceImpl<QwSopLogsMapper, QwSopLogs
 
 
     /**
-     * 更新指定 SOP 日志记录中第一个链接类型的 linkUrl
+     * 更新指定 SOP 日志中所有 contentType=18,20 的 linkUrl(缺失则补充,已有则覆盖)
      * 只记录错误日志,不抛出异常
      *
      * @param logs        QwSopLogs 对象(必须包含 id 和 contentJson)
@@ -2196,20 +2196,20 @@ public class QwSopLogsServiceImpl extends ServiceImpl<QwSopLogsMapper, QwSopLogs
             return;
         }
 
-        // 3. 遍历 setting 列表,找到第一个有 linkUrl 的项进行更新
+        // 3. 遍历所有 setting,更新所有 contentType=18,20 的 linkUrl
         boolean updated = false;
         if (settingObj.getSetting() != null) {
             for (QwSopCourseFinishTempSetting.Setting setting : settingObj.getSetting()) {
-                if (StringUtils.isNotBlank(setting.getLinkUrl())) {
+                if (setting.getContentType() != null && ("18".equals(setting.getContentType())||"20".equals(setting.getContentType()))) {
                     setting.setLinkUrl(newLinkUrl);
                     updated = true;
-                    break; // 只更新第一个
+                    // 不 break,更新全部飞书相关的LinkUrl
                 }
             }
         }
 
         if (!updated) {
-            log.warn("未找到可更新的 linkUrl 字段,logsId={}", logs.getId());
+            log.warn("未找到任何 contentType=18,20 的项,无需更新,logsId={}", logs.getId());
             return;
         }
 
@@ -2223,7 +2223,7 @@ public class QwSopLogsServiceImpl extends ServiceImpl<QwSopLogsMapper, QwSopLogs
             if (rows != 1) {
                 log.error("更新 content_json 失败,影响行数={},logsId={}", rows, logs.getId());
             } else {
-                log.info("成功更新 linkUrl,logsId={}", logs.getId());
+                log.info("成功更新所有 contentType=18,20 的 linkUrl,logsId={}", logs.getId());
             }
         } catch (Exception e) {
             log.error("更新 content_json 时发生数据库异常,logsId={}, error={}", logs.getId(), e.getMessage(), e);

+ 32 - 27
fs-service/src/main/java/com/fs/sop/service/impl/SopUserLogsInfoServiceImpl.java

@@ -727,14 +727,16 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
                                 String shortCode = feishuH5Link.get("link");
 
                                 //3.调用生成飞书伪链接
-                                String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortCode);
-
-                                if (StringUtils.isNotEmpty(feishuLink)) {
-
-                                    st.setLinkUrl(feishuLink);
-                                } else {
-                                    log.error("生成飞书注册链接失败,sopId={}", param.getSopId());
-                                }
+//                                String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortCode);
+//
+//                                if (StringUtils.isNotEmpty(feishuLink)) {
+//
+//                                    st.setLinkUrl(feishuLink);
+//                                } else {
+//                                    log.error("生成飞书注册链接失败,sopId={}", param.getSopId());
+//                                }
+                                String feishuLink = "https://www.feishu.cn/docx/"+shortCode;
+                                st.setLinkUrl(feishuLink);
                                 break;
                             case "19":
                                 String qwUserId = qwUser.getQwUserId();
@@ -908,14 +910,16 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
                                 String shortCode = feishuH5Link.get("link");
 
                                 //3.调用生成飞书伪链接
-                                String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortCode);
-
-                                if (StringUtils.isNotEmpty(feishuLink)) {
-
-                                    st.setLinkUrl(feishuLink);
-                                } else {
-                                    log.error("生成飞书注册链接失败,sopId={}", param.getSopId());
-                                }
+//                                String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortCode);
+//
+//                                if (StringUtils.isNotEmpty(feishuLink)) {
+//
+//                                    st.setLinkUrl(feishuLink);
+//                                } else {
+//                                    log.error("生成飞书注册链接失败,sopId={}", param.getSopId());
+//                                }
+                                String feishuLink = "https://www.feishu.cn/docx/"+shortCode;
+                                st.setLinkUrl(feishuLink);
                                 break;
                             case "19":
                                 String qwUserId = qwUser.getQwUserId();
@@ -1273,14 +1277,16 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
                             String shortCode = feishuH5Link.get("link");
 
                             //3.调用生成飞书伪链接
-                            String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortCode);
-
-                            if (StringUtils.isNotEmpty(feishuLink)) {
-
-                                st.setLinkUrl(feishuLink);
-                            } else {
-                                log.error("生成飞书注册链接失败,sopId={}", param.getSopId());
-                            }
+//                            String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortCode);
+//
+//                            if (StringUtils.isNotEmpty(feishuLink)) {
+//
+//                                st.setLinkUrl(feishuLink);
+//                            } else {
+//                                log.error("生成飞书注册链接失败,sopId={}", param.getSopId());
+//                            }
+                            String feishuLink = "https://www.feishu.cn/docx/"+shortCode;
+                            st.setLinkUrl(feishuLink);
                             break;
                         case "19":
                             Long notionWatchLogId = addNotionWatchLog(param.getSopId(), param.getVideoId(), param.getCourseId(),
@@ -1978,9 +1984,8 @@ public class SopUserLogsInfoServiceImpl implements ISopUserLogsInfoService {
                     String shortLink = feishuH5Link.get("link");
                     log.info("课程短链接生成成功:{}", shortLink);
                     //3.调用生成飞书伪链接
-                    //3.调用生成飞书注册授权链接
-                    String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortLink);
-
+                    //String feishuLink = feiShuService.getNewFeishuRegisterLink(videoId.longValue(), companyIdLong, courseId.longValue(), companyUserIdLong,shortLink);
+                    String feishuLink = "https://www.feishu.cn/docx/"+shortLink;
                     if (StringUtils.isNotEmpty(feishuLink)) {
                         // 替换占位符
                         String txt = StringUtil.strIsNullOrEmpty(qwUser.getWelcomeText()) ? "" : qwUser.getWelcomeText();