Browse Source

mjava 版本管理

pruple_boy 2 years ago
parent
commit
fd2a04eddf
52 changed files with 17864 additions and 0 deletions
  1. 62 0
      mjava-cloudpure/target/classes/application-dev.yml
  2. 36 0
      mjava-cloudpure/target/classes/application-prod.yml
  3. 5 0
      mjava-cloudpure/target/maven-archiver/pom.properties
  4. 0 0
      mjava-cloudpure/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  5. 2 0
      mjava-cloudpure/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  6. BIN
      mjava-cloudpure/target/mjava-cloudpure.jar.original
  7. 35 0
      mjava-cloudpure/target/test-classes/server.sh
  8. 38 0
      mjava-guyuan/target/classes/META-INF/spring-configuration-metadata.json
  9. 66 0
      mjava-guyuan/target/classes/application-dev.yml
  10. 47 0
      mjava-guyuan/target/classes/application-prod.yml
  11. 8921 0
      mjava-guyuan/target/classes/static/mjs/mjs.js
  12. 1 0
      mjava-guyuan/target/classes/static/mjs/mjs.min.js
  13. 55 0
      mjava-hangshi/target/classes/application-dev.yml
  14. 41 0
      mjava-hangshi/target/classes/application-prod.yml
  15. 35 0
      mjava-hangshi/target/test-classes/server.sh
  16. 57 0
      mjava-mcli/target/classes/application-dev.yml
  17. 41 0
      mjava-mcli/target/classes/application-prod.yml
  18. 35 0
      mjava-mcli/target/test-classes/server.sh
  19. 56 0
      mjava-mcli/target/test-classes/winsw.xml
  20. 55 0
      mjava-suodisi/target/classes/application-dev.yml
  21. 38 0
      mjava-suodisi/target/classes/application-prod.yml
  22. 35 0
      mjava-suodisi/target/test-classes/server.sh
  23. 263 0
      mjava/target/classes/META-INF/spring-configuration-metadata.json
  24. 111 0
      mjava/target/classes/application-dev.yml
  25. 82 0
      mjava/target/classes/application-prod.yml
  26. 88 0
      mjava/target/classes/application-test.yml
  27. 94 0
      mjava/target/classes/application.yml
  28. BIN
      mjava/target/classes/assets/logo/logo-text.png
  29. 7 0
      mjava/target/classes/banner.txt
  30. 170 0
      mjava/target/classes/logback-spring.xml
  31. 6026 0
      mjava/target/classes/static/mjs/mjs.js
  32. 1 0
      mjava/target/classes/static/mjs/mjs.min.js
  33. 5 0
      mjava/target/maven-archiver/pom.properties
  34. 5 0
      mjava/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  35. 104 0
      mjava/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
  36. 70 0
      mjava/target/test-classes/driver.yml
  37. 4 0
      mjava/target/test-classes/frp/frpc.sh
  38. 19 0
      mjava/target/test-classes/frp/hpe/frpc.ini
  39. 34 0
      mjava/target/test-classes/frp/macos/frpc.ini
  40. 63 0
      mjava/target/test-classes/frp/remark.md
  41. 30 0
      mjava/target/test-classes/frp/server/frps.ini
  42. 27 0
      mjava/target/test-classes/nginx/certs/mc.100ali.com.key
  43. 61 0
      mjava/target/test-classes/nginx/certs/mc.100ali.com.pem
  44. 529 0
      mjava/target/test-classes/nginx/index.html
  45. 80 0
      mjava/target/test-classes/nginx/location
  46. 63 0
      mjava/target/test-classes/nginx/nginx.conf
  47. 37 0
      mjava/target/test-classes/nginx/proxy.conf
  48. 37 0
      mjava/target/test-classes/nginx/remak.md
  49. 94 0
      mjava/target/test-classes/readme.md
  50. 6 0
      mjava/target/test-classes/search.sh
  51. 37 0
      mjava/target/test-classes/server.sh
  52. 56 0
      mjava/target/test-classes/winsw.xml

+ 62 - 0
mjava-cloudpure/target/classes/application-dev.yml

@@ -0,0 +1,62 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /api/suodisi
+
+# condition
+spel:
+  scheduling: false        # 定时任务是否执行
+  multiSource: false       # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: mu123
+    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    hibernate:
+      ddl-auto: none      # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# filepath
+file:
+  path:
+    file: /Users/malk/server/_Tool/var/mjava/tmp/file/
+    image: /Users/malk/server/_Tool/var/mjava/tmp/image/
+    tmp: /Users/malk/server/_Tool/var/mjava/tmp/
+  source:
+    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
+logging:
+  file:
+    path: /Users/malk/server/_Tool/var/mjava/log
+
+# dingtalk
+dingtalk:
+  agentId: 1963716187
+  appKey: ding8qyulwwmad6j7k6c
+  appSecret: e_hRHuubw-Xi0OuPJOYdXSElVzOC0IPgMrHQTBuAM9BqW-DFnrcsSyBHi7Me3xSv
+  corpId: ding321c72787fffc78b35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "095358016629044412"   # 牧语[开头需要转一下字符串], OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_YH7W0E5637YUBU5UJ837
+  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9
+
+# xbongbong
+xbongbong:
+  corpid: dingcc1b1ffad0d5ca1d
+  token: f760ea3d154e45c839b2169f09b76f23
+  userId: 102314374732747224
+  callbackToken:
+
+

+ 36 - 0
mjava-cloudpure/target/classes/application-prod.yml

@@ -0,0 +1,36 @@
+# 环境配置
+server:
+  port: 9011
+
+# condition
+spel:
+  scheduling: true        # 定时任务是否执行
+  multiSource: false      # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: cp-root@2022++
+    url: jdbc:mysql://47.97.181.40:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# dingtalk
+dingtalk:
+  agentId: 1963716187
+  appKey: ding8qyulwwmad6j7k6c
+  appSecret: e_hRHuubw-Xi0OuPJOYdXSElVzOC0IPgMrHQTBuAM9BqW-DFnrcsSyBHi7Me3xSv
+  corpId: ding321c72787fffc78b35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "095358016629044412"   # 牧语[开头需要转一下字符串], OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_YH7W0E5637YUBU5UJ837
+  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9

+ 5 - 0
mjava-cloudpure/target/maven-archiver/pom.properties

@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Jun 23 15:57:38 CST 2023
+version=1.0-SNAPSHOT
+groupId=com.malk
+artifactId=mjava-cloudpure

+ 0 - 0
mjava-cloudpure/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst


+ 2 - 0
mjava-cloudpure/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -0,0 +1,2 @@
+/Users/malk/server/java-mcli-3/mjava-cloudpure/src/main/java/com.malk.cloudpure/Boot.java
+/Users/malk/server/java-mcli-3/mjava-cloudpure/src/main/java/com.malk.cloudpure/controller/XBBController.java

BIN
mjava-cloudpure/target/mjava-cloudpure.jar.original


+ 35 - 0
mjava-cloudpure/target/test-classes/server.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+appname='mjava-cloudpure'
+if [ "$1" == "dev" ]; then
+  java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=dev
+else
+  if [ "$1" == "start" ]; then
+    nohup java -Xms256m -Xmx256m -jar $appname.jar &
+    echo "server prod is starting"
+  else
+    if [ "$1" == "test" ]; then
+      nohup java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=test &
+      echo "server test is starting"
+    else
+      if [ "$1" == "stop" ]; then
+        PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+        if [ -z "$PID" ]; then
+          echo "server is already stopped"
+        else
+          echo kill $PID
+          kill $PID
+        fi
+      else
+        if [ "$1" == "status" ]; then
+          PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+          if [ -z "$PID" ]; then
+            echo "server is stopped"
+          else
+            echo "server is running"
+            echo $PID
+          fi
+        fi
+      fi
+    fi
+  fi
+fi

+ 38 - 0
mjava-guyuan/target/classes/META-INF/spring-configuration-metadata.json

@@ -0,0 +1,38 @@
+{
+  "groups": [
+    {
+      "name": "tencent",
+      "type": "com.malk.guyuan.server.tencent.TXYConf",
+      "sourceType": "com.malk.guyuan.server.tencent.TXYConf"
+    }
+  ],
+  "properties": [
+    {
+      "name": "tencent.a-p-p-i-d",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.guyuan.server.tencent.TXYConf"
+    },
+    {
+      "name": "tencent.region",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.guyuan.server.tencent.TXYConf"
+    },
+    {
+      "name": "tencent.secret-id",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.guyuan.server.tencent.TXYConf"
+    },
+    {
+      "name": "tencent.secret-key",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.guyuan.server.tencent.TXYConf"
+    },
+    {
+      "name": "tencent.t-y-p-e-i-n-v-o-i-c-e",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "票据类型",
+      "sourceType": "com.malk.guyuan.server.tencent.TXYConf"
+    }
+  ],
+  "hints": []
+}

+ 66 - 0
mjava-guyuan/target/classes/application-dev.yml

@@ -0,0 +1,66 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /api/guyuan
+
+# condition
+spel:
+  scheduling: false        # 定时任务是否执行
+  multiSource: false       # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: mu123
+    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    hibernate:
+      ddl-auto: none      # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+  flyway:
+    enabled: false        #  需要配置 jpa.hibernate.ddl-auto 为 none. 否则 flyway.enabled 配置会无效, 在没有数库连接情况下程序无法启动
+
+# swagger3
+swagger:
+  enable: true
+
+# filepath
+file:
+  path:
+    file: /Users/malk/server/_Tool/var/mjava/tmp/file
+    image: /Users/malk/server/_Tool/var/mjava/tmp/image
+    tmp: /Users/mcli/server/_Tool/var/mjava/tmp
+  source:
+    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
+logging:
+  file:
+    path: /Users/malk/server/_Tool/var/mjava/log
+
+# dingtalk
+dingtalk:
+  agentId: 2356105659
+  appKey: dinghov5fyfjlhzk1ej1
+  appSecret: QR_1_7D0UUYtfdtMlDlmnjNSkvU2Uo3gOyabo2h09rmvj5_x0uk0Lw7N9pCy7sf-
+  corpId: dinge281bf50c488ebfd35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: ""   # OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_FKRK7Y94DPI1S9DV1605
+  systemToken: FN7666A1ZD0STZZ75W4CKD1GD07X3PUW2FBRKT
+
+# tencent [腾讯云]
+tencent:
+  APPID: 1309939821
+  SecretId: AKID2uqoryukbO2XuBThuxzdEpnmnmoocuCH
+  SecretKey: wnmgYHo8wrmjlldKoHnIkDZlqvrVDpOz
+  Region: ap-shanghai

+ 47 - 0
mjava-guyuan/target/classes/application-prod.yml

@@ -0,0 +1,47 @@
+# 环境配置
+server:
+  port: 9004
+  servlet:
+    context-path: /api/guyuan
+
+# condition
+spel:
+  scheduling: true        # 定时任务是否执行
+  multiSource: false      # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: cp-root@2022++
+    url: jdbc:mysql://47.97.181.40:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+  flyway:
+    enabled: false      #  需要配置 jpa.hibernate.ddl-auto 为 none. 否则 flyway.enabled 配置会无效, 在没有数库连接情况下程序无法启动
+
+# dingtalk
+dingtalk:
+  agentId: 2356105659
+  appKey: dinghov5fyfjlhzk1ej1
+  appSecret: QR_1_7D0UUYtfdtMlDlmnjNSkvU2Uo3gOyabo2h09rmvj5_x0uk0Lw7N9pCy7sf-
+  corpId: dinge281bf50c488ebfd35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: ""   # OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_FKRK7Y94DPI1S9DV1605
+  systemToken: FN7666A1ZD0STZZ75W4CKD1GD07X3PUW2FBRKT
+
+# tencent [腾讯云]
+tencent:
+  APPID: 1309939821
+  SecretId: AKID2uqoryukbO2XuBThuxzdEpnmnmoocuCH
+  SecretKey: wnmgYHo8wrmjlldKoHnIkDZlqvrVDpOz
+  Region: ap-shanghai

File diff suppressed because it is too large
+ 8921 - 0
mjava-guyuan/target/classes/static/mjs/mjs.js


File diff suppressed because it is too large
+ 1 - 0
mjava-guyuan/target/classes/static/mjs/mjs.min.js


+ 55 - 0
mjava-hangshi/target/classes/application-dev.yml

@@ -0,0 +1,55 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /api/hangshi
+
+# condition
+spel:
+  scheduling: false        # 定时任务是否执行
+  multiSource: false       # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: mu123
+    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    hibernate:
+      ddl-auto: none      # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# filepath
+file:
+  path:
+    file: /Users/malk/server/_Tool/var/mjava/tmp/file/
+    image: /Users/malk/server/_Tool/var/mjava/tmp/image/
+    tmp: /Users/malk/server/_Tool/var/mjava/tmp/
+  source:
+    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
+logging:
+  file:
+    path: /Users/malk/server/_Tool/var/mjava/log
+
+# dingtalk
+dingtalk:
+  agentId: 2554541552
+  appKey: dingibsmij0bzwbtyfrr
+  appSecret: JEtzUtRjXBN3yiF6v9bw0uF_jWAVmVvIWfoCqIyaRTK-TEWVQLGU-xsYu7Ni_GKB
+  corpId: ding6bd8f2716554297135c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "81007710"   # 孙云嵩 [开头需要转一下字符串], OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_YH7W0E5637YUBU5UJ837
+  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9
+
+

+ 41 - 0
mjava-hangshi/target/classes/application-prod.yml

@@ -0,0 +1,41 @@
+# 环境配置
+server:
+  port: 9009
+
+# condition
+spel:
+  scheduling: true        # 定时任务是否执行
+  multiSource: false      # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: cp-root@2022++
+    url: jdbc:mysql://47.97.181.40:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# ekuaibao
+ekuaibao:
+  corpId: -yQbjbywbc640011                # 易快报的 corpId
+  platformApi: https://app.ekuaibao.com   # 易快报不同平台获取前缀的方式不同
+
+# dingtalk
+dingtalk:
+  agentId: 2554541552
+  appKey: dingibsmij0bzwbtyfrr
+  appSecret: JEtzUtRjXBN3yiF6v9bw0uF_jWAVmVvIWfoCqIyaRTK-TEWVQLGU-xsYu7Ni_GKB
+  corpId: ding6bd8f2716554297135c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "81007710"   # 孙云嵩 [开头需要转一下字符串], OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_YH7W0E5637YUBU5UJ837
+  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9

+ 35 - 0
mjava-hangshi/target/test-classes/server.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+appname='mjava-hangshi'
+if [ "$1" == "dev" ]; then
+  java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=dev
+else
+  if [ "$1" == "start" ]; then
+    nohup java -Xms256m -Xmx256m -jar $appname.jar &
+    echo "server prod is starting"
+  else
+    if [ "$1" == "test" ]; then
+      nohup java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=test &
+      echo "server test is starting"
+    else
+      if [ "$1" == "stop" ]; then
+        PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+        if [ -z "$PID" ]; then
+          echo "server is already stopped"
+        else
+          echo kill $PID
+          kill $PID
+        fi
+      else
+        if [ "$1" == "status" ]; then
+          PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+          if [ -z "$PID" ]; then
+            echo "server is stopped"
+          else
+            echo "server is running"
+            echo $PID
+          fi
+        fi
+      fi
+    fi
+  fi
+fi

+ 57 - 0
mjava-mcli/target/classes/application-dev.yml

@@ -0,0 +1,57 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /api/mcli
+
+# condition
+spel:
+  scheduling: false        # 定时任务是否执行
+  multiSource: false       # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: cp-root@2022++
+    url: jdbc:mysql://47.97.181.40:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  # MongoDB配置
+  data:
+    mongodb:
+      uri: mongodb://tbread:Teambition999@192.168.31.201:27017/teambition   # 固定格式 [连接成功后, 需要为 teambition 库添加 admin 权限才可查询]
+  jpa:
+    hibernate:
+      ddl-auto: none      # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQLDialect
+
+# filepath
+file:
+  path:
+    file: /Users/malk/server/_Tool/var/mjava/tmp/file/
+    image: /Users/malk/server/_Tool/var/mjava/tmp/image/
+    tmp: /Users/malk/server/_Tool/var/mjava/tmp/
+  source:
+    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
+logging:
+  file:
+    path: /Users/malk/server/_Tool/var/mjava/log
+
+# dingtalk
+dingtalk:
+  agentId: 2533464721
+  appKey: dingromjxexd1esgvwwg
+  appSecret: AcStrL5bdw69gqeUfTQiFoBsgqisL2g-egzaKyID9Q7d85f_z9EkuTSS9Vse6zDb
+  corpId: ding5e83ad92d917b47535c2f4657eb6378f
+  aesKey: NgBOhTTp38RmPYs3gz7xBRHGNhwLHAv3tZntZ6He54F
+  token: yLQuiiYIBvrzN3tmOduDn
+
+# aliwork
+aliwork:
+  appType: APP_IW1FN8PPGGYQBWVMXS69
+  systemToken: UT866MB1WGX8VU029U93IA9DIKEG2GE9UU7FLI5
+

+ 41 - 0
mjava-mcli/target/classes/application-prod.yml

@@ -0,0 +1,41 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /proxy/xintianlong
+
+# condition
+spel:
+  scheduling: false       # 定时任务是否执行
+  multiSource: false      # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: cp-root@2022++
+    url: jdbc:mysql://47.97.181.40:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+  # MongoDB配置
+  data:
+    mongodb:
+      uri: mongodb://tbread:Teambition999@192.168.31.201:27017/teambition   # 固定格式 [连接成功后, 需要为 teambition 库添加 admin 权限才可查询]
+
+# dingtalk
+dingtalk:
+  agentId: 2533464721
+  appKey: dingromjxexd1esgvwwg
+  appSecret: AcStrL5bdw69gqeUfTQiFoBsgqisL2g-egzaKyID9Q7d85f_z9EkuTSS9Vse6zDb
+  corpId: ding5e83ad92d917b47535c2f4657eb6378f
+  aesKey: NgBOhTTp38RmPYs3gz7xBRHGNhwLHAv3tZntZ6He54F
+  token: yLQuiiYIBvrzN3tmOduDn
+
+# aliwork
+aliwork:
+  appType: APP_IW1FN8PPGGYQBWVMXS69
+  systemToken: UT866MB1WGX8VU029U93IA9DIKEG2GE9UU7FLI5

+ 35 - 0
mjava-mcli/target/test-classes/server.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+appname='mjava-xintianlong'
+if [ "$1" == "dev" ]; then
+  java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=dev
+else
+  if [ "$1" == "start" ]; then
+    nohup java -Xms256m -Xmx256m -jar $appname.jar &
+    echo "server prod is starting"
+  else
+    if [ "$1" == "test" ]; then
+      nohup java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=test &
+      echo "server test is starting"
+    else
+      if [ "$1" == "stop" ]; then
+        PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+        if [ -z "$PID" ]; then
+          echo "server is already stopped"
+        else
+          echo kill $PID
+          kill $PID
+        fi
+      else
+        if [ "$1" == "status" ]; then
+          PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+          if [ -z "$PID" ]; then
+            echo "server is stopped"
+          else
+            echo "server is running"
+            echo $PID
+          fi
+        fi
+      fi
+    fi
+  fi
+fi

+ 56 - 0
mjava-mcli/target/test-classes/winsw.xml

@@ -0,0 +1,56 @@
+<!--
+  MIT License
+
+  Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees,
+  Inc., Oleg Nenashev and other contributors
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all
+  copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+  SOFTWARE.
+-->
+
+<!--
+ This is an example of a minimal Windows Service Wrapper configuration, which includes only mandatory options.
+ 
+ This configuration file should be placed near the WinSW executable, the name should be the same.
+ E.g. for myapp.exe the configuration file name should be myapp.xml
+ 
+ You can find more information about the configuration options here: https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md
+ Full example: https://github.com/kohsuke/winsw/blob/master/examples/sample-allOptions.xml
+-->
+
+<service>
+    <!-- 注册服务ID -->
+    <id>mjava</id>
+    <!-- 启动服务名称 -->
+    <name>mjava</name>
+    <!-- 对服务的描述 -->
+    <description>标准化后端接口, 自用脚手架封装</description>
+    <!-- 「jdk需要安装」启动的可执行文件:若未配置环境变量executable需要执行绝对路径 -->
+    <!-- <executable>java</executable> -->
+    <executable>C:\Program Files\DingTalkServer\jdk1.8.0_221\bin\java</executable>
+    <!-- Xmx256m 代表堆内存最大值为256MB -jar后面的是项目名 [-Dfile.encoding=UTF-8 Windows会乱码, 但Mac上VSCode正常] -->
+    <!-- <arguments>-Xms256m -Xmx256m -Dfile.encoding=UTF-8 -jar mjava-mcli.jar</arguments> -->
+    <arguments>-Xms256m -Xmx256m -jar mjava-mcli.jar</arguments>
+    <!-- 服务的启动模式:默认Automatic -->
+    <startmode>Automatic</startmode>
+    <!-- 日志地址 -->
+    <logpath>%BASE%\ws</logpath>
+    <!-- 日志模式 -->
+    <logmode>rotate</logmode>
+</service>
+

+ 55 - 0
mjava-suodisi/target/classes/application-dev.yml

