Browse Source

1、迁移企微的接口迁移到qw-api模块中

yys 1 month ago
parent
commit
4fb4958c23

+ 47 - 0
fs-qw-api/src/main/java/com/fs/app/controller/QwExternalContactTransferCompanyAuditController.java

@@ -0,0 +1,47 @@
+package com.fs.app.controller;
+
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.R;
+import com.fs.framework.datasource.TenantDataSourceUtil;
+import com.fs.qw.service.IQwExternalContactTransferCompanyAuditService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 企微客户转接审核Controller(API端)
+ * 由Company端通过HTTP远程调用
+ *
+ * @author fs
+ */
+@Slf4j
+@RestController
+@RequestMapping("/qw/externalContactTransferCompanyAudit")
+public class QwExternalContactTransferCompanyAuditController extends BaseController {
+
+    @Autowired
+    private IQwExternalContactTransferCompanyAuditService auditService;
+
+    @Autowired
+    private TenantDataSourceUtil tenantDataSourceUtil;
+
+    /**
+     * 同步转接状态
+     */
+    @PostMapping("/sync/{auditId}")
+    public R sync(@PathVariable("auditId") Long auditId, @RequestParam("tenantId") Long tenantId) {
+        try {
+            log.info("[TransferAudit] 同步转接状态,tenantId={}, auditId={}", tenantId, auditId);
+            tenantDataSourceUtil.execute(tenantId, () -> {
+                auditService.syncTransfer(auditId);
+            });
+            return R.ok();
+        } catch (IllegalArgumentException e) {
+            log.error("[TransferAudit] 同步转接状态失败,租户不存在或已禁用,tenantId={}", tenantId, e);
+            return R.error("租户不存在或已禁用");
+        } catch (Exception e) {
+            log.error("[TransferAudit] 同步转接状态异常,tenantId={}, auditId={}", tenantId, auditId, e);
+            return R.error("同步转接状态失败: " + e.getMessage());
+        }
+    }
+}

+ 47 - 0
fs-qw-api/src/main/java/com/fs/app/controller/QwExternalContactTransferLogController.java

@@ -0,0 +1,47 @@
+package com.fs.app.controller;
+
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.R;
+import com.fs.framework.datasource.TenantDataSourceUtil;
+import com.fs.qw.service.IQwExternalContactTransferLogService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 转接记录Controller(API端)
+ * 由Company端通过HTTP远程调用
+ *
+ * @author fs
+ */
+@Slf4j
+@RestController
+@RequestMapping("/qw/externalContactTransferLog")
+public class QwExternalContactTransferLogController extends BaseController {
+
+    @Autowired
+    private IQwExternalContactTransferLogService qwExternalContactTransferLogService;
+
+    @Autowired
+    private TenantDataSourceUtil tenantDataSourceUtil;
+
+    /**
+     * 同步转接记录
+     */
+    @GetMapping("/sync/{corpId}")
+    public R sync(@PathVariable("corpId") String corpId, @RequestParam("tenantId") Long tenantId) {
+        try {
+            log.info("[TransferLog] 同步转接记录,tenantId={}, corpId={}", tenantId, corpId);
+            tenantDataSourceUtil.execute(tenantId, () -> {
+                qwExternalContactTransferLogService.syncQwExternalContactTransferLog(corpId);
+            });
+            return R.ok();
+        } catch (IllegalArgumentException e) {
+            log.error("[TransferLog] 同步转接记录失败,租户不存在或已禁用,tenantId={}", tenantId, e);
+            return R.error("租户不存在或已禁用");
+        } catch (Exception e) {
+            log.error("[TransferLog] 同步转接记录异常,tenantId={}, corpId={}", tenantId, corpId, e);
+            return R.error("同步转接记录失败: " + e.getMessage());
+        }
+    }
+}

+ 85 - 0
fs-qw-api/src/main/java/com/fs/app/controller/QwGroupChatController.java

@@ -0,0 +1,85 @@
+package com.fs.app.controller;
+
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.R;
+import com.fs.framework.datasource.TenantDataSourceUtil;
+import com.fs.qw.service.IQwGroupChatService;
+import com.fs.qw.service.IQwUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 客户群详情Controller(API端)
+ * 由Company端通过HTTP远程调用
+ *
+ * @author fs
+ */
+@Slf4j
+@RestController
+@RequestMapping("/qw/groupChat")
+public class QwGroupChatController extends BaseController {
+
+    @Autowired
+    private IQwGroupChatService qwGroupChatService;
+
+    @Autowired
+    private IQwUserService iQwUserService;
+
+    @Autowired
+    private TenantDataSourceUtil tenantDataSourceUtil;
+
+    /**
+     * 同步客户群信息
+     */
+    @GetMapping("/cogradientGroupChat/{corpId}")
+    public R cogradientGroupChat(@PathVariable("corpId") String corpId, @RequestParam("tenantId") Long tenantId) {
+        try {
+            log.info("[GroupChat] 同步客户群信息,tenantId={}, corpId={}", tenantId, corpId);
+            return tenantDataSourceUtil.executeWithResult(tenantId, () -> {
+                try {
+                    return qwGroupChatService.cogradientGroupChat(corpId, new ArrayList<>());
+                } catch (Exception e) {
+                    log.error("[GroupChat] 同步客户群信息异常", e);
+                    return R.error("同步客户群信息失败: " + e.getMessage());
+                }
+            });
+        } catch (IllegalArgumentException e) {
+            log.error("[GroupChat] 同步客户群信息失败,租户不存在或已禁用,tenantId={}", tenantId, e);
+            return R.error("租户不存在或已禁用");
+        } catch (Exception e) {
+            log.error("[GroupChat] 同步客户群信息异常,tenantId={}, corpId={}", tenantId, corpId, e);
+            return R.error("同步客户群信息失败: " + e.getMessage());
+        }
+    }
+
+    /**
+     * 同步我的客户群信息
+     */
+    @GetMapping("/cogradientMyGroupChat/{corpId}")
+    public R cogradientMyGroupChat(@PathVariable("corpId") String corpId,
+                                   @RequestParam("companyUserId") Long companyUserId,
+                                   @RequestParam("tenantId") Long tenantId) {
+        try {
+            log.info("[GroupChat] 同步我的客户群信息,tenantId={}, corpId={}, companyUserId={}", tenantId, corpId, companyUserId);
+            return tenantDataSourceUtil.executeWithResult(tenantId, () -> {
+                try {
+                    List<String> qwUserIdList = iQwUserService.selectQwUserListByCompanyUserId(companyUserId, corpId);
+                    return qwGroupChatService.cogradientGroupChat(corpId, qwUserIdList);
+                } catch (Exception e) {
+                    log.error("[GroupChat] 同步我的客户群信息异常", e);
+                    return R.error("同步我的客户群信息失败: " + e.getMessage());
+                }
+            });
+        } catch (IllegalArgumentException e) {
+            log.error("[GroupChat] 同步我的客户群信息失败,租户不存在或已禁用,tenantId={}", tenantId, e);
+            return R.error("租户不存在或已禁用");
+        } catch (Exception e) {
+            log.error("[GroupChat] 同步我的客户群信息异常,tenantId={}, corpId={}", tenantId, corpId, e);
+            return R.error("同步我的客户群信息失败: " + e.getMessage());
+        }
+    }
+}