Browse Source

框架改造

1811872455@163.com 1 tháng trước cách đây
mục cha
commit
1250074c52
100 tập tin đã thay đổi với 492 bổ sung565 xóa
  1. 0 17
      java/storlead-dependencies/pom.xml
  2. 7 22
      java/storlead-es/pom.xml
  3. 0 45
      java/storlead-es/src/main/java/com/storlead/es/pojo/vo/EsGenericVO.java
  4. 8 12
      java/storlead-es/storlead-es-api/pom.xml
  5. 32 0
      java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/EsGenericVO.java
  6. 0 0
      java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/EsQuerySimilarityVO.java
  7. 0 0
      java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/EsQueryVO.java
  8. 0 0
      java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/FieldConfig.java
  9. 0 0
      java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/IndexFieldConfig.java
  10. 0 0
      java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/server/EsSearchCustomerService.java
  11. 29 0
      java/storlead-es/storlead-es-biz/pom.xml
  12. 0 0
      java/storlead-es/storlead-es-biz/src/main/java/com/storlead/es/config/ElasticSearchConfig.java
  13. 1 65
      java/storlead-es/storlead-es-biz/src/main/java/com/storlead/es/server/impl/BaseSearchServiceImpl.java
  14. 10 91
      java/storlead-es/storlead-es-biz/src/main/java/com/storlead/es/server/impl/EsSearchCustomerServiceImpl.java
  15. 30 0
      java/storlead-es/storlead-es-core/pom.xml
  16. 0 0
      java/storlead-es/storlead-es-core/src/main/java/com/storlead/es/server/BaseSearchService.java
  17. 6 0
      java/storlead-framework/storlead-common/pom.xml
  18. 20 0
      java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/result/BizCode.java
  19. 64 0
      java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/result/BizResult.java
  20. 4 4
      java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/vo/user/UserVO.java
  21. 0 18
      java/storlead-framework/storlead-core/src/main/java/com/storlead/framework/core/CustomDate.java
  22. 11 0
      java/storlead-framework/storlead-web/src/main/java/com/storlead/framework/web/assemble/Result.java
  23. 6 22
      java/storlead-message/pom.xml
  24. 0 20
      java/storlead-message/src/main/java/com/storlead/message/controller/UserMessageNoticeConfigController.java
  25. 0 34
      java/storlead-message/src/main/java/com/storlead/message/mapper/xml/InsideMessageRecordMapper.xml
  26. 0 26
      java/storlead-message/src/main/java/com/storlead/message/mapper/xml/InsideMessageSendLogMapper.xml
  27. 0 35
      java/storlead-message/src/main/resources/mapper/UserMessageNoticeConfigMapper.xml
  28. 29 0
      java/storlead-message/storlead-message-api/pom.xml
  29. 54 0
      java/storlead-message/storlead-message-biz/pom.xml
  30. 25 0
      java/storlead-message/storlead-message-core/pom.xml
  31. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/entity/UserMessageNoticeConfigEntity.java
  32. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/InsideMessageRecordMapper.java
  33. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/InsideMessageSendLogMapper.java
  34. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/MessageTemplateEventDetailMapper.java
  35. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/MessageTemplateEventGroupMapper.java
  36. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/UserMessageNoticeConfigMapper.java
  37. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageDTO.java
  38. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageTemplateDetailDTO.java
  39. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageTemplateEventDTO.java
  40. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageTestDTO.java
  41. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/InsideMessageRecordEntity.java
  42. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/InsideMessageSendLogEntity.java
  43. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/MessageTemplateEventDetailEntity.java
  44. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/MessageTemplateEventGroupEntity.java
  45. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageArgTemplateVO.java
  46. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageDetailVO.java
  47. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageNoReadTotalVO.java
  48. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageTemplateVO.java
  49. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageTypeReadStateVO.java
  50. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/InsideMessageRecordService.java
  51. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/InsideMessageSendLogService.java
  52. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/MessageTemplateEventDetailService.java
  53. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/MessageTemplateEventGroupService.java
  54. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/UserMessageNoticeConfigService.java
  55. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/WechatMessageService.java
  56. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/InsideMessageRecordServiceImpl.java
  57. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/InsideMessageSendLogServiceImpl.java
  58. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/MessageService.java
  59. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/MessageTemplateEventDetailServiceImpl.java
  60. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/MessageTemplateEventGroupServiceImpl.java
  61. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/UserMessageNoticeConfigServiceImpl.java
  62. 0 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/WechatMessageServiceImpl.java
  63. 0 0
      java/storlead-message/storlead-message-core/src/main/resources/mapper/InsideMessageRecordMapper.xml
  64. 0 0
      java/storlead-message/storlead-message-core/src/main/resources/mapper/InsideMessageSendLogMapper.xml
  65. 0 0
      java/storlead-message/storlead-message-core/src/main/resources/mapper/MessageTemplateEventDetailMapper.xml
  66. 0 0
      java/storlead-message/storlead-message-core/src/main/resources/mapper/MessageTemplateEventGroupMapper.xml
  67. 0 0
      java/storlead-message/storlead-message-core/src/main/resources/mapper/UserMessageNoticeConfigMapper.xml
  68. 1 1
      java/storlead-message/storlead-message-core/src/test/java/com/storlead/tems/message/MessageApplicationTests.java
  69. 0 1
      java/storlead-thirdparty/pom.xml
  70. 15 0
      java/storlead-thirdparty/storlead-thirdparty-api/src/main/java/com/storlead/thirdparty/api/dto/ThirdPartyUserSyncDTO.java
  71. 1 0
      java/storlead-thirdparty/storlead-thirdparty-api/src/main/java/com/storlead/thirdparty/api/service/ThirdPartyDirectorySyncService.java
  72. 10 0
      java/storlead-thirdparty/storlead-thirdparty-api/src/main/java/com/storlead/thirdparty/api/service/ThirdPartyUserSyncService.java
  73. 23 2
      java/storlead-thirdparty/storlead-thirdparty-core/src/main/java/com/storlead/thirdparty/core/service/DefaultThirdPartyService.java
  74. 1 0
      java/storlead-thirdparty/storlead-thirdparty-core/src/main/java/com/storlead/thirdparty/core/spi/ThirdPartyMessageClient.java
  75. 12 0
      java/storlead-thirdparty/storlead-thirdparty-core/src/main/java/com/storlead/thirdparty/core/spi/ThirdPartyUserSyncClient.java
  76. 0 9
      java/storlead-thirdparty/storlead-thirdparty-dingtalk/src/main/java/com/storlead/thirdparty/dingtalk/DingTalkModulePlaceholder.java
  77. 25 6
      java/storlead-thirdparty/storlead-thirdparty-wecom/pom.xml
  78. 0 35
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/thirdparty/wecom/WecomDirectorySyncClient.java
  79. 0 31
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/thirdparty/wecom/WecomMessageClient.java
  80. 4 5
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/config/CorpWeChatConfiguration.java
  81. 2 2
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/mapper/SystemWechatConfigMapper.java
  82. 3 3
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/mapper/WechatTokenMapper.java
  83. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/CorpWeChatDeptVO.java
  84. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/CorpWeChatUserVO.java
  85. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/SystemWechatConfigEntity.java
  86. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/WechatAppBO.java
  87. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/WechatToken.java
  88. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/properties/CorpWeChatConstants.java
  89. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/properties/CorpWeChatProperties.java
  90. 5 5
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/CorpWeChatService.java
  91. 2 2
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/SystemWechatConfigService.java
  92. 3 3
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/WechatOrganizSyncService.java
  93. 3 3
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/WechatTokenService.java
  94. 7 7
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/WxDataSyncService.java
  95. 12 12
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/CorpWeChatServiceImpl.java
  96. 4 4
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/SystemWechatConfigServiceImpl.java
  97. 5 5
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/WechatOrganizSyncServiceImpl.java
  98. 5 5
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/WechatTokenServiceImpl.java
  99. 5 5
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/util/CorpWechatUtil.java
  100. 1 1
      java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/util/WechatPhoneUtil.java

+ 0 - 17
java/storlead-dependencies/pom.xml

