Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
kt-keystone
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
kt-keystone
Commits
78ac1ef5
提交
78ac1ef5
authored
3月 01, 2022
作者:
黄承天
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(user): user模块初始提交 完成了数据同步功能
上级
91647641
隐藏空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
1436 行增加
和
0 行删除
+1436
-0
.gitignore
kt-user/.gitignore
+33
-0
maven-wrapper.jar
kt-user/.mvn/wrapper/maven-wrapper.jar
+0
-0
maven-wrapper.properties
kt-user/.mvn/wrapper/maven-wrapper.properties
+2
-0
mvnw
kt-user/mvnw
+316
-0
mvnw.cmd
kt-user/mvnw.cmd
+188
-0
pom.xml
kt-user/pom.xml
+63
-0
ZentaoApplication.java
kt-user/src/main/java/org/matrix/ZentaoApplication.java
+26
-0
BaseEntity.java
...ser/src/main/java/org/matrix/local/entity/BaseEntity.java
+54
-0
Project.java
kt-user/src/main/java/org/matrix/local/entity/Project.java
+33
-0
User.java
kt-user/src/main/java/org/matrix/local/entity/User.java
+37
-0
UserProject.java
...er/src/main/java/org/matrix/local/entity/UserProject.java
+33
-0
ProjectMapper.java
.../src/main/java/org/matrix/local/mapper/ProjectMapper.java
+20
-0
UserMapper.java
...ser/src/main/java/org/matrix/local/mapper/UserMapper.java
+19
-0
UserProjectMapper.java
.../main/java/org/matrix/local/mapper/UserProjectMapper.java
+19
-0
IProjectService.java
...c/main/java/org/matrix/local/service/IProjectService.java
+5
-0
IUserService.java
.../src/main/java/org/matrix/local/service/IUserService.java
+4
-0
ProjectServiceImpl.java
...ava/org/matrix/local/service/impl/ProjectServiceImpl.java
+8
-0
UserServiceImpl.java
...n/java/org/matrix/local/service/impl/UserServiceImpl.java
+11
-0
ZtProject.java
...ser/src/main/java/org/matrix/remote/entity/ZtProject.java
+141
-0
ZtUser.java
kt-user/src/main/java/org/matrix/remote/entity/ZtUser.java
+112
-0
ZtUserView.java
...er/src/main/java/org/matrix/remote/entity/ZtUserView.java
+33
-0
ZtProjectMapper.java
...c/main/java/org/matrix/remote/mapper/ZtProjectMapper.java
+20
-0
ZtUserMapper.java
.../src/main/java/org/matrix/remote/mapper/ZtUserMapper.java
+20
-0
ZtUserViewMapper.java
.../main/java/org/matrix/remote/mapper/ZtUserViewMapper.java
+20
-0
IDataCollector.java
...c/main/java/org/matrix/remote/service/IDataCollector.java
+10
-0
DataCollectorImpl.java
...ava/org/matrix/remote/service/impl/DataCollectorImpl.java
+137
-0
DataCollectorTask.java
...c/main/java/org/matrix/remote/task/DataCollectorTask.java
+31
-0
application.yml
kt-user/src/main/resources/application.yml
+19
-0
KtZentaoApplicationTests.java
...st/java/org/matrix/ktzentao/KtZentaoApplicationTests.java
+22
-0
没有找到文件。
kt-user/.gitignore
0 → 100644
浏览文件 @
78ac1ef5
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
kt-user/.mvn/wrapper/maven-wrapper.jar
0 → 100644
浏览文件 @
78ac1ef5
File added
kt-user/.mvn/wrapper/maven-wrapper.properties
0 → 100644
浏览文件 @
78ac1ef5
distributionUrl
=
https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.4/apache-maven-3.8.4-bin.zip
wrapperUrl
=
https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar
kt-user/mvnw
0 → 100755
浏览文件 @
78ac1ef5
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if
[
-z
"
$MAVEN_SKIP_RC
"
]
;
then
if
[
-f
/usr/local/etc/mavenrc
]
;
then
.
/usr/local/etc/mavenrc
fi
if
[
-f
/etc/mavenrc
]
;
then
.
/etc/mavenrc
fi
if
[
-f
"
$HOME
/.mavenrc"
]
;
then
.
"
$HOME
/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin
=
false
;
darwin
=
false
;
mingw
=
false
case
"
`
uname
`
"
in
CYGWIN
*
)
cygwin
=
true
;;
MINGW
*
)
mingw
=
true
;;
Darwin
*
)
darwin
=
true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if
[
-z
"
$JAVA_HOME
"
]
;
then
if
[
-x
"/usr/libexec/java_home"
]
;
then
export
JAVA_HOME
=
"
`
/usr/libexec/java_home
`
"
else
export
JAVA_HOME
=
"/Library/Java/Home"
fi
fi
;;
esac
if
[
-z
"
$JAVA_HOME
"
]
;
then
if
[
-r
/etc/gentoo-release
]
;
then
JAVA_HOME
=
`
java-config
--jre-home
`
fi
fi
if
[
-z
"
$M2_HOME
"
]
;
then
## resolve links - $0 may be a link to maven's home
PRG
=
"
$0
"
# need this for relative symlinks
while
[
-h
"
$PRG
"
]
;
do
ls
=
`
ls
-ld
"
$PRG
"
`
link
=
`
expr
"
$ls
"
:
'.*-> \(.*\)$'
`
if
expr
"
$link
"
:
'/.*'
>
/dev/null
;
then
PRG
=
"
$link
"
else
PRG
=
"
`
dirname
"
$PRG
"
`
/
$link
"
fi
done
saveddir
=
`
pwd
`
M2_HOME
=
`
dirname
"
$PRG
"
`
/..
# make it fully qualified
M2_HOME
=
`
cd
"
$M2_HOME
"
&&
pwd
`
cd
"
$saveddir
"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if
$cygwin
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
`
cygpath
--unix
"
$M2_HOME
"
`
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
`
cygpath
--unix
"
$JAVA_HOME
"
`
[
-n
"
$CLASSPATH
"
]
&&
CLASSPATH
=
`
cygpath
--path
--unix
"
$CLASSPATH
"
`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if
$mingw
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
"
`
(
cd
"
$M2_HOME
"
;
pwd
)
`
"
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
"
`
(
cd
"
$JAVA_HOME
"
;
pwd
)
`
"
fi
if
[
-z
"
$JAVA_HOME
"
]
;
then
javaExecutable
=
"
`
which javac
`
"
if
[
-n
"
$javaExecutable
"
]
&&
!
[
"
`
expr
\"
$javaExecutable
\"
:
'\([^ ]*\)'
`
"
=
"no"
]
;
then
# readlink(1) is not available as standard on Solaris 10.
readLink
=
`
which
readlink
`
if
[
!
`
expr
"
$readLink
"
:
'\([^ ]*\)'
`
=
"no"
]
;
then
if
$darwin
;
then
javaHome
=
"
`
dirname
\"
$javaExecutable
\"
`
"
javaExecutable
=
"
`
cd
\"
$javaHome
\"
&&
pwd
-P
`
/javac"
else
javaExecutable
=
"
`
readlink
-f
\"
$javaExecutable
\"
`
"
fi
javaHome
=
"
`
dirname
\"
$javaExecutable
\"
`
"
javaHome
=
`
expr
"
$javaHome
"
:
'\(.*\)/bin'
`
JAVA_HOME
=
"
$javaHome
"
export
JAVA_HOME
fi
fi
fi
if
[
-z
"
$JAVACMD
"
]
;
then
if
[
-n
"
$JAVA_HOME
"
]
;
then
if
[
-x
"
$JAVA_HOME
/jre/sh/java"
]
;
then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD
=
"
$JAVA_HOME
/jre/sh/java"
else
JAVACMD
=
"
$JAVA_HOME
/bin/java"
fi
else
JAVACMD
=
"
`
\\
unset
-f
command
;
\\
command
-v
java
`
"
fi
fi
if
[
!
-x
"
$JAVACMD
"
]
;
then
echo
"Error: JAVA_HOME is not defined correctly."
>
&2
echo
" We cannot execute
$JAVACMD
"
>
&2
exit
1
fi
if
[
-z
"
$JAVA_HOME
"
]
;
then
echo
"Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER
=
org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir
()
{
if
[
-z
"
$1
"
]
then
echo
"Path not specified to find_maven_basedir"
return
1
fi
basedir
=
"
$1
"
wdir
=
"
$1
"
while
[
"
$wdir
"
!=
'/'
]
;
do
if
[
-d
"
$wdir
"
/.mvn
]
;
then
basedir
=
$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if
[
-d
"
${
wdir
}
"
]
;
then
wdir
=
`
cd
"
$wdir
/.."
;
pwd
`
fi
# end of workaround
done
echo
"
${
basedir
}
"
}
# concatenates all lines of a file
concat_lines
()
{
if
[
-f
"
$1
"
]
;
then
echo
"
$(
tr
-s
'\n'
' '
<
"
$1
"
)
"
fi
}
BASE_DIR
=
`
find_maven_basedir
"
$(
pwd
)
"
`
if
[
-z
"
$BASE_DIR
"
]
;
then
exit
1
;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if
[
-r
"
$BASE_DIR
/.mvn/wrapper/maven-wrapper.jar"
]
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if
[
-n
"
$MVNW_REPOURL
"
]
;
then
jarUrl
=
"
$MVNW_REPOURL
/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
else
jarUrl
=
"https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
fi
while
IFS
=
"="
read
key value
;
do
case
"
$key
"
in
(
wrapperUrl
)
jarUrl
=
"
$value
"
;
break
;;
esac
done
<
"
$BASE_DIR
/.mvn/wrapper/maven-wrapper.properties"
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Downloading from:
$jarUrl
"
fi
wrapperJarPath
=
"
$BASE_DIR
/.mvn/wrapper/maven-wrapper.jar"
if
$cygwin
;
then
wrapperJarPath
=
`
cygpath
--path
--windows
"
$wrapperJarPath
"
`
fi
if
command
-v
wget
>
/dev/null
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Found wget ... using wget"
fi
if
[
-z
"
$MVNW_USERNAME
"
]
||
[
-z
"
$MVNW_PASSWORD
"
]
;
then
wget
"
$jarUrl
"
-O
"
$wrapperJarPath
"
||
rm
-f
"
$wrapperJarPath
"
else
wget
--http-user
=
$MVNW_USERNAME
--http-password
=
$MVNW_PASSWORD
"
$jarUrl
"
-O
"
$wrapperJarPath
"
||
rm
-f
"
$wrapperJarPath
"
fi
elif
command
-v
curl
>
/dev/null
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Found curl ... using curl"
fi
if
[
-z
"
$MVNW_USERNAME
"
]
||
[
-z
"
$MVNW_PASSWORD
"
]
;
then
curl
-o
"
$wrapperJarPath
"
"
$jarUrl
"
-f
else
curl
--user
$MVNW_USERNAME
:
$MVNW_PASSWORD
-o
"
$wrapperJarPath
"
"
$jarUrl
"
-f
fi
else
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
"Falling back to using Java to download"
fi
javaClass
=
"
$BASE_DIR
/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if
$cygwin
;
then
javaClass
=
`
cygpath
--path
--windows
"
$javaClass
"
`
fi
if
[
-e
"
$javaClass
"
]
;
then
if
[
!
-e
"
$BASE_DIR
/.mvn/wrapper/MavenWrapperDownloader.class"
]
;
then
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
" - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
(
"
$JAVA_HOME
/bin/javac"
"
$javaClass
"
)
fi
if
[
-e
"
$BASE_DIR
/.mvn/wrapper/MavenWrapperDownloader.class"
]
;
then
# Running the downloader
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
" - Running MavenWrapperDownloader.java ..."
fi
(
"
$JAVA_HOME
/bin/java"
-cp
.mvn/wrapper MavenWrapperDownloader
"
$MAVEN_PROJECTBASEDIR
"
)
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export
MAVEN_PROJECTBASEDIR
=
${
MAVEN_BASEDIR
:-
"
$BASE_DIR
"
}
if
[
"
$MVNW_VERBOSE
"
=
true
]
;
then
echo
$MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS
=
"
$(
concat_lines
"
$MAVEN_PROJECTBASEDIR
/.mvn/jvm.config"
)
$MAVEN_OPTS
"
# For Cygwin, switch paths to Windows format before running java
if
$cygwin
;
then
[
-n
"
$M2_HOME
"
]
&&
M2_HOME
=
`
cygpath
--path
--windows
"
$M2_HOME
"
`
[
-n
"
$JAVA_HOME
"
]
&&
JAVA_HOME
=
`
cygpath
--path
--windows
"
$JAVA_HOME
"
`
[
-n
"
$CLASSPATH
"
]
&&
CLASSPATH
=
`
cygpath
--path
--windows
"
$CLASSPATH
"
`
[
-n
"
$MAVEN_PROJECTBASEDIR
"
]
&&
MAVEN_PROJECTBASEDIR
=
`
cygpath
--path
--windows
"
$MAVEN_PROJECTBASEDIR
"
`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS
=
"
$MAVEN_CONFIG
$@
"
export
MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER
=
org.apache.maven.wrapper.MavenWrapperMain
exec
"
$JAVACMD
"
\
$MAVEN_OPTS
\
$MAVEN_DEBUG_OPTS
\
-classpath
"
$MAVEN_PROJECTBASEDIR
/.mvn/wrapper/maven-wrapper.jar"
\
"-Dmaven.home=
${
M2_HOME
}
"
\
"-Dmaven.multiModuleProjectDirectory=
${
MAVEN_PROJECTBASEDIR
}
"
\
${
WRAPPER_LAUNCHER
}
$MAVEN_CONFIG
"
$@
"
kt-user/mvnw.cmd
0 → 100644
浏览文件 @
78ac1ef5
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% ^
%JVM_CONFIG_MAVEN_PROPS% ^
%MAVEN_OPTS% ^
%MAVEN_DEBUG_OPTS% ^
-classpath %WRAPPER_JAR% ^
"-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
%WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%"=="on" pause
if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
cmd /C exit /B %ERROR_CODE%
kt-user/pom.xml
0 → 100644
浏览文件 @
78ac1ef5
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
keystone
</artifactId>
<groupId>
org.matrix
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
kt-user
</artifactId>
<packaging>
jar
</packaging>
<dependencies>
<dependency>
<groupId>
org.matrix
</groupId>
<artifactId>
kt-kit
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
dynamic-datasource-spring-boot-starter
</artifactId>
<version>
3.5.0
</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger2
</artifactId>
<version>
2.9.2
</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.9.2
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
</plugins>
</build>
</project>
kt-user/src/main/java/org/matrix/ZentaoApplication.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
;
import
lombok.extern.slf4j.Slf4j
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.domain.EntityScan
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
/**
* Hello world!
*
* @author matrix
*/
@Slf4j
@EnableScheduling
@SpringBootApplication
@EntityScan
(
basePackages
=
{
"org.matrix.remote.entity"
,
"org.matrix.local.entity"
})
@MapperScan
(
basePackages
=
{
"org.matrix.remote.mapper"
,
"org.matrix.local.mapper"
})
public
class
ZentaoApplication
{
public
static
void
main
(
String
[]
args
)
{
SpringApplication
.
run
(
ZentaoApplication
.
class
,
args
);
}
}
kt-user/src/main/java/org/matrix/local/entity/BaseEntity.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
entity
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* BaseEntity.
*
* @author Matrix <xhyrzldf@gmail.com>
* @since 2021/11/22 at 4:02 下午
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel
(
value
=
"基础对象"
)
public
abstract
class
BaseEntity
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 主键id
*/
@TableId
(
type
=
IdType
.
AUTO
)
@ApiModelProperty
(
"主键id,从0开始自增"
)
private
Long
id
;
/**
* 创建时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT
)
@ApiModelProperty
(
"数据创建时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"Asia/Shanghai"
)
private
LocalDateTime
createTime
;
/**
* 更新时间
*/
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
@ApiModelProperty
(
"数据更新时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"Asia/Shanghai"
)
private
LocalDateTime
updateTime
;
}
kt-user/src/main/java/org/matrix/local/entity/Project.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
org.matrix.local.entity.BaseEntity
;
/**
* <p>
*
* </p>
*
* @author matrix
* @since 2022-01-15
*/
@Accessors
(
chain
=
true
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"Project对象"
,
description
=
"项目"
)
@TableName
(
value
=
"kt_project"
)
public
class
Project
extends
BaseEntity
{
@ApiModelProperty
(
"名称"
)
private
String
name
;
}
kt-user/src/main/java/org/matrix/local/entity/User.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
org.matrix.local.entity.BaseEntity
;
/**
* <p>
*
* </p>
*
* @author matrix
* @since 2022-01-15
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"User对象"
,
description
=
"用户"
)
@TableName
(
value
=
"kt_user"
)
public
class
User
extends
BaseEntity
{
@ApiModelProperty
(
"名称"
)
private
String
name
;
@ApiModelProperty
(
"账号"
)
private
String
account
;
@ApiModelProperty
(
"密码"
)
private
String
password
;
}
kt-user/src/main/java/org/matrix/local/entity/UserProject.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.NoArgsConstructor
;
import
lombok.experimental.Accessors
;
import
org.matrix.local.entity.BaseEntity
;
/**
* <p>
*
* </p>
*
* @author matrix
* @since 2022-01-15
*/
@Accessors
(
chain
=
true
)
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
value
=
"UserProject对象"
,
description
=
"用户项目关系"
)
@TableName
(
value
=
"kt_user_project"
)
public
class
UserProject
extends
BaseEntity
{
private
Long
userId
;
private
Long
projectId
;
}
kt-user/src/main/java/org/matrix/local/mapper/ProjectMapper.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.matrix.local.entity.Project
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author matrix
* @since 2022-01-15
*/
@DS
(
"master"
)
@Repository
public
interface
ProjectMapper
extends
BaseMapper
<
Project
>
{
}
kt-user/src/main/java/org/matrix/local/mapper/UserMapper.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.matrix.local.entity.User
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author matrix
* @since 2022-01-15
*/
@DS
(
"master"
)
@Repository
public
interface
UserMapper
extends
BaseMapper
<
User
>
{
}
kt-user/src/main/java/org/matrix/local/mapper/UserProjectMapper.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.matrix.local.entity.UserProject
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author matrix
* @since 2022-01-15
*/
@DS
(
"master"
)
@Repository
public
interface
UserProjectMapper
extends
BaseMapper
<
UserProject
>
{
}
kt-user/src/main/java/org/matrix/local/service/IProjectService.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
service
;
public
interface
IProjectService
{
}
kt-user/src/main/java/org/matrix/local/service/IUserService.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
service
;
public
interface
IUserService
{
}
kt-user/src/main/java/org/matrix/local/service/impl/ProjectServiceImpl.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
service
.
impl
;
import
org.matrix.local.service.IProjectService
;
import
org.springframework.stereotype.Service
;
@Service
public
class
ProjectServiceImpl
implements
IProjectService
{
}
kt-user/src/main/java/org/matrix/local/service/impl/UserServiceImpl.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
local
.
service
.
impl
;
import
org.matrix.local.service.IUserService
;
import
org.springframework.stereotype.Service
;
@Service
public
class
UserServiceImpl
implements
IUserService
{
}
kt-user/src/main/java/org/matrix/remote/entity/ZtProject.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
io.swagger.annotations.ApiModel
;
import
lombok.*
;
/**
* <p>
*
* </p>
*
* @author c
* @since 2022-02-15
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName
(
"zt_project"
)
@ApiModel
(
value
=
"ZtProject对象"
,
description
=
""
)
public
class
ZtProject
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
project
;
private
String
model
;
private
String
type
;
private
String
lifetime
;
private
String
budget
;
@TableField
(
value
=
"budgetUnit"
)
private
String
budgetUnit
;
private
String
attribute
;
private
Float
percent
;
private
String
milestone
;
private
String
output
;
private
String
auth
;
private
Integer
parent
;
private
String
path
;
private
Integer
grade
;
private
String
name
;
private
String
code
;
private
LocalDate
begin
;
private
LocalDate
end
;
@TableField
(
value
=
"realBegan"
)
private
LocalDate
realBegan
;
@TableField
(
value
=
"realEnd"
)
private
LocalDate
realEnd
;
private
Integer
days
;
private
String
status
;
@TableField
(
value
=
"subStatus"
)
private
String
subStatus
;
private
String
pri
;
// private String desc;
private
Integer
version
;
@TableField
(
value
=
"parentVersion"
)
private
Integer
parentVersion
;
@TableField
(
value
=
"planDuration"
)
private
Integer
planDuration
;
@TableField
(
value
=
"realDuration"
)
private
Integer
realDuration
;
@TableField
(
value
=
"openedBy"
)
private
String
openedBy
;
@TableField
(
value
=
"openedDate"
)
private
LocalDateTime
openedDate
;
@TableField
(
value
=
"openedVersion"
)
private
String
openedVersion
;
@TableField
(
value
=
"lastEditedBy"
)
private
String
lastEditedBy
;
@TableField
(
value
=
"lastEditedDate"
)
private
LocalDateTime
lastEditedDate
;
@TableField
(
value
=
"closedBy"
)
private
String
closedBy
;
@TableField
(
value
=
"closedDate"
)
private
LocalDateTime
closedDate
;
@TableField
(
value
=
"canceledBy"
)
private
String
canceledBy
;
@TableField
(
value
=
"canceledDate"
)
private
LocalDateTime
canceledDate
;
private
String
po
;
private
String
pm
;
private
String
qd
;
private
String
rd
;
private
String
team
;
private
String
acl
;
private
String
whitelist
;
// private Integer order;
private
String
deleted
;
}
kt-user/src/main/java/org/matrix/remote/entity/ZtUser.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
io.swagger.annotations.ApiModel
;
import
lombok.*
;
/**
* <p>
*
* </p>
*
* @author c
* @since 2022-02-15
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName
(
"zt_user"
)
@ApiModel
(
value
=
"ZtUser对象"
,
description
=
""
)
public
class
ZtUser
{
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Integer
id
;
private
Integer
company
;
private
String
type
;
private
Integer
dept
;
private
String
account
;
private
String
password
;
private
String
role
;
private
String
realname
;
private
String
pinyin
;
private
String
nickname
;
private
String
commiter
;
private
String
avatar
;
private
LocalDate
birthday
;
private
String
gender
;
private
String
email
;
private
String
skype
;
private
String
qq
;
private
String
mobile
;
private
String
phone
;
private
String
weixin
;
private
String
dingding
;
private
String
slack
;
private
String
whatsapp
;
private
String
address
;
private
String
zipcode
;
private
String
nature
;
private
String
analysis
;
private
String
strategy
;
// private LocalDate join;
private
Integer
visits
;
private
String
ip
;
private
Integer
last
;
private
Integer
fails
;
private
LocalDateTime
locked
;
private
String
ranzhi
;
private
Integer
score
;
@TableField
(
value
=
"scoreLevel"
)
private
Integer
scoreLevel
;
private
String
deleted
;
@TableField
(
value
=
"clientStatus"
)
private
String
clientStatus
;
@TableField
(
value
=
"clientLang"
)
private
String
clientLang
;
}
kt-user/src/main/java/org/matrix/remote/entity/ZtUserView.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
entity
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
lombok.*
;
/**
* <p>
*
* </p>
*
* @author c
* @since 2022-02-15
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName
(
"zt_userview"
)
@ApiModel
(
value
=
"ZtUserview对象"
,
description
=
""
)
public
class
ZtUserView
{
private
String
account
;
private
String
programs
;
private
String
products
;
private
String
projects
;
private
String
sprints
;
}
kt-user/src/main/java/org/matrix/remote/mapper/ZtProjectMapper.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
org.matrix.remote.entity.ZtProject
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author c
* @since 2022-02-15
*/
@DS
(
"zentao"
)
@Repository
public
interface
ZtProjectMapper
extends
BaseMapper
<
ZtProject
>
{
}
kt-user/src/main/java/org/matrix/remote/mapper/ZtUserMapper.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
org.matrix.remote.entity.ZtUser
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author c
* @since 2022-02-15
*/
@DS
(
"zentao"
)
@Repository
public
interface
ZtUserMapper
extends
BaseMapper
<
ZtUser
>
{
}
kt-user/src/main/java/org/matrix/remote/mapper/ZtUserViewMapper.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
mapper
;
import
com.baomidou.dynamic.datasource.annotation.DS
;
import
org.matrix.remote.entity.ZtUserView
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author c
* @since 2022-02-15
*/
@DS
(
"zentao"
)
@Repository
public
interface
ZtUserViewMapper
extends
BaseMapper
<
ZtUserView
>
{
}
kt-user/src/main/java/org/matrix/remote/service/IDataCollector.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
service
;
/**
* 禅道数据收集工具
*/
public
interface
IDataCollector
{
void
execute
();
}
kt-user/src/main/java/org/matrix/remote/service/impl/DataCollectorImpl.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
org.matrix.local.entity.Project
;
import
org.matrix.local.entity.User
;
import
org.matrix.local.entity.UserProject
;
import
org.matrix.local.mapper.ProjectMapper
;
import
org.matrix.local.mapper.UserMapper
;
import
org.matrix.local.mapper.UserProjectMapper
;
import
org.matrix.remote.entity.ZtProject
;
import
org.matrix.remote.entity.ZtUser
;
import
org.matrix.remote.entity.ZtUserView
;
import
org.matrix.remote.mapper.ZtProjectMapper
;
import
org.matrix.remote.mapper.ZtUserMapper
;
import
org.matrix.remote.mapper.ZtUserViewMapper
;
import
org.matrix.remote.service.IDataCollector
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
public
class
DataCollectorImpl
implements
IDataCollector
{
@Autowired
private
ZtUserMapper
ztUserMapper
;
@Autowired
private
ZtUserViewMapper
ztUserViewMapper
;
@Autowired
private
ZtProjectMapper
ztProjectMapper
;
@Autowired
private
UserMapper
userMapper
;
@Autowired
private
ProjectMapper
projectMapper
;
@Autowired
private
UserProjectMapper
userProjectMapper
;
private
List
<
ZtUser
>
ztUsers
=
new
ArrayList
<>();
private
List
<
ZtUserView
>
ztUserViews
=
new
ArrayList
<>();
private
List
<
ZtProject
>
ztProjects
=
new
ArrayList
<>();
@Override
public
void
execute
()
{
//用户数据
collectUser
();
saveUser
();
//项目数据
collectProject
();
saveProject
();
//用户项目关系数据
collectUserView
();
saveUserProject
();
}
/**
* 从禅道数据库读取用户数据
*/
private
void
collectUser
()
{
ztUsers
.
clear
();
ztUsers
=
ztUserMapper
.
selectList
(
Wrappers
.
lambdaQuery
());
}
/**
* 从禅道数据库读取项目数据
*/
private
void
collectProject
()
{
ztProjects
.
clear
();
ztProjects
=
ztProjectMapper
.
selectList
(
Wrappers
.
lambdaQuery
());
}
/**
* 从禅道数据库读取用户相关项目关系数据
*/
private
void
collectUserView
()
{
ztUserViews
.
clear
();
ztUserViews
=
ztUserViewMapper
.
selectList
(
Wrappers
.
lambdaQuery
());
}
/**
* 将用户数据保存到本地
*/
private
void
saveUser
()
{
userMapper
.
delete
(
Wrappers
.
lambdaQuery
());
ztUsers
.
stream
()
.
map
(
this
::
user
)
.
forEach
(
userMapper:
:
insert
);
}
/**
* 将项目数据保存到本地
*/
private
void
saveProject
()
{
projectMapper
.
delete
(
Wrappers
.
lambdaQuery
());
ztProjects
.
stream
()
.
map
(
this
::
project
)
.
forEach
(
projectMapper:
:
insert
);
}
/**
* 将用户项目关系数据保存到本地
*/
private
void
saveUserProject
()
{
userProjectMapper
.
delete
(
Wrappers
.
lambdaQuery
());
ztUserViews
.
stream
()
.
flatMap
(
ztUserView
->
userProjects
(
ztUserView
).
stream
())
.
forEach
(
userProjectMapper:
:
insert
);
}
//------------------------private------------------------------------//
private
User
user
(
ZtUser
ztUser
)
{
return
new
User
(
ztUser
.
getRealname
(),
ztUser
.
getAccount
(),
ztUser
.
getPassword
());
}
private
Project
project
(
ZtProject
ztProject
)
{
return
new
Project
(
ztProject
.
getName
());
}
private
List
<
UserProject
>
userProjects
(
ZtUserView
ztUserView
)
{
Long
userId
=
userMapper
.
selectOne
(
Wrappers
.<
User
>
lambdaQuery
().
eq
(
User:
:
getAccount
,
ztUserView
.
getAccount
())).
getId
();
return
toList
(
ztUserView
.
getProjects
()).
stream
()
.
map
(
Long:
:
parseLong
)
.
map
(
projectId
->
new
UserProject
(
userId
,
projectId
))
.
collect
(
Collectors
.
toList
());
}
private
List
<
String
>
toList
(
String
content
)
{
List
<
String
>
result
=
Arrays
.
stream
(
content
.
split
(
","
)).
collect
(
Collectors
.
toList
());
result
.
remove
(
0
);
return
result
;
}
}
kt-user/src/main/java/org/matrix/remote/task/DataCollectorTask.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
remote
.
task
;
import
lombok.extern.slf4j.Slf4j
;
import
org.matrix.remote.service.IDataCollector
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
/**
* 定时任务
*/
@Slf4j
@Component
public
class
DataCollectorTask
{
@Autowired
IDataCollector
dataCollector
;
/**
* 同步禅道取的用户和项目数据
* 每小时收集一次
*/
@Scheduled
(
cron
=
"0 0 */1 * * ?"
)
public
void
collect
(){
log
.
info
(
"同步禅道用户项目数据..."
);
dataCollector
.
execute
();
log
.
info
(
"同步结束...."
);
}
}
kt-user/src/main/resources/application.yml
0 → 100644
浏览文件 @
78ac1ef5
spring
:
application
:
name
:
keystone
datasource
:
dynamic
:
primary
:
master
#设置默认的数据源或者数据源组,默认值即为master
strict
:
true
#严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource
:
master
:
#增加默认数据源
driverClassName
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://192.168.100.248:3306/key_stone?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username
:
root
password
:
root
zentao
:
driverClassName
:
com.mysql.cj.jdbc.Driver
url
:
jdbc:mysql://192.168.100.247:3306/zentao?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC&&zeroDateTimeBehavior=convertToNull
username
:
root
password
:
123456
\ No newline at end of file
kt-user/src/test/java/org/matrix/ktzentao/KtZentaoApplicationTests.java
0 → 100644
浏览文件 @
78ac1ef5
package
org
.
matrix
.
ktzentao
;
import
org.junit.jupiter.api.Test
;
import
org.matrix.ZentaoApplication
;
import
org.matrix.remote.service.IDataCollector
;
import
org.matrix.remote.task.DataCollectorTask
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
@SpringBootTest
(
classes
=
ZentaoApplication
.
class
)
class
KtZentaoApplicationTests
{
@Autowired
IDataCollector
dataCollector
;
@Autowired
DataCollectorTask
dataCollectorTask
;
@Test
void
test
()
{
dataCollectorTask
.
collect
();
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论