Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
I
inspect-parent
Project
Project
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
Graph
比较
统计图
议题
0
议题
0
列表
看板
标记
Milestones
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
李炎
inspect-parent
Commits
398a7430
提交
398a7430
authored
12月 02, 2021
作者:
李炎
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
验证机器MAC
上级
隐藏空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
997 行增加
和
0 行删除
+997
-0
.gitignore
.gitignore
+3
-0
pom.xml
pom.xml
+140
-0
Constants.java
src/main/java/com/wang/jintaidome/Constants.java
+12
-0
JintaiDomeApplication.java
src/main/java/com/wang/jintaidome/JintaiDomeApplication.java
+43
-0
InspectController.java
...ava/com/wang/jintaidome/controller/InspectController.java
+27
-0
ListUtil.java
src/main/java/com/wang/jintaidome/utils/ListUtil.java
+15
-0
LocalMACUtil.java
src/main/java/com/wang/jintaidome/utils/LocalMACUtil.java
+76
-0
oConvertUtils.java
src/main/java/com/wang/jintaidome/utils/oConvertUtils.java
+649
-0
application.yml
src/main/resources/application.yml
+9
-0
commons-logging.jar
src/main/resources/lib/commons-logging.jar
+0
-0
k3cloud-webapi-client.jar
src/main/resources/lib/k3cloud-webapi-client.jar
+0
-0
JintaiDomeApplicationTests.java
.../java/com/wang/jintaidome/JintaiDomeApplicationTests.java
+23
-0
没有找到文件。
.gitignore
0 → 100644
浏览文件 @
398a7430
/target
/.idea
/.idea/libraries
pom.xml
0 → 100644
浏览文件 @
398a7430
<?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"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.5.1
</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<groupId>
com.lqkj
</groupId>
<artifactId>
inspectDome
</artifactId>
<packaging>
jar
</packaging>
<version>
0.0.1-SNAPSHOT
</version>
<name>
inspectDome
</name>
<description>
Demo project for Spring Boot
</description>
<properties>
<java.version>
1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
<exclusions>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-jpa
</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
<version>
3.4.3
</version>
</dependency>
<!--开发时使用spring boot 内嵌tomacata调试,生产使用外部tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>-->
<!--打包用:声名所有第三方jar包-->
<dependency>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
<scope>
system
</scope>
<version>
1.0
</version>
<systemPath>
${project.basedir}/src/main/resources/lib/commons-logging.jar
</systemPath>
</dependency>
<dependency>
<groupId>
client
</groupId>
<artifactId>
k3cloud-webapi-client
</artifactId>
<scope>
system
</scope>
<version>
1.0
</version>
<systemPath>
${project.basedir}/src/main/resources/lib/k3cloud-webapi-client.jar
</systemPath>
</dependency>
<!--<dependency>-->
<!--<groupId>httpmime</groupId>-->
<!--<artifactId>httpmime-4.1.1</artifactId>-->
<!--<scope>system</scope>-->
<!--<version>1.0</version>-->
<!--<systemPath>${project.basedir}/src/main/resources/lib/httpmime-4.1.1.jar</systemPath>-->
<!--</dependency>-->
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpmime
</artifactId>
<version>
4.1.1
</version>
</dependency>
<dependency>
<groupId>
commons-httpclient
</groupId>
<artifactId>
commons-httpclient
</artifactId>
<version>
3.1
</version>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<version>
4.3.1
</version>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpcore
</artifactId>
<version>
4.3.1
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.72
</version>
</dependency>
<dependency>
<groupId>
com.hikvision.ga
</groupId>
<artifactId>
artemis-http-client
</artifactId>
<version>
1.1.3
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<version>
2.0.5.RELEASE
</version>
<!--加入下面两项配置后,maven打包时才会把第三方jar包一起打入-->
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
</execution>
</executions>
<configuration>
<includeSystemScope>
true
</includeSystemScope>
</configuration>
</plugin>
</plugins>
</build>
</project>
src/main/java/com/wang/jintaidome/Constants.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
;
import
java.util.HashMap
;
import
java.util.Map
;
public
class
Constants
{
public
static
final
String
OZTIMSMAC
=
"00-50-56-C0-00-08"
;
public
static
final
Map
<
String
,
String
>
entity
=
new
HashMap
<
String
,
String
>()
{{
put
(
OZTIMSMAC
,
""
);
}};
}
src/main/java/com/wang/jintaidome/JintaiDomeApplication.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
;
import
com.wang.jintaidome.utils.oConvertUtils
;
import
lombok.extern.slf4j.Slf4j
;
//import org.mybatis.spring.annotation.MapperScan;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.builder.SpringApplicationBuilder
;
import
org.springframework.boot.web.servlet.support.SpringBootServletInitializer
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.core.env.Environment
;
import
java.net.InetAddress
;
import
java.net.UnknownHostException
;
@SpringBootApplication
//@MapperScan("com.wang.jintaidome")
@Slf4j
@EnableAutoConfiguration
(
exclude
={
DataSourceAutoConfiguration
.
class
})
public
class
JintaiDomeApplication
extends
SpringBootServletInitializer
{
@Override
protected
SpringApplicationBuilder
configure
(
SpringApplicationBuilder
application
)
{
return
application
.
sources
(
JintaiDomeApplication
.
class
);
}
public
static
void
main
(
String
[]
args
)
throws
UnknownHostException
{
ConfigurableApplicationContext
application
=
SpringApplication
.
run
(
JintaiDomeApplication
.
class
,
args
);
Environment
env
=
application
.
getEnvironment
();
String
ip
=
InetAddress
.
getLocalHost
().
getHostAddress
();
String
port
=
env
.
getProperty
(
"server.port"
);
String
path
=
oConvertUtils
.
getString
(
env
.
getProperty
(
"server.servlet.context-path"
));
log
.
info
(
"\n----------------------------------------------------------\n\t"
+
"Application wmssystem is running! Access URLs:\n\t"
+
"Local: \t\thttp://localhost:"
+
port
+
path
+
"/\n\t"
+
"External: \thttp://"
+
ip
+
":"
+
port
+
path
+
"/\n\t"
+
"Swagger-ui: \thttp://"
+
ip
+
":"
+
port
+
path
+
"/swagger-ui.html\n\t"
+
"Doc文档: \thttp://"
+
ip
+
":"
+
port
+
path
+
"/doc.html\n"
+
"----------------------------------------------------------"
);
}
}
src/main/java/com/wang/jintaidome/controller/InspectController.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
.
controller
;
import
com.wang.jintaidome.Constants
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.HashMap
;
import
java.util.Map
;
@CrossOrigin
@RestController
@RequestMapping
(
"/lqkj/inspect"
)
@Slf4j
public
class
InspectController
{
private
static
final
String
localMacString
=
"localMac"
;
@PostMapping
(
value
=
"/mac"
)
public
Boolean
inspectMac
(
@RequestBody
(
required
=
false
)
Map
Mac
)
{
if
(
null
!=
Mac
&&
null
!=
Mac
.
get
(
localMacString
))
{
if
(
Constants
.
entity
.
containsKey
(
Mac
.
get
(
localMacString
)))
{
return
true
;
}
}
return
false
;
}
}
src/main/java/com/wang/jintaidome/utils/ListUtil.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
.
utils
;
import
java.util.LinkedHashSet
;
import
java.util.List
;
public
class
ListUtil
{
public
static
void
reduplicate
(
List
list
){
LinkedHashSet
set
=
new
LinkedHashSet
(
list
);
//把List集合所有元素清空
list
.
clear
();
//把HashSet对象添加至List集合
list
.
addAll
(
set
);
}
}
src/main/java/com/wang/jintaidome/utils/LocalMACUtil.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
.
utils
;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.net.SocketException
;
import
java.net.UnknownHostException
;
public
class
LocalMACUtil
{
static
InetAddress
inetAddress
;
{
try
{
inetAddress
=
InetAddress
.
getLocalHost
();
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
}
}
/**
* @param args
* @throws UnknownHostException
* @throws SocketException
*/
public
static
void
main
(
String
[]
args
)
throws
UnknownHostException
,
SocketException
{
// TODO Auto-generated method stub
//得到IP,输出PC-201309011313/122.206.73.83
InetAddress
ia
=
InetAddress
.
getLocalHost
();
System
.
out
.
println
(
ia
);
System
.
out
.
println
(
getLocalMac
(
ia
));
}
private
static
String
getLocalMac
(
InetAddress
ia
)
throws
SocketException
{
// TODO Auto-generated method stub
//获取网卡,获取地址
byte
[]
mac
=
NetworkInterface
.
getByInetAddress
(
ia
).
getHardwareAddress
();
StringBuffer
sb
=
new
StringBuffer
(
""
);
for
(
int
i
=
0
;
i
<
mac
.
length
;
i
++)
{
if
(
i
!=
0
)
{
sb
.
append
(
"-"
);
}
//字节转换为整数
int
temp
=
mac
[
i
]
&
0xff
;
String
str
=
Integer
.
toHexString
(
temp
);
if
(
str
.
length
()
==
1
)
{
sb
.
append
(
"0"
+
str
);
}
else
{
sb
.
append
(
str
);
}
}
return
sb
.
toString
().
toUpperCase
();
}
private
static
String
getLocalMac
()
throws
SocketException
{
// TODO Auto-generated method stub
//获取网卡,获取地址
byte
[]
mac
=
NetworkInterface
.
getByInetAddress
(
inetAddress
).
getHardwareAddress
();
StringBuffer
sb
=
new
StringBuffer
(
""
);
for
(
int
i
=
0
;
i
<
mac
.
length
;
i
++)
{
if
(
i
!=
0
)
{
sb
.
append
(
"-"
);
}
//字节转换为整数
int
temp
=
mac
[
i
]
&
0xff
;
String
str
=
Integer
.
toHexString
(
temp
);
if
(
str
.
length
()
==
1
)
{
sb
.
append
(
"0"
+
str
);
}
else
{
sb
.
append
(
str
);
}
}
return
sb
.
toString
().
toUpperCase
();
}
}
\ No newline at end of file
src/main/java/com/wang/jintaidome/utils/oConvertUtils.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
.
utils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.BeanUtils
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.UnsupportedEncodingException
;
import
java.lang.reflect.Field
;
import
java.math.BigDecimal
;
import
java.math.BigInteger
;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.net.SocketException
;
import
java.net.UnknownHostException
;
import
java.sql.Date
;
import
java.util.*
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
/**
*
* @Author 张代浩
*
*/
@Slf4j
public
class
oConvertUtils
{
public
static
boolean
isEmpty
(
Object
object
)
{
if
(
object
==
null
)
{
return
(
true
);
}
if
(
""
.
equals
(
object
))
{
return
(
true
);
}
if
(
"null"
.
equals
(
object
))
{
return
(
true
);
}
return
(
false
);
}
public
static
boolean
isNotEmpty
(
Object
object
)
{
if
(
object
!=
null
&&
!
object
.
equals
(
""
)
&&
!
object
.
equals
(
"null"
))
{
return
(
true
);
}
return
(
false
);
}
public
static
String
decode
(
String
strIn
,
String
sourceCode
,
String
targetCode
)
{
String
temp
=
code2code
(
strIn
,
sourceCode
,
targetCode
);
return
temp
;
}
public
static
String
StrToUTF
(
String
strIn
,
String
sourceCode
,
String
targetCode
)
{
strIn
=
""
;
try
{
strIn
=
new
String
(
strIn
.
getBytes
(
"ISO-8859-1"
),
"GBK"
);
}
catch
(
UnsupportedEncodingException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
return
strIn
;
}
private
static
String
code2code
(
String
strIn
,
String
sourceCode
,
String
targetCode
)
{
String
strOut
=
null
;
if
(
strIn
==
null
||
(
strIn
.
trim
()).
equals
(
""
))
{
return
strIn
;
}
try
{
byte
[]
b
=
strIn
.
getBytes
(
sourceCode
);
for
(
int
i
=
0
;
i
<
b
.
length
;
i
++)
{
System
.
out
.
print
(
b
[
i
]
+
" "
);
}
strOut
=
new
String
(
b
,
targetCode
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
return
strOut
;
}
public
static
int
getInt
(
String
s
,
int
defval
)
{
if
(
s
==
null
||
s
==
""
)
{
return
(
defval
);
}
try
{
return
(
Integer
.
parseInt
(
s
));
}
catch
(
NumberFormatException
e
)
{
return
(
defval
);
}
}
public
static
int
getInt
(
String
s
)
{
if
(
s
==
null
||
s
==
""
)
{
return
0
;
}
try
{
return
(
Integer
.
parseInt
(
s
));
}
catch
(
NumberFormatException
e
)
{
return
0
;
}
}
public
static
int
getInt
(
String
s
,
Integer
df
)
{
if
(
s
==
null
||
s
==
""
)
{
return
df
;
}
try
{
return
(
Integer
.
parseInt
(
s
));
}
catch
(
NumberFormatException
e
)
{
return
0
;
}
}
public
static
Integer
[]
getInts
(
String
[]
s
)
{
Integer
[]
integer
=
new
Integer
[
s
.
length
];
if
(
s
==
null
)
{
return
null
;
}
for
(
int
i
=
0
;
i
<
s
.
length
;
i
++)
{
integer
[
i
]
=
Integer
.
parseInt
(
s
[
i
]);
}
return
integer
;
}
public
static
double
getDouble
(
String
s
,
double
defval
)
{
if
(
s
==
null
||
s
==
""
)
{
return
(
defval
);
}
try
{
return
(
Double
.
parseDouble
(
s
));
}
catch
(
NumberFormatException
e
)
{
return
(
defval
);
}
}
public
static
double
getDou
(
Double
s
,
double
defval
)
{
if
(
s
==
null
)
{
return
(
defval
);
}
return
s
;
}
/*public static Short getShort(String s) {
if (StringUtil.isNotEmpty(s)) {
return (Short.parseShort(s));
} else {
return null;
}
}*/
public
static
int
getInt
(
Object
object
,
int
defval
)
{
if
(
isEmpty
(
object
))
{
return
(
defval
);
}
try
{
return
(
Integer
.
parseInt
(
object
.
toString
()));
}
catch
(
NumberFormatException
e
)
{
return
(
defval
);
}
}
public
static
Integer
getInt
(
Object
object
)
{
if
(
isEmpty
(
object
))
{
return
null
;
}
try
{
return
(
Integer
.
parseInt
(
object
.
toString
()));
}
catch
(
NumberFormatException
e
)
{
return
null
;
}
}
public
static
int
getInt
(
BigDecimal
s
,
int
defval
)
{
if
(
s
==
null
)
{
return
(
defval
);
}
return
s
.
intValue
();
}
public
static
Integer
[]
getIntegerArry
(
String
[]
object
)
{
int
len
=
object
.
length
;
Integer
[]
result
=
new
Integer
[
len
];
try
{
for
(
int
i
=
0
;
i
<
len
;
i
++)
{
result
[
i
]
=
new
Integer
(
object
[
i
].
trim
());
}
return
result
;
}
catch
(
NumberFormatException
e
)
{
return
null
;
}
}
public
static
String
getString
(
String
s
)
{
return
(
getString
(
s
,
""
));
}
/**
* 转义成Unicode编码
* @param s
* @return
*/
/*public static String escapeJava(Object s) {
return StringEscapeUtils.escapeJava(getString(s));
}*/
public
static
String
getString
(
Object
object
)
{
if
(
isEmpty
(
object
))
{
return
""
;
}
return
(
object
.
toString
().
trim
());
}
public
static
String
getString
(
int
i
)
{
return
(
String
.
valueOf
(
i
));
}
public
static
String
getString
(
float
i
)
{
return
(
String
.
valueOf
(
i
));
}
public
static
String
getString
(
String
s
,
String
defval
)
{
if
(
isEmpty
(
s
))
{
return
(
defval
);
}
return
(
s
.
trim
());
}
public
static
String
getString
(
Object
s
,
String
defval
)
{
if
(
isEmpty
(
s
))
{
return
(
defval
);
}
return
(
s
.
toString
().
trim
());
}
public
static
long
stringToLong
(
String
str
)
{
Long
test
=
new
Long
(
0
);
try
{
test
=
Long
.
valueOf
(
str
);
}
catch
(
Exception
e
)
{
}
return
test
.
longValue
();
}
/**
* 获取本机IP
*/
public
static
String
getIp
()
{
String
ip
=
null
;
try
{
InetAddress
address
=
InetAddress
.
getLocalHost
();
ip
=
address
.
getHostAddress
();
}
catch
(
UnknownHostException
e
)
{
e
.
printStackTrace
();
}
return
ip
;
}
/**
* 判断一个类是否为基本数据类型。
*
* @param clazz
* 要判断的类。
* @return true 表示为基本数据类型。
*/
private
static
boolean
isBaseDataType
(
Class
clazz
)
throws
Exception
{
return
(
clazz
.
equals
(
String
.
class
)
||
clazz
.
equals
(
Integer
.
class
)
||
clazz
.
equals
(
Byte
.
class
)
||
clazz
.
equals
(
Long
.
class
)
||
clazz
.
equals
(
Double
.
class
)
||
clazz
.
equals
(
Float
.
class
)
||
clazz
.
equals
(
Character
.
class
)
||
clazz
.
equals
(
Short
.
class
)
||
clazz
.
equals
(
BigDecimal
.
class
)
||
clazz
.
equals
(
BigInteger
.
class
)
||
clazz
.
equals
(
Boolean
.
class
)
||
clazz
.
equals
(
Date
.
class
)
||
clazz
.
isPrimitive
());
}
/**
* @param request
* IP
* @return IP Address
*/
public
static
String
getIpAddrByRequest
(
HttpServletRequest
request
)
{
String
ip
=
request
.
getHeader
(
"x-forwarded-for"
);
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getHeader
(
"WL-Proxy-Client-IP"
);
}
if
(
ip
==
null
||
ip
.
length
()
==
0
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
request
.
getRemoteAddr
();
}
return
ip
;
}
/**
* @return 本机IP
* @throws SocketException
*/
public
static
String
getRealIp
()
throws
SocketException
{
String
localip
=
null
;
// 本地IP,如果没有配置外网IP则返回它
String
netip
=
null
;
// 外网IP
Enumeration
<
NetworkInterface
>
netInterfaces
=
NetworkInterface
.
getNetworkInterfaces
();
InetAddress
ip
=
null
;
boolean
finded
=
false
;
// 是否找到外网IP
while
(
netInterfaces
.
hasMoreElements
()
&&
!
finded
)
{
NetworkInterface
ni
=
netInterfaces
.
nextElement
();
Enumeration
<
InetAddress
>
address
=
ni
.
getInetAddresses
();
while
(
address
.
hasMoreElements
())
{
ip
=
address
.
nextElement
();
if
(!
ip
.
isSiteLocalAddress
()
&&
!
ip
.
isLoopbackAddress
()
&&
ip
.
getHostAddress
().
indexOf
(
":"
)
==
-
1
)
{
// 外网IP
netip
=
ip
.
getHostAddress
();
finded
=
true
;
break
;
}
else
if
(
ip
.
isSiteLocalAddress
()
&&
!
ip
.
isLoopbackAddress
()
&&
ip
.
getHostAddress
().
indexOf
(
":"
)
==
-
1
)
{
// 内网IP
localip
=
ip
.
getHostAddress
();
}
}
}
if
(
netip
!=
null
&&
!
""
.
equals
(
netip
))
{
return
netip
;
}
else
{
return
localip
;
}
}
/**
* java去除字符串中的空格、回车、换行符、制表符
*
* @param str
* @return
*/
public
static
String
replaceBlank
(
String
str
)
{
String
dest
=
""
;
if
(
str
!=
null
)
{
Pattern
p
=
Pattern
.
compile
(
"\\s*|\t|\r|\n"
);
Matcher
m
=
p
.
matcher
(
str
);
dest
=
m
.
replaceAll
(
""
);
}
return
dest
;
}
/**
* 判断元素是否在数组内
*
* @param substring
* @param source
* @return
*/
public
static
boolean
isIn
(
String
substring
,
String
[]
source
)
{
if
(
source
==
null
||
source
.
length
==
0
)
{
return
false
;
}
for
(
int
i
=
0
;
i
<
source
.
length
;
i
++)
{
String
aSource
=
source
[
i
];
if
(
aSource
.
equals
(
substring
))
{
return
true
;
}
}
return
false
;
}
/**
* 获取Map对象
*/
public
static
Map
<
Object
,
Object
>
getHashMap
()
{
return
new
HashMap
<
Object
,
Object
>();
}
/**
* SET转换MAP
*
* @param str
* @return
*/
public
static
Map
<
Object
,
Object
>
SetToMap
(
Set
<
Object
>
setobj
)
{
Map
<
Object
,
Object
>
map
=
getHashMap
();
for
(
Iterator
iterator
=
setobj
.
iterator
();
iterator
.
hasNext
();)
{
Map
.
Entry
<
Object
,
Object
>
entry
=
(
Map
.
Entry
<
Object
,
Object
>)
iterator
.
next
();
map
.
put
(
entry
.
getKey
().
toString
(),
entry
.
getValue
()
==
null
?
""
:
entry
.
getValue
().
toString
().
trim
());
}
return
map
;
}
public
static
boolean
isInnerIP
(
String
ipAddress
)
{
boolean
isInnerIp
=
false
;
long
ipNum
=
getIpNum
(
ipAddress
);
/**
* 私有IP:A类 10.0.0.0-10.255.255.255 B类 172.16.0.0-172.31.255.255 C类 192.168.0.0-192.168.255.255 当然,还有127这个网段是环回地址
**/
long
aBegin
=
getIpNum
(
"10.0.0.0"
);
long
aEnd
=
getIpNum
(
"10.255.255.255"
);
long
bBegin
=
getIpNum
(
"172.16.0.0"
);
long
bEnd
=
getIpNum
(
"172.31.255.255"
);
long
cBegin
=
getIpNum
(
"192.168.0.0"
);
long
cEnd
=
getIpNum
(
"192.168.255.255"
);
isInnerIp
=
isInner
(
ipNum
,
aBegin
,
aEnd
)
||
isInner
(
ipNum
,
bBegin
,
bEnd
)
||
isInner
(
ipNum
,
cBegin
,
cEnd
)
||
ipAddress
.
equals
(
"127.0.0.1"
);
return
isInnerIp
;
}
private
static
long
getIpNum
(
String
ipAddress
)
{
String
[]
ip
=
ipAddress
.
split
(
"\\."
);
long
a
=
Integer
.
parseInt
(
ip
[
0
]);
long
b
=
Integer
.
parseInt
(
ip
[
1
]);
long
c
=
Integer
.
parseInt
(
ip
[
2
]);
long
d
=
Integer
.
parseInt
(
ip
[
3
]);
long
ipNum
=
a
*
256
*
256
*
256
+
b
*
256
*
256
+
c
*
256
+
d
;
return
ipNum
;
}
private
static
boolean
isInner
(
long
userIp
,
long
begin
,
long
end
)
{
return
(
userIp
>=
begin
)
&&
(
userIp
<=
end
);
}
/**
* 将下划线大写方式命名的字符串转换为驼峰式。
* 如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。</br>
* 例如:hello_world->helloWorld
*
* @param name
* 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串
*/
public
static
String
camelName
(
String
name
)
{
StringBuilder
result
=
new
StringBuilder
();
// 快速检查
if
(
name
==
null
||
name
.
isEmpty
())
{
// 没必要转换
return
""
;
}
else
if
(!
name
.
contains
(
"_"
))
{
// 不含下划线,仅将首字母小写
//update-begin--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能
//update-begin--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能
return
name
.
substring
(
0
,
1
).
toLowerCase
()
+
name
.
substring
(
1
).
toLowerCase
();
//update-end--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能
}
// 用下划线将原始字符串分割
String
camels
[]
=
name
.
split
(
"_"
);
for
(
String
camel
:
camels
)
{
// 跳过原始字符串中开头、结尾的下换线或双重下划线
if
(
camel
.
isEmpty
())
{
continue
;
}
// 处理真正的驼峰片段
if
(
result
.
length
()
==
0
)
{
// 第一个驼峰片段,全部字母都小写
result
.
append
(
camel
.
toLowerCase
());
}
else
{
// 其他的驼峰片段,首字母大写
result
.
append
(
camel
.
substring
(
0
,
1
).
toUpperCase
());
result
.
append
(
camel
.
substring
(
1
).
toLowerCase
());
}
}
return
result
.
toString
();
}
/**
* 将下划线大写方式命名的字符串转换为驼峰式。
* 如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。</br>
* 例如:hello_world,test_id->helloWorld,testId
*
* @param name
* 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串
*/
public
static
String
camelNames
(
String
names
)
{
if
(
names
==
null
||
names
.
equals
(
""
)){
return
null
;
}
StringBuffer
sf
=
new
StringBuffer
();
String
[]
fs
=
names
.
split
(
","
);
for
(
String
field
:
fs
)
{
field
=
camelName
(
field
);
sf
.
append
(
field
+
","
);
}
String
result
=
sf
.
toString
();
return
result
.
substring
(
0
,
result
.
length
()
-
1
);
}
//update-begin--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能
/**
* 将下划线大写方式命名的字符串转换为驼峰式。(首字母写)
* 如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。</br>
* 例如:hello_world->HelloWorld
*
* @param name
* 转换前的下划线大写方式命名的字符串
* @return 转换后的驼峰式命名的字符串
*/
public
static
String
camelNameCapFirst
(
String
name
)
{
StringBuilder
result
=
new
StringBuilder
();
// 快速检查
if
(
name
==
null
||
name
.
isEmpty
())
{
// 没必要转换
return
""
;
}
else
if
(!
name
.
contains
(
"_"
))
{
// 不含下划线,仅将首字母小写
return
name
.
substring
(
0
,
1
).
toUpperCase
()
+
name
.
substring
(
1
).
toLowerCase
();
}
// 用下划线将原始字符串分割
String
camels
[]
=
name
.
split
(
"_"
);
for
(
String
camel
:
camels
)
{
// 跳过原始字符串中开头、结尾的下换线或双重下划线
if
(
camel
.
isEmpty
())
{
continue
;
}
// 其他的驼峰片段,首字母大写
result
.
append
(
camel
.
substring
(
0
,
1
).
toUpperCase
());
result
.
append
(
camel
.
substring
(
1
).
toLowerCase
());
}
return
result
.
toString
();
}
//update-end--Author:zhoujf Date:20180503 for:TASK #2500 【代码生成器】代码生成器开发一通用模板生成功能
/**
* 将驼峰命名转化成下划线
* @param para
* @return
*/
public
static
String
camelToUnderline
(
String
para
){
if
(
para
.
length
()<
3
){
return
para
.
toLowerCase
();
}
StringBuilder
sb
=
new
StringBuilder
(
para
);
int
temp
=
0
;
//定位
//从第三个字符开始 避免命名不规范
for
(
int
i
=
2
;
i
<
para
.
length
();
i
++){
if
(
Character
.
isUpperCase
(
para
.
charAt
(
i
))){
sb
.
insert
(
i
+
temp
,
"_"
);
temp
+=
1
;
}
}
return
sb
.
toString
().
toLowerCase
();
}
/**
* 随机数
* @param place 定义随机数的位数
*/
public
static
String
randomGen
(
int
place
)
{
String
base
=
"qwertyuioplkjhgfdsazxcvbnmQAZWSXEDCRFVTGBYHNUJMIKLOP0123456789"
;
StringBuffer
sb
=
new
StringBuffer
();
Random
rd
=
new
Random
();
for
(
int
i
=
0
;
i
<
place
;
i
++)
{
sb
.
append
(
base
.
charAt
(
rd
.
nextInt
(
base
.
length
())));
}
return
sb
.
toString
();
}
/**
* 获取类的所有属性,包括父类
*
* @param object
* @return
*/
public
static
Field
[]
getAllFields
(
Object
object
)
{
Class
<?>
clazz
=
object
.
getClass
();
List
<
Field
>
fieldList
=
new
ArrayList
<>();
while
(
clazz
!=
null
)
{
fieldList
.
addAll
(
new
ArrayList
<>(
Arrays
.
asList
(
clazz
.
getDeclaredFields
())));
clazz
=
clazz
.
getSuperclass
();
}
Field
[]
fields
=
new
Field
[
fieldList
.
size
()];
fieldList
.
toArray
(
fields
);
return
fields
;
}
/**
* 将map的key全部转成小写
* @param list
* @return
*/
public
static
List
<
Map
<
String
,
Object
>>
toLowerCasePageList
(
List
<
Map
<
String
,
Object
>>
list
){
List
<
Map
<
String
,
Object
>>
select
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
row
:
list
)
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
Set
<
String
>
keySet
=
row
.
keySet
();
for
(
String
key
:
keySet
)
{
String
newKey
=
key
.
toLowerCase
();
resultMap
.
put
(
newKey
,
row
.
get
(
key
));
}
select
.
add
(
resultMap
);
}
return
select
;
}
/**
* 将entityList转换成modelList
* @param fromList
* @param tClass
* @param <F>
* @param <T>
* @return
*/
public
static
<
F
,
T
>
List
<
T
>
entityListToModelList
(
List
<
F
>
fromList
,
Class
<
T
>
tClass
){
if
(
fromList
==
null
||
fromList
.
isEmpty
()){
return
null
;
}
List
<
T
>
tList
=
new
ArrayList
<>();
for
(
F
f
:
fromList
){
T
t
=
entityToModel
(
f
,
tClass
);
tList
.
add
(
t
);
}
return
tList
;
}
public
static
<
F
,
T
>
T
entityToModel
(
F
entity
,
Class
<
T
>
modelClass
)
{
log
.
debug
(
"entityToModel : Entity属性的值赋值到Model"
);
Object
model
=
null
;
if
(
entity
==
null
||
modelClass
==
null
)
{
return
null
;
}
try
{
model
=
modelClass
.
newInstance
();
}
catch
(
InstantiationException
e
)
{
log
.
error
(
"entityToModel : 实例化异常"
,
e
);
}
catch
(
IllegalAccessException
e
)
{
log
.
error
(
"entityToModel : 安全权限异常"
,
e
);
}
BeanUtils
.
copyProperties
(
entity
,
model
);
return
(
T
)
model
;
}
/**
* 判断 list 是否为空
*
* @param list
* @return true or false
* list == null : true
* list.size() == 0 : true
*/
public
static
boolean
listIsEmpty
(
Collection
list
)
{
return
(
list
==
null
||
list
.
size
()
==
0
);
}
/**
* 判断 list 是否不为空
*
* @param list
* @return true or false
* list == null : false
* list.size() == 0 : false
*/
public
static
boolean
listIsNotEmpty
(
Collection
list
)
{
return
!
listIsEmpty
(
list
);
}
}
src/main/resources/application.yml
0 → 100644
浏览文件 @
398a7430
spring
:
mvc
:
servlet
:
load-on-startup
:
100
server
:
servlet
:
context-path
:
/inspect
port
:
8090
\ No newline at end of file
src/main/resources/lib/commons-logging.jar
0 → 100644
浏览文件 @
398a7430
File added
src/main/resources/lib/k3cloud-webapi-client.jar
0 → 100644
浏览文件 @
398a7430
File added
src/test/java/com/wang/jintaidome/JintaiDomeApplicationTests.java
0 → 100644
浏览文件 @
398a7430
package
com
.
wang
.
jintaidome
;
import
kingdee.bos.webapi.client.K3CloudApiClient
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
java.util.*
;
@SpringBootTest
@Slf4j
class
JintaiDomeApplicationTests
{
@Test
void
contextLoads
()
throws
Exception
{
}
}
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论