@@ -0,0 +1,55 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /api/suodisi
+
+# condition
+spel:
+  scheduling: false        # 定时任务是否执行
+  multiSource: false       # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: mu123
+    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    hibernate:
+      ddl-auto: none      # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# filepath
+file:
+  path:
+    file: /Users/malk/server/_Tool/var/mjava/tmp/file/
+    image: /Users/malk/server/_Tool/var/mjava/tmp/image/
+    tmp: /Users/malk/server/_Tool/var/mjava/tmp/
+  source:
+    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
+logging:
+  file:
+    path: /Users/malk/server/_Tool/var/mjava/log
+
+# dingtalk
+dingtalk:
+  agentId: 1963716187
+  appKey: ding8qyulwwmad6j7k6c
+  appSecret: e_hRHuubw-Xi0OuPJOYdXSElVzOC0IPgMrHQTBuAM9BqW-DFnrcsSyBHi7Me3xSv
+  corpId: ding321c72787fffc78b35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "095358016629044412"   # 牧语[开头需要转一下字符串], OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_YH7W0E5637YUBU5UJ837
+  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9
+
+

+ 38 - 0
mjava-suodisi/target/classes/application-prod.yml

@@ -0,0 +1,38 @@
+# 环境配置
+server:
+  port: 9010
+  servlet:
+    context-path: /api/suodisi
+
+# condition
+spel:
+  scheduling: true        # 定时任务是否执行
+  multiSource: false      # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: cp-root@2022++
+    url: jdbc:mysql://47.97.181.40:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# dingtalk
+dingtalk:
+  agentId: 1963716187
+  appKey: ding8qyulwwmad6j7k6c
+  appSecret: e_hRHuubw-Xi0OuPJOYdXSElVzOC0IPgMrHQTBuAM9BqW-DFnrcsSyBHi7Me3xSv
+  corpId: ding321c72787fffc78b35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "095358016629044412"   # 牧语[开头需要转一下字符串], OA管理员账号
+
+# aliwork
+aliwork:
+  appType: APP_YH7W0E5637YUBU5UJ837
+  systemToken: IC766WA11EW8BMOPBEZZMBA4MPUQ214JDL7FLC9

+ 35 - 0
mjava-suodisi/target/test-classes/server.sh

@@ -0,0 +1,35 @@
+#!/bin/bash
+appname='mjava-suodisi'
+if [ "$1" == "dev" ]; then
+  java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=dev
+else
+  if [ "$1" == "start" ]; then
+    nohup java -Xms256m -Xmx256m -jar $appname.jar &
+    echo "server prod is starting"
+  else
+    if [ "$1" == "test" ]; then
+      nohup java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=test &
+      echo "server test is starting"
+    else
+      if [ "$1" == "stop" ]; then
+        PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+        if [ -z "$PID" ]; then
+          echo "server is already stopped"
+        else
+          echo kill $PID
+          kill $PID
+        fi
+      else
+        if [ "$1" == "status" ]; then
+          PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+          if [ -z "$PID" ]; then
+            echo "server is stopped"
+          else
+            echo "server is running"
+            echo $PID
+          fi
+        fi
+      fi
+    fi
+  fi
+fi

+ 263 - 0
mjava/target/classes/META-INF/spring-configuration-metadata.json

@@ -0,0 +1,263 @@
+{
+  "groups": [
+    {
+      "name": "aliwork",
+      "type": "com.malk.server.aliwork.YDConf",
+      "sourceType": "com.malk.server.aliwork.YDConf"
+    },
+    {
+      "name": "corp",
+      "type": "com.malk.server.common.McConf",
+      "sourceType": "com.malk.server.common.McConf"
+    },
+    {
+      "name": "dingtalk",
+      "type": "com.malk.server.dingtalk.DDConf",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "ekuaibao",
+      "type": "com.malk.server.ekuaibao.EKBConf",
+      "sourceType": "com.malk.server.ekuaibao.EKBConf"
+    },
+    {
+      "name": "file",
+      "type": "com.malk.server.common.FilePath",
+      "sourceType": "com.malk.server.common.FilePath"
+    },
+    {
+      "name": "file.path",
+      "type": "com.malk.server.common.FilePath$Path",
+      "sourceType": "com.malk.server.common.FilePath"
+    },
+    {
+      "name": "file.path",
+      "type": "com.malk.server.common.FilePath$Path",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.path",
+      "type": "com.malk.server.common.FilePath$Path",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.source",
+      "type": "com.malk.server.common.FilePath$Source",
+      "sourceType": "com.malk.server.common.FilePath"
+    },
+    {
+      "name": "file.source",
+      "type": "com.malk.server.common.FilePath$Source",
+      "sourceType": "com.malk.server.common.FilePath$Source"
+    },
+    {
+      "name": "file.source",
+      "type": "com.malk.server.common.FilePath$Source",
+      "sourceType": "com.malk.server.common.FilePath$Source"
+    },
+    {
+      "name": "fxiaoke",
+      "type": "com.malk.server.fxiaoke.FXKConf",
+      "sourceType": "com.malk.server.fxiaoke.FXKConf"
+    },
+    {
+      "name": "spring.datasource.primary",
+      "type": "javax.sql.DataSource",
+      "sourceType": "com.malk.config.mutilSource.DataSourceConfig",
+      "sourceMethod": "primaryDataSource()"
+    },
+    {
+      "name": "spring.datasource.slave",
+      "type": "javax.sql.DataSource",
+      "sourceType": "com.malk.config.mutilSource.DataSourceConfig",
+      "sourceMethod": "slaveDataSource()"
+    },
+    {
+      "name": "xbongbong",
+      "type": "com.malk.server.xbongbong.XBBConf",
+      "sourceType": "com.malk.server.xbongbong.XBBConf"
+    }
+  ],
+  "properties": [
+    {
+      "name": "aliwork.app-type",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.aliwork.YDConf"
+    },
+    {
+      "name": "aliwork.system-token",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.aliwork.YDConf"
+    },
+    {
+      "name": "corp.engineers",
+      "type": "java.util.List<java.lang.String>",
+      "sourceType": "com.malk.server.common.McConf"
+    },
+    {
+      "name": "corp.page-size",
+      "type": "java.lang.Integer",
+      "description": "最大分页",
+      "sourceType": "com.malk.server.common.McConf",
+      "defaultValue": 100
+    },
+    {
+      "name": "corp.time-await",
+      "type": "java.lang.Integer",
+      "sourceType": "com.malk.server.common.McConf",
+      "defaultValue": 0
+    },
+    {
+      "name": "corp.time-out",
+      "type": "java.lang.Integer",
+      "sourceType": "com.malk.server.common.McConf",
+      "defaultValue": 0
+    },
+    {
+      "name": "dingtalk.aes-key",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "dingtalk.agent-id",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "dingtalk.app-key",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "dingtalk.app-secret",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "dingtalk.corp-id",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "dingtalk.operator",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "dingtalk.token",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.dingtalk.DDConf"
+    },
+    {
+      "name": "ekuaibao.app-key",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.ekuaibao.EKBConf"
+    },
+    {
+      "name": "ekuaibao.app-security",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.ekuaibao.EKBConf"
+    },
+    {
+      "name": "ekuaibao.corp-id",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.ekuaibao.EKBConf"
+    },
+    {
+      "name": "ekuaibao.platform-api",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.ekuaibao.EKBConf"
+    },
+    {
+      "name": "ekuaibao.platform-url",
+      "type": "java.lang.String",
+      "description": "获取地址前缀",
+      "sourceType": "com.malk.server.ekuaibao.EKBConf"
+    },
+    {
+      "name": "file.path.file",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.path.file",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.path.image",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.path.image",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.path.tmp",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.path.tmp",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Path"
+    },
+    {
+      "name": "file.source.fonts",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Source"
+    },
+    {
+      "name": "file.source.fonts",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.common.FilePath$Source"
+    },
+    {
+      "name": "fxiaoke.app-id",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.fxiaoke.FXKConf"
+    },
+    {
+      "name": "fxiaoke.app-secret",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.fxiaoke.FXKConf"
+    },
+    {
+      "name": "fxiaoke.corp-id",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.fxiaoke.FXKConf"
+    },
+    {
+      "name": "fxiaoke.permanent-code",
+      "type": "java.lang.String",
+      "sourceType": "com.malk.server.fxiaoke.FXKConf"
+    },
+    {
+      "name": "xbongbong.callback-token",
+      "type": "java.lang.String",
+      "description": "回调解析token",
+      "sourceType": "com.malk.server.xbongbong.XBBConf"
+    },
+    {
+      "name": "xbongbong.corpid",
+      "type": "java.lang.String",
+      "description": "公司corpid。接口基础参数,接口请求必传",
+      "sourceType": "com.malk.server.xbongbong.XBBConf"
+    },
+    {
+      "name": "xbongbong.token",
+      "type": "java.lang.String",
+      "description": "访问接口的token,该值相当于密钥 管理员账号登录销帮帮WEB版后台后,访问https:\/\/pfweb.xbongbong.com\/#\/apiToken\/index查看",
+      "sourceType": "com.malk.server.xbongbong.XBBConf"
+    },
+    {
+      "name": "xbongbong.user-id",
+      "type": "java.lang.String",
+      "description": "接口操作人userId,接口基础参数。不传默认取超管角色",
+      "sourceType": "com.malk.server.xbongbong.XBBConf"
+    }
+  ],
+  "hints": []
+}

+ 111 - 0
mjava/target/classes/application-dev.yml