@@ -72,23 +72,6 @@
                 <version>${mybatis-plus.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>com.daydayup.boot</groupId>
-                <artifactId>daydayup-mybatis</artifactId>
-                <version>${revision}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>com.daydayup.boot</groupId>
-                <artifactId>daydayup-common</artifactId>
-                <version>${revision}</version>
-            </dependency>
-
-            <dependency>
-                <groupId>com.daydayup.boot</groupId>
-                <artifactId>daydayup-system</artifactId>
-                <version>${revision}</version>
-            </dependency>
 
 <!--            &lt;!&ndash;swagger&ndash;&gt;-->
             <dependency>

+ 7 - 22
java/storlead-es/pom.xml

@@ -11,31 +11,16 @@
     </parent>
 
     <artifactId>storlead-es</artifactId>
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
     <name>storlead-es</name>
     <version>1.0</version>
-    <description>common project for Spring Boot</description>
+    <description>es aggregate module</description>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-common</artifactId>
-            <version>1.0</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-mybatis</artifactId>
-            <version>1.0</version>
-            <scope>compile</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
-        </dependency>
-    </dependencies>
+    <modules>
+        <module>storlead-es-core</module>
+        <module>storlead-es-biz</module>
+        <module>storlead-es-api</module>
+    </modules>
 
 </project>
 

+ 0 - 45
java/storlead-es/src/main/java/com/storlead/es/pojo/vo/EsGenericVO.java

@@ -1,45 +0,0 @@
-package com.storlead.es.pojo.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import java.io.Serializable;
-import java.util.List;
-
-/**
- * @program: sp-tems-gotr
- * @description:
- * @author: chenkq
- * @create: 2023-07-04 16:29
- */
-@Data
-public class EsGenericVO implements Serializable {
-
-    private String queryText;
-
-    private String minScore;
-
-    private String indexName;
-
-    private String fieldName;
-
-    private String fieldKey;
-    @ApiModelProperty(value = "客户种类(10客户、11线索)")
-    private Integer customerForm;
-
-    @ApiModelProperty(value = "匹配索引和字段")
-    public List<IndexFieldConfig> indexFields;
-}
-//{
-//        "queryText": "ta@aselsan.com.tr",
-//        "topN": 100,
-//        "fieldKey": "keyword",
-//        "minScore": 60.0,
-//        "indexFields": [
-//        {
-//        "indexName" : "liaison_data_index","resourceType":10,"fields":[{"fieldName":"email.keyword","fieldDescribe":"联系人邮箱"},{"fieldName":"email1.keyword","fieldDescribe":"联系人备用邮箱1"},{"fieldName":"email2.keyword","fieldDescribe":"联系人备用邮箱2"},{"fieldName":"email3.keyword","fieldDescribe":"联系人备用邮箱3"}]
-//        },{
-//        "indexName" : "customer_company_data_index","resourceType":30,"fields":[{"fieldName":"email.keyword","fieldDescribe":"企业邮箱"},{"fieldName":"email1.keyword","fieldDescribe":"企业备用邮箱1"},{"fieldName":"email2.keyword","fieldDescribe":"企业备用邮箱2"},{"fieldName":"email3.keyword","fieldDescribe":"企业备用邮箱3"}]
-//        }
-//        ]
-//}

+ 8 - 12
java/storlead-wx/pom.xml → java/storlead-es/storlead-es-api/pom.xml

@@ -2,32 +2,28 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
     <parent>
-        <artifactId>storlead-saas-platform</artifactId>
         <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-es</artifactId>
         <version>1.0</version>
-        <relativePath>../../pom.xml</relativePath>
+        <relativePath>../pom.xml</relativePath>
     </parent>
-    <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>storlead-wx</artifactId>
+    <artifactId>storlead-es-api</artifactId>
     <packaging>jar</packaging>
-    <name>storlead-wx</name>
-    <version>1.0</version>
-    <description>common project for Spring Boot</description>
+    <name>storlead-es-api</name>
 
     <dependencies>
         <dependency>
             <groupId>com.storlead.boot</groupId>
             <artifactId>storlead-common</artifactId>
-            <version>1.0</version>
         </dependency>
 
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-validation</artifactId>
-            <version>2.6.3</version>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-mybatis</artifactId>
         </dependency>
     </dependencies>
-
 </project>

+ 32 - 0
java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/EsGenericVO.java

@@ -0,0 +1,32 @@
+package com.storlead.es.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @program: sp-tems-gotr
+ * @description:
+ * @author: chenkq
+ * @create: 2023-07-04 16:29
+ */
+@Data
+public class EsGenericVO implements Serializable {
+
+    private String queryText;
+
+    private String minScore;
+
+    private String indexName;
+
+    private String fieldName;
+
+    private String fieldKey;
+    @ApiModelProperty(value = "客户种类(10客户、11线索)")
+    private Integer customerForm;
+
+    @ApiModelProperty(value = "匹配索引和字段")
+    public List<IndexFieldConfig> indexFields;
+}

+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/pojo/vo/EsQuerySimilarityVO.java → java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/EsQuerySimilarityVO.java


+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/pojo/vo/EsQueryVO.java → java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/EsQueryVO.java


+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/pojo/vo/FieldConfig.java → java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/FieldConfig.java


+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/pojo/vo/IndexFieldConfig.java → java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/pojo/vo/IndexFieldConfig.java


+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/server/EsSearchCustomerService.java → java/storlead-es/storlead-es-api/src/main/java/com/storlead/es/server/EsSearchCustomerService.java


+ 29 - 0
java/storlead-es/storlead-es-biz/pom.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-es</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-es-biz</artifactId>
+    <packaging>jar</packaging>
+    <name>storlead-es-biz</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-es-api</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-es-core</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/config/ElasticSearchConfig.java → java/storlead-es/storlead-es-biz/src/main/java/com/storlead/es/config/ElasticSearchConfig.java


+ 1 - 65
java/storlead-es/src/main/java/com/storlead/es/server/impl/BaseSearchServiceImpl.java → java/storlead-es/storlead-es-biz/src/main/java/com/storlead/es/server/impl/BaseSearchServiceImpl.java

@@ -26,7 +26,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
-import java.io.IOException;
 import java.lang.reflect.Field;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -71,9 +70,7 @@ public class BaseSearchServiceImpl<T> implements BaseSearchService<T> {
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(new QueryStringQueryBuilder(keyword))
                 .withSort(SortBuilders.scoreSort().order(SortOrder.DESC))
-                // .withSort(new FieldSortBuilder("createTime").order(SortOrder.DESC))
                 .build();
-        // 使用 IndexCoordinates 指定索引
         IndexCoordinates indexCoordinates = IndexCoordinates.of(indexName);
         List<T> infos = elasticsearchTemplate.search(searchQuery,clazz,indexCoordinates)
                 .stream()
@@ -145,9 +142,7 @@ public class BaseSearchServiceImpl<T> implements BaseSearchService<T> {
     private HighlightBuilder builderHighlightField(String ... hightFields) {
         HighlightBuilder highlightBuilder = new HighlightBuilder();
         highlightBuilder.preTags("<em>").postTags("</em>");
-        //设置高亮的方法
         highlightBuilder.highlighterType("plain");
-        //设置分段的数量不做限制
         highlightBuilder.numOfFragments(0);
         if (Objects.isNull(hightFields) || hightFields.length == 0) {
             return highlightBuilder;
@@ -160,29 +155,17 @@ public class BaseSearchServiceImpl<T> implements BaseSearchService<T> {
 
     @Override
     public  List<T> queryHit(Class<T> clazz,String keyword,String fieldName,String indexName) {
-
         HighlightBuilder highlightBuilder = new HighlightBuilder()
                 .field("title")
                 .preTags("<em>")
                 .postTags("</em>");
-        // 构建查询条件
         QueryBuilder queryBuilder = QueryBuilders.matchQuery(fieldName,keyword);
-
-        // 构建搜索查询
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(queryBuilder)
                 .withHighlightBuilder(highlightBuilder)
                 .build();
-
-        // 使用 IndexCoordinates 指定索引
         IndexCoordinates indexCoordinates = IndexCoordinates.of(indexName);
-        // 执行搜索查询
         SearchHits<T> searchHits = elasticsearchTemplate.search(searchQuery,clazz,indexCoordinates);
-//      for (HighlightField highlightField : highlightFields) {
-//          String fieldName = highlightField.getName();
-//          String highlightedText = highlightField.getSnippets().get(0);
-//          System.out.println("Highlighted field: " + fieldName + ", Text: " + highlightedText);
-//      }
         List<T> infos = searchHits
                 .stream()
                 .map(SearchHit::getContent)
@@ -192,121 +175,75 @@ public class BaseSearchServiceImpl<T> implements BaseSearchService<T> {
 
     @Override
     public  List<T> queryHitByPage(Class<T> clazz,PageDTO page,String keyword,String fieldName,String indexName) {
-
-        // 构建查询条件
         Pageable pageable = PageRequest.of(page.getPageIndex(), page.getPageSize());
         QueryBuilder queryBuilder = QueryBuilders.matchQuery(fieldName,keyword);
-
-        // 构建搜索查询
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(queryBuilder)
                 .withPageable(pageable)
                 .build();
-
-        // 执行搜索查询
         SearchHits<T> searchHits = elasticsearchTemplate.search(searchQuery, clazz);
         List<T> infos = searchHits
                 .stream()
                 .map(org.springframework.data.elasticsearch.core.SearchHit::getContent)
                 .collect(Collectors.toList());
-
         return infos;
     }
 
-    /**
-     * 高亮显示
-     * @auther:
-     * @date:
-     */
     @Override
     public  List<T> queryHit(Class<T> clazz,String keyword,String indexName,String ... fieldNames) {
-
-        // 构建查询条件
         QueryBuilder queryBuilder = QueryBuilders.multiMatchQuery(keyword, fieldNames);
-
-        // 构建搜索查询
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(queryBuilder)
                 .build();
-
-        // 执行搜索查询
         SearchHits<T> searchHits = elasticsearchTemplate.search(searchQuery,clazz);
         List<T> infos = searchHits
                 .stream()
                 .map(SearchHit::getContent)
                 .collect(Collectors.toList());
-
         return infos;
     }
 
     @Override
     public  List<T> queryHitByPage(Class<T> clazz,PageDTO page,String keyword,String indexName,String ... fieldNames) {
-
-        // 构建查询条件
         Pageable pageable = PageRequest.of(page.getPageIndex(), page.getPageSize());
         QueryBuilder queryBuilder = QueryBuilders.multiMatchQuery(keyword, fieldNames);
-
-        // 构建搜索查询
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(queryBuilder)
                 .withPageable(pageable)
                 .build();
-
-        // 执行搜索查询
         SearchHits<T> searchHits = elasticsearchTemplate.search(searchQuery, clazz);
         List<T> infos = searchHits
                 .stream()
                 .map(SearchHit::getContent)
                 .collect(Collectors.toList());
-
         return infos;
     }
 
     @Override
     public  List<T> querySimilarityPage(Class<T> clazz,PageDTO page,String keyword,String indexName,String ... fieldNames) {
-
-        // 构建查询条件
         Pageable pageable = PageRequest.of(page.getPageIndex(), page.getPageSize());
         QueryBuilder queryBuilder = QueryBuilders.multiMatchQuery(keyword, fieldNames);
-
-        // 构建搜索查询
         NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                 .withQuery(queryBuilder)
                 .withPageable(pageable)
                 .build();
-
-        // 执行搜索查询
         SearchHits<T> searchHits = elasticsearchTemplate.search(searchQuery, clazz);
         List<T> infos = searchHits
                 .stream()
                 .map(SearchHit::getContent)
                 .collect(Collectors.toList());
-
         return infos;
     }
 
     @Override
     public List<Map<String, Object>> searchByNameSimilarity(String inputName) {
-
         SearchRequest searchRequest = new SearchRequest("customer_data");
         searchRequest.source().query(QueryBuilders.termQuery("customer_name", "sear"));
-
-
         NativeSearchQuery query = new NativeSearchQueryBuilder()
                 .withQuery(QueryBuilders.fuzzyQuery("customer_name", inputName).fuzziness(Fuzziness.AUTO))
-                .withPageable(PageRequest.of(0, 10)) // 设置分页,最大返回 10 个结果
+                .withPageable(PageRequest.of(0, 10))
                 .build();
-
-//        Query query = new NativeSearchQueryBuilder()
-//                .withQuery(QueryBuilders.fuzzyQuery("customer_name", inputName)
-//                        .fuzziness("AUTO"))  // 使用 fuzziness 设置模糊度
-//                .withPageable(PageRequest.of(0, 10)) // 设置分页,最多返回 10 个结果
-//                .build();
-
-        // 执行查询并返回结果
         SearchHits<Map> searchHits = elasticsearchTemplate.search(query, Map.class, IndexCoordinates.of("customer_data"));
-
-        // 处理查询结果并返回包含 id、customer_name 和 score 的列表
         return searchHits.getSearchHits().stream().map(hit -> {
             Map<String, Object> result = new HashMap<>();
             result.put("id", hit.getId());
@@ -315,5 +252,4 @@ public class BaseSearchServiceImpl<T> implements BaseSearchService<T> {
             return result;
         }).collect(Collectors.toList());
     }
-
 }

+ 10 - 91
java/storlead-es/src/main/java/com/storlead/es/server/impl/EsSearchCustomerServiceImpl.java → java/storlead-es/storlead-es-biz/src/main/java/com/storlead/es/server/impl/EsSearchCustomerServiceImpl.java

@@ -6,7 +6,6 @@ import com.storlead.es.pojo.vo.EsQuerySimilarityVO;
 import com.storlead.es.pojo.vo.FieldConfig;
 import com.storlead.es.pojo.vo.IndexFieldConfig;
 import com.storlead.es.server.EsSearchCustomerService;
-import com.storlead.frame.core.assemble.Result;
 import org.apache.commons.lang3.tuple.Pair;
 import org.elasticsearch.index.query.BoolQueryBuilder;
 import org.elasticsearch.index.query.QueryBuilders;
@@ -28,12 +27,6 @@ import javax.annotation.Resource;
 import java.util.*;
 import java.util.stream.Collectors;
 
-/**
- * @program: sp-sales-platform
- * @description:
- * @author: chenkq
- * @create: 2025-04-16 09:57
- */
 @Service
 public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
 
@@ -41,37 +34,25 @@ public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
     private ElasticsearchRestTemplate elasticsearchTemplate;
 
     private static String similarityScript = "\n" +
-            "def field = params.field;\n" +  // 使用参数传入字段名
+            "def field = params.field;\n" +
             "if (!doc.containsKey(field) || doc[field].size() == 0 || doc[field].value == null) {\n" +
             "    return 0;\n" +
             "}\n" +
             "if (params.query == null) return 0;\n" +
             "def docValue = doc[field].value;\n" +
-            "\n" +
             "String s1 = docValue.toString().toLowerCase();\n" +
             "String s2 = params.query?.toString().toLowerCase();\n" +
-            "\n" +
-            "// 空值检查\n" +
             "if (s1 == null || s2 == null) return 0;\n" +
-            "\n" +
-            "// 完全匹配直接返回100\n" +
             "if (s1.equals(s2)) return 100;\n" +
-            "\n" +
-            "// 计算编辑距离(内联实现)\n" +
             "int s1_len = s1.length();\n" +
             "int s2_len = s2.length();\n" +
-            "\n" +
-            "// 快速检查\n" +
             "if (s1_len == 0 || s2_len == 0) return 0;\n" +
             "if (s1_len == 0) return (int)(100 * (1 - (s2_len / Math.max(1, s2_len))));\n" +
             "if (s2_len == 0) return (int)(100 * (1 - (s1_len / Math.max(1, s1_len))));\n" +
-            "\n" +
-            "// 使用单数组优化空间复杂度\n" +
             "int[] costs = new int[s2_len + 1];\n" +
             "for (int j = 0; j <= s2_len; j++) {\n" +
             "    costs[j] = j;\n" +
             "}\n" +
-            "\n" +
             "for (int i = 1; i <= s1_len; i++) {\n" +
             "    costs[0] = i;\n" +
             "    int prev = i - 1;\n" +
@@ -91,36 +72,17 @@ public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
             "        costs[j] = current;\n" +
             "    }\n" +
             "}\n" +
-            "\n" +
             "int distance = costs[s2_len];\n" +
             "int maxLen = s1_len > s2_len ? s1_len : s2_len;\n" +
             "if (maxLen == 0) return 100;\n"+
-            "\n" +
-            "// 计算相似度百分比(0-100)\n" +
             "double similarity = 100 * (1 - ((double)distance / maxLen));\n" +
             "return (int) Math.round(similarity);";
 
     @Override
     public List<EsQuerySimilarityVO> listComparisonSimilarity(EsGenericVO dto) {
-
-//        Map<String, List<String>> indexFieldsMap = Map.of(
-//                "liaison_data_index", Arrays.asList("email.keyword","email1.keyword","email2.keyword","email3.keyword"),
-//                "customer_company_data_index", Arrays.asList("email.keyword","email1.keyword","email2.keyword","email3.keyword")
-//        );
-
-
-        // 保存索引名称和查询的列表
         List<IndexFieldConfig>  indexFields=  dto.getIndexFields();
-//        Map<String, List<FieldConfig>> indexFieldsMap = indexFields.stream()
-//                .collect(Collectors.toMap(
-//                        IndexFieldConfig::getIndexName,
-//                        IndexFieldConfig::getFields
-//                ));
-
         Map<String, IndexFieldConfig> indexFieldsMap = indexFields.stream().collect(Collectors.toMap(IndexFieldConfig::getIndexName, IndexFieldConfig -> IndexFieldConfig));
-
         List<Map> combinedResults = new ArrayList<>();
-
         float minScore = Float.parseFloat(dto.getMinScore());
         List<Pair<String, NativeSearchQuery>> indexQueries = new ArrayList<>();
         indexFieldsMap.forEach((indexName, indexField) -> {
@@ -132,31 +94,19 @@ public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
                 scriptParams.put("field", field.getFieldName());
                 scriptParams.put("query", dto.getQueryText());
                 scriptParams.put("targetIndex", indexName);
-                indexQuery.mustNot(QueryBuilders.termQuery("is_delete", 1)); // Exclude deleted records
+                indexQuery.mustNot(QueryBuilders.termQuery("is_delete", 1));
                 if(!Objects.isNull(dto.getCustomerForm())){
-                    indexQuery.must(QueryBuilders.termQuery("customer_form", dto.getCustomerForm())); // Exclude deleted records
+                    indexQuery.must(QueryBuilders.termQuery("customer_form", dto.getCustomerForm()));
                 }
-
-//                indexQuery.should(
-//                        QueryBuilders.scriptScoreQuery(
-//                                QueryBuilders.matchAllQuery(),
-//                                new Script(
-//                                        ScriptType.INLINE,
-//                                        "painless",
-//                                        similarityScript,
-//                                        scriptParams
-//                                )
-//                        ).setMinScore(minScore)
-//                );
                 ScriptScoreQueryBuilder scriptScoreQuery = QueryBuilders.scriptScoreQuery(
-                        indexQuery,  // 先应用 mustNot 过滤
+                        indexQuery,
                         new Script(
                                 ScriptType.INLINE,
                                 "painless",
                                 similarityScript,
                                 scriptParams
                         )
-                ).setMinScore(minScore);  // 只返回 _score >= minScore 的数据
+                ).setMinScore(minScore);
                 NativeSearchQuery indexSearchQuery = new NativeSearchQueryBuilder()
                         .withQuery(scriptScoreQuery)
                         .withSort(SortBuilders.scoreSort().order(SortOrder.DESC))
@@ -181,28 +131,16 @@ public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
             }
         });
 
-// 执行查询并合并结果
-
-//        for (Pair<String, NativeSearchQuery> pair : indexQueries) {
-//            String indexName = pair.getLeft();
-//            NativeSearchQuery query = pair.getRight();
-//
-//        }
-
-
-
-        // 按相似度分数排序
         combinedResults.sort((a, b) -> {
             float scoreA = (float) a.getOrDefault("similarityScore", 0f);
             float scoreB = (float) b.getOrDefault("similarityScore", 0f);
-            return Float.compare(scoreB, scoreA); // 降序排序
+            return Float.compare(scoreB, scoreA);
         });
 
         List<EsQuerySimilarityVO> vos = convertToVoList(combinedResults,indexFieldsMap);
         return vos;
     }
 
-
     public  List<EsQuerySimilarityVO> convertToVoList(List<Map> combinedResults,Map<String, IndexFieldConfig> indexFieldsMap) {
         if (CollectionUtils.isEmpty(combinedResults)) {
             return new ArrayList<>();
@@ -210,30 +148,20 @@ public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
         return combinedResults.stream()
                 .map(result -> {
                     EsQuerySimilarityVO vo = new EsQuerySimilarityVO();
-
-                    // 1. 设置基础字段
-                    vo.setId(Long.valueOf(result.get("id").toString())); // 假设id字段存在
+                    vo.setId(Long.valueOf(result.get("id").toString()));
                     if (result.containsKey("customer_id") && Objects.nonNull(result.get("customer_id"))) {
-                        vo.setCustomerId(Long.valueOf(result.get("customer_id").toString())); // 假设customer_id字段存在
+                        vo.setCustomerId(Long.valueOf(result.get("customer_id").toString()));
                     }
                     if (result.containsKey("owner_by") && Objects.nonNull(result.get("owner_by"))) {
-                        vo.setOwnerBy(Long.valueOf(result.get("owner_by").toString())); // 假设customer_id字段存在
+                        vo.setOwnerBy(Long.valueOf(result.get("owner_by").toString()));
                     }
-
-                    vo.setObject(result); // 保留原始数据
-
-                    // 2. 设置相似度分数(转换为百分比字符串)
+                    vo.setObject(result);
                     Float score = (Float) result.get("similarityScore");
                     vo.setSimilarityScore(score.toString());
-                    // 3. 设置索引名称
                     vo.setIndexName((String) result.get("matchedIndex"));
                     IndexFieldConfig indexField = indexFieldsMap.get(vo.getIndexName());
                     vo.setResourceType(indexField.getResourceType().toString());
-//
-//                    vo.setMatchedField(matchedField);
-                    // 4. 找出匹配的字段名
                     findMatchedField(vo,result, vo.getIndexName(),indexFieldsMap);
-//                    vo.setMatchedField(matchedField);
                     if (StrUtil.isNotBlank(vo.getMatchedField())) {
                         vo.setDuplicateValue(result.get(vo.getMatchedField()).toString());
                     }
@@ -242,28 +170,19 @@ public class EsSearchCustomerServiceImpl implements EsSearchCustomerService {
                 .collect(Collectors.toList());
     }
 
-    // 辅助方法:找出实际匹配的字段
     private void findMatchedField(EsQuerySimilarityVO vo,Map<String, Object> result, String indexName,Map<String, IndexFieldConfig> indexConfigMap) {
-        // 获取该索引对应的字段列表
         IndexFieldConfig indexConfig = indexConfigMap.get(indexName);
         List<FieldConfig> fields = indexConfig.getFields();
-        // 遍历字段,找出有值的字段
         for (FieldConfig field : fields) {
-            // 移除.keyword后缀(如果需要)
             String cpField =  result.get("matchedField").toString();
             if (cpField.equals(field.getFieldName())) {
                 String baseField = cpField.replace(".keyword", "");
                 if (result.containsKey(baseField) && result.get(baseField) != null) {
                     vo.setMatchedField(baseField);
                     vo.setDuplicateField(baseField);
-//                    vo.setErrorMsg(field.getFieldDescribe()+"重复");
                     vo.setErrorMsg(field.getFieldDescribe());
                 }
             }
-
         }
     }
 }
-
-
-

+ 30 - 0
java/storlead-es/storlead-es-core/pom.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-es</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-es-core</artifactId>
+    <packaging>jar</packaging>
+    <name>storlead-es-core</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-common</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-mybatis</artifactId>
+        </dependency>
+
+    </dependencies>
+</project>

+ 0 - 0
java/storlead-es/src/main/java/com/storlead/es/server/BaseSearchService.java → java/storlead-es/storlead-es-core/src/main/java/com/storlead/es/server/BaseSearchService.java


+ 6 - 0
java/storlead-framework/storlead-common/pom.xml

@@ -54,6 +54,12 @@
             <version>3.12.0</version>
         </dependency>
 
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>${commons.version}</version>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.commons</groupId>
             <artifactId>commons-pool2</artifactId>

+ 20 - 0
java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/result/BizCode.java

@@ -0,0 +1,20 @@
+package com.storlead.framework.common.result;
+
+import lombok.Getter;
+
+@Getter
+public enum BizCode {
+    SUCCESS(200, "操作成功"),
+    FAILED(-1, "处理失败"),
+    VALIDATE_FAILED(1003, "参数校验失败"),
+    PARAM_IS_NEEDED(1004, "缺少必传参数"),
+    ERROR(5000, "未知错误");
+
+    private final int code;
+    private final String msg;
+
+    BizCode(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+}

+ 64 - 0
java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/result/BizResult.java

@@ -0,0 +1,64 @@
+package com.storlead.framework.common.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class BizResult<T> implements Serializable {
+    private static final long serialVersionUID = -3285741963633941427L;
+
+    private boolean success = true;
+    private String message = "操作成功!";
+    private Integer code = BizCode.SUCCESS.getCode();
+    private T result;
+    private long timestamp = System.currentTimeMillis();
+
+    public static <T> BizResult<T> ok() {
+        BizResult<T> r = new BizResult<>();
+        r.setSuccess(true);
+        r.setCode(BizCode.SUCCESS.getCode());
+        r.setMessage(BizCode.SUCCESS.getMsg());
+        r.setTimestamp(System.currentTimeMillis());
+        return r;
+    }
+
+    public static <T> BizResult<T> ok(T result) {
+        BizResult<T> r = ok();
+        r.setResult(result);
+        return r;
+    }
+
+    public static <T> BizResult<T> ok(String msg) {
+        BizResult<T> r = ok();
+        r.setMessage(msg);
+        return r;
+    }
+
+    public static <T> BizResult<T> error(String msg) {
+        BizResult<T> r = new BizResult<>();
+        r.setSuccess(false);
+        r.setCode(BizCode.ERROR.getCode());
+        r.setMessage(msg);
+        r.setTimestamp(System.currentTimeMillis());
+        return r;
+    }
+
+    public static <T> BizResult<T> error(BizCode code) {
+        BizResult<T> r = new BizResult<>();
+        r.setSuccess(false);
+        r.setCode(code.getCode());
+        r.setMessage(code.getMsg());
+        r.setTimestamp(System.currentTimeMillis());
+        return r;
+    }
+
+    public static <T> BizResult<T> error(int code, String msg) {
+        BizResult<T> r = new BizResult<>();
+        r.setSuccess(false);
+        r.setCode(code);
+        r.setMessage(msg);
+        r.setTimestamp(System.currentTimeMillis());
+        return r;
+    }
+}

+ 4 - 4
java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/vo/UserVo.java → java/storlead-framework/storlead-common/src/main/java/com/storlead/framework/common/vo/user/UserVO.java

@@ -1,4 +1,4 @@
-package com.storlead.framework.common.vo;
+package com.storlead.framework.common.vo.user;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
@@ -9,13 +9,13 @@ import java.time.LocalDate;
 import java.util.Date;
 
 /**
- * @program: sp-sales
+ * @program: storlead-saas-platform
  * @description:
  * @author: chenkq
- * @create: 2022-07-06 18:45
+ * @create: 2026-04-23 10:29
  */
 @Data
-public class UserVo {
+public class UserVO {
 
     private Long id;
 

+ 0 - 18
java/storlead-framework/storlead-core/src/main/java/com/storlead/framework/core/CustomDate.java

@@ -1,18 +0,0 @@
-package com.storlead.framework.core;
-
-/**
- * @program: pangu
- * @description:
- * @author: chenkq
- * @create: 2022-02-14 17:29
- */
-//public class CustomDate implements WebBindingInitializer {
-//
-//    @Override
-//    public void initBinder(WebDataBinder webDataBinder) {
-//        // TODO Auto-generated method stub
-//        //转换日期
-//        DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//        webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
-//    }
-//}

+ 11 - 0
java/storlead-framework/storlead-web/src/main/java/com/storlead/framework/web/assemble/Result.java

@@ -1,5 +1,6 @@
 package com.storlead.framework.web.assemble;
 
+import com.storlead.framework.common.result.BizResult;
 import com.storlead.framework.web.enums.ErrorMsgCode;
 import com.storlead.framework.web.enums.ResultCode;
 import io.swagger.annotations.ApiModel;
@@ -188,4 +189,14 @@ public class Result<T> implements Serializable {
 	public static Result<Object> noauth(String msg) {
 		return error(ResultCode.FORBIDDEN.getCode(), msg);
 	}
+
+	public static <T> Result<T> fromBiz(BizResult<T> bizResult) {
+		Result<T> r = new Result<>();
+		r.setSuccess(bizResult.isSuccess());
+		r.setCode(bizResult.getCode());
+		r.setMessage(bizResult.getMessage());
+		r.setResult(bizResult.getResult());
+		r.setTimestamp(bizResult.getTimestamp());
+		return r;
+	}
 }

+ 6 - 22
java/storlead-message/pom.xml

@@ -12,29 +12,13 @@
     </parent>
 
     <artifactId>storlead-message</artifactId>
-    <packaging>jar</packaging>
+    <packaging>pom</packaging>
     <name>storlead-message</name>
     <version>1.0</version>
 
-    <dependencies>
-        <dependency>
-            <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-common</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-mybatis</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-user</artifactId>
-        </dependency>
-    </dependencies>
+    <modules>
+        <module>storlead-message-core</module>
+        <module>storlead-message-biz</module>
+        <module>storlead-message-api</module>
+    </modules>
 </project>

+ 0 - 20
java/storlead-message/src/main/java/com/storlead/message/controller/UserMessageNoticeConfigController.java

@@ -1,20 +0,0 @@
-package com.storlead.message.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 消息开关配置 前端控制器
- * </p>
- *
- * @author chenkq
- * @since 2025-04-25
- */
-@RestController
-@RequestMapping("/user-message-notice-config-entity")
-public class UserMessageNoticeConfigController {
-
-}

+ 0 - 34
java/storlead-message/src/main/java/com/storlead/message/mapper/xml/InsideMessageRecordMapper.xml

@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.storlead.message.mapper.InsideMessageRecordMapper">
-
-        <!-- 通用查询映射结果 -->
-        <resultMap id="BaseResultMap" type="com.storlead.model.message.entity.InsideMessageRecordEntity">
-                    <id column="id" property="id" />
-                    <result column="title" property="title" />
-                    <result column="content" property="content" />
-                    <result column="message_icon" property="messageIcon" />
-                    <result column="message_tag" property="messageTag" />
-                    <result column="callback_url" property="callbackUrl" />
-                    <result column="wx_callback_url" property="wxCallbackUrl" />
-                    <result column="send_user_id" property="sendUserId" />
-                    <result column="status" property="status" />
-                    <result column="message_type" property="messageType" />
-                    <result column="message_sub_type" property="messageSubType" />
-                    <result column="timer_send_time" property="timerSendTime" />
-                    <result column="actually_send_time" property="actuallySendTime" />
-                    <result column="create_by" property="createBy" />
-                    <result column="create_time" property="createTime" />
-                    <result column="update_by" property="updateBy" />
-                    <result column="update_time" property="updateTime" />
-                    <result column="enabled" property="enabled" />
-                    <result column="is_delete" property="isDelete" />
-                    <result column="sort" property="sort" />
-        </resultMap>
-
-        <!-- 通用查询结果列 -->
-        <sql id="Base_Column_List">
-            id, title, content, message_icon, message_tag, callback_url, wx_callback_url, send_user_id, status, message_type, message_sub_type, timer_send_time, actually_send_time, create_by, create_time, update_by, update_time, enabled, is_delete, sort
-        </sql>
-
-</mapper>

+ 0 - 26
java/storlead-message/src/main/java/com/storlead/message/mapper/xml/InsideMessageSendLogMapper.xml

@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.storlead.message.mapper.InsideMessageSendLogMapper">
-
-        <!-- 通用查询映射结果 -->
-        <resultMap id="BaseResultMap" type="com.storlead.model.message.entity.InsideMessageSendLogEntity">
-                    <id column="id" property="id" />
-                    <result column="message_id" property="messageId" />
-                    <result column="receiver_user_id" property="receiverUserId" />
-                    <result column="is_read" property="isRead" />
-                    <result column="status" property="status" />
-                    <result column="create_by" property="createBy" />
-                    <result column="create_time" property="createTime" />
-                    <result column="update_by" property="updateBy" />
-                    <result column="update_time" property="updateTime" />
-                    <result column="enabled" property="enabled" />
-                    <result column="is_delete" property="isDelete" />
-                    <result column="sort" property="sort" />
-        </resultMap>
-
-        <!-- 通用查询结果列 -->
-        <sql id="Base_Column_List">
-            id, message_id, receiver_user_id, is_read, status, create_by, create_time, update_by, update_time, enabled, is_delete, sort
-        </sql>
-
-</mapper>

+ 0 - 35
java/storlead-message/src/main/resources/mapper/UserMessageNoticeConfigMapper.xml

@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.storlead.message.mapper.UserMessageNoticeConfigMapper">
-
-        <!-- 通用查询映射结果 -->
-        <resultMap id="BaseResultMap" type="com.storlead.message.entity.UserMessageNoticeConfigEntity">
-                    <id column="id" property="id" />
-                <result column="create_by" property="createBy" />
-                <result column="owner_by" property="ownerBy" />
-                <result column="create_time" property="createTime" />
-                <result column="update_by" property="updateBy" />
-                <result column="update_time" property="updateTime" />
-                <result column="enabled" property="enabled" />
-                <result column="is_delete" property="isDelete" />
-                <result column="sort" property="sort" />
-                    <result column="template_event_id" property="templateEventId" />
-                    <result column="template_event_code" property="templateEventCode" />
-                    <result column="template_detail_type" property="templateDetailType" />
-                    <result column="remark" property="remark" />
-        </resultMap>
-
-        <!-- 通用查询结果列 -->
-        <sql id="Base_Column_List">
-                create_by,
-                owner_by,
-                create_time,
-                update_by,
-                update_time,
-                enabled,
-                is_delete,
-                sort,
-            id, template_event_id, template_event_code, template_detail_type, remark
-        </sql>
-
-</mapper>

+ 29 - 0
java/storlead-message/storlead-message-api/pom.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-message</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-message-api</artifactId>
+    <packaging>jar</packaging>
+    <name>storlead-message-api</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-message-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-message-biz</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 54 - 0
java/storlead-message/storlead-message-biz/pom.xml

@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-message</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>storlead-message-biz</artifactId>
+    <packaging>jar</packaging>
+    <name>storlead-message-biz</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-message-core</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-common</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-mybatis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-user</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <sourceDirectory>${project.basedir}/../src/main/java</sourceDirectory>
+        <testSourceDirectory>${project.basedir}/../src/test/java</testSourceDirectory>
+        <resources>
+            <resource>
+                <directory>${project.basedir}/../src/main/resources</directory>
+            </resource>
+        </resources>
+    </build>
+</project>

+ 25 - 0
java/storlead-message/storlead-message-core/pom.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>com.storlead.boot</groupId>
+        <artifactId>storlead-message</artifactId>
+        <version>1.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+
+    <artifactId>storlead-message-core</artifactId>
+    <packaging>jar</packaging>
+    <name>storlead-message-core</name>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-common</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/entity/UserMessageNoticeConfigEntity.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/entity/UserMessageNoticeConfigEntity.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/mapper/InsideMessageRecordMapper.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/InsideMessageRecordMapper.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/mapper/InsideMessageSendLogMapper.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/InsideMessageSendLogMapper.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/mapper/MessageTemplateEventDetailMapper.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/MessageTemplateEventDetailMapper.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/mapper/MessageTemplateEventGroupMapper.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/MessageTemplateEventGroupMapper.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/mapper/UserMessageNoticeConfigMapper.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/mapper/UserMessageNoticeConfigMapper.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/dto/MessageDTO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageDTO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/dto/MessageTemplateDetailDTO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageTemplateDetailDTO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/dto/MessageTemplateEventDTO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageTemplateEventDTO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/dto/MessageTestDTO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageTestDTO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/entity/InsideMessageRecordEntity.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/InsideMessageRecordEntity.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/entity/InsideMessageSendLogEntity.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/InsideMessageSendLogEntity.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/entity/MessageTemplateEventDetailEntity.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/MessageTemplateEventDetailEntity.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/entity/MessageTemplateEventGroupEntity.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/entity/MessageTemplateEventGroupEntity.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/vo/MessageArgTemplateVO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageArgTemplateVO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/vo/MessageDetailVO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageDetailVO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/vo/MessageNoReadTotalVO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageNoReadTotalVO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/vo/MessageTemplateVO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageTemplateVO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/pojo/vo/MessageTypeReadStateVO.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageTypeReadStateVO.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/InsideMessageRecordService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/InsideMessageRecordService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/InsideMessageSendLogService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/InsideMessageSendLogService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/MessageTemplateEventDetailService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/MessageTemplateEventDetailService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/MessageTemplateEventGroupService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/MessageTemplateEventGroupService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/UserMessageNoticeConfigService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/UserMessageNoticeConfigService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/WechatMessageService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/WechatMessageService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/InsideMessageRecordServiceImpl.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/InsideMessageRecordServiceImpl.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/InsideMessageSendLogServiceImpl.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/InsideMessageSendLogServiceImpl.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/MessageService.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/MessageService.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/MessageTemplateEventDetailServiceImpl.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/MessageTemplateEventDetailServiceImpl.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/MessageTemplateEventGroupServiceImpl.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/MessageTemplateEventGroupServiceImpl.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/UserMessageNoticeConfigServiceImpl.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/UserMessageNoticeConfigServiceImpl.java


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/service/impl/WechatMessageServiceImpl.java → java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/service/impl/WechatMessageServiceImpl.java


+ 0 - 0
java/storlead-message/src/main/resources/mapper/InsideMessageRecordMapper.xml → java/storlead-message/storlead-message-core/src/main/resources/mapper/InsideMessageRecordMapper.xml


+ 0 - 0
java/storlead-message/src/main/resources/mapper/InsideMessageSendLogMapper.xml → java/storlead-message/storlead-message-core/src/main/resources/mapper/InsideMessageSendLogMapper.xml


+ 0 - 0
java/storlead-message/src/main/resources/mapper/MessageTemplateEventDetailMapper.xml → java/storlead-message/storlead-message-core/src/main/resources/mapper/MessageTemplateEventDetailMapper.xml


+ 0 - 0
java/storlead-message/src/main/resources/mapper/MessageTemplateEventGroupMapper.xml → java/storlead-message/storlead-message-core/src/main/resources/mapper/MessageTemplateEventGroupMapper.xml


+ 0 - 0
java/storlead-message/src/main/java/com/storlead/message/mapper/xml/UserMessageNoticeConfigMapper.xml → java/storlead-message/storlead-message-core/src/main/resources/mapper/UserMessageNoticeConfigMapper.xml


+ 1 - 1
java/storlead-message/src/test/java/com/storlead/tems/message/MessageApplicationTests.java → java/storlead-message/storlead-message-core/src/test/java/com/storlead/tems/message/MessageApplicationTests.java

@@ -1,4 +1,4 @@
-package com.storlead.sales.message;
+package com.storlead.tems.message;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;

+ 0 - 1
java/storlead-thirdparty/pom.xml

@@ -18,7 +18,6 @@
     <modules>
         <module>storlead-thirdparty-api</module>
         <module>storlead-thirdparty-core</module>
-        <module>storlead-thirdparty-wecom</module>
         <module>storlead-thirdparty-dingtalk</module>
     </modules>
 </project>

+ 15 - 0
java/storlead-thirdparty/storlead-thirdparty-api/src/main/java/com/storlead/thirdparty/api/dto/ThirdPartyUserSyncDTO.java

@@ -0,0 +1,15 @@
+package com.storlead.thirdparty.api.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ThirdPartyUserSyncDTO implements Serializable {
+    private static final long serialVersionUID = -3962001570136816166L;
+
+    private Long id;
+    private String mobile;
+    private String xworkUserId;
+    private String avatar;
+}

+ 1 - 0
java/storlead-thirdparty/storlead-thirdparty-api/src/main/java/com/storlead/thirdparty/api/service/ThirdPartyDirectorySyncService.java

@@ -3,6 +3,7 @@ package com.storlead.thirdparty.api.service;
 import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
 
 public interface ThirdPartyDirectorySyncService {
+
     String syncOrganization(ThirdPartyChannel channel);
 
     String syncUsers(ThirdPartyChannel channel);

+ 10 - 0
java/storlead-thirdparty/storlead-thirdparty-api/src/main/java/com/storlead/thirdparty/api/service/ThirdPartyUserSyncService.java

@@ -0,0 +1,10 @@
+package com.storlead.thirdparty.api.service;
+
+import com.storlead.thirdparty.api.dto.ThirdPartyUserSyncDTO;
+import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
+
+import java.util.List;
+
+public interface ThirdPartyUserSyncService {
+    List<ThirdPartyUserSyncDTO> syncUserOpenId(ThirdPartyChannel channel, List<ThirdPartyUserSyncDTO> users);
+}

+ 23 - 2
java/storlead-thirdparty/storlead-thirdparty-core/src/main/java/com/storlead/thirdparty/core/service/DefaultThirdPartyService.java

@@ -1,11 +1,14 @@
 package com.storlead.thirdparty.core.service;
 
 import com.storlead.thirdparty.api.dto.ThirdPartyTextMessageDTO;
+import com.storlead.thirdparty.api.dto.ThirdPartyUserSyncDTO;
 import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
 import com.storlead.thirdparty.api.service.ThirdPartyDirectorySyncService;
 import com.storlead.thirdparty.api.service.ThirdPartyNotificationService;
+import com.storlead.thirdparty.api.service.ThirdPartyUserSyncService;
 import com.storlead.thirdparty.core.spi.ThirdPartyDirectorySyncClient;
 import com.storlead.thirdparty.core.spi.ThirdPartyMessageClient;
+import com.storlead.thirdparty.core.spi.ThirdPartyUserSyncClient;
 import org.springframework.stereotype.Service;
 
 import java.util.EnumMap;
@@ -13,18 +16,23 @@ import java.util.List;
 import java.util.Map;
 
 @Service
-public class DefaultThirdPartyService implements ThirdPartyNotificationService, ThirdPartyDirectorySyncService {
+public class DefaultThirdPartyService implements ThirdPartyNotificationService, ThirdPartyDirectorySyncService, ThirdPartyUserSyncService {
     private final Map<ThirdPartyChannel, ThirdPartyMessageClient> messageClients = new EnumMap<>(ThirdPartyChannel.class);
     private final Map<ThirdPartyChannel, ThirdPartyDirectorySyncClient> syncClients = new EnumMap<>(ThirdPartyChannel.class);
+    private final Map<ThirdPartyChannel, ThirdPartyUserSyncClient> userSyncClients = new EnumMap<>(ThirdPartyChannel.class);
 
     public DefaultThirdPartyService(List<ThirdPartyMessageClient> messageClientList,
-                                    List<ThirdPartyDirectorySyncClient> syncClientList) {
+                                    List<ThirdPartyDirectorySyncClient> syncClientList,
+                                    List<ThirdPartyUserSyncClient> userSyncClientList) {
         for (ThirdPartyMessageClient client : messageClientList) {
             messageClients.put(client.channel(), client);
         }
         for (ThirdPartyDirectorySyncClient client : syncClientList) {
             syncClients.put(client.channel(), client);
         }
+        for (ThirdPartyUserSyncClient client : userSyncClientList) {
+            userSyncClients.put(client.channel(), client);
+        }
     }
 
     @Override
@@ -42,6 +50,11 @@ public class DefaultThirdPartyService implements ThirdPartyNotificationService,
         return getSyncClient(channel).syncUsers();
     }
 
+    @Override
+    public List<ThirdPartyUserSyncDTO> syncUserOpenId(ThirdPartyChannel channel, List<ThirdPartyUserSyncDTO> users) {
+        return getUserSyncClient(channel).syncUserOpenId(users);
+    }
+
     private ThirdPartyMessageClient getMessageClient(ThirdPartyChannel channel) {
         ThirdPartyMessageClient client = messageClients.get(channel);
         if (client == null) {
@@ -57,4 +70,12 @@ public class DefaultThirdPartyService implements ThirdPartyNotificationService,
         }
         return client;
     }
+
+    private ThirdPartyUserSyncClient getUserSyncClient(ThirdPartyChannel channel) {
+        ThirdPartyUserSyncClient client = userSyncClients.get(channel);
+        if (client == null) {
+            throw new IllegalArgumentException("Unsupported third-party user sync channel: " + channel);
+        }
+        return client;
+    }
 }

+ 1 - 0
java/storlead-thirdparty/storlead-thirdparty-core/src/main/java/com/storlead/thirdparty/core/spi/ThirdPartyMessageClient.java

@@ -4,6 +4,7 @@ import com.storlead.thirdparty.api.dto.ThirdPartyTextMessageDTO;
 import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
 
 public interface ThirdPartyMessageClient {
+
     ThirdPartyChannel channel();
 
     boolean sendText(ThirdPartyTextMessageDTO message);

+ 12 - 0
java/storlead-thirdparty/storlead-thirdparty-core/src/main/java/com/storlead/thirdparty/core/spi/ThirdPartyUserSyncClient.java

@@ -0,0 +1,12 @@
+package com.storlead.thirdparty.core.spi;
+
+import com.storlead.thirdparty.api.dto.ThirdPartyUserSyncDTO;
+import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
+
+import java.util.List;
+
+public interface ThirdPartyUserSyncClient {
+    ThirdPartyChannel channel();
+
+    List<ThirdPartyUserSyncDTO> syncUserOpenId(List<ThirdPartyUserSyncDTO> users);
+}

+ 0 - 9
java/storlead-thirdparty/storlead-thirdparty-dingtalk/src/main/java/com/storlead/thirdparty/dingtalk/DingTalkModulePlaceholder.java

@@ -1,9 +0,0 @@
-package com.storlead.thirdparty.dingtalk;
-
-/**
- * Placeholder for future DingTalk channel implementation.
- */
-public final class DingTalkModulePlaceholder {
-    private DingTalkModulePlaceholder() {
-    }
-}

+ 25 - 6
java/storlead-thirdparty/storlead-thirdparty-wecom/pom.xml

@@ -2,31 +2,50 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
     <parent>
-        <groupId>com.storlead.boot</groupId>
         <artifactId>storlead-thirdparty</artifactId>
+        <groupId>com.storlead.boot</groupId>
         <version>1.0</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
+    <modelVersion>4.0.0</modelVersion>
 
     <artifactId>storlead-thirdparty-wecom</artifactId>
     <packaging>jar</packaging>
     <name>storlead-thirdparty-wecom</name>
+    <version>1.0</version>
+    <description>common project for Spring Boot</description>
 
     <dependencies>
         <dependency>
             <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-thirdparty-core</artifactId>
+            <artifactId>storlead-common</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-mybatis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-web</artifactId>
         </dependency>
+
         <dependency>
             <groupId>com.storlead.boot</groupId>
-            <artifactId>storlead-wx</artifactId>
+            <artifactId>storlead-redis</artifactId>
         </dependency>
+
+        <dependency>
+            <groupId>com.storlead.boot</groupId>
+            <artifactId>storlead-thirdparty-core</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
+            <artifactId>spring-boot-starter-validation</artifactId>
         </dependency>
     </dependencies>
+
 </project>

+ 0 - 35
java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/thirdparty/wecom/WecomDirectorySyncClient.java

@@ -1,35 +0,0 @@
-package com.storlead.thirdparty.wecom;
-
-import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
-import com.storlead.thirdparty.core.spi.ThirdPartyDirectorySyncClient;
-import com.storlead.wx.pojo.vo.WechatToken;
-import com.storlead.wx.service.CorpWeChatService;
-import com.storlead.wx.service.WxDataSyncService;
-import org.springframework.stereotype.Component;
-
-@Component
-public class WecomDirectorySyncClient implements ThirdPartyDirectorySyncClient {
-    private final CorpWeChatService corpWeChatService;
-    private final WxDataSyncService wxDataSyncService;
-
-    public WecomDirectorySyncClient(CorpWeChatService corpWeChatService, WxDataSyncService wxDataSyncService) {
-        this.corpWeChatService = corpWeChatService;
-        this.wxDataSyncService = wxDataSyncService;
-    }
-
-    @Override
-    public ThirdPartyChannel channel() {
-        return ThirdPartyChannel.WECOM;
-    }
-
-    @Override
-    public String syncOrganization() {
-        WechatToken token = corpWeChatService.getAccessToken();
-        return wxDataSyncService.syncWxOrganizData(token);
-    }
-
-    @Override
-    public String syncUsers() {
-        return wxDataSyncService.syncWxUserData();
-    }
-}

+ 0 - 31
java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/thirdparty/wecom/WecomMessageClient.java

@@ -1,31 +0,0 @@
-package com.storlead.thirdparty.wecom;
-
-import com.storlead.thirdparty.api.dto.ThirdPartyTextMessageDTO;
-import com.storlead.thirdparty.api.enums.ThirdPartyChannel;
-import com.storlead.thirdparty.core.spi.ThirdPartyMessageClient;
-import com.storlead.wx.service.CorpWeChatService;
-import org.springframework.stereotype.Component;
-
-@Component
-public class WecomMessageClient implements ThirdPartyMessageClient {
-    private final CorpWeChatService corpWeChatService;
-
-    public WecomMessageClient(CorpWeChatService corpWeChatService) {
-        this.corpWeChatService = corpWeChatService;
-    }
-
-    @Override
-    public ThirdPartyChannel channel() {
-        return ThirdPartyChannel.WECOM;
-    }
-
-    @Override
-    public boolean sendText(ThirdPartyTextMessageDTO message) {
-        return corpWeChatService.sendTextMsg(
-                message.getContent(),
-                message.getUserIds(),
-                message.getDeptIds(),
-                null
-        );
-    }
-}

+ 4 - 5
java/storlead-wx/src/main/java/com/storlead/wx/config/CorpWeChatConfiguration.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/config/CorpWeChatConfiguration.java

@@ -1,8 +1,8 @@
-package com.storlead.wx.config;
+package com.storlead.wecom.config;
 
-import com.storlead.wx.pojo.vo.SystemWechatConfigEntity;
-import com.storlead.wx.properties.CorpWeChatProperties;
-import com.storlead.wx.service.SystemWechatConfigService;
+import com.storlead.wecom.pojo.vo.SystemWechatConfigEntity;
+import com.storlead.wecom.properties.CorpWeChatProperties;
+import com.storlead.wecom.service.SystemWechatConfigService;
 import lombok.extern.log4j.Log4j2;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
@@ -27,7 +27,6 @@ public class CorpWeChatConfiguration {
     @Bean
     public void initCorpWeChatConfiguration() {
         try {
-
             log.error("initCorpWeChatConfiguration--先走");
             SystemWechatConfigEntity wechatConfig = wechatConfigService.getById(1);
             if (Objects.nonNull(wechatConfig)) {

+ 2 - 2
java/storlead-wx/src/main/java/com/storlead/wx/mapper/SystemWechatConfigMapper.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/mapper/SystemWechatConfigMapper.java

@@ -1,7 +1,7 @@
-package com.storlead.wx.mapper;
+package com.storlead.wecom.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.storlead.wx.pojo.vo.SystemWechatConfigEntity;
+import com.storlead.wecom.pojo.vo.SystemWechatConfigEntity;
 
 /**
  * <p>

+ 3 - 3
java/storlead-wx/src/main/java/com/storlead/wx/mapper/WechatTokenMapper.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/mapper/WechatTokenMapper.java

@@ -1,7 +1,7 @@
-package com.storlead.wx.mapper;
+package com.storlead.wecom.mapper;
 
-import com.storlead.wx.pojo.vo.WechatAppBO;
-import com.storlead.wx.pojo.vo.WechatToken;
+import com.storlead.wecom.pojo.vo.WechatAppBO;
+import com.storlead.wecom.pojo.vo.WechatToken;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/pojo/vo/CorpWeChatDeptVO.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/CorpWeChatDeptVO.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.pojo.vo;
+package com.storlead.wecom.pojo.vo;
 
 import lombok.Data;
 

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/pojo/vo/CorpWeChatUserVO.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/CorpWeChatUserVO.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.pojo.vo;
+package com.storlead.wecom.pojo.vo;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/pojo/vo/SystemWechatConfigEntity.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/SystemWechatConfigEntity.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.pojo.vo;
+package com.storlead.wecom.pojo.vo;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/pojo/vo/WechatAppBO.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/WechatAppBO.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.pojo.vo;
+package com.storlead.wecom.pojo.vo;
 
 import lombok.Data;
 

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/pojo/vo/WechatToken.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/pojo/vo/WechatToken.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.pojo.vo;
+package com.storlead.wecom.pojo.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/properties/CorpWeChatConstants.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/properties/CorpWeChatConstants.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.properties;
+package com.storlead.wecom.properties;
 
 import lombok.Getter;
 

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/properties/CorpWeChatProperties.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/properties/CorpWeChatProperties.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.properties;
+package com.storlead.wecom.properties;
 
 /**
  * 企业微信相关配置

+ 5 - 5
java/storlead-wx/src/main/java/com/storlead/wx/service/CorpWeChatService.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/CorpWeChatService.java

@@ -1,10 +1,10 @@
-package com.storlead.wx.service;
+package com.storlead.wecom.service;
 
 
 import cn.hutool.json.JSONObject;
-import com.storlead.common.vo.UserVo;
-import com.storlead.wx.pojo.vo.WechatAppBO;
-import com.storlead.wx.pojo.vo.WechatToken;
+import com.storlead.framework.common.vo.user.UserVO;
+import com.storlead.wecom.pojo.vo.WechatAppBO;
+import com.storlead.wecom.pojo.vo.WechatToken;
 
 import javax.validation.constraints.NotNull;
 import java.io.UnsupportedEncodingException;
@@ -64,7 +64,7 @@ public interface CorpWeChatService {
      * @author blank
      * @date 2021-3-9 下午 12:57
      */
-    List<UserVo> syncUserOpenIdFormTencent(List<UserVo> userList);
+    List<UserVO> syncUserOpenIdFormTencent(List<UserVO> userList);
 
     /**
      * 向指定用户或部门发送文本信息

+ 2 - 2
java/storlead-wx/src/main/java/com/storlead/wx/service/SystemWechatConfigService.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/SystemWechatConfigService.java

@@ -1,7 +1,7 @@
-package com.storlead.wx.service;
+package com.storlead.wecom.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.storlead.wx.pojo.vo.SystemWechatConfigEntity;
+import com.storlead.wecom.pojo.vo.SystemWechatConfigEntity;
 
 /**
  * <p>

+ 3 - 3
java/storlead-wx/src/main/java/com/storlead/wx/service/WechatOrganizSyncService.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/WechatOrganizSyncService.java

@@ -1,6 +1,6 @@
-package com.storlead.wx.service;
-import com.storlead.wx.pojo.vo.CorpWeChatDeptVO;
-import com.storlead.wx.pojo.vo.CorpWeChatUserVO;
+package com.storlead.wecom.service;
+import com.storlead.wecom.pojo.vo.CorpWeChatDeptVO;
+import com.storlead.wecom.pojo.vo.CorpWeChatUserVO;
 
 import javax.validation.constraints.NotNull;
 import java.util.List;

+ 3 - 3
java/storlead-wx/src/main/java/com/storlead/wx/service/WechatTokenService.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/WechatTokenService.java

@@ -1,8 +1,8 @@
-package com.storlead.wx.service;
+package com.storlead.wecom.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.storlead.wx.pojo.vo.WechatAppBO;
-import com.storlead.wx.pojo.vo.WechatToken;
+import com.storlead.wecom.pojo.vo.WechatAppBO;
+import com.storlead.wecom.pojo.vo.WechatToken;
 
 /**
  * 企业微信token 服务类

+ 7 - 7
java/storlead-wx/src/main/java/com/storlead/wx/service/WxDataSyncService.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/WxDataSyncService.java

@@ -1,12 +1,12 @@
-package com.storlead.wx.service;
+package com.storlead.wecom.service;
 
 import com.alibaba.fastjson.JSON;
-import com.storlead.wx.pojo.vo.CorpWeChatDeptVO;
-import com.storlead.wx.pojo.vo.CorpWeChatUserVO;
-import com.storlead.wx.pojo.vo.WechatToken;
-import com.storlead.wx.properties.CorpWeChatConstants;
-import com.storlead.wx.properties.CorpWeChatProperties;
-import com.storlead.wx.util.CorpWechatUtil;
+import com.storlead.wecom.pojo.vo.CorpWeChatDeptVO;
+import com.storlead.wecom.pojo.vo.CorpWeChatUserVO;
+import com.storlead.wecom.pojo.vo.WechatToken;
+import com.storlead.wecom.properties.CorpWeChatConstants;
+import com.storlead.wecom.properties.CorpWeChatProperties;
+import com.storlead.wecom.util.CorpWechatUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 

+ 12 - 12
java/storlead-wx/src/main/java/com/storlead/wx/service/impl/CorpWeChatServiceImpl.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/CorpWeChatServiceImpl.java

@@ -1,19 +1,19 @@
-package com.storlead.wx.service.impl;
+package com.storlead.wecom.service.impl;
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.google.common.collect.ImmutableMap;
-import com.storlead.common.vo.UserVo;
-import com.storlead.wx.pojo.vo.CorpWeChatUserVO;
-import com.storlead.wx.pojo.vo.WechatAppBO;
-import com.storlead.wx.pojo.vo.WechatToken;
-import com.storlead.wx.properties.CorpWeChatConstants;
-import com.storlead.wx.properties.CorpWeChatProperties;
-import com.storlead.wx.service.CorpWeChatService;
-import com.storlead.wx.service.WechatTokenService;
-import com.storlead.wx.util.CorpWechatUtil;
+import com.storlead.framework.common.vo.user.UserVO;
+import com.storlead.wecom.pojo.vo.CorpWeChatUserVO;
+import com.storlead.wecom.pojo.vo.WechatAppBO;
+import com.storlead.wecom.pojo.vo.WechatToken;
+import com.storlead.wecom.properties.CorpWeChatConstants;
+import com.storlead.wecom.properties.CorpWeChatProperties;
+import com.storlead.wecom.service.CorpWeChatService;
+import com.storlead.wecom.service.WechatTokenService;
+import com.storlead.wecom.util.CorpWechatUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
@@ -147,13 +147,13 @@ public class CorpWeChatServiceImpl implements CorpWeChatService {
      * @date 2021-3-9 上午 11:58
      */
     @Override
-    public List<UserVo> syncUserOpenIdFormTencent(List<UserVo> userList) {
+    public List<UserVO> syncUserOpenIdFormTencent(List<UserVO> userList) {
         try{
             String token = getAddressAccessTokenFromTencent().getToken();
             List<CorpWeChatUserVO> userTencentList = CorpWechatUtil.getUserListUnderDeptFormTencent(CorpWeChatConstants.GET_USER_LIST_URL, token, 1L);
             log.error("syncUserOpenIdFormTencent ------------userTencentList - error = ",userTencentList);
             if (userTencentList != null) {
-                for (UserVo user : userList) {
+                for (UserVO user : userList) {
                     for (CorpWeChatUserVO weChatUserVO : userTencentList) {
                         if (StrUtil.isNotBlank(user.getMobile()) && StrUtil.isNotBlank(weChatUserVO.getMobile())) {
                             if (user.getMobile().trim().equals(weChatUserVO.getMobile().trim())) {

+ 4 - 4
java/storlead-wx/src/main/java/com/storlead/wx/service/impl/SystemWechatConfigServiceImpl.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/SystemWechatConfigServiceImpl.java

@@ -1,8 +1,8 @@
-package com.storlead.wx.service.impl;
+package com.storlead.wecom.service.impl;
 
-import com.storlead.wx.mapper.SystemWechatConfigMapper;
-import com.storlead.wx.pojo.vo.SystemWechatConfigEntity;
-import com.storlead.wx.service.SystemWechatConfigService;
+import com.storlead.wecom.mapper.SystemWechatConfigMapper;
+import com.storlead.wecom.pojo.vo.SystemWechatConfigEntity;
+import com.storlead.wecom.service.SystemWechatConfigService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 

+ 5 - 5
java/storlead-wx/src/main/java/com/storlead/wx/service/impl/WechatOrganizSyncServiceImpl.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/WechatOrganizSyncServiceImpl.java

@@ -1,12 +1,12 @@
-package com.storlead.wx.service.impl;
+package com.storlead.wecom.service.impl;
 
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
-import com.storlead.wx.pojo.vo.CorpWeChatDeptVO;
-import com.storlead.wx.pojo.vo.CorpWeChatUserVO;
-import com.storlead.wx.properties.CorpWeChatConstants;
-import com.storlead.wx.service.WechatOrganizSyncService;
+import com.storlead.wecom.pojo.vo.CorpWeChatDeptVO;
+import com.storlead.wecom.pojo.vo.CorpWeChatUserVO;
+import com.storlead.wecom.properties.CorpWeChatConstants;
+import com.storlead.wecom.service.WechatOrganizSyncService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.http.client.methods.CloseableHttpResponse;

+ 5 - 5
java/storlead-wx/src/main/java/com/storlead/wx/service/impl/WechatTokenServiceImpl.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/service/impl/WechatTokenServiceImpl.java

@@ -1,10 +1,10 @@
-package com.storlead.wx.service.impl;
+package com.storlead.wecom.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.storlead.wx.mapper.WechatTokenMapper;
-import com.storlead.wx.pojo.vo.WechatAppBO;
-import com.storlead.wx.pojo.vo.WechatToken;
-import com.storlead.wx.service.WechatTokenService;
+import com.storlead.wecom.mapper.WechatTokenMapper;
+import com.storlead.wecom.pojo.vo.WechatAppBO;
+import com.storlead.wecom.pojo.vo.WechatToken;
+import com.storlead.wecom.service.WechatTokenService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 

+ 5 - 5
java/storlead-wx/src/main/java/com/storlead/wx/util/CorpWechatUtil.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/util/CorpWechatUtil.java

@@ -1,13 +1,13 @@
-package com.storlead.wx.util;
+package com.storlead.wecom.util;
 
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.exceptions.ApiException;
-import com.storlead.wx.pojo.vo.WechatToken;
-import com.storlead.wx.pojo.vo.CorpWeChatDeptVO;
-import com.storlead.wx.pojo.vo.CorpWeChatUserVO;
-import com.storlead.wx.properties.CorpWeChatConstants;
+import com.storlead.wecom.pojo.vo.WechatToken;
+import com.storlead.wecom.pojo.vo.CorpWeChatDeptVO;
+import com.storlead.wecom.pojo.vo.CorpWeChatUserVO;
+import com.storlead.wecom.properties.CorpWeChatConstants;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;

+ 1 - 1
java/storlead-wx/src/main/java/com/storlead/wx/util/WechatPhoneUtil.java → java/storlead-thirdparty/storlead-thirdparty-wecom/src/main/java/com/storlead/wecom/util/WechatPhoneUtil.java

@@ -1,4 +1,4 @@
-package com.storlead.wx.util;
+package com.storlead.wecom.util;
 
 import cn.hutool.http.*;
 import cn.hutool.json.JSONObject;

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác