Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Springboot Plus
Commits
321361c9
Commit
321361c9
authored
Feb 21, 2018
by
xiandafu
Browse files
init
parent
2971e3f1
Changes
449
Show whitespace changes
Inline
Side-by-side
admin-core/src/main/java/com/ibeetl/admin/core/conf/MVCConf.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.conf
;
import
org.beetl.core.Context
;
import
org.beetl.core.Function
;
import
org.beetl.core.GroupTemplate
;
import
org.beetl.ext.spring.BeetlGroupUtilConfiguration
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.env.Environment
;
import
org.springframework.format.FormatterRegistry
;
import
org.springframework.format.datetime.DateFormatter
;
import
org.springframework.http.converter.HttpMessageConverter
;
import
org.springframework.validation.MessageCodesResolver
;
import
org.springframework.validation.Validator
;
import
org.springframework.web.method.support.HandlerMethodArgumentResolver
;
import
org.springframework.web.method.support.HandlerMethodReturnValueHandler
;
import
org.springframework.web.servlet.HandlerExceptionResolver
;
import
org.springframework.web.servlet.HandlerInterceptor
;
import
org.springframework.web.servlet.ModelAndView
;
import
org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer
;
import
org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer
;
import
org.springframework.web.servlet.config.annotation.CorsRegistry
;
import
org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer
;
import
org.springframework.web.servlet.config.annotation.InterceptorRegistry
;
import
org.springframework.web.servlet.config.annotation.PathMatchConfigurer
;
import
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
;
import
org.springframework.web.servlet.config.annotation.ViewControllerRegistry
;
import
org.springframework.web.servlet.config.annotation.ViewResolverRegistry
;
import
org.springframework.web.servlet.config.annotation.WebMvcConfigurer
;
import
com.ibeetl.admin.core.entity.CoreOrg
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.service.CoreUserService
;
import
com.ibeetl.admin.core.util.HttpRequestLocal
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Configuration
public
class
MVCConf
implements
WebMvcConfigurer
,
InitializingBean
{
public
static
final
String
DEFAULT_APP_NAME
=
"开发平台"
;
/**
* 系统名称,可以在application.properties中配置
* app.name=xxx
*/
// @Value("${app.name}")
// String appName;
// 开发用的模拟当前用户和机构
Long
useId
;
Long
orgId
;
String
mvcTestPath
;
@Autowired
Environment
env
;
@Autowired
CoreUserService
userService
;
@Autowired
BeetlGroupUtilConfiguration
beetlGroupUtilConfiguration
;
@Autowired
HttpRequestLocal
httpRequestLocal
;
@Autowired
GroupTemplate
groupTemplate
;
@Override
public
void
addInterceptors
(
InterceptorRegistry
registry
)
{
registry
.
addInterceptor
(
new
SessionInterceptor
(
httpRequestLocal
,
this
)).
addPathPatterns
(
"/**"
);
// super.addInterceptors(registry);
}
@Override
public
void
addCorsMappings
(
CorsRegistry
registry
)
{
registry
.
addMapping
(
"/**"
);
}
@Override
public
void
addFormatters
(
FormatterRegistry
registry
)
{
registry
.
addFormatter
(
new
DateFormatter
(
"yyyy-MM-dd HH:mm:ss"
));
}
@Override
public
void
afterPropertiesSet
()
throws
Exception
{
this
.
useId
=
env
.
getProperty
(
"user.id"
,
Long
.
class
);
this
.
orgId
=
env
.
getProperty
(
"user.orgId"
,
Long
.
class
);
this
.
mvcTestPath
=
env
.
getProperty
(
"mvc.test.path"
);
Map
<
String
,
Object
>
var
=
new
HashMap
<>(
5
);
String
appName
=
env
.
getProperty
(
"app.name"
);
if
(
appName
==
null
)
{
var
.
put
(
"appName"
,
DEFAULT_APP_NAME
);
}
var
.
put
(
"jsVer"
,
System
.
currentTimeMillis
());
groupTemplate
.
setSharedVars
(
var
);
}
@Override
public
void
addArgumentResolvers
(
List
<
HandlerMethodArgumentResolver
>
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
addResourceHandlers
(
ResourceHandlerRegistry
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
addReturnValueHandlers
(
List
<
HandlerMethodReturnValueHandler
>
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
addViewControllers
(
ViewControllerRegistry
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configureAsyncSupport
(
AsyncSupportConfigurer
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configureContentNegotiation
(
ContentNegotiationConfigurer
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configureDefaultServletHandling
(
DefaultServletHandlerConfigurer
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configureHandlerExceptionResolvers
(
List
<
HandlerExceptionResolver
>
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configureMessageConverters
(
List
<
HttpMessageConverter
<?>>
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configurePathMatch
(
PathMatchConfigurer
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
configureViewResolvers
(
ViewResolverRegistry
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
extendHandlerExceptionResolvers
(
List
<
HandlerExceptionResolver
>
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
void
extendMessageConverters
(
List
<
HttpMessageConverter
<?>>
arg0
)
{
// TODO Auto-generated method stub
}
@Override
public
MessageCodesResolver
getMessageCodesResolver
()
{
// TODO Auto-generated method stub
return
null
;
}
@Override
public
Validator
getValidator
()
{
// TODO Auto-generated method stub
return
null
;
}
}
class
SessionInterceptor
implements
HandlerInterceptor
{
MVCConf
conf
;
HttpRequestLocal
httpRequestLocal
;
public
SessionInterceptor
(
HttpRequestLocal
httpRequestLocal
,
MVCConf
conf
)
{
this
.
conf
=
conf
;
this
.
httpRequestLocal
=
httpRequestLocal
;
}
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
if
(
conf
.
useId
!=
null
&&
conf
.
orgId
!=
null
&&
request
.
getSession
().
getAttribute
(
CorePlatformService
.
ACCESS_CURRENT_USER
)
==
null
)
{
// 模拟用户登录,用于快速开发,未来用rember么代替?
CoreUser
user
=
conf
.
userService
.
getUserById
(
conf
.
useId
);
CoreOrg
org
=
conf
.
userService
.
getOrgById
(
conf
.
orgId
);
List
<
CoreOrg
>
orgs
=
conf
.
userService
.
getUserOrg
(
conf
.
useId
,
org
.
getId
());
request
.
getSession
().
setAttribute
(
CorePlatformService
.
ACCESS_CURRENT_USER
,
user
);
request
.
getSession
().
setAttribute
(
CorePlatformService
.
ACCESS_CURRENT_ORG
,
org
);
request
.
getSession
().
setAttribute
(
CorePlatformService
.
ACCESS_USER_ORGS
,
orgs
);
request
.
getSession
().
setAttribute
(
"ip"
,
request
.
getRemoteHost
());
}
httpRequestLocal
.
set
(
request
);
return
true
;
}
@Override
public
void
postHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
ModelAndView
modelAndView
)
throws
Exception
{
// do nothing
}
@Override
public
void
afterCompletion
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
throws
Exception
{
// do nothing
}
}
admin-core/src/main/java/com/ibeetl/admin/core/conf/PasswordConfig.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.conf
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnBean
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService
;
/**
* 描述: 密码工具,系统默认采用明文
*
* @author : xiandafu
*/
@Configuration
@ConditionalOnMissingBean
(
PasswordEncryptService
.
class
)
public
class
PasswordConfig
{
public
static
interface
PasswordEncryptService
{
public
String
password
(
String
pwd
);
}
public
static
class
DefaultEncryptBean
implements
PasswordEncryptService
{
@Override
public
String
password
(
String
pwd
)
{
// 采用明文,系统应该提供自己的EncryptBean实现以代替默认
return
pwd
;
}
}
@Bean
public
PasswordEncryptService
passwordEncryptBean
(){
return
new
DefaultEncryptBean
();
}
}
admin-core/src/main/java/com/ibeetl/admin/core/conf/RbacAnnotationConfig.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.conf
;
import
java.lang.reflect.Method
;
import
java.util.Date
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.reflect.MethodSignature
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.core.env.Environment
;
import
org.springframework.stereotype.Component
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.ibeetl.admin.core.annotation.Function
;
import
com.ibeetl.admin.core.entity.CoreAudit
;
import
com.ibeetl.admin.core.entity.CoreFunction
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
com.ibeetl.admin.core.service.CoreAuditService
;
import
com.ibeetl.admin.core.service.CorePlatformService
;
import
com.ibeetl.admin.core.util.FunctionLocal
;
import
com.ibeetl.admin.core.util.HttpRequestLocal
;
import
com.ibeetl.admin.core.util.PlatformException
;
@Aspect
@Component
public
class
RbacAnnotationConfig
{
@Autowired
CorePlatformService
platformService
;
@Autowired
CoreAuditService
sysAuditService
;
@Autowired
HttpRequestLocal
httpRequestLocal
;
@Autowired
Environment
env
;
ObjectMapper
jsonMapper
=
new
ObjectMapper
();
private
final
Log
log
=
LogFactory
.
getLog
(
this
.
getClass
());
@org
.
aspectj
.
lang
.
annotation
.
Around
(
"within(@org.springframework.stereotype.Controller *) && @annotation(function)"
)
public
Object
functionAccessCheck
(
final
ProceedingJoinPoint
pjp
,
Function
function
)
throws
Throwable
{
// debug
String
funCode
=
null
;
CoreUser
user
=
null
;
Method
m
=
null
;
try
{
if
(
function
!=
null
)
{
funCode
=
function
.
value
();
user
=
platformService
.
getCurrentUser
();
Long
orgId
=
platformService
.
getCurrentOrgId
();
boolean
access
=
platformService
.
canAcessFunction
(
user
.
getId
(),
orgId
,
funCode
);
if
(!
access
)
{
log
.
warn
(
jsonMapper
.
writeValueAsString
(
user
)
+
"试图访问未授权功能 "
+
funCode
);
throw
new
PlatformException
(
"试图访问未授权功能"
);
}
FunctionLocal
.
set
(
funCode
);
}
Object
o
=
pjp
.
proceed
();
if
(
function
!=
null
)
{
MethodSignature
ms
=
(
MethodSignature
)
pjp
.
getSignature
();
m
=
ms
.
getMethod
();
createAudit
(
funCode
,
user
,
true
,
""
,
m
);
}
return
o
;
}
catch
(
Throwable
e
)
{
if
(
function
!=
null
)
{
createAudit
(
funCode
,
user
,
false
,
e
.
getMessage
(),
m
);
}
throw
e
;
}
}
private
void
createAudit
(
String
functionCode
,
CoreUser
user
,
boolean
success
,
String
msg
,
Method
m
)
{
boolean
enable
=
env
.
getProperty
(
"audit.enable"
,
Boolean
.
class
,
false
);
if
(!
enable
)
{
return
;
}
if
(
filter
(
m
,
functionCode
)){
return
;
}
CoreAudit
audit
=
new
CoreAudit
();
String
functionName
=
null
;
CoreFunction
fun
=
this
.
platformService
.
getFunction
(
functionCode
);
if
(
fun
==
null
)
{
// 没有在数据库定义,但写在代码里了
log
.
warn
(
functionCode
+
" 未在数据库里定义"
);
functionName
=
"未定义"
;
}
else
{
functionName
=
fun
.
getName
();
}
audit
.
setCreateTime
(
new
Date
());
audit
.
setFunctionCode
(
functionCode
);
audit
.
setFunctionName
(
functionName
);
audit
.
setUserId
(
user
.
getId
());
audit
.
setSuccess
(
success
?
1
:
0
);
audit
.
setUserName
(
user
.
getName
());
audit
.
setMessage
(
msg
);
audit
.
setIp
(
httpRequestLocal
.
getRequestIP
());
sysAuditService
.
save
(
audit
);
}
private
boolean
filter
(
Method
m
,
String
functionCode
){
if
(
functionCode
.
startsWith
(
"audit."
)){
return
true
;
}
String
uri
=
httpRequestLocal
.
getRequestURI
();
if
(
uri
!=
null
&&
uri
.
endsWith
(
"/index/condition.json"
)){
return
true
;
}
else
{
return
false
;
}
}
}
admin-core/src/main/java/com/ibeetl/admin/core/conf/RbacDataAccessConfig.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.conf
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
com.ibeetl.admin.core.rbac.DataAccessFactory
;
import
com.ibeetl.admin.core.rbac.da.DefaultDataAccessFactory
;
@Configuration
public
class
RbacDataAccessConfig
{
@ConditionalOnMissingBean
(
DataAccessFactory
.
class
)
@Bean
public
DataAccessFactory
dataAccessFatory
(
ApplicationContext
applicationContext
)
{
return
new
DefaultDataAccessFactory
(
applicationContext
);
}
}
admin-core/src/main/java/com/ibeetl/admin/core/conf/RemoteServiceLocatorConfig.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.conf
;
import
java.io.File
;
import
java.io.FileReader
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Properties
;
import
java.util.Random
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.apache.curator.framework.CuratorFramework
;
import
org.apache.curator.x.discovery.ServiceDiscovery
;
import
org.apache.curator.x.discovery.ServiceDiscoveryBuilder
;
import
org.apache.curator.x.discovery.ServiceInstance
;
import
org.apache.curator.x.discovery.ServiceInstanceBuilder
;
import
org.apache.curator.x.discovery.details.JsonInstanceSerializer
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.env.Environment
;
import
com.ibeetl.admin.core.service.CoreServiceLocator
;
import
com.ibeetl.admin.core.util.PlatformException
;
@Configuration
public
class
RemoteServiceLocatorConfig
{
Log
log
=
LogFactory
.
getLog
(
this
.
getClass
());
@Configuration
@ConditionalOnProperty
(
name
=
"zookeeper.enabled"
,
havingValue
=
"true"
)
class
ZkConfig
{
@Bean
public
CoreServiceLocator
zkServiceLocator
(
Environment
env
,
CuratorFramework
client
){
RemoteServiceLocator
loc
=
new
RemoteServiceLocator
(
client
);
log
.
info
(
"地服务注册和发现:"
+
client
.
getZookeeperClient
().
getCurrentConnectionString
());
return
loc
;
}
}
@Configuration
@ConditionalOnProperty
(
name
=
"zookeeper.enabled"
,
havingValue
=
"false"
,
matchIfMissing
=
true
)
class
LocalConfig
{
@Bean
public
CoreServiceLocator
localServiceLocator
(
Environment
env
){
LocalServiceLocator
loc
=
new
LocalServiceLocator
();
log
.
info
(
"没有配置zookeeper.*,使用模拟本地服务注册和发现:"
+
loc
.
configFile
);
return
loc
;
}
}
}
/**
* zookeeper 服务注册中心
* @author lijiazhi
*
*/
class
RemoteServiceLocator
implements
CoreServiceLocator
{
CuratorFramework
client
;
Log
log
=
LogFactory
.
getLog
(
this
.
getClass
());
public
RemoteServiceLocator
(
CuratorFramework
client
){
this
.
client
=
client
;
}
@Override
public
void
addServiceURI
(
String
path
,
String
url
)
{
try
{
ServiceInstanceBuilder
<
Map
>
service
=
ServiceInstance
.
builder
();
service
.
address
(
""
);
service
.
port
(
0
);
service
.
name
(
path
);
Map
config
=
new
HashMap
();
config
.
put
(
"url"
,
url
);
service
.
payload
(
config
);
ServiceInstance
<
Map
>
instance
=
service
.
build
();
ServiceDiscovery
<
Map
>
serviceDiscovery
=
ServiceDiscoveryBuilder
.
builder
(
Map
.
class
).
client
(
client
)
.
serializer
(
new
JsonInstanceSerializer
<
Map
>(
Map
.
class
)).
basePath
(
"/service"
).
build
();
// 服务注册
serviceDiscovery
.
registerService
(
instance
);
serviceDiscovery
.
start
();
}
catch
(
Exception
ex
){
log
.
warn
(
ex
.
getMessage
(),
ex
);
throw
new
PlatformException
(
"服务注册中心 出错"
,
ex
);
}
}
@Override
public
String
getServiceURI
(
String
path
)
{
ServiceDiscovery
<
Map
>
serviceDiscovery
=
ServiceDiscoveryBuilder
.
builder
(
Map
.
class
).
client
(
client
)
.
serializer
(
new
JsonInstanceSerializer
<
Map
>(
Map
.
class
)).
basePath
(
"/service"
).
build
();
try
{
serviceDiscovery
.
start
();
}
catch
(
Exception
e
)
{
throw
new
PlatformException
(
"未发现服务注册中心 "
);
}
Collection
<
ServiceInstance
<
Map
>>
all
;
try
{
all
=
serviceDiscovery
.
queryForInstances
(
path
);
}
catch
(
Exception
e
)
{
log
.
warn
(
"未发现服务注服务 "
+
path
);
throw
new
PlatformException
(
"未发现服务注服务 "
+
path
);
}
if
(
all
.
size
()
==
0
)
{
log
.
warn
(
"未发现服务注服务 "
+
path
);
throw
new
PlatformException
(
"未发现服务注服务 "
+
path
);
}
else
{
//todo 优化:能缓存,官方有缓存方法,以后补上
// 随机选一个
int
size
=
all
.
size
();
int
one
=
new
Random
().
nextInt
(
size
);
ServiceInstance
<
Map
>
service
=
new
ArrayList
<
ServiceInstance
<
Map
>>(
all
).
get
(
one
);
return
(
String
)
service
.
getPayload
().
get
(
"url"
);
}
}
}
/**
* 开发环境下,本地俩个系统注册服务,发现服务的方式。通过starter.service.properties文件完成
* @author lijiazhi
*
*/
class
LocalServiceLocator
implements
CoreServiceLocator
{
String
home
=
System
.
getProperty
(
"user.home"
);
//单机用一个配置文件完成,多机情况得使用zookeeper
String
configFile
=
null
;
public
LocalServiceLocator
(){
configFile
=
home
+
File
.
separator
+
"starter.service.properties"
;
}
@Override
public
void
addServiceURI
(
String
path
,
String
url
)
{
check
();
Properties
ps
=
new
Properties
();
try
{
ps
.
load
(
new
FileReader
(
new
File
(
configFile
)));
ps
.
setProperty
(
path
,
url
);
ps
.
store
(
new
FileWriter
(
new
File
(
configFile
)),
""
);
}
catch
(
IOException
e
)
{
throw
new
PlatformException
(
"未发现服务注册中心 "
+
e
.
getMessage
());
}
}
@Override
public
String
getServiceURI
(
String
path
)
{
check
();
Properties
ps
=
new
Properties
();
try
{
ps
.
load
(
new
FileReader
(
new
File
(
configFile
)));
String
url
=
ps
.
getProperty
(
path
);
if
(
StringUtils
.
isEmpty
(
url
)){
throw
new
PlatformException
(
"未发现服务注服务 "
);
}
return
url
;
}
catch
(
IOException
e
)
{
throw
new
PlatformException
(
"未发现服务注册中心 "
+
e
.
getMessage
());
}
}
protected
void
check
(){
File
file
=
new
File
(
configFile
);
if
(
file
.
exists
()){
return
;
}
try
{
file
.
createNewFile
();
}
catch
(
IOException
e
)
{
// TODO Auto-generated catch block
throw
new
PlatformException
(
"未发现服务注册中心 "
+
e
.
getMessage
(),
e
);
}
}
}
admin-core/src/main/java/com/ibeetl/admin/core/conf/ZookeeperConfig.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.conf
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.apache.curator.RetryPolicy
;
import
org.apache.curator.framework.CuratorFramework
;
import
org.apache.curator.framework.CuratorFrameworkFactory
;
import
org.apache.curator.retry.ExponentialBackoffRetry
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.AutoConfigureBefore
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnClass
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnProperty
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.env.Environment
;
@Configuration
@ConditionalOnClass
(
CuratorFramework
.
class
)
@ConditionalOnProperty
(
name
=
"zookeeper.enabled"
,
havingValue
=
"true"
)
public
class
ZookeeperConfig
{
Log
log
=
LogFactory
.
getLog
(
this
.
getClass
());
@Autowired
Environment
env
;
@Bean
public
CuratorFramework
getCuratorFramework
()
throws
Exception
{
String
zkUrl
=
env
.
getProperty
(
"zookeeper.url"
);
RetryPolicy
retryPolicy
=
new
ExponentialBackoffRetry
(
1000
,
3
);
CuratorFramework
client
=
CuratorFrameworkFactory
.
newClient
(
zkUrl
,
retryPolicy
);
client
.
start
();
return
client
;
}
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreAuditDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreAudit
;
/*
*
* gen by starter mapper 2017-08-01
*/
@SqlResource
(
"core.coreAudit"
)
public
interface
CoreAuditDao
extends
BaseMapper
<
CoreAudit
>
{
}
\ No newline at end of file
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreDictDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
java.util.List
;
import
java.util.Map
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.annotatoin.SqlStatement
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreDict
;
/**
* 字典DAO接口
*/
@SqlResource
(
"core.coreDict"
)
public
interface
CoreDictDao
extends
BaseMapper
<
CoreDict
>
{
/**
* 查询某个类型下的字典集合
* @param type 字典类型
* @return
*/
List
<
CoreDict
>
findAllList
(
String
type
);
/**
* 根据条件查询
* @param query
*/
void
queryByCondtion
(
PageQuery
query
);
/**
* 查询字段类型列表
* @param delFlag 删除标记
* @return
*/
@SqlStatement
(
returnType
=
Map
.
class
)
List
<
Map
<
String
,
String
>>
findTypeList
(
int
delFlag
);
/**
* 根据父节点Id查询子节点数据
* @param id 父节点id
* @return
*/
List
<
CoreDict
>
findChildByParent
(
String
parentValue
);
int
bathDelByValue
(
List
<
String
>
values
);
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreFunctionDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.Sql
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreFunction
;
@SqlResource
(
"core.coreFunction"
)
public
interface
CoreFunctionDao
extends
BaseMapper
<
CoreFunction
>
{
@Sql
(
"select * from core_function where code = ?"
)
CoreFunction
getFunctionByCode
(
@Param
(
value
=
"code"
)
String
code
);
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreMenuDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.annotatoin.SqlStatement
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreMenu
;
import
java.util.List
;
@SqlResource
(
"core.coreMenu"
)
public
interface
CoreMenuDao
extends
BaseMapper
<
CoreMenu
>
{
public
void
queryByCondtion
(
PageQuery
query
);
public
void
clearMenuFunction
(
List
<
Long
>
functionIds
);
public
List
<
CoreMenu
>
allMenuWithURL
();
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreOrgDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
java.util.List
;
import
org.beetl.sql.core.annotatoin.Sql
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreOrg
;
@SqlResource
(
"core.coreOrg"
)
public
interface
CoreOrgDao
extends
BaseMapper
<
CoreOrg
>
{
List
<
CoreOrg
>
queryOrgByUser
(
Long
userId
);
List
<
String
>
queryAllOrgCode
(
List
<
Long
>
orgIds
);
@Sql
(
"select * from core_org where parent_org_id is null"
)
CoreOrg
getRoot
();
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreRoleDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreRole
;
import
java.util.List
;
@SqlResource
(
"core.coreRole"
)
public
interface
CoreRoleDao
extends
BaseMapper
<
CoreRole
>
{
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreRoleFunctionDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.annotatoin.SqlStatement
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreRoleFunction
;
import
java.util.List
;
@SqlResource
(
"core.coerRoleFunction"
)
public
interface
CoreRoleFunctionDao
extends
BaseMapper
<
CoreRoleFunction
>
{
List
<
CoreRoleFunction
>
getRoleFunction
(
Long
userId
,
Long
orgId
,
String
code
);
List
<
String
>
getRoleChildrenFunction
(
Long
userId
,
Long
orgId
,
Long
parentId
);
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreRoleMenuDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.annotatoin.SqlStatement
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreRoleMenu
;
import
java.util.List
;
@SqlResource
(
"core.coreRoleMenu"
)
public
interface
CoreRoleMenuDao
extends
BaseMapper
<
CoreRoleMenu
>
{
/**
* 根据用户ID,机构ID查询菜单
* @param userId 用户id
* @param orgId 机构id
* @return
*/
List
<
Long
>
queryMenuByUser
(
Long
userId
,
Long
orgId
);
/**
* 根据菜单id删除角色和菜单关系
* @param ids
*/
void
deleteRoleMenu
(
List
<
Long
>
ids
);
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreUserDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.Param
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
java.util.List
;
@SqlResource
(
"core.coreUser"
)
public
interface
CoreUserDao
extends
BaseMapper
<
CoreUser
>
{
/**
* 根据角色编码查询用户集合
* @param roleCode 角色编码
* @return
*/
List
<
CoreUser
>
getUserByRole
(
String
roleCode
);
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreUserRoleDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.engine.PageQuery
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreUserRole
;
@SqlResource
(
"core.coresUserRole"
)
public
interface
CoreUserRoleDao
extends
BaseMapper
<
CoreUserRole
>
{
}
admin-core/src/main/java/com/ibeetl/admin/core/dao/CoreWorkflowDao.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.dao
;
import
org.beetl.sql.core.annotatoin.SqlResource
;
import
org.beetl.sql.core.mapper.BaseMapper
;
import
com.ibeetl.admin.core.entity.CoreUser
;
import
java.util.List
;
/**
* 业务侧工作流的基本功能,工作流的一些功能将在业务侧完成,比如选人操作
* @author lijiazhi
*/
@SqlResource
(
"core.workflow"
)
public
interface
CoreWorkflowDao
extends
BaseMapper
{
/**
* 根据角色id,机构id查询用户集合
* @param roleId 角色id
* @param orgs 机构id
* @return
*/
List
<
CoreUser
>
queryUsersByRole
(
Long
roleId
,
List
<
Long
>
orgs
);
}
admin-core/src/main/java/com/ibeetl/admin/core/entity/BaseEntity.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.entity
;
import
java.util.Map
;
import
org.beetl.sql.core.TailBean
;
import
com.fasterxml.jackson.annotation.JsonAnyGetter
;
import
com.fasterxml.jackson.annotation.JsonAnySetter
;
/**
* 描述:用于辅助序列化beetlsql 的TailBean
* @author : xiandafu
*/
public
class
BaseEntity
extends
TailBean
implements
java
.
io
.
Serializable
{
protected
final
static
String
ORACLE_CORE_SEQ_NAME
=
"core-seq"
;
protected
final
static
String
ORACLE_AUDIT_SEQ_NAME
=
"audit-seq"
;
@JsonAnyGetter
public
Map
<
String
,
Object
>
getTails
(){
return
super
.
getTails
();
}
}
admin-core/src/main/java/com/ibeetl/admin/core/entity/CoreAudit.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.entity
;
import
java.util.Date
;
import
java.util.Map
;
import
javax.validation.constraints.NotNull
;
import
org.beetl.sql.core.annotatoin.AutoID
;
import
org.beetl.sql.core.annotatoin.SeqID
;
import
com.fasterxml.jackson.annotation.JsonAnyGetter
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
public
class
CoreAudit
extends
BaseEntity
{
@SeqID
(
name
=
"ORACLE_AUDIT_SEQ_NAME"
)
@AutoID
@NotNull
(
message
=
"ID不能为空"
,
groups
=
ValidateConfig
.
UPDATE
.
class
)
protected
Long
id
;
//删除标识
@JsonIgnore
protected
Integer
delFlag
;
//创建时间
private
Integer
success
;
private
String
functionCode
;
private
String
functionName
;
private
String
ip
;
private
String
message
;
private
String
userName
;
private
Long
userId
;
protected
Date
createTime
;
public
CoreAudit
()
{
}
public
Integer
getSuccess
(){
return
success
;
}
public
void
setSuccess
(
Integer
success
){
this
.
success
=
success
;
}
public
String
getFunctionCode
(){
return
functionCode
;
}
public
void
setFunctionCode
(
String
functionCode
){
this
.
functionCode
=
functionCode
;
}
public
String
getFunctionName
(){
return
functionName
;
}
public
void
setFunctionName
(
String
functionName
){
this
.
functionName
=
functionName
;
}
public
String
getIp
(){
return
ip
;
}
public
void
setIp
(
String
ip
){
this
.
ip
=
ip
;
}
public
String
getMessage
(){
return
message
;
}
public
void
setMessage
(
String
message
){
this
.
message
=
message
;
}
public
String
getUserName
(){
return
userName
;
}
public
void
setUserName
(
String
userName
){
this
.
userName
=
userName
;
}
public
Long
getUserId
(){
return
userId
;
}
public
void
setUserId
(
Long
userId
){
this
.
userId
=
userId
;
}
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
}
\ No newline at end of file
admin-core/src/main/java/com/ibeetl/admin/core/entity/CoreDict.java
0 → 100644
View file @
321361c9
package
com.ibeetl.admin.core.entity
;
import
java.util.Date
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
org.beetl.sql.core.annotatoin.AssignID
;
import
org.beetl.sql.core.annotatoin.AutoID
;
import
org.beetl.sql.core.annotatoin.SeqID
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonView
;
import
com.ibeetl.admin.core.util.ValidateConfig
;
/**
* 描述: 字典
* @author : xiandafu
*/
public
class
CoreDict
extends
BaseEntity
{
@AssignID
private
String
value
;
// 数据值
//删除标识
@JsonIgnore
protected
Integer
delFlag
=
0
;
//创建时间
protected
Date
createTime
;
@NotBlank
(
message
=
"字典类型不能为空"
,
groups
=
ValidateConfig
.
ADD
.
class
)
@JsonView
(
TypeListView
.
class
)
private
String
type
;
//类型
@JsonView
(
TypeListView
.
class
)
@NotBlank
(
message
=
"字典类型描述不能为空"
)
private
String
typeName
;
//类型描述
@NotBlank
(
message
=
"字典值不能为空"
,
groups
=
ValidateConfig
.
ADD
.
class
)
@NotBlank
(
message
=
"字典值名称不能为空"
)
private
String
name
;
// 标签名
private
Integer
sort
;
// 排序
private
String
parent
;
//父Id
private
String
remark
;
//备注
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
String
getTypeName
()
{
return
typeName
;
}
public
void
setTypeName
(
String
typeName
)
{
this
.
typeName
=
typeName
;
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Integer
getSort
()
{
return
sort
;
}
public
void
setSort
(
Integer
sort
)
{
this
.
sort
=
sort
;
}
public
String
getParent
()
{
return
parent
;
}
public
void
setParent
(
String
parent
)
{
this
.
parent
=
parent
;
}
public
String
getRemark
()
{
return
remark
;
}
public
void
setRemark
(
String
remark
)
{
this
.
remark
=
remark
;
}
public
Integer
getDelFlag
()
{
return
delFlag
;
}
public
void
setDelFlag
(
Integer
delFlag
)
{
this
.
delFlag
=
delFlag
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
interface
TypeListView
{
}
}
Prev
1
…
5
6
7
8
9
10
11
12
13
…
23
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment