deason 1 місяць тому
батько
коміт
cf38b4afc8

+ 2 - 2
src/main/java/com/qmth/ops/biz/ai/client/DocApiConfig.java

@@ -1,7 +1,7 @@
 package com.qmth.ops.biz.ai.client;
 
 import com.qmth.boot.core.ai.model.AiConstants;
-import com.qmth.ops.biz.domain.OcrSupplier;
+import com.qmth.ops.biz.domain.DocSupplier;
 
 public class DocApiConfig {
 
@@ -19,7 +19,7 @@ public class DocApiConfig {
 
     }
 
-    public DocApiConfig(OcrSupplier supplier) {
+    public DocApiConfig(DocSupplier supplier) {
         this.url = supplier.getUrl();
         this.key = supplier.getKey();
         this.secret = supplier.getSecret();

+ 8 - 0
src/main/java/com/qmth/ops/biz/dao/DocSupplierDao.java

@@ -0,0 +1,8 @@
+package com.qmth.ops.biz.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.ops.biz.domain.DocSupplier;
+
+public interface DocSupplierDao extends BaseMapper<DocSupplier> {
+
+}

+ 117 - 0
src/main/java/com/qmth/ops/biz/domain/DocSupplier.java

@@ -0,0 +1,117 @@
+package com.qmth.ops.biz.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.io.Serializable;
+
+@TableName("doc_supplier")
+public class DocSupplier implements Serializable {
+
+    private static final long serialVersionUID = 5460549877564943447L;
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+
+    private String name;
+
+    private String url;
+
+    @TableField("`key`")
+    private String key;
+
+    private String secret;
+
+    private String clientClass;
+
+    private Integer qps;
+
+    private Boolean enable;
+
+    private Long createTime;
+
+    private Long updateTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getSecret() {
+        return secret;
+    }
+
+    public void setSecret(String secret) {
+        this.secret = secret;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getClientClass() {
+        return clientClass;
+    }
+
+    public void setClientClass(String clientClass) {
+        this.clientClass = clientClass;
+    }
+
+    public Integer getQps() {
+        return qps;
+    }
+
+    public void setQps(Integer qps) {
+        this.qps = qps;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public Long getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Long createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Long updateTime) {
+        this.updateTime = updateTime;
+    }
+
+}

+ 7 - 7
src/main/java/com/qmth/ops/biz/service/DocClientService.java

@@ -7,7 +7,7 @@ import com.qmth.boot.tools.io.FileUtils;
 import com.qmth.ops.biz.ai.client.DocApiClient;
 import com.qmth.ops.biz.ai.client.DocApiConfig;
 import com.qmth.ops.biz.ai.exception.DocClientNotFound;
-import com.qmth.ops.biz.domain.OcrSupplier;
+import com.qmth.ops.biz.domain.DocSupplier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -27,19 +27,19 @@ public class DocClientService {
     private Map<Long, DocApiClient> clientMap;
 
     @Resource
-    private OcrSupplierService ocrSupplierService;
+    private DocSupplierService docSupplierService;
 
     public synchronized void init() {
         defaultClient = null;
         clientMap = new HashMap<>();
 
-        List<OcrSupplier> list = ocrSupplierService.list();
-        for (OcrSupplier supplier : list) {
+        List<DocSupplier> list = docSupplierService.list();
+        for (DocSupplier supplier : list) {
             initApiClient(supplier);
         }
     }
 
-    private void initApiClient(OcrSupplier supplier) {
+    private void initApiClient(DocSupplier supplier) {
         try {
             String className = DocApiClient.class.getName().replace(DocApiClient.class.getSimpleName(), supplier.getClientClass());
             DocApiConfig config = new DocApiConfig(supplier);
@@ -51,7 +51,7 @@ public class DocClientService {
                 clientMap.put(supplier.getId(), client);
 
                 // 取第一个enable=true的为默认客户端
-                if (defaultClient == null) {
+                if (supplier.getEnable() && defaultClient == null) {
                     defaultClient = client;
                 }
             }
@@ -67,7 +67,7 @@ public class DocClientService {
 
         String fileSuffix = FileUtils.getFileSuffix(fileName);
         if (!FileUtils.matchSuffix("(.txt|.pdf|.doc|.docx|.xls|.xlsx|.ppt|.pptx)$", fileSuffix)) {
-            throw new StatusException(fileName + "暂不支持文件类型");
+            throw new StatusException("暂不支持文件类型" + fileSuffix);
         }
 
         return defaultClient.parseDocTask(fileData, fileName);

+ 39 - 0
src/main/java/com/qmth/ops/biz/service/DocSupplierService.java

@@ -0,0 +1,39 @@
+package com.qmth.ops.biz.service;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.ops.biz.dao.DocSupplierDao;
+import com.qmth.ops.biz.domain.DocSupplier;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+@Service
+public class DocSupplierService extends ServiceImpl<DocSupplierDao, DocSupplier> {
+
+    @Resource
+    private DocSupplierDao supplierDao;
+
+    @Transactional
+    public DocSupplier insert(DocSupplier supplier) {
+        supplier.setCreateTime(System.currentTimeMillis());
+        supplier.setUpdateTime(supplier.getCreateTime());
+        supplier.setEnable(true);
+        supplierDao.insert(supplier);
+        return supplier;
+    }
+
+    @Transactional
+    public void update(DocSupplier supplier) {
+        supplierDao.update(null, new LambdaUpdateWrapper<DocSupplier>()
+                .set(supplier.getName() != null, DocSupplier::getName, supplier.getName())
+                .set(supplier.getUrl() != null, DocSupplier::getUrl, supplier.getUrl())
+                .set(supplier.getKey() != null, DocSupplier::getKey, supplier.getKey())
+                .set(supplier.getSecret() != null, DocSupplier::getSecret, supplier.getSecret())
+                .set(supplier.getQps() != null, DocSupplier::getQps, supplier.getQps())
+                .set(supplier.getEnable() != null, DocSupplier::getEnable, supplier.getEnable())
+                .set(DocSupplier::getUpdateTime, System.currentTimeMillis()).eq(DocSupplier::getId, supplier.getId()));
+    }
+
+}