From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 jnpf-biz-common/jnpf-biz-common-onlyoffice/src/main/java/jnpf/bizcommon/onlyoffice/service/impl/OnlyOfficeFillTicketIssuer.java |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/jnpf-biz-common/jnpf-biz-common-onlyoffice/src/main/java/jnpf/bizcommon/onlyoffice/service/impl/OnlyOfficeFillTicketIssuer.java b/jnpf-biz-common/jnpf-biz-common-onlyoffice/src/main/java/jnpf/bizcommon/onlyoffice/service/impl/OnlyOfficeFillTicketIssuer.java
new file mode 100644
index 0000000..23e4052
--- /dev/null
+++ b/jnpf-biz-common/jnpf-biz-common-onlyoffice/src/main/java/jnpf/bizcommon/onlyoffice/service/impl/OnlyOfficeFillTicketIssuer.java
@@ -0,0 +1,43 @@
+package jnpf.bizcommon.onlyoffice.service.impl;
+
+import jnpf.base.UserInfo;
+import jnpf.bizcommon.onlyoffice.entity.OnlyOfficeConfigParam;
+import jnpf.util.JsonUtil;
+import jnpf.util.TicketUtil;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+@Component
+public class OnlyOfficeFillTicketIssuer {
+
+    public static final String SCOPE = "onlyoffice:eln-template-fill";
+    public static final String BIZ_MODULE = "eln.template";
+    public static final String BIZ_SCENE = "eln.template.fill";
+    public static final String PLUGIN_CODE = "eln-template-filler";
+    public static final String TENANT_ID = "0";
+    public static final long TTL_SECONDS = 8L * 60L * 60L;
+
+    public String issue(OnlyOfficeConfigParam param, UserInfo user, String pluginGuid) {
+        return TicketUtil.createTicket(buildPayload(param, user, pluginGuid), TTL_SECONDS);
+    }
+
+    String buildPayload(OnlyOfficeConfigParam param, UserInfo user, String pluginGuid) {
+        Map<String, String> payload = new LinkedHashMap<>();
+        payload.put("scope", SCOPE);
+        payload.put("tenantId", TENANT_ID);
+        payload.put("userId", user.getUserId());
+        payload.put("fileId", param.getFileId());
+        payload.put("bizDataId", param.getBizDataId());
+        payload.put("bizModule", param.getBizModule());
+        payload.put("bizScene", param.getBizScene());
+        payload.put("pluginGuid", pluginGuid);
+        if (!BIZ_MODULE.equals(param.getBizModule()) || !BIZ_SCENE.equals(param.getBizScene())
+                || payload.values().stream().anyMatch(ObjectUtils::isEmpty)) {
+            throw new IllegalArgumentException("濉啓鎻掍欢 Ticket 涓婁笅鏂囨棤鏁�");
+        }
+        return JsonUtil.getObjectToString(payload);
+    }
+}

--
Gitblit v1.8.0