Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
framework-tools
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 3647d763
authored
Jul 01, 2024
by
henry
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加swagger的包
1 parent
06e003eb
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
842 additions
and
16 deletions
.idea/encodings.xml
arch-overall/src/main/java/org/arch/Main.java
clouds/mybatis/pom.xml
clouds/mybatis/src/main/java/org/arch/annotation/Query.java
clouds/mybatis/src/main/java/org/arch/annotation/SwaggerDisplayEnum.java
clouds/mybatis/src/main/java/org/arch/common/entity/BaseEntity.java
clouds/mybatis/src/main/java/org/arch/common/entity/BasePageEntity.java
clouds/mybatis/src/main/java/org/arch/common/mapper/CoreMapper.java
clouds/mybatis/src/main/java/org/arch/common/service/BaseService.java
clouds/mybatis/src/main/java/org/arch/common/service/impl/BaseServiceImpl.java
clouds/mybatis/src/main/java/org/arch/common/utils/QueryHelpPlus.java
clouds/mybatis/src/main/java/org/arch/common/web/param/OrderQueryParam.java
clouds/mybatis/src/main/java/org/arch/common/web/param/QueryParam.java
clouds/mybatis/src/main/java/org/arch/common/web/vo/Paging.java
clouds/mybatis/src/main/java/org/arch/config/JsonArrayHandler.java
clouds/mybatis/src/main/java/org/arch/config/JsonTypeHandler.java
clouds/mybatis/src/main/java/org/arch/config/MyMetaHandler.java
clouds/mybatis/src/main/java/org/arch/config/MybatisConfig.java
clouds/mybatis/src/main/resources/META-INF/spring.factories
clouds/pom.xml
pom.xml
.idea/encodings.xml
View file @
3647d76
...
@@ -13,6 +13,8 @@
...
@@ -13,6 +13,8 @@
<file
url=
"file://$PROJECT_DIR$/arch-sys/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/arch-sys/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/file-store/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/file-store/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/file-store/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/file-store/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/mybatis/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/mybatis/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/office/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/office/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/office/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/office/src/main/resources"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/src/main/java"
charset=
"UTF-8"
/>
<file
url=
"file://$PROJECT_DIR$/clouds/src/main/java"
charset=
"UTF-8"
/>
...
...
arch-overall/src/main/java/org/arch/Main.java
deleted
100644 → 0
View file @
06e003e
package
org
.
arch
;
public
class
Main
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Hello world!"
);
}
}
\ No newline at end of file
clouds/mybatis/pom.xml
0 → 100644
View file @
3647d76
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>
4.0.0
</modelVersion>
<parent>
<groupId>
org.arch
</groupId>
<artifactId>
clouds
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<artifactId>
mybatis
</artifactId>
<name>
mybatis组件
</name>
<properties>
<maven.compiler.source>
8
</maven.compiler.source>
<maven.compiler.target>
8
</maven.compiler.target>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>
com.github.yulichang
</groupId>
<artifactId>
mybatis-plus-join-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
com.baomidou
</groupId>
<artifactId>
mybatis-plus-extension
</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>
com.github.pagehelper
</groupId>
<artifactId>
pagehelper-spring-boot-starter
</artifactId>
<version>
1.2.5
</version>
<exclusions>
<exclusion>
<artifactId>
mybatis-spring
</artifactId>
<groupId>
org.mybatis
</groupId>
</exclusion>
<exclusion>
<artifactId>
mybatis
</artifactId>
<groupId>
org.mybatis
</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
\ No newline at end of file
clouds/mybatis/src/main/java/org/arch/annotation/Query.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* @author Zheng Jie
* @date 2019-6-4 13:52:30
*/
@Target
(
ElementType
.
FIELD
)
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
Query
{
// Dong ZhaoYang 2017/8/7 基本对象的属性名
String
propName
()
default
""
;
// Dong ZhaoYang 2017/8/7 查询方式
Type
type
()
default
Type
.
EQUAL
;
/**
* 多字段模糊搜索,仅支持String类型字段,多个用逗号隔开, 如@Query(blurry = "email,username")
*/
String
blurry
()
default
""
;
enum
Type
{
// jie 2019/6/4 相等
EQUAL
// Dong ZhaoYang 2017/8/7 大于等于
,
GREATER_THAN
// Dong ZhaoYang 2017/8/7 小于等于
,
LESS_THAN
// Dong ZhaoYang 2017/8/7 中模糊查询
,
INNER_LIKE
// Dong ZhaoYang 2017/8/7 左模糊查询
,
LEFT_LIKE
// Dong ZhaoYang 2017/8/7 右模糊查询
,
RIGHT_LIKE
// Dong ZhaoYang 2017/8/7 小于
,
LESS_THAN_NQ
// jie 2019/6/4 包含
,
IN
// 不等于
,
NOT_EQUAL
// between
,
BETWEEN
// 不为空
,
NOT_NULL
// 查询时间
,
UNIX_TIMESTAMP
}
}
clouds/mybatis/src/main/java/org/arch/annotation/SwaggerDisplayEnum.java
0 → 100644
View file @
3647d76
package
org
.
arch
.
annotation
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* 需要swagger展示的枚举注释
*
*/
@Target
({
ElementType
.
TYPE
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
SwaggerDisplayEnum
{
/**
* 所有value值,按顺序用分号【;】隔开
*/
String
valueNames
()
default
"默认value值"
;
/**
* 所有descp值,按顺序用分号【;】隔开,注意对应value的顺序
*/
String
descpNames
()
default
"默认描述值"
;
}
\ No newline at end of file
clouds/mybatis/src/main/java/org/arch/common/entity/BaseEntity.java
0 → 100644
View file @
3647d76
package
org
.
arch
.
common
.
entity
;
import
com.baomidou.mybatisplus.annotation.FieldFill
;
import
com.baomidou.mybatisplus.annotation.OrderBy
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableLogic
;
import
com.baomidou.mybatisplus.extension.activerecord.Model
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
java.util.Date
;
/**
* @author makejava
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
@ApiModel
(
"BaseEntityDO对象"
)
public
abstract
class
BaseEntity
extends
Model
{
@ApiModelProperty
(
value
=
"逻辑删除标记(0:显示;1:隐藏)"
)
@TableLogic
private
Integer
delFlag
=
0
;
@ApiModelProperty
(
value
=
"创建日期"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@TableField
(
fill
=
FieldFill
.
INSERT
)
@OrderBy
private
Date
createTime
;
@ApiModelProperty
(
value
=
"创建人"
)
private
Long
createMan
;
@ApiModelProperty
(
value
=
"最后一次修改时间"
)
@DateTimeFormat
(
pattern
=
"yyyy-MM-dd"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
)
@TableField
(
fill
=
FieldFill
.
INSERT_UPDATE
)
private
Date
lastUpdateTime
;
@ApiModelProperty
(
value
=
"最后一次修改人"
)
private
Long
lastUpdateMan
;
}
clouds/mybatis/src/main/java/org/arch/common/entity/BasePageEntity.java
0 → 100644
View file @
3647d76
package
org
.
arch
.
common
.
entity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* 分页实体
*
* @author admin
* @date 2024/01/02
*/
@Data
@ApiModel
(
"BasePageEntity"
)
public
abstract
class
BasePageEntity
implements
Serializable
{
@ApiModelProperty
(
value
=
"当前页"
)
private
Integer
current
=
1
;
@ApiModelProperty
(
value
=
"每页显示条数"
)
private
Integer
pageSize
=
10
;
}
clouds/mybatis/src/main/java/org/arch/common/mapper/CoreMapper.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
/**
* @param <T>
* @author LionCity
*/
public
interface
CoreMapper
<
T
>
extends
BaseMapper
<
T
>
{
}
clouds/mybatis/src/main/java/org/arch/common/service/BaseService.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
service
;
import
com.baomidou.mybatisplus.extension.service.IService
;
public
interface
BaseService
<
T
>
extends
IService
<
T
>
{
}
clouds/mybatis/src/main/java/org/arch/common/service/impl/BaseServiceImpl.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.eadc.common.service.BaseService
;
import
com.eadc.common.web.param.OrderQueryParam
;
import
com.eadc.common.web.param.QueryParam
;
import
com.github.pagehelper.PageHelper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @author hupeng
* @since 2019-10-16
*/
@Slf4j
@SuppressWarnings
(
"unchecked"
)
public
abstract
class
BaseServiceImpl
<
M
extends
BaseMapper
<
T
>,
T
>
extends
ServiceImpl
<
M
,
T
>
implements
BaseService
<
T
>
{
protected
Page
setPageParam
(
QueryParam
queryParam
)
{
return
setPageParam
(
queryParam
,
null
);
}
protected
Page
setPageParam
(
QueryParam
queryParam
,
OrderItem
defaultOrder
)
{
Page
page
=
new
Page
();
// 设置当前页码
page
.
setCurrent
(
queryParam
.
getPage
());
// 设置页大小
page
.
setSize
(
queryParam
.
getLimit
());
/**
* 如果是queryParam是OrderQueryParam,并且不为空,则使用前端排序
* 否则使用默认排序
*/
if
(
queryParam
instanceof
OrderQueryParam
){
OrderQueryParam
orderQueryParam
=
(
OrderQueryParam
)
queryParam
;
List
<
OrderItem
>
orderItems
=
orderQueryParam
.
getOrders
();
if
(
CollectionUtils
.
isEmpty
(
orderItems
)){
page
.
setOrders
(
Arrays
.
asList
(
defaultOrder
));
}
else
{
page
.
setOrders
(
orderItems
);
}
}
else
{
page
.
setOrders
(
Arrays
.
asList
(
defaultOrder
));
}
return
page
;
}
protected
void
getPage
(
Pageable
pageable
)
{
String
order
=
null
;
if
(
pageable
.
getSort
()!=
null
){
order
=
pageable
.
getSort
().
toString
();
order
=
order
.
replace
(
":"
,
""
);
if
(
"UNSORTED"
.
equals
(
order
)){
order
=
"id desc"
;
}
}
PageHelper
.
startPage
(
pageable
.
getPageNumber
()+
1
,
pageable
.
getPageSize
(),
order
);
}
}
clouds/mybatis/src/main/java/org/arch/common/utils/QueryHelpPlus.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
utils
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.eadc.annotation.Query
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.lang.reflect.Field
;
import
java.text.SimpleDateFormat
;
import
java.util.*
;
/**
* @author Zheng Jie
* @date 2019-6-4 14:59:48
*/
@Slf4j
@SuppressWarnings
({
"unchecked"
,
"all"
})
public
class
QueryHelpPlus
{
public
static
<
R
,
Q
>
QueryWrapper
getPredicate
(
R
obj
,
Q
query
)
{
QueryWrapper
<
R
>
queryWrapper
=
new
QueryWrapper
<
R
>();
if
(
query
==
null
)
{
return
queryWrapper
;
}
try
{
List
<
Field
>
fields
=
getAllFields
(
query
.
getClass
(),
new
ArrayList
<>());
for
(
Field
field
:
fields
)
{
boolean
accessible
=
field
.
isAccessible
();
field
.
setAccessible
(
true
);
Query
q
=
field
.
getAnnotation
(
Query
.
class
);
if
(
q
!=
null
)
{
String
propName
=
q
.
propName
();
String
blurry
=
q
.
blurry
();
String
attributeName
=
isBlank
(
propName
)
?
field
.
getName
()
:
propName
;
attributeName
=
humpToUnderline
(
attributeName
);
Class
<?>
fieldType
=
field
.
getType
();
Object
val
=
field
.
get
(
query
);
if
(
Objects
.
isNull
(
val
)
||
""
.
equals
(
val
))
{
continue
;
}
// 模糊多字段
if
(
StringUtils
.
isNotEmpty
(
blurry
))
{
String
[]
blurrys
=
blurry
.
split
(
","
);
//queryWrapper.or();
queryWrapper
.
and
(
wrapper
->
{
for
(
int
i
=
0
;
i
<
blurrys
.
length
;
i
++)
{
String
column
=
humpToUnderline
(
blurrys
[
i
]);
//if(i!=0){
wrapper
.
or
();
//}
wrapper
.
like
(
column
,
val
.
toString
());
}
});
continue
;
}
String
finalAttributeName
=
attributeName
;
switch
(
q
.
type
())
{
case
EQUAL:
//queryWrapper.and(wrapper -> wrapper.eq(finalAttributeName, val));
queryWrapper
.
eq
(
attributeName
,
val
);
break
;
case
GREATER_THAN:
queryWrapper
.
ge
(
finalAttributeName
,
val
);
break
;
case
LESS_THAN:
queryWrapper
.
le
(
finalAttributeName
,
val
);
break
;
case
LESS_THAN_NQ:
queryWrapper
.
lt
(
finalAttributeName
,
val
);
break
;
case
INNER_LIKE:
queryWrapper
.
like
(
finalAttributeName
,
val
);
break
;
case
LEFT_LIKE:
queryWrapper
.
likeLeft
(
finalAttributeName
,
val
);
break
;
case
RIGHT_LIKE:
queryWrapper
.
likeRight
(
finalAttributeName
,
val
);
break
;
case
IN:
if
(!
CollectionUtils
.
isEmpty
((
Collection
<
Long
>)
val
))
{
queryWrapper
.
in
(
finalAttributeName
,
(
Collection
<
Long
>)
val
);
}
break
;
case
NOT_EQUAL:
queryWrapper
.
ne
(
finalAttributeName
,
val
);
break
;
case
NOT_NULL:
queryWrapper
.
isNotNull
(
finalAttributeName
);
break
;
case
BETWEEN:
List
<
Object
>
between
=
new
ArrayList
<>((
List
<
Object
>)
val
);
queryWrapper
.
between
(
finalAttributeName
,
between
.
get
(
0
),
between
.
get
(
1
));
break
;
case
UNIX_TIMESTAMP:
List
<
Object
>
UNIX_TIMESTAMP
=
new
ArrayList
<>((
List
<
Object
>)
val
);
if
(!
UNIX_TIMESTAMP
.
isEmpty
()){
SimpleDateFormat
fm
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
long
time1
=
fm
.
parse
(
UNIX_TIMESTAMP
.
get
(
0
).
toString
()).
getTime
()/
1000
;
long
time2
=
fm
.
parse
(
UNIX_TIMESTAMP
.
get
(
1
).
toString
()).
getTime
()/
1000
;
queryWrapper
.
between
(
finalAttributeName
,
time1
,
time2
);
}
break
;
default
:
break
;
}
}
field
.
setAccessible
(
accessible
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
e
.
getMessage
(),
e
);
}
return
queryWrapper
;
}
private
static
boolean
isBlank
(
final
CharSequence
cs
)
{
int
strLen
;
if
(
cs
==
null
||
(
strLen
=
cs
.
length
())
==
0
)
{
return
true
;
}
for
(
int
i
=
0
;
i
<
strLen
;
i
++)
{
if
(!
Character
.
isWhitespace
(
cs
.
charAt
(
i
)))
{
return
false
;
}
}
return
true
;
}
private
static
List
<
Field
>
getAllFields
(
Class
clazz
,
List
<
Field
>
fields
)
{
if
(
clazz
!=
null
)
{
fields
.
addAll
(
Arrays
.
asList
(
clazz
.
getDeclaredFields
()));
getAllFields
(
clazz
.
getSuperclass
(),
fields
);
}
return
fields
;
}
/***
* 驼峰命名转为下划线命名
*
* @param para
* 驼峰命名的字符串
*/
public
static
String
humpToUnderline
(
String
para
)
{
StringBuilder
sb
=
new
StringBuilder
(
para
);
int
temp
=
0
;
//定位
if
(!
para
.
contains
(
"_"
))
{
for
(
int
i
=
0
;
i
<
para
.
length
();
i
++)
{
if
(
Character
.
isUpperCase
(
para
.
charAt
(
i
)))
{
sb
.
insert
(
i
+
temp
,
"_"
);
temp
+=
1
;
}
}
}
return
sb
.
toString
();
}
// public static void main(String[] args) {
// QueryWrapper<Paging> query = new QueryWrapper<Paging>();
// //query.or();
// query.or(wrapper -> wrapper.eq("store_id", 1).or().eq("store_id", 2));
// //query.like("a",1);
// //query.or();
// //query.like("b",2);
// //query.and(wrapper->wrapper.eq("c",1));
// query.eq("1", 1);
//
// System.out.println(query.getSqlSegment());
// }
}
clouds/mybatis/src/main/java/org/arch/common/web/param/OrderQueryParam.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
web
.
param
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.util.CollectionUtils
;
import
java.util.Arrays
;
import
java.util.List
;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@ApiModel
(
"可排序查询参数对象"
)
public
abstract
class
OrderQueryParam
extends
QueryParam
{
private
static
final
long
serialVersionUID
=
57714391204790143L
;
@ApiModelProperty
(
value
=
"排序"
)
private
List
<
OrderItem
>
orders
;
public
void
defaultOrder
(
OrderItem
orderItem
){
this
.
defaultOrders
(
Arrays
.
asList
(
orderItem
));
}
public
void
defaultOrders
(
List
<
OrderItem
>
orderItems
){
if
(
CollectionUtils
.
isEmpty
(
orderItems
)){
return
;
}
this
.
orders
=
orderItems
;
}
}
clouds/mybatis/src/main/java/org/arch/common/web/param/QueryParam.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
web
.
param
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@ApiModel
(
"查询参数对象"
)
public
abstract
class
QueryParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
3263921252635611410L
;
@ApiModelProperty
(
value
=
"页码,默认为1"
)
private
Integer
page
=
1
;
@ApiModelProperty
(
value
=
"页大小,默认为10"
)
private
Integer
limit
=
10
;
@ApiModelProperty
(
value
=
"搜索字符串"
)
private
String
keyword
;
public
void
setCurrent
(
Integer
current
)
{
if
(
current
==
null
||
current
<=
0
){
this
.
page
=
1
;
}
else
{
this
.
page
=
current
;
}
}
public
void
setSize
(
Integer
size
)
{
if
(
size
==
null
||
size
<=
0
){
this
.
limit
=
10
;
}
else
{
this
.
limit
=
size
;
}
}
}
clouds/mybatis/src/main/java/org/arch/common/web/vo/Paging.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
common
.
web
.
vo
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
java.io.Serializable
;
import
java.util.Collections
;
import
java.util.List
;
@ApiModel
(
"分页"
)
@SuppressWarnings
(
"unchecked"
)
public
class
Paging
<
T
>
implements
Serializable
{
private
static
final
long
serialVersionUID
=
-
1683800405530086022L
;
@ApiModelProperty
(
"总行数"
)
@JSONField
(
name
=
"total"
)
@JsonProperty
(
"total"
)
private
long
total
=
0
;
@ApiModelProperty
(
"数据列表"
)
@JSONField
(
name
=
"records"
)
@JsonProperty
(
"records"
)
private
List
<
T
>
records
=
Collections
.
emptyList
();
public
Paging
()
{
}
public
Paging
(
IPage
page
)
{
this
.
total
=
page
.
getTotal
();
this
.
records
=
page
.
getRecords
();
}
public
long
getTotal
()
{
return
total
;
}
public
void
setTotal
(
long
total
)
{
this
.
total
=
total
;
}
public
List
<
T
>
getRecords
()
{
return
records
;
}
public
void
setRecords
(
List
<
T
>
records
)
{
this
.
records
=
records
;
}
@Override
public
String
toString
()
{
return
"Paging{"
+
"total="
+
total
+
", records="
+
records
+
'}'
;
}
}
clouds/mybatis/src/main/java/org/arch/config/JsonArrayHandler.java
0 → 100644
View file @
3647d76
package
org
.
arch
.
config
;
import
com.alibaba.fastjson2.JSONArray
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.TypeHandler
;
import
java.sql.CallableStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
public
class
JsonArrayHandler
implements
TypeHandler
<
Object
>
{
@Override
public
void
setParameter
(
PreparedStatement
ps
,
int
i
,
Object
parameter
,
JdbcType
jdbcType
)
throws
SQLException
{
if
(
parameter
==
null
)
{
ps
.
setNull
(
i
,
JdbcType
.
OTHER
.
TYPE_CODE
);
}
else
{
ps
.
setObject
(
i
,
parameter
.
toString
(),
JdbcType
.
VARCHAR
.
TYPE_CODE
);
}
}
@Override
public
JSONArray
getResult
(
ResultSet
rs
,
String
columnName
)
throws
SQLException
{
String
json
=
rs
.
getString
(
columnName
);
return
parseJson
(
json
);
}
@Override
public
JSONArray
getResult
(
ResultSet
rs
,
int
columnIndex
)
throws
SQLException
{
String
json
=
rs
.
getString
(
columnIndex
);
return
parseJson
(
json
);
}
@Override
public
JSONArray
getResult
(
CallableStatement
cs
,
int
columnIndex
)
throws
SQLException
{
String
json
=
cs
.
getString
(
columnIndex
);
return
parseJson
(
json
);
}
private
JSONArray
parseJson
(
String
json
)
{
// 这里可以使用你喜欢的JSON库来解析JSON
// 例如使用Jackson,Gson等
// return new ObjectMapper().readValue(json, YourClass.class);
// 暂时只是简单的返回json字符串
return
JSONArray
.
parse
(
json
);
}
}
clouds/mybatis/src/main/java/org/arch/config/JsonTypeHandler.java
0 → 100644
View file @
3647d76
package
org
.
arch
.
config
;
import
com.alibaba.fastjson2.JSONObject
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.TypeHandler
;
import
java.sql.CallableStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
public
class
JsonTypeHandler
implements
TypeHandler
<
Object
>
{
@Override
public
void
setParameter
(
PreparedStatement
ps
,
int
i
,
Object
parameter
,
JdbcType
jdbcType
)
throws
SQLException
{
if
(
parameter
==
null
)
{
ps
.
setNull
(
i
,
JdbcType
.
OTHER
.
TYPE_CODE
);
}
else
{
ps
.
setObject
(
i
,
parameter
.
toString
(),
JdbcType
.
VARCHAR
.
TYPE_CODE
);
}
}
@Override
public
JSONObject
getResult
(
ResultSet
rs
,
String
columnName
)
throws
SQLException
{
String
json
=
rs
.
getString
(
columnName
);
return
parseJson
(
json
);
}
@Override
public
JSONObject
getResult
(
ResultSet
rs
,
int
columnIndex
)
throws
SQLException
{
String
json
=
rs
.
getString
(
columnIndex
);
return
parseJson
(
json
);
}
@Override
public
JSONObject
getResult
(
CallableStatement
cs
,
int
columnIndex
)
throws
SQLException
{
String
json
=
cs
.
getString
(
columnIndex
);
return
parseJson
(
json
);
}
private
JSONObject
parseJson
(
String
json
)
{
// 这里可以使用你喜欢的JSON库来解析JSON
// 例如使用Jackson,Gson等
// return new ObjectMapper().readValue(json, YourClass.class);
// 暂时只是简单的返回json字符串
return
JSONObject
.
parseObject
(
json
);
}
}
clouds/mybatis/src/main/java/org/arch/config/MyMetaHandler.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
config
;
import
com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.reflection.MetaObject
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
/**
* 处理新增和更新的基础数据填充,配合BaseEntity和MyBatisPlusConfig使用
*/
@Slf4j
@Component
public
class
MyMetaHandler
implements
MetaObjectHandler
{
@Override
public
void
insertFill
(
MetaObject
metaObject
)
{
log
.
info
(
"start insert fill ...."
);
this
.
strictInsertFill
(
metaObject
,
"createTime"
,
Date
.
class
,
new
Date
());
// 起始版本 3.3.0(推荐使用)
this
.
strictInsertFill
(
metaObject
,
"lastUpdateTime"
,
Date
.
class
,
new
Date
());
// 起始版本 3.3.0(推荐)
}
@Override
public
void
updateFill
(
MetaObject
metaObject
)
{
log
.
info
(
"start update fill ...."
);
this
.
strictUpdateFill
(
metaObject
,
"lastUpdateTime"
,
Date
.
class
,
new
Date
());
// 起始版本 3.3.0(推荐)
}
}
clouds/mybatis/src/main/java/org/arch/config/MybatisConfig.java
0 → 100644
View file @
3647d76
/**
* Copyright (C) 2018-2020
* All rights reserved, Designed By www.yixiang.co
* 注意:
* 本软件为www.yixiang.co开发研制
*/
package
org
.
arch
.
config
;
/**
* @author :LionCity
* @date :Created in 2020-04-10 15:11
* @description:MybatisConfig
* @modified By:
* @version:
*/
import
com.github.pagehelper.PageHelper
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.ComponentScan
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.Properties
;
@Configuration
@ComponentScan
(
"com.eadc"
)
public
class
MybatisConfig
{
/**
* 配置mybatis的分页插件pageHelper
* @return
*/
@Bean
public
PageHelper
pageHelper
(){
PageHelper
pageHelper
=
new
PageHelper
();
Properties
properties
=
new
Properties
();
properties
.
setProperty
(
"offsetAsPageNum"
,
"true"
);
properties
.
setProperty
(
"rowBoundsWithCount"
,
"true"
);
properties
.
setProperty
(
"reasonable"
,
"true"
);
//配置mysql数据库的方言
properties
.
setProperty
(
"dialect"
,
"mysql"
);
pageHelper
.
setProperties
(
properties
);
return
pageHelper
;
}
}
clouds/mybatis/src/main/resources/META-INF/spring.factories
0 → 100644
View file @
3647d76
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.eadc.config.MybatisConfig
clouds/pom.xml
View file @
3647d76
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
<module>
sys-logs
</module>
<module>
sys-logs
</module>
<module>
office
</module>
<module>
office
</module>
<module>
file-store
</module>
<module>
file-store
</module>
<module>
mybatis
</module>
</modules>
</modules>
<properties>
<properties>
<maven.compiler.source>
8
</maven.compiler.source>
<maven.compiler.source>
8
</maven.compiler.source>
...
...
pom.xml
View file @
3647d76
...
@@ -450,14 +450,6 @@
...
@@ -450,14 +450,6 @@
</exclusion>
</exclusion>
</exclusions>
</exclusions>
</dependency>
</dependency>
<!--lombok插件-->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
${lombok.version}
</version>
<optional>
true
</optional>
</dependency>
<dependency>
<dependency>
<groupId>
org.apache.xmlbeans
</groupId>
<groupId>
org.apache.xmlbeans
</groupId>
<artifactId>
xmlbeans
</artifactId>
<artifactId>
xmlbeans
</artifactId>
...
@@ -498,6 +490,25 @@
...
@@ -498,6 +490,25 @@
<groupId>
org.springframework.boot
</groupId>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-validation
</artifactId>
<artifactId>
spring-boot-starter-validation
</artifactId>
</dependency>
</dependency>
<!--lombok插件-->
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
<version>
${lombok.version}
</version>
<optional>
true
</optional>
</dependency>
<!-- RESTful APIs knife4j -->
<dependency>
<groupId>
com.github.xiaoymin
</groupId>
<artifactId>
knife4j-openapi2-spring-boot-starter
</artifactId>
<version>
${knife4j.version}
</version>
<exclusions>
<exclusion>
<groupId>
org.mapstruct
</groupId>
<artifactId>
mapstruct
</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
<pluginManagement>
<pluginManagement>
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment