Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
有来技术
youlai-mall
提交
7bd6c9ad
Y
youlai-mall
项目概览
有来技术
/
youlai-mall
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Y
youlai-mall
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7bd6c9ad
编写于
8月 14, 2021
作者:
有
有来技术
浏览文件
操作
浏览文件
下载
差异文件
feat:合并gadfly3173-develop
上级
707fb762
03c1c4f6
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
216 addition
and
2 deletion
+216
-2
mall-pms/pms-api/src/main/java/com/youlai/mall/pms/pojo/dto/admin/GoodsFormDTO.java
...java/com/youlai/mall/pms/pojo/dto/admin/GoodsFormDTO.java
+1
-1
mall-pms/pms-boot/src/main/java/com/youlai/mall/pms/service/impl/PmsSpuServiceImpl.java
...a/com/youlai/mall/pms/service/impl/PmsSpuServiceImpl.java
+2
-0
youlai-common/common-mybatis/pom.xml
youlai-common/common-mybatis/pom.xml
+4
-0
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/config/MybatisPlusConfig.java
...a/com/youlai/common/mybatis/config/MybatisPlusConfig.java
+18
-0
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/ArrayObjectJsonTypeHandler.java
...ai/common/mybatis/handler/ArrayObjectJsonTypeHandler.java
+120
-0
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/IntegerArrayJsonTypeHandler.java
...i/common/mybatis/handler/IntegerArrayJsonTypeHandler.java
+24
-0
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/LongArrayJsonTypeHandler.java
...ulai/common/mybatis/handler/LongArrayJsonTypeHandler.java
+24
-0
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/StringArrayJsonTypeHandler.java
...ai/common/mybatis/handler/StringArrayJsonTypeHandler.java
+21
-0
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/utils/PageMapperUtils.java
...java/com/youlai/common/mybatis/utils/PageMapperUtils.java
+2
-1
未找到文件。
mall-pms/pms-api/src/main/java/com/youlai/mall/pms/pojo/dto/admin/GoodsFormDTO.java
浏览文件 @
7bd6c9ad
...
...
@@ -14,7 +14,7 @@ public class GoodsFormDTO {
private
String
name
;
private
Long
categoryId
;
private
Long
brandId
;
private
Long
originPrice
;
private
Long
originPrice
;
private
Long
price
;
private
String
picUrl
;
private
List
<
String
>
subPicUrls
;
...
...
mall-pms/pms-boot/src/main/java/com/youlai/mall/pms/service/impl/PmsSpuServiceImpl.java
浏览文件 @
7bd6c9ad
...
...
@@ -78,6 +78,7 @@ public class PmsSpuServiceImpl extends ServiceImpl<PmsSpuMapper, PmsSpu> impleme
}
/**
* 修改商品
*
...
...
@@ -146,6 +147,7 @@ public class PmsSpuServiceImpl extends ServiceImpl<PmsSpuMapper, PmsSpu> impleme
List
<
PmsSku
>
skuList
=
iPmsSkuService
.
list
(
new
LambdaQueryWrapper
<
PmsSku
>().
eq
(
PmsSku:
:
getSpuId
,
id
));
goodsDetailVO
.
setSkuList
(
skuList
);
return
goodsDetailVO
;
}
...
...
youlai-common/common-mybatis/pom.xml
浏览文件 @
7bd6c9ad
...
...
@@ -12,6 +12,10 @@
<artifactId>
common-mybatis
</artifactId>
<dependencies>
<dependency>
<groupId>
com.youlai
</groupId>
<artifactId>
common-web
</artifactId>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
...
...
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/config/MybatisPlusConfig.java
浏览文件 @
7bd6c9ad
package
com.youlai.common.mybatis.config
;
import
com.baomidou.mybatisplus.annotation.DbType
;
import
com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer
;
import
com.baomidou.mybatisplus.core.config.GlobalConfig
;
import
com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor
;
import
com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor
;
import
com.youlai.common.mybatis.handler.FieldFillHandler
;
import
com.youlai.common.mybatis.handler.IntegerArrayJsonTypeHandler
;
import
com.youlai.common.mybatis.handler.LongArrayJsonTypeHandler
;
import
com.youlai.common.mybatis.handler.StringArrayJsonTypeHandler
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.TypeHandlerRegistry
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.transaction.annotation.EnableTransactionManagement
;
...
...
@@ -28,6 +35,17 @@ public class MybatisPlusConfig {
return
interceptor
;
}
@Bean
public
ConfigurationCustomizer
configurationCustomizer
()
{
return
configuration
->
{
// 全局注册自定义TypeHandler
TypeHandlerRegistry
typeHandlerRegistry
=
configuration
.
getTypeHandlerRegistry
();
typeHandlerRegistry
.
register
(
String
[].
class
,
JdbcType
.
OTHER
,
StringArrayJsonTypeHandler
.
class
);
typeHandlerRegistry
.
register
(
Long
[].
class
,
JdbcType
.
OTHER
,
LongArrayJsonTypeHandler
.
class
);
typeHandlerRegistry
.
register
(
Integer
[].
class
,
JdbcType
.
OTHER
,
IntegerArrayJsonTypeHandler
.
class
);
};
}
/**
* 自动填充数据库创建人、创建时间、更新人、更新时间
*/
...
...
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/ArrayObjectJsonTypeHandler.java
0 → 100644
浏览文件 @
7bd6c9ad
package
com.youlai.common.mybatis.handler
;
import
com.baomidou.mybatisplus.core.toolkit.ArrayUtils
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.type.BaseTypeHandler
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.MappedJdbcTypes
;
import
org.springframework.util.StringUtils
;
import
java.lang.reflect.Array
;
import
java.sql.CallableStatement
;
import
java.sql.PreparedStatement
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.util.Arrays
;
import
java.util.Objects
;
/**
* 数组类型转换 json
* <p>
* 主要是用于对象数据 基础类型包装对象不建议用
* <a href="https://www.jianshu.com/p/ab832f3fe81c">https://www.jianshu.com/p/ab832f3fe81c</a>
*
* @author Gadfly
* @since 2021-06-30 15:20
*/
@Slf4j
@MappedJdbcTypes
(
value
=
{
JdbcType
.
OTHER
},
includeNullJdbcType
=
true
)
public
class
ArrayObjectJsonTypeHandler
<
E
>
extends
BaseTypeHandler
<
E
[]>
{
private
static
final
ObjectMapper
MAPPER
=
new
ObjectMapper
();
private
static
final
String
STRING_JSON_ARRAY_EMPTY
=
"[]"
;
static
{
// 未知字段忽略
MAPPER
.
configure
(
DeserializationFeature
.
FAIL_ON_UNKNOWN_PROPERTIES
,
false
);
// 不使用科学计数
MAPPER
.
configure
(
JsonGenerator
.
Feature
.
WRITE_BIGDECIMAL_AS_PLAIN
,
true
);
// null 值不输出(节省内存)
MAPPER
.
setDefaultPropertyInclusion
(
JsonInclude
.
Include
.
NON_NULL
);
}
private
final
Class
<
E
[]>
type
;
public
ArrayObjectJsonTypeHandler
(
Class
<
E
[]>
type
)
{
Objects
.
requireNonNull
(
type
);
this
.
type
=
type
;
}
@Override
public
void
setNonNullParameter
(
PreparedStatement
ps
,
int
i
,
E
[]
parameter
,
JdbcType
jdbcType
)
throws
SQLException
{
ps
.
setString
(
i
,
toJson
(
parameter
));
}
@Override
public
E
[]
getNullableResult
(
ResultSet
rs
,
String
columnName
)
throws
SQLException
{
return
toObject
(
rs
.
getString
(
columnName
),
type
);
}
@Override
public
E
[]
getNullableResult
(
ResultSet
rs
,
int
columnIndex
)
throws
SQLException
{
return
toObject
(
rs
.
getString
(
columnIndex
),
type
);
}
@Override
public
E
[]
getNullableResult
(
CallableStatement
cs
,
int
columnIndex
)
throws
SQLException
{
return
toObject
(
cs
.
getString
(
columnIndex
),
type
);
}
/**
* object 转 json
*
* @param obj 对象
* @return String json字符串
*/
private
String
toJson
(
E
[]
obj
)
{
if
(
ArrayUtils
.
isEmpty
(
obj
))
{
return
STRING_JSON_ARRAY_EMPTY
;
}
try
{
return
MAPPER
.
writeValueAsString
(
obj
);
}
catch
(
JsonProcessingException
e
)
{
throw
new
RuntimeException
(
"mybatis column to json error,obj:"
+
Arrays
.
toString
(
obj
),
e
);
}
}
/**
* 转换对象
*
* @param json json数据
* @param clazz 类
* @return E
*/
private
E
[]
toObject
(
String
json
,
Class
<
E
[]>
clazz
)
{
if
(
json
==
null
)
{
return
null
;
}
if
(!
StringUtils
.
hasText
(
json
))
{
return
newArray
(
clazz
);
}
try
{
return
MAPPER
.
readValue
(
json
,
clazz
);
}
catch
(
JsonProcessingException
e
)
{
log
.
error
(
"mybatis column json to object error,json:{}"
,
json
,
e
);
return
newArray
(
clazz
);
}
}
@SuppressWarnings
(
"unchecked"
)
private
E
[]
newArray
(
Class
<
E
[]>
clazz
)
{
return
(
E
[])
Array
.
newInstance
(
clazz
.
getComponentType
(),
0
);
}
}
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/IntegerArrayJsonTypeHandler.java
0 → 100644
浏览文件 @
7bd6c9ad
package
com.youlai.common.mybatis.handler
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.MappedJdbcTypes
;
import
org.apache.ibatis.type.MappedTypes
;
import
org.springframework.stereotype.Component
;
/**
* Integer 数组类型转换 json
* <a href="https://www.jianshu.com/p/ab832f3fe81c">https://www.jianshu.com/p/ab832f3fe81c</a>
*
* @author Gadfly
* @since 2021-06-30 15:19
*/
@Slf4j
@Component
@MappedTypes
(
value
=
{
Integer
[].
class
})
@MappedJdbcTypes
(
value
=
{
JdbcType
.
VARCHAR
},
includeNullJdbcType
=
true
)
public
class
IntegerArrayJsonTypeHandler
extends
ArrayObjectJsonTypeHandler
<
Integer
>
{
public
IntegerArrayJsonTypeHandler
()
{
super
(
Integer
[].
class
);
}
}
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/LongArrayJsonTypeHandler.java
0 → 100644
浏览文件 @
7bd6c9ad
package
com.youlai.common.mybatis.handler
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.MappedJdbcTypes
;
import
org.apache.ibatis.type.MappedTypes
;
import
org.springframework.stereotype.Component
;
/**
* Long 数组类型转换 json
* <a href="https://www.jianshu.com/p/ab832f3fe81c">https://www.jianshu.com/p/ab832f3fe81c</a>
*
* @author Gadfly
* @since 2021-06-30 15:26
*/
@Slf4j
@Component
@MappedTypes
(
value
=
{
Long
[].
class
})
@MappedJdbcTypes
(
value
=
{
JdbcType
.
OTHER
},
includeNullJdbcType
=
true
)
public
class
LongArrayJsonTypeHandler
extends
ArrayObjectJsonTypeHandler
<
Long
>
{
public
LongArrayJsonTypeHandler
()
{
super
(
Long
[].
class
);
}
}
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/handler/StringArrayJsonTypeHandler.java
0 → 100644
浏览文件 @
7bd6c9ad
package
com.youlai.common.mybatis.handler
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.type.JdbcType
;
import
org.apache.ibatis.type.MappedJdbcTypes
;
import
org.apache.ibatis.type.MappedTypes
;
import
org.springframework.stereotype.Component
;
/**
* @author Gadfly
* @since 2021-06-30 15:27
*/
@Slf4j
@Component
@MappedTypes
(
value
=
{
String
[].
class
})
@MappedJdbcTypes
(
value
=
{
JdbcType
.
OTHER
},
includeNullJdbcType
=
true
)
public
class
StringArrayJsonTypeHandler
extends
ArrayObjectJsonTypeHandler
<
String
>
{
public
StringArrayJsonTypeHandler
()
{
super
(
String
[].
class
);
}
}
youlai-common/common-mybatis/src/main/java/com/youlai/common/mybatis/utils/PageMapperUtils.java
浏览文件 @
7bd6c9ad
...
...
@@ -2,6 +2,7 @@ package com.youlai.common.mybatis.utils;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.youlai.common.web.util.BeanMapperUtils
;
/**
* @author xinyi
...
...
@@ -20,7 +21,7 @@ public class PageMapperUtils {
dest
.
setPages
(
source
.
getPages
());
dest
.
setSize
(
source
.
getSize
());
dest
.
setTotal
(
source
.
getTotal
());
//
dest.setRecords(BeanMapperUtils.mapList(source.getRecords(),destType));
dest
.
setRecords
(
BeanMapperUtils
.
mapList
(
source
.
getRecords
(),
destType
));
return
dest
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录