@@ -0,0 +1,111 @@
+# service
+server:
+  port: 9100
+  servlet:
+    context-path: /dev  # 全局接口前缀
+
+# condition
+spel:
+  scheduling: false       # 定时任务是否执行
+  multiSource: true       # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: mu123
+    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    # 主库
+    primary:
+      username: root
+      password: mu123
+      jdbc-url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    # 从库
+    slave:
+      username: root
+      password: mu123
+      jdbc-url: jdbc:mysql://127.0.0.1:3306/mjava_slave?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  # JPA
+  jpa:
+    hibernate:
+      ddl-auto: none    # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# filepath
+file:
+  path:
+    file: /Users/malk/server/_Tool/var/mjava/tmp/file/
+    image: /Users/malk/server/_Tool/var/mjava/tmp/image/
+    tmp: /Users/malk/server/_Tool/var/mjava/tmp/
+  source:
+    fonts: /Users/malk/server/_Tool/fonts/simsun.ttc
+logging:
+  file:
+    path: /Users/malk/server/_Tool/var/mjava/log
+
+# diwork
+diwork:
+  appKey: 09242de7dc2c44c0b2dbca1b389aa566
+  appSecret: cf2b924ccb2b47f39bc9841a39ef4784
+
+# u8open
+u8open:
+  appKey: opa75c6cbdd6375068f
+  appSecret: f2e79a74aa284b5e83be6f1cac84e4b6
+  toAccount: sangnuo8
+  fromAccount: zhixian666
+
+# feishu
+feishu:
+  appKey: cli_a2b72fadcafe100e
+  appSecret: SUy4raAtpO3dgOasOfO43GU6YfaMnQ3Q
+  encryptKey: DVeCYMQgcg5T8BpKnOIUkdsU8Rex1Ndx
+  verToken: agS2kgO39Y59JSQUduNOahd64woiKvxf
+
+# dingtalk
+dingtalk:
+  agentId: 1963716187
+  appKey: dinggv1wq87khdiley47
+  appSecret: LK5j7BXJSf0niT16SM3qUX9x0KrfB37BlE07nWJchM35GnrpFkafi_nCRDAnbjLW
+  corpId: ding321c72787fffc78b35c2f4657eb6378f
+  aesKey:
+  token:
+  operator: "095358016629044412"   # 牧语[开头需要转一下字符串], OA管理员账号
+
+# teambition
+teambition:
+  AppID: 63589b8bb6803e162f9a57d8
+  AppSecret: 5mB3b73OFhSwo38xEVqahCLwQVhG1MW3
+  TenantId: 5ca44db8ca4fd40001b10559
+  OperatorId: 5e698cca21f5ad70dfba7d2b      # 公共账号, 需要有操作权限 [牧语]
+
+# aliwork
+aliwork:
+  appType: APP_GTK6SIE4MNVEEVPJLM7Z
+  systemToken: IA766O61FNR42YWEEEKTB5QAEEP827UYE3M9LK11
+
+# ekuaibao
+ekuaibao:
+  corpId: -yQbjbywbc640011                # 易快报 corpId
+  platformApi: https://app.ekuaibao.com   # 易快报不同平台获取前缀的方式不同
+  appKey:
+  appSecurity:
+
+# fxiaoke
+fxiaoke:
+  appId: FSAID_131becb
+  appSecret: 1f516179d4e84ecba24752b0c4af5d02
+  permanentCode: 317DA531616A1569F906D1F9A1C74D15
+  corpId: FSCID_2DA12EC0A1DC7EF6FD68E5AA33F25D8A  # 纷享销客 corpId
+
+# tencent [腾讯云]
+tencent:
+  APPID: 1309939821
+  SecretId: AKID2uqoryukbO2XuBThuxzdEpnmnmoocuCH
+  SecretKey: wnmgYHo8wrmjlldKoHnIkDZlqvrVDpOz
+  Region: ap-shanghai

+ 82 - 0
mjava/target/classes/application-prod.yml

@@ -0,0 +1,82 @@
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: mjava
+    password: mjava@mc
+    url: jdbc:mysql://47.100.206.177:33306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    # 主库
+    primary:
+      username: mjava
+      password: mjava@mc
+      jdbc-url: jdbc:mysql://47.100.206.177:33306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    # 从库
+    slave:
+      username: mjava
+      password: mjava@mc
+      jdbc-url: jdbc:mysql://47.100.206.177:33306/mjava_slave?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  # JPA
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# diwork
+diwork:
+  appKey: 09242de7dc2c44c0b2dbca1b389aa566
+  appSecret: cf2b924ccb2b47f39bc9841a39ef4784
+
+# u8open
+u8open:
+  appKey: opa75c6cbdd6375068f
+  appSecret: f2e79a74aa284b5e83be6f1cac84e4b6
+  toAccount: sangnuo8
+  fromAccount: zhixian666
+
+# feishu
+feishu:
+  appKey: cli_a2b72fadcafe100e
+  appSecret: SUy4raAtpO3dgOasOfO43GU6YfaMnQ3Q
+  encryptKey: DVeCYMQgcg5T8BpKnOIUkdsU8Rex1Ndx
+  verToken: agS2kgO39Y59JSQUduNOahd64woiKvxf
+
+# dingtalk
+dingtalk:
+  agentId: 1999093926
+  appKey: dingylcuowclmme76je1
+  appSecret: u5_oBF5Kj491u3iefiaTnl8AO9vrSyE84x_jQxjCGyqV9JKnzaYBElkh_cBo177I
+  corpId: dingcc1b1ffad0d5ca1d
+  aesKey:
+  token:
+
+# teambition
+teambition:
+  AppID: 63589b8bb6803e162f9a57d8
+  AppSecret: 5mB3b73OFhSwo38xEVqahCLwQVhG1MW3
+  TenantId: 5ca44db8ca4fd40001b10559
+  OperatorId: 5e698cca21f5ad70dfba7d2b    # 公共账号, 需要有操作权限 [牧语]
+
+# aliwork
+aliwork:
+  appType: APP_GTK6SIE4MNVEEVPJLM7Z
+  systemToken: IA766O61FNR42YWEEEKTB5QAEEP827UYE3M9LK11
+
+# ekuaibao
+ekuaibao:
+  corpId: -yQbjbywbc640011                # 易快报的 corpId
+  platformApi: https://app.ekuaibao.com   # 易快报不同平台获取前缀的方式不同
+
+# fxiaoke
+fxiaoke:
+  appId: FSAID_131becb
+  appSecret: 1f516179d4e84ecba24752b0c4af5d02
+  permanentCode: 317DA531616A1569F906D1F9A1C74D15
+  corpId: FSCID_2DA12EC0A1DC7EF6FD68E5AA33F25D8A  # 纷享销客 corpId
+
+# 企业配置
+corp:
+  # 异常通知 list: [1, 2, 3] or - 1, - 2, - 3
+  engineers:
+    - "09535801661638954621"
+    - "01251957155326205105"

+ 88 - 0
mjava/target/classes/application-test.yml

@@ -0,0 +1,88 @@
+# service
+server:
+  port: 9200
+  servlet:
+    context-path: /test   # 全局接口前缀
+
+# condition
+spel:
+  scheduling: true       # 定时任务是否执行
+  multiSource: true      # 是否多数据源配置
+
+spring:
+  # database
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: mjava
+    password: mjava@mc
+    url: jdbc:mysql://47.100.206.177:33306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    # 主库
+    primary:
+      username: mjava
+      password: mjava@mc
+      jdbc-url: jdbc:mysql://47.100.206.177:33306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+    # 从库
+    slave:
+      username: mjava
+      password: mjava@mc
+      jdbc-url: jdbc:mysql://47.100.206.177:33306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+  # JPA
+  jpa:
+    hibernate:
+      ddl-auto: none    # JPA对表没有任何操作
+    show-sql: true
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# diwork
+diwork:
+  appKey: 09242de7dc2c44c0b2dbca1b389aa566
+  appSecret: cf2b924ccb2b47f39bc9841a39ef4784
+
+# dingtalk
+dingtalk:
+  agentId: 1419545139
+  appKey: dingwzyfafywbucvf7mp
+  appSecret: bpwYH1a0aFL5lPVT6W9wUYuA9jE_EOzM9PdKHe5baIwAcAYwL6HLUy-9Lahd7z-8
+  corpId: ding0ddb25eeef0315d624f2f5cc6abecb85
+  aesKey: JtkDqwLDjiidhtb24U58h2WxJx6EWfSzoPiiXIQxJzJ
+  token: orDlKVufcdbz1sN8H9dFm61zpGFn7XRPishPk2CiZrpyN
+
+# u8open
+u8open:
+  appKey: opa75c6cbdd6375068f
+  appSecret: f2e79a74aa284b5e83be6f1cac84e4b6
+  toAccount: test_zhixian666
+  fromAccount: zhixian666
+
+# feishu
+feishu:
+  appKey: cli_a2b72fadcafe100e
+  appSecret: SUy4raAtpO3dgOasOfO43GU6YfaMnQ3Q
+  encryptKey: DVeCYMQgcg5T8BpKnOIUkdsU8Rex1Ndx
+  verToken: agS2kgO39Y59JSQUduNOahd64woiKvxf
+
+# teambition
+teambition:
+  AppID: 63589b8bb6803e162f9a57d8
+  AppSecret: 5mB3b73OFhSwo38xEVqahCLwQVhG1MW3
+  TenantId: 5ca44db8ca4fd40001b10559
+
+# aliwork
+aliwork:
+  appType: APP_GTK6SIE4MNVEEVPJLM7Z
+  systemToken: IA766O61FNR42YWEEEKTB5QAEEP827UYE3M9LK11
+
+# ekuaibao
+ekuaibao:
+  corpId: -yQbjbywbc640011                # 易快报的 corpId
+  platformApi: https://app.ekuaibao.com   # 易快报不同平台获取前缀的方式不同
+
+# fxiaoke
+fxiaoke:
+  appId: FSAID_131becb
+  appSecret: 1f516179d4e84ecba24752b0c4af5d02
+  permanentCode: 317DA531616A1569F906D1F9A1C74D15
+  corpId: FSCID_2DA12EC0A1DC7EF6FD68E5AA33F25D8A  # 纷享销客 corpId

+ 94 - 0
mjava/target/classes/application.yml

@@ -0,0 +1,94 @@
+# 环境配置
+server:
+  port: 9001
+  servlet:
+    context-path: /api  # 全局接口前缀: 同一个域名提供转发不同路径到不同端口方案
+  tomcat:
+    additional-tld-skip-patterns: osdt_core.jar,osdt_cert.jar   # oracle6 忽略依赖包警告
+    
+# 条件注入
+spel:
+  scheduling: true       # 定时任务是否执行
+  multiSource: true      # 是否多数据源配置
+
+# 资源配置
+spring:
+  profiles:
+    active: prod
+  # 热部署
+  devtools:
+    restart:
+      enabled: false
+      additional-paths: src/main/java   # 设置重启的目录
+      exclude: WEB-INF/**               # classpath目录下的WEB-INF文件夹内容修改不重启
+  # 文件上传
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 20MB
+  # 数据库
+  datasource:
+    type: com.zaxxer.hikari.HikariDataSource
+    hikari:
+      pool-name: DateHikariCP
+      minimum-idle: 0
+      maximum-pool-size: 10
+      idle-timeout: 30000
+      max-lifetime: 120000          # 小于数据库超时大于业务执行返回时间[hikari默认30m, mysql默认10m]
+      connection-timeout: 30000     # 数据库连接超时时间,默认30秒,即30000
+  # JPA
+  jpa:
+    hibernate:
+      ddl-auto: none                # 对表没有任何操作. 若不设置为 non, flyway.enabled 配置会无效, 在没有数据库连接情况下程序无法启动
+    show-sql: false
+    open-in-view: false             # 开启可用于多对一懒加载, 但可能存在并发缓存问题
+    properties:
+      hibernate:
+        format_sql: true
+        generate_statistics: false  # 生产环境有效
+        jdbc:
+          batch_size: 500            # 开启批量更新与删除
+          batch_versioned_data: true
+        order_inserts: true
+        order_updates: true
+        query:
+          plan_cache_max_size: 64    # hibernate会缓存sql语句以减少重复编译
+          plan_parameter_metadata_max_size: 32
+          plan_cache_max_soft_references: 1024
+          plan_cache_max_strong_references: 64
+  # jsp
+  mvc:
+    view:
+      prefix: /WEB-INF/jsp/
+      suffix: .jsp
+
+# 日志配置
+logging:
+  level:
+    com.malk: debug
+    org.springframework: warn
+  file:
+    path: ./log
+
+# 路径配置
+file:
+  path:
+    file: ./tmp/file/
+    image: ./tmp/image/
+    tmp: ./tmp/
+  source:
+    fonts: ./sys/fonts/simsun.ttc.ttc
+
+# 企业配置
+corp:
+  # 公共服务
+  servlet:
+    aliwork: false
+    dingtalk: false
+    diwork: true
+    feishu: true
+    teambition: true
+  # 通用设置
+  timeOut: 300
+  timeAwait: 600
+

BIN
mjava/target/classes/assets/logo/logo-text.png


+ 7 - 0
mjava/target/classes/banner.txt

@@ -0,0 +1,7 @@
+
+               ,
+---_--_------------__---------__-
+  / /  )     /   /   ) | /  /   )
+_/_/__/_____/___(___(__|/__(___(_
+           /                     
+       (_ /

+ 170 - 0
mjava/target/classes/logback-spring.xml

@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <!-- 日志存放路径 -->
+    <springProperty scope="context" name="log.path" source="logging.file.path"/>
+    <!-- 日志输出格式 -->
+    <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level - [%method,%line] - %msg%n"/>
+
+    <!-- 控制台输出 -->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+    </appender>
+
+    <!-- 错误日志输出 -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/error.log</file>
+        <!-- 循环政策:基于时间创建日志文件 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志文件名格式 -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%i.log.gz</fileNamePattern>
+            <!--日志文件最大的大小 -->
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>20MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!-- 日志最大的历史 60天 -->
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <!-- 过滤的级别: 如果定义了日志级别为warn ,却没有指定 warn的日志处理方式: warn日志信息就不会有 -->
+            <level>ERROR</level>
+            <!-- 匹配时的操作:接收(记录) -->
+            <onMatch>ACCEPT</onMatch>
+            <!-- 不匹配时的操作:拒绝(不记录) -->
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 警告日志输出 -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/warn.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%i.log.gz</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>20MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 记录日志输出 -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/info.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%i.log.gz</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>20MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 调试日志输出 -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/debug.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%i.log.gz</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>20MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>30</maxHistory>
+        </rollingPolicy>
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+        </encoder>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 指定日志输出 -->
+    <appender name="POINT_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}/point.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/point-%i.log.gz</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>20MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <maxHistory>60</maxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
+            <layout class="ch.qos.logback.classic.PatternLayout">
+                <pattern>${log.pattern}</pattern>
+            </layout>
+        </encoder>
+    </appender>
+
+    <!-- Spring日志级别控制  -->
+    <logger name="org.springframework" level="warn"/>
+
+    <!-- hikari 日志级别 -->
+    <Logger name="com.zaxxer.hikari" level="info"></Logger>
+
+    <!-- Hibernate 日志级别 -->
+    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="DEBUG"/>
+    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG"/>
+    <logger name="org.hibernate.SQL" level="DEBUG"/>
+    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>
+    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>
+
+    <!-- 配置文件默认名字:logback-spring.xml,也可以用logback.xml -->
+
+    <!-- 1. 多环境配置,通过springProfile设置环境,root内容会自动追加到logger -->
+    <!-- 2. 过滤的级别: 如果定义了日志级别为warn ,却没有指定 warn的日志处理方式: warn日志信息就不会有 -->
+    <!-- 3. 指定类输出日志到指定文件夹: private static final Logger logger = LoggerFactory.getLogger("point"); -->
+    <!-- # 日志配置 logging.level.com.mcli=debug logging.level.org.springframework: warn -->
+
+    <logger name="point" level="DEBUG">
+        <appender-ref ref="POINT_FILE"/>
+    </logger>
+
+    <!-- 开发环境: 打印控制台 -->
+    <springProfile name="dev">
+        <root level="warn">
+            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="INFO_FILE"/>
+        </root>
+    </springProfile>
+
+    <!-- 测试环境:输出文件 -->
+    <springProfile name="test">
+        <root level="info">
+            <appender-ref ref="DEBUG_FILE"/>
+            <appender-ref ref="INFO_FILE"/>
+            <appender-ref ref="WARN_FILE"/>
+            <appender-ref ref="ERROR_FILE"/>
+        </root>
+    </springProfile>
+
+    <!-- 生产环境: 输出文件 -->
+    <springProfile name="prod">
+        <root level="info">
+            <appender-ref ref="DEBUG_FILE"/>
+            <appender-ref ref="INFO_FILE"/>
+            <appender-ref ref="WARN_FILE"/>
+            <appender-ref ref="ERROR_FILE"/>
+        </root>
+    </springProfile>
+</configuration>

File diff suppressed because it is too large
+ 6026 - 0
mjava/target/classes/static/mjs/mjs.js


File diff suppressed because it is too large
+ 1 - 0
mjava/target/classes/static/mjs/mjs.min.js


+ 5 - 0
mjava/target/maven-archiver/pom.properties

@@ -0,0 +1,5 @@
+#Generated by Maven
+#Fri Jun 23 16:15:54 CST 2023
+version=0.0.3
+groupId=com.malk
+artifactId=mjava

+ 5 - 0
mjava/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -0,0 +1,5 @@
+com/malk/base/QBasePo.class
+com/malk/repository/entity/primary/QMcTablePo.class
+com/malk/repository/entity/primary/QMcAuthorizationPo.class
+com/malk/base/QJpaMap.class
+com/malk/repository/entity/slave/QMcTablePo.class

+ 104 - 0
mjava/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst

@@ -0,0 +1,104 @@
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplService.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/repository/dao/slave/McTableDao.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/xbongbong/XBBConf.java
+/Users/malk/server/java-mcli-3/mjava/target/generated-sources/java/com/malk/base/QJpaMap.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/repository/entity/primary/McAuthorizationPo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/aliwork/YDParam.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/fxiaoke/FXXR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/Filter/ExceptionNotice.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/dingtalk/DDConf.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/McR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDClient_Workflow.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilMath.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/test/dto/User.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/xbongbong/XBBR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/FilePath.java
+/Users/malk/server/java-mcli-3/mjava/target/generated-sources/java/com/malk/repository/entity/slave/QMcTablePo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/dingtalk/crypto/DingCallbackCrypto.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/ekuaibao/EKBR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilMap.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/McREnum.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/ekuaibao/impl/EKBClientImpl.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/aliyun/ALYR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilEnv.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient_Contacts.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/h3yun/CYConf.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/config/JpaConfiguration.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilFile.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/config/mutilSource/PrimaryConfig.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilNumber.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilToken.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/base/BasePo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/repository/dao/primary/McTableDao.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilList.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilMc.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/repository/entity/primary/McTablePo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/aliwork/impl/YDClientImpl.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/fxiaoke/FXKConf.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/Filter/RequestInterceptor.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDClient_Attendance.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/base/BaseDao.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient_Workflow.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilHttp.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilConvert.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/repository/entity/slave/McTablePo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/base/BaseDto.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/fxiaoke/impl/FXKImplClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/test/dto/Async2Sync.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/aliwork/YDClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/xbongbong/impl/XBBImplClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient_Storage.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/base/BaseRepository.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDClient_Contacts.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilString.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/McException.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient_Attendance.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/Boot.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/h3yun/CYR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/aliwork/YDR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/McConf.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/fxiaoke/FXKClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/config/mutilSource/DataSourceConfig.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/ekuaibao/EKBClient.java
+/Users/malk/server/java-mcli-3/mjava/target/generated-sources/java/com/malk/repository/entity/primary/QMcAuthorizationPo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/VenR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilExcel.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/config/mutilSource/SlaveConfig.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/delegate/impl/DDImplEvent_Delegate.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/config/WebConfiguration.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/ekuaibao/EKBConf.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/repository/dao/primary/McAuthorizationDao.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/aliwork/YDConf.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/h3yun/impl/CYImplClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/controller/DDCallbackController.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/aliyun/impl/ALYInvoiceImpl.java
+/Users/malk/server/java-mcli-3/mjava/target/generated-sources/java/com/malk/repository/entity/primary/QMcTablePo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/Filter/RequestFilter.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/xbongbong/DigestUtil.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/Filter/CatchException.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/common/McPage.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/base/JpaMap.java
+/Users/malk/server/java-mcli-3/mjava/target/generated-sources/java/com/malk/base/QBasePo.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDService.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/test/McTestController.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilDateTime.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/schedule/McScheduleTask.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/aliwork/YDService.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDClient_Event.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/aliyun/ALYInvoice.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/test/DSTestController.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/core/AsyncConfig.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/aliwork/impl/YDServiceImpl.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/dingtalk/DDR_New.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/test/RESTFulTestController.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/xbongbong/XBBClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/DDClient_Storage.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/delegate/DDEvent_Delegate.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/dingtalk/DDFormComponentDto.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/server/dingtalk/DDR.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilServlet.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/h3yun/CYClient.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/utils/UtilImport.java
+/Users/malk/server/java-mcli-3/mjava/src/main/java/com/malk/service/dingtalk/impl/DDImplClient_Event.java

+ 70 - 0
mjava/target/test-classes/driver.yml

@@ -0,0 +1,70 @@
+# 配置主键
+
+# 1. 设置 strategy 为 GenerationType.AUTO,  让jpa 选择合适方式匹配
+# 2. 在数据库内设置对应主键, 以及主键自增的规则
+# 3. 驱动依赖主项目添加版本, 未直接引用, 需在子项目内添加
+
+# 各数据库
+
+# database
+spring:
+  datasource:
+    hikari:
+      connection-init-sql: SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci           # SqlServer, Oracle 无需设置类型
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    username: root
+    password: mu123
+    url: jdbc:mysql://127.0.0.1:3306/mjava?serverTimezone=Asia/Shanghai&useUnicode=yes&characterEncoding=UTF-8&useSSL=true
+
+  # JPA
+  jpa:
+    database: MYSQL
+    database-platform: org.hibernate.dialect.MySQL57Dialect
+
+# database
+spring-2:
+  # sql_server
+  datasource:
+    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    url: jdbc:sqlserver://127.0.0.1:1433;SelectMethod=cursor;DatabaseName=DingTalkApprove
+    username: sa
+    password: Sa123456
+  # JPA
+  jpa:
+    database: sql_server
+    properties:
+      hibernate:
+        default_schema: dbo
+
+# database
+spring-3:
+  # Oracle
+  datasource:
+    driver-class-name: oracle.jdbc.OracleDriver
+    username: front_jszyxx_2023
+    password: FrontU#JSZYxx#2023
+    url: jdbc:oracle:thin:@10.107.58.35:1521:jszyfzda
+  jpa:
+    hibernate:
+      ddl-auto: none      # JPA对表没有任何操作
+    show-sql: true
+    database: oracle
+server:
+  tomcat:
+    additional-tld-skip-patterns: osdt_core.jar,osdt_cert.jar   # oracle6 忽略依赖包警告
+
+# database
+spring-4:
+  # MongoDB配置
+  data:
+    mongodb:
+      uri: mongodb://tbread:Teambition999@192.168.31.201:27017/teambition   # 固定格式 [连接成功后, 需要为 teambition 库添加 admin 权限才可查询]
+
+# 其他配置
+spring-0:
+  jpa:
+    hibernate:
+      # 取消小驼峰到下划线映射
+      naming:
+        implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
+        sphysical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

+ 4 - 0
mjava/target/test-classes/frp/frpc.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+cd /Users/malk/server/_Tool/proxy/frp
+./frpc -c ./frpc.ini

+ 19 - 0
mjava/target/test-classes/frp/hpe/frpc.ini

@@ -0,0 +1,19 @@
+# frpc.ini
+[common]
+server_addr = 47.97.181.40
+server_port = 1001
+token = NHDDSAISHDHDSDSIODHDASHDJASK=
+
+[ssh]
+# ssh连接
+type = tcp
+local_ip = 127.0.0.1
+local_port = 22
+remote_port = 2222
+
+[web]
+# 网页代理
+type = tcp
+local_ip = 127.0.0.1
+local_port = 80
+remote_port = 2001

+ 34 - 0
mjava/target/test-classes/frp/macos/frpc.ini

@@ -0,0 +1,34 @@
+# frpc.ini
+[common]
+server_addr = 47.97.181.40
+server_port = 1001
+token = NHDDSAISHDHDSDSIODHDASHDJASK=
+
+#[ssh]
+## ssh连接
+#type = tcp
+#local_ip = 127.0.0.1
+#local_port = 22
+#remote_port = 2222
+
+#[secret_ssh_visitor]
+#type = stcp
+## stcp 的访问者
+role = visitor
+# 要访问的 stcp 代理的名字
+#server_name = secret_ssh
+#sk = zxcvbnm
+## 绑定本地端口用于访问 ssh 服务
+#bind_addr = 127.0.0.1
+#bind_port = 2222
+
+#[web]
+#type = http
+#local_port = 80
+#custom_domains = www.yourdomain.com
+
+[rdp]
+type = tcp
+local_ip = 127.0.0.1
+local_port = 9001
+remote_port: 1003

+ 63 - 0
mjava/target/test-classes/frp/remark.md

@@ -0,0 +1,63 @@
+### frp
+
+1. `uname -a`    查看服务器版本,下载对应的 [客户端](https://github.com/fatedier/frp/releases)
+
+2. 开放服务器3个端口:1001 绑定映射关系,1002 作为 dashboard 访问看板, 1003 作为ip入口
+
+3. 1003:更建议配置nginx转发, 无需开端口,且方便实现https访问;**将原服务 `api` 改为 `frp`,即可实现转发**
+
+   ```
+   # proxy
+   location ~ ^/frp/ {
+       rewrite  ^/frp/(.*)$  /api/$1  break;
+       proxy_pass http://127.0.0.1:1003;
+       proxy_set_header Host $host:$server_port;
+       proxy_set_header X-Real-IP $remote_addr;
+       proxy_set_header Remote_Addr $remote_addr;
+       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+       proxy_set_header X-Forwarded-Proto $scheme;
+       proxy_set_header Referer $http_referer;
+       client_max_body_size 100m;
+       client_body_buffer_size 20480k;
+       proxy_send_timeout 300s;
+       proxy_read_timeout 300s;
+   }
+   ```
+
+4. 启动
+
+   进入对应的frp目录,服务器端执行:./frps -c ./frpc.ini ; 客户端执行:./frpc -c ./frpc.ini
+
+    - server 启动
+
+   ```
+   cd /home/mc/frp
+   # 临时启动
+   ./frps -c ./frps.ini
+   # 后台启动 [开启日志]
+   nohup ./frps -c ./frps.ini  &
+   ```
+
+    - local 启动:
+
+   ```
+   cd /Users/malk/server/_Tool/proxy/frp
+   ./frpc -c ./frpc.ini
+   ```
+
+    - hpe 启动
+
+   ```
+   cd /home/frp
+   ./frpc -c ./frpc.ini
+   ```
+
+5. 通过 **http** 访问 dashboard:`http://47.97.181.40:1002/static/#/proxies/tcp`
+
+
+6. 客户端可通过 sh 快速执行启动 【**frpc.sh**】
+
+```
+cd /Users/malk/server/_Tool/proxy/frp
+./frpc -c ./frpc.ini
+```

+ 30 - 0
mjava/target/test-classes/frp/server/frps.ini

@@ -0,0 +1,30 @@
+[common]
+# bind 端口
+bind_port = 1001
+# 授权码,在客户端会用到
+token = NHDDSAISHDHDSDSIODHDASHDJASK=
+
+# dashboard 端口
+dashboard_port = 1002
+# frp管理后台用户名和密码
+dashboard_user = admin
+dashboard_pwd = admin1234@
+enable_prometheus = true
+
+#[secret_ssh]
+#type = stcp
+## 只有 sk 一致的用户才能访问到此服务
+#sk = zxcvbnm
+#local_ip = 127.0.0.1
+#local_port = 22
+
+# frp日志配置
+log_file = ./log/frps.log
+log_level = info
+log_max_days = 7
+
+# 最大链接池, 每个代理预先与后端服务器建立起指定数量的最大链接数
+max_pool_count = 10
+
+# proxy 1003
+# 更建议配置nginx转发,方便实现https转发而无需更多配置;将原服务 `api` 改为 `frp`,即可实现

+ 27 - 0
mjava/target/test-classes/nginx/certs/mc.100ali.com.key

@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpQIBAAKCAQEA7EGpsM/lwgkZydUWORj6k798ci2I8mJe4DZs8C096pdjPhxo
+oxuyosRNPkefFTyp2VDtypB2XdlaTUW8dOTjwhx14xervwIvSxvzfzpW7yVkF/XY
++YZaU+sCsrPCjIs2AFK3u+ufqSKXfefoF3ykn+SmOKRO7XmRJ2hHu/1U6tMV3h+j
+WCypshBvSzZZ1M2xylYMNYz7Bgf8noToL5QlFi/mo2SANH4jvpjn/hPgrt/f5H/c
+qJjnut2m1WCR/sipDILCb7q7eo1wdYhL4m4cyreJuejjOLvSJvQ9H1LhqOq8YRiw
+xEm79L8nnSw21X3GcAYxdklG3jJz2Vqkzm4TwQIDAQABAoIBABN5nN2uCuLXfIsO
+XVpFkdpTYunH5nhnMtT0B5Tg1drHB0TxHeWxfHnoXp8EqRDHbboz7qDPucImDvM8
+YrrsEfjyqaZs/BkEZWuhQ+Lipz89a3vXez75G+xmUf7zIdVotayJz7WA8yoDvPiB
+q7h2ljIhV1u8nPj8bW0R2TVI6RLA59mqLZy9YILLtzD4weFRGtBXrHPhBaoF6AZ+
+G3bM8yIOqrDjAss8BChbLhOT3lM25BeMg+FhRs/QFICp7CkkrgMGiKgC9Ut8W79u
+j1CoKKh9XD2taSMY6/kbvta11LaWWyzsnERv8xxewb6ycIC8gh3Jb2wup+chqn5t
+e7VKR6UCgYEA/prGrfRhnG+uBUvYICe3DL161rZ2QEEUWeN2JENHQYXAdYofmdGj
+qR3qg3fF4dhpFh5S0Bo4lTxplh/KLyTJ99Ji1Oeco181nLwWFlevu+fPL9Pth3ok
+U3lW5bnoXHijB1pqG16p5XOoNrmKW1aOO2tAM9ZT0VrYfQ28hcvZZbMCgYEA7Y0k
+tZBCJ6VJOHoqdEZCcJpw7gbMWo5RsklKicCG3LFY3a7uYvRrVoxuVi2JJ55AvJx+
+fKGXlQVefUDacSzRqtgCBqcMQxz0chHjHNPKtznovjb3g1X9f/C+X2IJIscX99gc
+Wq6rP3uVTPjaVUmoDxZ8W3gWPyuce0DSilorDrsCgYEA6ST4XKEVpXgLJeRu8/sK
+P4tfajDJlktCBJIrREerf4+oTrn9+BAlyx6O+nZ6aTaP/GYmNVRdjiM1GPjhX0xT
++jDYudeh82SjJnSB0VHYpbw/WK+7qjyp+Rp6/YDBC7SYrYoY8hk8gNXpKru6u6tG
+MZkjwJQ6StLivZkPkoG6AMsCgYEAqJdzZihryxdTT/HkD4GNxbzWSRgqEFrRQGcj
+r4AkNpznJO3x4ej2BQbFiAPpQ2TdLP8kBe/pVKnq1ZohbhEQ/N8xEOednEQAeLSZ
+KuxlAoTm2ZjJMTzmHNcPRUKemUATkqKd/P3aK8PZwjcbPUx5Kbwbpg8kOtEIzbDD
+u80ioeECgYEA96Mp991V7dkxTrF7GfHChhWkiDQuqeDYNdf4OTfDiVsKxIYDpsct
+c6CHtHI8ZKqd8wQOQIGhJcRGad42ukzbcBv2JISWIIayI75mlnAiPRAa1tJW0Ara
+z4R8kdTwfqXocuWRTZIGD1xLB8h5QbiXDxXqYV5gorPXGe/AcUc2wO8=
+-----END RSA PRIVATE KEY-----

+ 61 - 0
mjava/target/test-classes/nginx/certs/mc.100ali.com.pem

@@ -0,0 +1,61 @@
+-----BEGIN CERTIFICATE-----
+MIIF7jCCBNagAwIBAgIQDQ2dQ1iMckae+XtKzQbWuDANBgkqhkiG9w0BAQsFADBu
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMS0wKwYDVQQDEyRFbmNyeXB0aW9uIEV2ZXJ5d2hlcmUg
+RFYgVExTIENBIC0gRzEwHhcNMjIwNTI5MDAwMDAwWhcNMjMwNTMwMjM1OTU5WjAY
+MRYwFAYDVQQDEw1tYy4xMDBhbGkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA7EGpsM/lwgkZydUWORj6k798ci2I8mJe4DZs8C096pdjPhxooxuy
+osRNPkefFTyp2VDtypB2XdlaTUW8dOTjwhx14xervwIvSxvzfzpW7yVkF/XY+YZa
+U+sCsrPCjIs2AFK3u+ufqSKXfefoF3ykn+SmOKRO7XmRJ2hHu/1U6tMV3h+jWCyp
+shBvSzZZ1M2xylYMNYz7Bgf8noToL5QlFi/mo2SANH4jvpjn/hPgrt/f5H/cqJjn
+ut2m1WCR/sipDILCb7q7eo1wdYhL4m4cyreJuejjOLvSJvQ9H1LhqOq8YRiwxEm7
+9L8nnSw21X3GcAYxdklG3jJz2Vqkzm4TwQIDAQABo4IC3DCCAtgwHwYDVR0jBBgw
+FoAUVXRPsnJP9WC6UNHX5lFcmgGHGtcwHQYDVR0OBBYEFIRL5k/Fq2S+zZHTBcTU
+ydmcl0UiMBgGA1UdEQQRMA+CDW1jLjEwMGFsaS5jb20wDgYDVR0PAQH/BAQDAgWg
+MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjA+BgNVHSAENzA1MDMGBmeB
+DAECATApMCcGCCsGAQUFBwIBFhtodHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMw
+gYAGCCsGAQUFBwEBBHQwcjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNl
+cnQuY29tMEoGCCsGAQUFBzAChj5odHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20v
+RW5jcnlwdGlvbkV2ZXJ5d2hlcmVEVlRMU0NBLUcxLmNydDAJBgNVHRMEAjAAMIIB
+fQYKKwYBBAHWeQIEAgSCAW0EggFpAWcAdgCt9776fP8QyIudPZwePhhqtGcpXc+x
+DCTKhYY069yCigAAAYEN9dFPAAAEAwBHMEUCIEt34jU2//7f52yFFjvqPB9P2mVm
+rfrYBBe4qw3hEsFVAiEAyEEZXN+l8A4Xir0jZaB1XDI6UYAVGEGUCyeGv6hGW8cA
+dQA1zxkbv7FsV78PrUxtQsu7ticgJlHqP+Eq76gDwzvWTAAAAYEN9dD2AAAEAwBG
+MEQCIH57SuDo7RZ6EYxlMVWZ2p79ER/+J9c5fK6xIx0le20BAiBbCeL5A0prsw/X
+Cizl53Zf93ZXxcb5g1NoM7rtnPFXnAB2ALNzdwfhhFD4Y4bWBancEQlKeS2xZwwL
+h9zwAw55NqWaAAABgQ310RMAAAQDAEcwRQIgAiLb1TTXI3feIc+zsAckIiBbU0eN
+X54CYq6ngDiRuGMCIQDWEvc/bIBxBgvOexN4nB7CKvbIEaqBEAJUvPYfjfkh3TAN
+BgkqhkiG9w0BAQsFAAOCAQEAUk0TaQGKeEG1ChlMpCALEnU499e4o8hIdvonqQ4Z
+3Ly72cCMvvFn/Xd2oYShY8IDCzWwYxDQMV5epajHHa89BQY3TqwDocncSM5mIzsX
+THTVftkGL3AXVbn8mlxoE9cogOo/P8FQjrQ19a2JkYR6Xs+EqVMzvM3iiWvV7jNg
+aSWAepcm85kknlEzatEBpgdDW21taX5pZ5Jbkm9GRbA+Bhy//aPygp/VuyIJw9iH
+JjEGbAjX6XI/i5dntna4WOYcuak2Sb1j0up5gHK3fTxSkq1T5c0gzbqqbPmAtAXM
+aUN+f+fXYTL+Ve/rQBRc38cWuTA+U79aVZcMUUhtAR7ljQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEqjCCA5KgAwIBAgIQAnmsRYvBskWr+YBTzSybsTANBgkqhkiG9w0BAQsFADBh
+MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
+d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
+QTAeFw0xNzExMjcxMjQ2MTBaFw0yNzExMjcxMjQ2MTBaMG4xCzAJBgNVBAYTAlVT
+MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
+b20xLTArBgNVBAMTJEVuY3J5cHRpb24gRXZlcnl3aGVyZSBEViBUTFMgQ0EgLSBH
+MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALPeP6wkab41dyQh6mKc
+oHqt3jRIxW5MDvf9QyiOR7VfFwK656es0UFiIb74N9pRntzF1UgYzDGu3ppZVMdo
+lbxhm6dWS9OK/lFehKNT0OYI9aqk6F+U7cA6jxSC+iDBPXwdF4rs3KRyp3aQn6pj
+pp1yr7IB6Y4zv72Ee/PlZ/6rK6InC6WpK0nPVOYR7n9iDuPe1E4IxUMBH/T33+3h
+yuH3dvfgiWUOUkjdpMbyxX+XNle5uEIiyBsi4IvbcTCh8ruifCIi5mDXkZrnMT8n
+wfYCV6v6kDdXkbgGRLKsR4pucbJtbKqIkUGxuZI2t7pfewKRc5nWecvDBZf3+p1M
+pA8CAwEAAaOCAU8wggFLMB0GA1UdDgQWBBRVdE+yck/1YLpQ0dfmUVyaAYca1zAf
+BgNVHSMEGDAWgBQD3lA1VtFMu2bwo+IbG8OXsj3RVTAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMBIGA1UdEwEB/wQIMAYBAf8C
+AQAwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
+Y2VydC5jb20wQgYDVR0fBDswOTA3oDWgM4YxaHR0cDovL2NybDMuZGlnaWNlcnQu
+Y29tL0RpZ2lDZXJ0R2xvYmFsUm9vdENBLmNybDBMBgNVHSAERTBDMDcGCWCGSAGG
+/WwBAjAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5jb20vQ1BT
+MAgGBmeBDAECATANBgkqhkiG9w0BAQsFAAOCAQEAK3Gp6/aGq7aBZsxf/oQ+TD/B
+SwW3AU4ETK+GQf2kFzYZkby5SFrHdPomunx2HBzViUchGoofGgg7gHW0W3MlQAXW
+M0r5LUvStcr82QDWYNPaUy4taCQmyaJ+VB+6wxHstSigOlSNF2a6vg4rgexixeiV
+4YSB03Yqp2t3TeZHM9ESfkus74nQyW7pRGezj+TC44xCagCQQOzzNmzEAP2SnCrJ
+sNE2DpRVMnL8J6xBRdjmOsC3N6cQuKuRXbzByVBjCqAA8t1L0I+9wXJerLPyErjy
+rMKWaBFLmfK/AHNF4ZihwPGOc7w6UHczBZXH5RFzJNnww+WnKuTPI0HfnVH8lg==
+-----END CERTIFICATE-----

File diff suppressed because it is too large
+ 529 - 0
mjava/target/test-classes/nginx/index.html


+ 80 - 0
mjava/target/test-classes/nginx/location

@@ -0,0 +1,80 @@
+# local-path: /usr/local/etc/nginx/servers/.
+
+# web
+location ~ ^/web/ {
+    root   /Users/malk/server/java-mcli/mjava/src/test/resources/nginx/html/;
+    index  index.html index.htm;
+}
+
+# mjs
+location ~ ^/mjs/ {
+    root   /home/mc;
+    index  index.html index.htm;
+}
+
+# proxy
+location ~ ^/frp/ {
+    rewrite  ^/frp/(.*)$  /api/$1  break;
+    proxy_pass http://127.0.0.1:1003;
+    proxy_set_header Host $host:$server_port;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header Remote_Addr $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+    proxy_set_header Referer $http_referer;
+    client_max_body_size 100m;
+    client_body_buffer_size 20480k;
+    proxy_send_timeout 300s;
+    proxy_read_timeout 300s;
+}
+
+error_page   404 /404.html;
+error_page   500 502 503 504  /50x.html;
+
+# prod
+location ~ ^/api/ {
+    #rewrite  ^/mc/(.*)$  /$1  break;
+    proxy_pass http://127.0.0.1:9001;
+    proxy_set_header Host $host:$server_port;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header Remote_Addr $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+    proxy_set_header Referer $http_referer;
+    client_max_body_size 100m;
+    client_body_buffer_size 20480k;
+    proxy_send_timeout 300s;
+    proxy_read_timeout 300s;
+}
+
+# test
+location ~ ^/test/ {
+    #rewrite  ^/mc/(.*)$  /$1  break;
+    proxy_pass http://127.0.0.1:9002;
+    proxy_set_header Host $host:$server_port;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header Remote_Addr $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+    proxy_set_header Referer $http_referer;
+    client_max_body_size 100m;
+    client_body_buffer_size 20480k;
+    proxy_send_timeout 300s;
+    proxy_read_timeout 300s;
+}
+
+# dev
+location ~ ^/dev/ {
+    #rewrite  ^/mc/(.*)$  /$1  break;
+    proxy_pass http://127.0.0.1:9003;
+    proxy_set_header Host $host:$server_port;
+    proxy_set_header X-Real-IP $remote_addr;
+    proxy_set_header Remote_Addr $remote_addr;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header X-Forwarded-Proto $scheme;
+    proxy_set_header Referer $http_referer;
+    client_max_body_size 100m;
+    client_body_buffer_size 20480k;
+    proxy_send_timeout 300s;
+    proxy_read_timeout 300s;
+}

+ 63 - 0
mjava/target/test-classes/nginx/nginx.conf

@@ -0,0 +1,63 @@
+user nginx;
+worker_processes auto;
+pid /run/nginx.pid;
+
+events {
+	worker_connections 1024;
+	#multi_accept on;
+}
+
+http {
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+	##
+	# Basic Settings
+	##
+
+	sendfile            on;
+	tcp_nopush          on;
+	types_hash_max_size 2048;
+	server_tokens       off;
+
+    #autoindex on;
+	#server_names_hash_bucket_size 64;
+	#server_name_in_redirect off;
+
+	include         mime.types;
+	default_type    application/octet-stream;
+
+	##
+	# SSL Settings
+	##
+
+	ssl_protocols               TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
+	ssl_prefer_server_ciphers   on;
+
+	##
+	# Logging Settings
+	##
+
+	access_log  /var/log/nginx/access.log main;
+	error_log   /var/log/nginx/error.log;
+
+	##
+	# Gzip Settings
+	##
+
+	gzip on;
+
+	#gzip_vary on;
+	#gzip_proxied any;
+	#gzip_comp_level 6;
+	#gzip_buffers 16 8k;
+	#gzip_http_version 1.1;
+	#gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
+
+	##
+	# Virtual Host Configs
+	##
+
+	include servers/*.conf;
+}

+ 37 - 0
mjava/target/test-classes/nginx/proxy.conf

@@ -0,0 +1,37 @@
+# ----------------------------------------------------------------------------------------------
+
+# mc.100ali.com
+server {
+    listen          80;
+    server_name     mc.100ali.com;
+
+    # 直接重写, http post请求会报405
+    #rewrite ^(.*)$  https://$host$1 permanent;
+
+    # 307临时重定向到https, 若返回了307重新请求
+    return 307 https://$host$request_uri;
+
+    # 公用location, http\https都可访问
+    #include servers/mc.100ali.com;
+}
+
+server {
+    listen       	            443 ssl;
+    server_name  	            mc.100ali.com;
+    #access_log 	 	        /var/log/nginx/mc.100ali.com.log;
+    # 阿里云免费证书
+    ssl_certificate  	        servers/certs/mc.100ali.com.pem;
+    ssl_certificate_key         servers/certs/mc.100ali.com.key;
+    # 腾讯云免费证书
+    #ssl_certificate             services/certs/mc.100ali.com_bundle.crt;
+    #ssl_certificate_key         services/certs/mc.100ali.com.key;
+    ssl_session_timeout  	    5m;
+    ssl_protocols               TLSv1 TLSv1.1 TLSv1.2;
+    ssl_ciphers 	  	        ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
+    ssl_prefer_server_ciphers   on;
+    charset                     utf-8;
+
+    include servers/location;
+}
+
+# ----------------------------------------------------------------------------------------------

+ 37 - 0
mjava/target/test-classes/nginx/remak.md

@@ -0,0 +1,37 @@
+## 内网穿透
+
+### nginx
+
+需要开443/80端口
+
+### ding
+
+稳定,但https不可用,可能是自定义域名的原因。公网可访问
+
+1. 下载cli `npm install dingtalk-design-cli@latest -g`
+2. 检查版本 `ding -v`
+3. 启动 `ding ngrok --subdomain mc --port 39991`
+4. 代理地址 `http://mc.vaiwan.cn`
+
+### ngrok
+
+不稳定,但https可用,随机域名到国外服务器。自定义域名太麻烦
+
+1. 进入目录 `cd server/_Tool/ngrok`
+2. 启动服务 `./ngrok http localhost:39991`
+
+直接启动 `server:/Users/malk/server/_Tool/ngrok/ngrok  http localhost:39991`
+
+### nginx
+
+被本地代理,配置https,修改host访问。只能本地访问有效
+
+以 `mc.100ali.com` 为例
+
+1. Mac配置Host域名映射
+
+    - 编辑:`sudo vim /etc/hosts`
+    - 添加:`127.0.0.1       mc.100ali.com`
+
+2. 配置本地nginx和ssl证书,配置文件详见 `java-mcli`:路径 `mjava/test/resources/nginx/*`
+

+ 94 - 0
mjava/target/test-classes/readme.md

@@ -0,0 +1,94 @@
+## 项目
+
+[mjava](https://mc.100ali.com/) 标准化后端接口, 自用脚手架封装, mc 之 java-mcli 系列 代号 mjava
+
+### 运行
+
+1. *若是首次拉取项目
+    - 先执行主项目 java-mcli install, 获取 mjava 包依赖, 且在关联 maven 内生成项目结构: 否则子项目可运行但打包报错
+    - maven 内可删除其他子项目, 保留 java-mcli 与 mjava 目录即可. 注意 mjava pom 需要配置为基础包, 否则关联子项目打包报错
+
+2. QueryDSL: 尽量不使用 package, 会生产 jar 文件
+    - 说明: 项目在 compile 会执行 apt-maven-plugin 插件, 将 @Entity 注解类, 添加 Q 前缀, 存放到 target 下 generated-source 目录
+    - 使用: 若项目使用了 DSL, 先执行 mjava compile, 获取 BaseDTO 转 QBaseDTO. 再执行当前项目 compile, 获取 Q... 类型安全的实体查询类
+    - *实体若不直接在 com.malk 下, 可声明继承id, 避免编辑器提示 [不加也不影响编译以及运行]. 若是执行 package, 会先执行 compile
+
+3. *启动文件 Boot
+    - JPA 已配置扫描基础路径, 涉及子项目也能注册到, 避免启动报错
+    - 子项目 Boot 配置 @SpringBootApplication(scanBasePackages = {"com.malk"}), 扫描公共模块
+
+4. 静态资源映射
+    - 静态资源读取是 target 内容, 无需使用 package, 使用 compile 即可, 不会生产 jar 文件
+    - mjava 已配置映射路径, 优先读取子项目对应路径内容, 若不存在则会读取 mjava.jar 路径内容, 未匹配则会 404
+
+5. *环境变量: [包含其它文件]
+    - 若子项目没有指定, mjava 内存在的文件, 则会加载 mjava 环境文件
+    - 若子项目存在同名文件, 则会全量覆盖, 以子项目为准. 仅需配置对应环境即可
+
+6. 代理配置
+    - 内网穿透详见, `remark.md`
+    - nginx 配置可参考 `nginx` 文件夹
+
+7. pom 特别说明
+    - 目前配置全部子项目均可独立运行, 需要两个注意事项
+    - 第一: mjava 发布作为基础包提供, 注释 pom 内 executions 再执行 install 到本地 maven. 若开启即可作为独立 jar 运行
+    - 第二: 若关联 mjava 需要有与之相同的依赖, 否则调试可运行, 打包报错. 为了避免重复添加, 将 mjava 依赖直接添加到主项目 pom 上
+    - 项目被依赖 mjava 是通过 jar, 修改后执行 install 后关联项目才能获取到更新 [保留 mjava 是为了开发效率, 请勿随意修改]
+
+8. 关于mjs
+    - 本地 js-mcli: http://127.0.0.1:7001/dist/mjs.js
+    - 本地 java-mcli: http://localhost:9001/dev/mjs/mjs.js
+    - 本地 nginx: https://mc.100ali.com/dev/mjs/mjs.min.js
+    - 特别说明: 先读取当前子项目的配置, 若依赖 mjava, 当前子项目没有该文件会继续读取 mjava 配置
+
+### 功能
+
+快速开发底座, 集成三方平台标准化接口和曹操作逻辑 目前对接的三方平台有: 钉钉, 宜搭, 用友u8\yonsuite, 飞书平台
+
+### 技术
+
+1. 并发和异步实现 `@Async`
+2. 函数式编程 `Lambda`
+3. 入参校验配置 `@Validated` 注解
+4. 统一错误拦截 `CatchException` 类, 通用返回和报错格式
+5. 数据库操作 `jpa`, `QueryDSL` 工具
+6. JSON数据操作 `fastjson` 阿里巴巴
+7. 工具集: `commons-lang3`, `hutool-all`
+8. 基于 `winsw`, 在 `windows` 服务器部署能力
+9. 通用网络请求 `UtilHttp`, 上传下载, post和get请求
+10. 标准导入导出, 导入基于 `EastExcel`, 做了 `Lambda` 封装. 导出可用基于 `EasyExcel` 或 `POI`
+11. 三方接口, 统一的Toke过期时间管理, 避免限流和无效token
+12. 通用日志, 环境变量配置, 实现主子项目解耦. 当前每一个子项目对应一个客户, 子项目 `mjava` 也可独立部署, 提供平台通用接口服务
+13.
+
+### 配置
+
+1. 通用路径
+    - 日志路径: /Users/malk/server/_Tool/var/mjava/log
+    - 文件路径: Users/malk/server/_Tool/var/mjava/tmp
+
+2. 超时
+    - nginx:如pass_proxy 配置超时5分钟
+    - web:设置超时5分钟
+    - server:设置超时5分钟 `timeOut`
+    - server: 异步线程批量等待超时为10分钟 `timeAwait`
+
+<br />
+
+> 20220529 malk
+
+<br />
+
+
+next maven 私服
+
+1. 暂未配置 deploy
+
+3. 福氏nginx直接监听端口, 实现https
+4. 当前子项目都依赖Tomcat, 导致jar过大, 是不是考虑弄一个通用docker
+
+> update
+
+1. 新增jsp
+2. 新增swagger
+3. 新增webservice

+ 6 - 0
mjava/target/test-classes/search.sh

@@ -0,0 +1,6 @@
+#!/bin/bash
+
+cd /home/mc/mjava/logs
+tail -n 20 error.log | grep --color -3 $1
+
+#./search.sh test

+ 37 - 0
mjava/target/test-classes/server.sh

@@ -0,0 +1,37 @@
+#!/bin/bash
+
+appname='mjava'
+
+if [ "$1" == "dev" ]; then
+  java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=dev
+else
+  if [ "$1" == "start" ]; then
+    nohup java -Xms256m -Xmx256m -jar $appname.jar &
+    echo "server prod is starting"
+  else
+    if [ "$1" == "test" ]; then
+      nohup java -Xms256m -Xmx256m -jar $appname.jar --spring.profiles.active=test &
+      echo "server test is starting"
+    else
+      if [ "$1" == "stop" ]; then
+        PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+        if [ -z "$PID" ]; then
+          echo "server is already stopped"
+        else
+          echo kill $PID
+          kill $PID
+        fi
+      else
+        if [ "$1" == "status" ]; then
+          PID=$(ps -ef | grep $appname.jar | grep -v grep | awk '{ print $2 }')
+          if [ -z "$PID" ]; then
+            echo "server is stopped"
+          else
+            echo "server is running"
+            echo $PID
+          fi
+        fi
+      fi
+    fi
+  fi
+fi

+ 56 - 0
mjava/target/test-classes/winsw.xml

@@ -0,0 +1,56 @@
+<!--
+  MIT License
+
+  Copyright (c) 2008-2020 Kohsuke Kawaguchi, Sun Microsystems, Inc., CloudBees,
+  Inc., Oleg Nenashev and other contributors
+
+  Permission is hereby granted, free of charge, to any person obtaining a copy
+  of this software and associated documentation files (the "Software"), to deal
+  in the Software without restriction, including without limitation the rights
+  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+  copies of the Software, and to permit persons to whom the Software is
+  furnished to do so, subject to the following conditions:
+
+  The above copyright notice and this permission notice shall be included in all
+  copies or substantial portions of the Software.
+
+  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+  SOFTWARE.
+-->
+
+<!--
+ This is an example of a minimal Windows Service Wrapper configuration, which includes only mandatory options.
+ 
+ This configuration file should be placed near the WinSW executable, the name should be the same.
+ E.g. for myapp.exe the configuration file name should be myapp.xml
+ 
+ You can find more information about the configuration options here: https://github.com/kohsuke/winsw/blob/master/doc/xmlConfigFile.md
+ Full example: https://github.com/kohsuke/winsw/blob/master/examples/sample-allOptions.xml
+-->
+
+<service>
+    <!-- 注册服务ID -->
+    <id>mjava</id>
+    <!-- 启动服务名称 -->
+    <name>mjava</name>
+    <!-- 对服务的描述 -->
+    <description>标准化后端接口, 自用脚手架封装</description>
+    <!-- 「jdk需要安装」启动的可执行文件:若未配置环境变量executable需要执行绝对路径 -->
+    <!-- <executable>java</executable> -->
+    <executable>C:\Program Files\DingTalkServer\jdk1.8.0_221\bin\java</executable>
+    <!-- Xmx256m 代表堆内存最大值为256MB -jar后面的是项目名 [-Dfile.encoding=UTF-8 Windows会乱码, 但Mac上VSCode正常] -->
+    <arguments>-Xms256m -Xmx256m -jar mjava.jar</arguments>
+    <!-- <arguments>-Xms256m -Xmx256m -Dfile.encoding=UTF-8 -jar mjava.jar</arguments> -->
+    <!-- 服务的启动模式:默认Automatic -->
+    <startmode>Automatic</startmode>
+    <!-- 日志地址 -->
+    <logpath>%BASE%\ws</logpath>
+    <!-- 日志模式 -->
+    <logmode>rotate</logmode>
+</service>
+