Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzdata
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzdata
提交
b0595b0b
提交
b0595b0b
编写于
9月 01, 2021
作者:
sq3536
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码分层
上级
e8233e50
变更
16
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
1526 行增加
和
1063 行删除
+1526
-1063
DOModel.java
...re/src/main/java/cn/ibizlab/core/data/domain/DOModel.java
+13
-8
BaseData.java
...core/src/main/java/cn/ibizlab/core/data/dto/BaseData.java
+41
-0
DefaultValueType.java
...ain/java/cn/ibizlab/core/data/enums/DefaultValueType.java
+63
-0
Predefined.java
.../src/main/java/cn/ibizlab/core/data/enums/Predefined.java
+71
-0
DbDataMapper.java
...c/main/java/cn/ibizlab/core/data/mapper/DbDataMapper.java
+4
-4
PojoOption.java
.../src/main/java/cn/ibizlab/core/data/model/PojoOption.java
+1
-1
PojoSchema.java
.../src/main/java/cn/ibizlab/core/data/model/PojoSchema.java
+137
-16
MongoDataRepository.java
.../cn/ibizlab/core/data/repository/MongoDataRepository.java
+49
-18
IDataService.java
.../main/java/cn/ibizlab/core/data/service/IDataService.java
+155
-73
IPersistentService.java
...java/cn/ibizlab/core/data/service/IPersistentService.java
+180
-0
BaseDataService.java
...va/cn/ibizlab/core/data/service/impl/BaseDataService.java
+205
-97
DbDataServiceImpl.java
.../cn/ibizlab/core/data/service/impl/DbDataServiceImpl.java
+0
-457
DbPersistentServiceImpl.java
...izlab/core/data/service/impl/DbPersistentServiceImpl.java
+350
-0
MongoDataServiceImpl.java
.../ibizlab/core/data/service/impl/MongoDataServiceImpl.java
+0
-388
MongoPersistentServiceImpl.java
...ab/core/data/service/impl/MongoPersistentServiceImpl.java
+256
-0
DbDataMapper.xml
...re/src/main/resources/mapper/data/DbData/DbDataMapper.xml
+1
-1
未找到文件。
ibzdata-core/src/main/java/cn/ibizlab/core/data/domain/DOModel.java
浏览文件 @
b0595b0b
...
...
@@ -138,7 +138,6 @@ public class DOModel implements Serializable {
public
Serializable
getKeyValue
(
BaseData
data
,
boolean
genKeyWhenNotExists
)
{
if
(
this
.
getSchema
()!=
null
)
{
this
.
getSchema
().
fillParentKey
(
data
);
return
this
.
getSchema
().
getKeyValue
(
data
,
genKeyWhenNotExists
);
}
return
null
;
...
...
@@ -147,24 +146,30 @@ public class DOModel implements Serializable {
public
BaseData
newData
(
Object
keyValue
)
{
if
(
this
.
getSchema
()!=
null
)
return
this
.
getSchema
().
setKeyValue
(
new
BaseData
(),
keyValue
);
return
this
.
getSchema
().
newData
(
keyValue
);
return
null
;
}
public
BaseData
fillParentKey
(
BaseData
data
)
public
DOModel
fillParentKey
(
BaseData
data
)
{
if
(
this
.
getSchema
()!=
null
)
return
this
.
getSchema
().
fillParentKey
(
data
);
return
null
;
this
.
getSchema
().
fillParentKey
(
data
);
return
this
;
}
public
FilterData
fillParentFilter
(
FilterData
data
)
public
DOModel
fillParentFilter
(
FilterData
data
)
{
if
(
this
.
getSchema
()!=
null
)
return
this
.
getSchema
().
fillParentFilter
(
data
);
return
null
;
this
.
getSchema
().
fillParentFilter
(
data
);
return
this
;
}
public
DOModel
fillDefaultValue
(
BaseData
data
,
boolean
newFlag
)
{
if
(
this
.
getSchema
()!=
null
)
this
.
getSchema
().
fillDefaultValue
(
data
,
newFlag
);
return
this
;
}
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/dto/BaseData.java
浏览文件 @
b0595b0b
...
...
@@ -278,4 +278,45 @@ public class BaseData extends DataObj
return
null
;
return
new
BaseData
().
setAll
(
map
);
}
public
Serializable
getKeyBySchema
(
boolean
genKeyWhenNotExists
)
{
if
(
this
.
getPojoSchema
()!=
null
)
return
this
.
getPojoSchema
().
getKeyValue
(
this
,
genKeyWhenNotExists
);
else
if
(
this
.
getPOSchema
()!=
null
)
return
this
.
getPOSchema
().
getKeyValue
(
this
,
genKeyWhenNotExists
);
return
this
.
getKey
();
}
public
BaseData
setKeyBySchema
(
Object
keyValue
)
{
if
(
this
.
getPojoSchema
()!=
null
)
{
this
.
getPojoSchema
().
setKeyValue
(
this
,
keyValue
);
return
this
;
}
else
if
(
this
.
getPOSchema
()!=
null
){
this
.
getPOSchema
().
setKeyValue
(
this
,
keyValue
);
return
this
;
}
return
this
.
setKey
(
keyValue
);
}
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
BaseData
fillParentKey
()
{
if
(
this
.
getPojoSchema
()!=
null
)
this
.
getPojoSchema
().
fillParentKey
(
this
);
return
this
;
}
public
BaseData
fillDefaultValue
(
boolean
newFlag
)
{
if
(
this
.
getPojoSchema
()!=
null
)
this
.
getPojoSchema
().
fillDefaultValue
(
this
,
newFlag
);
return
this
;
}
}
ibzdata-core/src/main/java/cn/ibizlab/core/data/enums/DefaultValueType.java
0 → 100644
浏览文件 @
b0595b0b
package
cn
.
ibizlab
.
core
.
data
.
enums
;
/**
* 实体属性默认值类型
*/
public
enum
DefaultValueType
{
/**
* 用户全局对象
*/
SESSION
,
/**
* 系统全局对象
*/
APPLICATION
,
/**
* 唯一编码
*/
UNIQUEID
,
/**
* 网页请求
*/
CONTEXT
,
/**
* 数据对象属性
*/
PARAM
,
/**
* 当前时间
*/
CURTIME
,
/**
* 当前操作用户(编号)
*/
OPERATOR
,
/**
* 当前操作用户(名称)
*/
OPERATORNAME
,
/**
* 当前应用数据
*/
APPDATA
,
/**
* 默认值
*/
NONE
,
/**
* 用户自定义
*/
USER
,
/**
* 用户自定义2
*/
USER2
,
/**
* 用户自定义3
*/
USER3
,
/**
* 用户自定义4
*/
USER4
}
ibzdata-core/src/main/java/cn/ibizlab/core/data/enums/Predefined.java
0 → 100644
浏览文件 @
b0595b0b
package
cn
.
ibizlab
.
core
.
data
.
enums
;
/**
* 实体属性预定义类型
*/
public
enum
Predefined
{
/**
* 创建人标识
*/
CREATEMAN
,
/**
* 创建人名称
*/
CREATEMANNAME
,
/**
* 更新人标识
*/
UPDATEMAN
,
/**
* 更新人名称
*/
UPDATEMANNAME
,
/**
* 创建时间
*/
CREATEDATE
,
/**
* 更新时间
*/
UPDATEDATE
,
/**
* 组织机构标识
*/
ORGID
,
/**
* 组织机构名称
*/
ORGNAME
,
/**
* 部门标识
*/
ORGSECTORID
,
/**
* 部门名称
*/
ORGSECTORNAME
,
/**
* 逻辑有效
*/
LOGICVALID
,
/**
* 排序
*/
ORDERVALUE
,
/**
* 不处理
*/
NONE
,
/**
* 动态父类型
*/
PARENTTYPE
,
/**
* 动态父标识
*/
PARENTID
,
/**
* 动态父名称
*/
PARENTNAME
}
ibzdata-core/src/main/java/cn/ibizlab/core/data/mapper/DbDataMapper.java
浏览文件 @
b0595b0b
...
...
@@ -31,7 +31,7 @@ public interface DbDataMapper {
int
saveBatch
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"list"
)
List
<
BaseData
>
list
);
int
countData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
Long
countData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
List
<
BaseData
>
getData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
...
...
@@ -44,7 +44,7 @@ public interface DbDataMapper {
Page
<
BaseData
>
selectData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
,
IPage
page
);
@Update
(
"${sql}"
)
boolean
executeRaw
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"sql"
)
String
sql
,
@Param
(
"param"
)
BaseData
param
);
int
executeRaw
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"sql"
)
String
sql
,
@Param
(
"param"
)
BaseData
param
);
@Select
(
"${sql}"
)
List
<
BaseData
>
queryData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"sql"
)
String
sql
,
@Param
(
"srf"
)
FilterData
context
,
@Param
(
"ew"
)
QueryWrapper
wrapper
);
...
...
@@ -145,7 +145,7 @@ public interface DbDataMapper {
}
}
default
int
countData
(
String
ds
,
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
){
default
Long
countData
(
String
ds
,
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
){
try
{
DynamicDataSourceContextHolder
.
push
(
ds
);
...
...
@@ -212,7 +212,7 @@ public interface DbDataMapper {
}
@Update
(
"${sql}"
)
default
boolean
executeRaw
(
String
ds
,
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"sql"
)
String
sql
,
@Param
(
"param"
)
BaseData
param
){
default
int
executeRaw
(
String
ds
,
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"sql"
)
String
sql
,
@Param
(
"param"
)
BaseData
param
){
try
{
DynamicDataSourceContextHolder
.
push
(
ds
);
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/model/PojoOption.java
浏览文件 @
b0595b0b
...
...
@@ -193,7 +193,7 @@ public class PojoOption extends DataObj
}
public
Boolean
isPhysicalField
()
{
return
this
.
getBooleanValue
(
"physical_field"
,
this
.
getBooleanValue
(
"
persis
ent"
,
true
));
return
this
.
getBooleanValue
(
"physical_field"
,
this
.
getBooleanValue
(
"
Persist
ent"
,
true
));
}
public
PojoOption
setPhysicalField
(
Boolean
physicalField
)
{
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/model/PojoSchema.java
浏览文件 @
b0595b0b
...
...
@@ -2,6 +2,8 @@ package cn.ibizlab.core.data.model;
import
cn.ibizlab.core.data.dto.BaseData
;
import
cn.ibizlab.core.data.dto.FilterData
;
import
cn.ibizlab.core.data.enums.DefaultValueType
;
import
cn.ibizlab.core.data.enums.Predefined
;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
cn.ibizlab.util.helper.DataObject
;
import
cn.ibizlab.util.helper.Inflector
;
...
...
@@ -17,6 +19,7 @@ import lombok.Getter;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.experimental.Accessors
;
import
org.springframework.util.AlternativeJdkIdGenerator
;
import
org.springframework.util.DigestUtils
;
import
org.springframework.util.ObjectUtils
;
import
org.springframework.util.StringUtils
;
...
...
@@ -703,27 +706,89 @@ public class PojoSchema {
curUser
.
setUserid
(
data
.
getStringValue
(
"SRF_PERSONID"
));
curUser
.
setPersonname
(
data
.
getStringValue
(
"SRF_PERSONNAME"
));
}
Timestamp
now
=
new
Timestamp
(
System
.
currentTimeMillis
());
getProperties
().
values
().
forEach
(
sub
->
{
if
(
Type
.
array
.
getCode
().
equals
(
sub
.
getType
())
||
Type
.
object
.
getCode
().
equals
(
sub
.
getType
())
||
!
sub
.
getOptions
().
isPhysicalField
()
||
(!
StringUtils
.
isEmpty
(
sub
.
getOptions
().
getDefaultValue
())))
if
(
Type
.
array
.
getCode
().
equals
(
sub
.
getType
())
||
Type
.
object
.
getCode
().
equals
(
sub
.
getType
())
||
!
sub
.
getOptions
().
isPhysicalField
()
||
(
StringUtils
.
isEmpty
(
sub
.
getOptions
().
getDefaultValue
())&&
StringUtils
.
isEmpty
(
sub
.
getOptions
().
getPredefined
())))
return
;
if
(
newFlag
&&(!
ObjectUtils
.
isEmpty
(
data
.
get
(
sub
.
getName
().
toLowerCase
()))))
return
;
String
predefined
=
this
.
getOptions
().
getPredefined
();
if
(!
newFlag
)
String
name
=
sub
.
getName
().
toLowerCase
();
Object
value
=
data
.
get
(
name
);
if
(!
StringUtils
.
isEmpty
(
sub
.
getOptions
().
getPredefined
()))
{
if
(
predefined
.
equals
(
"UPDATEDATE"
))
data
.
set
(
sub
.
getName
().
toLowerCase
(),
new
Timestamp
(
System
.
currentTimeMillis
()));
else
if
(
predefined
.
equals
(
"UPDATEMAN"
))
data
.
set
(
sub
.
getName
().
toLowerCase
(),
curUser
.
getUserid
());
else
if
(
predefined
.
equals
(
"UPDATEMANNAME"
))
data
.
set
(
sub
.
getName
().
toLowerCase
(),
curUser
.
getPersonname
());
try
{
Predefined
predefinedType
=
Predefined
.
valueOf
(
sub
.
getOptions
().
getPredefined
());
if
(
newFlag
)
{
switch
(
predefinedType
)
{
case
CREATEMAN:
data
.
set
(
name
,
curUser
.
getUserid
());
break
;
case
CREATEMANNAME:
data
.
set
(
name
,
curUser
.
getPersonname
());
break
;
case
UPDATEMAN:
data
.
set
(
name
,
curUser
.
getUserid
());
break
;
case
UPDATEMANNAME:
data
.
set
(
name
,
curUser
.
getPersonname
());
break
;
case
CREATEDATE:
data
.
set
(
name
,
now
);
break
;
case
UPDATEDATE:
data
.
set
(
name
,
now
);
break
;
case
ORGID:
if
(
ObjectUtils
.
isEmpty
(
value
))
{
data
.
set
(
name
,
curUser
.
getOrgid
());
}
break
;
case
ORGNAME:
if
(
ObjectUtils
.
isEmpty
(
value
))
{
data
.
set
(
name
,
curUser
.
getOrgname
());
}
break
;
case
ORGSECTORID:
if
(
ObjectUtils
.
isEmpty
(
value
))
{
data
.
set
(
name
,
curUser
.
getMdeptid
());
}
break
;
case
ORGSECTORNAME:
if
(
ObjectUtils
.
isEmpty
(
value
))
{
data
.
set
(
name
,
curUser
.
getMdeptname
());
}
break
;
case
LOGICVALID:
data
.
set
(
name
,
this
.
getOptions
().
getLogicVal
());
break
;
}
}
else
{
{
switch
(
predefinedType
)
{
case
UPDATEMAN:
data
.
set
(
name
,
curUser
.
getUserid
());
break
;
case
UPDATEMANNAME:
data
.
set
(
name
,
curUser
.
getPersonname
());
break
;
case
UPDATEDATE:
data
.
set
(
name
,
now
);
break
;
}
}
}
}
catch
(
Exception
ex
)
{}
return
;
}
}
if
((!
newFlag
)||
ObjectUtils
.
isEmpty
(
data
.
get
(
name
)))
return
;
String
DV
=
sub
.
getOptions
().
getDefaultValue
();
if
(
StringUtils
.
isEmpty
(
DV
))
return
;
String
defaultValueType
=
""
;
String
defaultValue
=
""
;
if
(
DV
.
startsWith
(
"$"
))
...
...
@@ -733,10 +798,66 @@ public class PojoSchema {
if
(
dvs
.
length
>=
1
)
defaultValueType
=
dvs
[
0
];
if
(
dvs
.
length
>=
2
)
defaultValue
=
dvs
[
1
];
defaultValue
=
dvs
[
1
]
.
toLowerCase
()
;
}
else
defaultValue
=
DV
;
if
(!
StringUtils
.
isEmpty
(
defaultValueType
))
{
try
{
DefaultValueType
dvt
=
DefaultValueType
.
valueOf
(
defaultValueType
);
switch
(
dvt
)
{
case
SESSION:
if
(!
StringUtils
.
isEmpty
(
defaultValue
))
{
Object
sessionFieldValue
=
curUser
.
getSessionParams
().
get
(
defaultValue
);
if
(!
ObjectUtils
.
isEmpty
(
sessionFieldValue
))
{
data
.
set
(
name
,
sessionFieldValue
);
}
}
break
;
case
APPLICATION:
//暂未实现
break
;
case
UNIQUEID:
data
.
set
(
name
,
IdWorker
.
get32UUID
());
break
;
case
CONTEXT:
if
(!
StringUtils
.
isEmpty
(
defaultValue
))
{
Object
paramFieldValue
=
data
.
get
(
defaultValue
);
if
(!
ObjectUtils
.
isEmpty
(
paramFieldValue
))
{
data
.
set
(
name
,
paramFieldValue
);
}
}
break
;
case
PARAM:
if
(!
StringUtils
.
isEmpty
(
defaultValue
))
{
Object
paramFieldValue
=
data
.
get
(
defaultValue
);
if
(!
ObjectUtils
.
isEmpty
(
paramFieldValue
))
{
data
.
set
(
name
,
paramFieldValue
);
}
}
break
;
case
OPERATOR:
data
.
set
(
name
,
curUser
.
getUserid
());
break
;
case
OPERATORNAME:
data
.
set
(
name
,
curUser
.
getPersonname
());
break
;
case
CURTIME:
data
.
set
(
name
,
now
);
break
;
case
APPDATA:
//暂未实现
break
;
case
NONE:
data
.
set
(
name
,
defaultValue
);
break
;
}
}
catch
(
Exception
ex
){}
}
else
if
(!
StringUtils
.
isEmpty
(
defaultValue
))
data
.
set
(
name
,
defaultValue
);
});
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/repository/MongoDataRepository.java
浏览文件 @
b0595b0b
...
...
@@ -7,6 +7,8 @@ import cn.ibizlab.core.data.mongodb.DynamicMongoContextHolder;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.mongodb.BasicDBList
;
import
com.mongodb.BasicDBObject
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
...
...
@@ -86,16 +88,16 @@ public class MongoDataRepository {
}
public
Query
getKeyQuery
(
POSchema
schema
,
BaseData
data
)
public
Query
getKeyQuery
(
BaseData
data
)
{
Query
query
=
new
Query
();
if
(!
ObjectUtils
.
isEmpty
(
data
.
getKey
()))
return
query
.
addCriteria
(
new
Criteria
().
and
(
"_id"
).
is
(
data
.
getKey
()));
else
throw
new
BadRequestAlertException
(
"未找到主键"
,
schema
.
getName
()
,
null
);
throw
new
BadRequestAlertException
(
"未找到主键"
,
"mongo"
,
null
);
}
public
Query
getKeyQuery
(
POSchema
schema
,
List
list
)
public
Query
getKeyQuery
(
List
list
)
{
Query
query
=
new
Query
();
if
(
ObjectUtils
.
isEmpty
(
list
))
...
...
@@ -107,7 +109,7 @@ public class MongoDataRepository {
BaseData
data
=
(
BaseData
)
item
;
Serializable
key
=
data
.
getKey
();
if
(
ObjectUtils
.
isEmpty
(
key
))
throw
new
BadRequestAlertException
(
"未找到主键"
,
schema
.
getName
()
,
null
);
throw
new
BadRequestAlertException
(
"未找到主键"
,
"mongo"
,
null
);
ids
.
add
(
key
.
toString
());
});
...
...
@@ -146,9 +148,10 @@ public class MongoDataRepository {
public
int
updateData
(
String
ds
,
POSchema
schema
,
BaseData
data
){
try
{
DynamicMongoContextHolder
.
push
(
ds
);
Query
query
=
getKeyQuery
(
schema
,
data
);
Query
query
=
getKeyQuery
(
data
);
Update
update
=
getUpdateByObject
(
data
);
DynamicMongoContextHolder
.
push
(
ds
);
return
(
int
)
this
.
mongoTemplate
.
updateFirst
(
query
,
update
,
schema
.
getName
()).
getModifiedCount
();
}
finally
{
...
...
@@ -161,7 +164,7 @@ public class MongoDataRepository {
{
DynamicMongoContextHolder
.
push
(
ds
);
list
.
forEach
(
data
->
{
Query
query
=
getKeyQuery
(
schema
,
data
);
Query
query
=
getKeyQuery
(
data
);
Update
update
=
getUpdateByObject
(
data
);
this
.
mongoTemplate
.
updateFirst
(
query
,
update
,
schema
.
getName
());
});
...
...
@@ -175,7 +178,7 @@ public class MongoDataRepository {
try
{
DynamicMongoContextHolder
.
push
(
ds
);
return
(
int
)
this
.
mongoTemplate
.
remove
(
getKeyQuery
(
schema
,
data
),
schema
.
getName
()).
getDeletedCount
();
return
(
int
)
this
.
mongoTemplate
.
remove
(
getKeyQuery
(
data
),
schema
.
getName
()).
getDeletedCount
();
}
finally
{
DynamicMongoContextHolder
.
poll
();
...
...
@@ -186,7 +189,7 @@ public class MongoDataRepository {
try
{
DynamicMongoContextHolder
.
push
(
ds
);
return
(
int
)
mongoTemplate
.
remove
(
getKeyQuery
(
schema
,
list
),
schema
.
getName
()).
getDeletedCount
();
return
(
int
)
mongoTemplate
.
remove
(
getKeyQuery
(
list
),
schema
.
getName
()).
getDeletedCount
();
}
finally
{
DynamicMongoContextHolder
.
poll
();
...
...
@@ -196,9 +199,10 @@ public class MongoDataRepository {
public
int
saveData
(
String
ds
,
POSchema
schema
,
BaseData
data
){
try
{
DynamicMongoContextHolder
.
push
(
ds
);
Query
query
=
getKeyQuery
(
schema
,
data
);
Query
query
=
getKeyQuery
(
data
);
Update
update
=
getUpdateByObject
(
data
);
DynamicMongoContextHolder
.
push
(
ds
);
return
(
int
)
this
.
mongoTemplate
.
upsert
(
query
,
update
,
schema
.
getName
()).
getModifiedCount
();
}
finally
{
...
...
@@ -211,7 +215,7 @@ public class MongoDataRepository {
{
DynamicMongoContextHolder
.
push
(
ds
);
list
.
forEach
(
data
->
{
Query
query
=
getKeyQuery
(
schema
,
data
);
Query
query
=
getKeyQuery
(
data
);
Update
update
=
getUpdateByObject
(
data
);
mongoTemplate
.
upsert
(
query
,
update
,
schema
.
getName
());
});
...
...
@@ -221,11 +225,11 @@ public class MongoDataRepository {
}
}
public
int
countData
(
String
ds
,
POSchema
schema
,
BaseData
data
){
public
long
countData
(
String
ds
,
POSchema
schema
,
BaseData
data
){
try
{
DynamicMongoContextHolder
.
push
(
ds
);
return
(
int
)
mongoTemplate
.
count
(
getQueryByObject
(
data
),
schema
.
getName
());
return
mongoTemplate
.
count
(
getQueryByObject
(
data
),
schema
.
getName
());
}
finally
{
DynamicMongoContextHolder
.
poll
();
...
...
@@ -236,7 +240,7 @@ public class MongoDataRepository {
try
{
DynamicMongoContextHolder
.
push
(
ds
);
return
mongoTemplate
.
find
(
getKeyQuery
(
schema
,
data
),
getEntityClass
(),
schema
.
getName
());
return
mongoTemplate
.
find
(
getKeyQuery
(
data
),
getEntityClass
(),
schema
.
getName
());
}
finally
{
DynamicMongoContextHolder
.
poll
();
...
...
@@ -247,7 +251,32 @@ public class MongoDataRepository {
try
{
DynamicMongoContextHolder
.
push
(
ds
);
return
mongoTemplate
.
find
(
getKeyQuery
(
schema
,
list
),
getEntityClass
(),
schema
.
getName
());
return
mongoTemplate
.
find
(
getKeyQuery
(
list
),
getEntityClass
(),
schema
.
getName
());
}
finally
{
DynamicMongoContextHolder
.
poll
();
}
}
public
List
<
BaseData
>
getBatchKey
(
String
ds
,
POSchema
schema
,
List
<
BaseData
>
list
){
try
{
BasicDBObject
query
=
new
BasicDBObject
();
BasicDBList
values
=
new
BasicDBList
();
list
.
forEach
(
item
->{
Serializable
key
=
item
.
getKey
();
if
(
ObjectUtils
.
isEmpty
(
key
))
throw
new
BadRequestAlertException
(
"未找到主键"
,
"mongo"
,
null
);
values
.
add
(
key
);
});
BasicDBObject
in
=
new
BasicDBObject
(
"$in"
,
values
);
query
.
put
(
"_id"
,
in
);
BasicDBObject
fieldsObject
=
new
BasicDBObject
();
fieldsObject
.
put
(
"_id"
,
true
);
Query
queryIds
=
new
BasicQuery
(
query
.
toJson
(),
fieldsObject
.
toJson
());
DynamicMongoContextHolder
.
push
(
ds
);
return
mongoTemplate
.
find
(
queryIds
,
getEntityClass
(),
schema
.
getName
());
}
finally
{
DynamicMongoContextHolder
.
poll
();
...
...
@@ -270,10 +299,11 @@ public class MongoDataRepository {
public
Page
<
BaseData
>
selectData
(
String
ds
,
POSchema
schema
,
BaseData
data
,
Pageable
page
){
try
{
DynamicMongoContextHolder
.
push
(
ds
);
if
(
page
==
null
)
page
=
PageRequest
.
of
(
0
,
20
,
Sort
.
unsorted
());
Query
query
=
getQueryByObject
(
data
);
DynamicMongoContextHolder
.
push
(
ds
);
long
total
=
mongoTemplate
.
count
(
query
,
BaseData
.
class
,
schema
.
getName
());
List
<
BaseData
>
list
=
mongoTemplate
.
find
(
query
.
with
(
page
),
BaseData
.
class
,
schema
.
getName
());
return
new
PageImpl
<
BaseData
>(
list
,
page
,
total
);
...
...
@@ -298,12 +328,13 @@ public class MongoDataRepository {
public
Page
<
BaseData
>
queryData
(
String
ds
,
POSchema
schema
,
String
sql
,
FilterData
context
,
Pageable
page
){
try
{
DynamicMongoContextHolder
.
push
(
ds
);
if
(
page
==
null
)
page
=
context
.
getPageable
();
else
context
.
setPageable
(
page
);
Query
query
=
new
BasicQuery
(
context
.
getQueryBuilder
().
get
().
toString
());
DynamicMongoContextHolder
.
push
(
ds
);
long
total
=
mongoTemplate
.
count
(
query
,
BaseData
.
class
,
schema
.
getName
());
List
<
BaseData
>
list
=
mongoTemplate
.
find
(
query
.
with
(
page
),
BaseData
.
class
,
schema
.
getName
());
return
new
PageImpl
<
BaseData
>(
list
,
page
,
total
);
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/IDataService.java
浏览文件 @
b0595b0b
此差异已折叠。
点击以展开。
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/IPersistentService.java
0 → 100644
浏览文件 @
b0595b0b
package
cn
.
ibizlab
.
core
.
data
.
service
;
import
cn.ibizlab.core.data.domain.DOModel
;
import
cn.ibizlab.core.data.dto.BaseData
;
import
cn.ibizlab.core.data.dto.FilterData
;
import
cn.ibizlab.core.data.dto.RequestData
;
import
cn.ibizlab.core.data.dto.ResponseData
;
import
cn.ibizlab.core.data.model.DSLink
;
import
cn.ibizlab.core.data.model.POSchema
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
java.io.Serializable
;
import
java.util.List
;
public
interface
IPersistentService
{
BaseData
create
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
boolean
bGet
);
List
<
BaseData
>
createBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
,
boolean
bGet
);
BaseData
update
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
boolean
bGet
);
List
<
BaseData
>
updateBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
,
boolean
bGet
);
boolean
remove
(
DSLink
link
,
POSchema
poSchema
,
Serializable
key
);
boolean
removeBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
Serializable
>
idList
);
boolean
removeByMap
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
);
boolean
removeByMapBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
);
BaseData
get
(
DSLink
link
,
POSchema
poSchema
,
Serializable
key
);
List
<
BaseData
>
getBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
Serializable
>
idList
);
BaseData
getByMap
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
);
List
<
BaseData
>
getByMapBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
);
List
<
BaseData
>
getBatchKey
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
);
Long
count
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
);
boolean
checkKey
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
);
BaseData
save
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
boolean
bGet
);
List
<
BaseData
>
saveBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
,
boolean
bGet
);
List
<
BaseData
>
select
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
);
Page
<
BaseData
>
select
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
Pageable
pageable
);
List
<
BaseData
>
query
(
DSLink
link
,
POSchema
poSchema
,
String
dataQuery
,
FilterData
context
);
Page
<
BaseData
>
query
(
DSLink
link
,
POSchema
poSchema
,
String
dataQuery
,
FilterData
context
,
Pageable
pageable
);
List
<
BaseData
>
selectRaw
(
DSLink
link
,
POSchema
poSchema
,
String
sql
,
FilterData
context
);
boolean
execRaw
(
DSLink
link
,
POSchema
poSchema
,
String
sql
,
BaseData
param
);
List
<
BaseData
>
fetch
(
DSLink
link
,
POSchema
poSchema
,
String
dataSet
,
FilterData
context
);
Page
<
BaseData
>
fetch
(
DSLink
link
,
POSchema
poSchema
,
String
dataSet
,
FilterData
context
,
Pageable
pageable
);
default
BaseData
create
(
String
datasource
,
String
table
,
BaseData
et
,
boolean
bGet
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
create
(
link
,
getSchema
(
link
,
table
),
et
,
bGet
);
}
default
List
<
BaseData
>
createBatch
(
String
datasource
,
String
table
,
List
<
BaseData
>
list
,
boolean
bGet
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
createBatch
(
link
,
getSchema
(
link
,
table
),
list
,
bGet
);
}
default
BaseData
update
(
String
datasource
,
String
table
,
BaseData
et
,
boolean
bGet
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
update
(
link
,
getSchema
(
link
,
table
),
et
,
bGet
);
}
default
List
<
BaseData
>
updateBatch
(
String
datasource
,
String
table
,
List
<
BaseData
>
list
,
boolean
bGet
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
updateBatch
(
link
,
getSchema
(
link
,
table
),
list
,
bGet
);
}
default
boolean
remove
(
String
datasource
,
String
table
,
Serializable
key
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
remove
(
link
,
getSchema
(
link
,
table
),
key
);
}
default
boolean
removeBatch
(
String
datasource
,
String
table
,
List
<
Serializable
>
idList
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
removeBatch
(
link
,
getSchema
(
link
,
table
),
idList
);
}
default
boolean
removeByMap
(
String
datasource
,
String
table
,
BaseData
et
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
removeByMap
(
link
,
getSchema
(
link
,
table
),
et
);
}
default
boolean
removeByMapBatch
(
String
datasource
,
String
table
,
List
<
BaseData
>
list
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
removeByMapBatch
(
link
,
getSchema
(
link
,
table
),
list
);
}
default
BaseData
get
(
String
datasource
,
String
table
,
Serializable
key
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
get
(
link
,
getSchema
(
link
,
table
),
key
);
}
default
List
<
BaseData
>
getBatch
(
String
datasource
,
String
table
,
List
<
Serializable
>
idList
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
getBatch
(
link
,
getSchema
(
link
,
table
),
idList
);
}
default
BaseData
getByMap
(
String
datasource
,
String
table
,
BaseData
et
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
getByMap
(
link
,
getSchema
(
link
,
table
),
et
);
}
default
List
<
BaseData
>
getByMapBatch
(
String
datasource
,
String
table
,
List
<
BaseData
>
list
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
getByMapBatch
(
link
,
getSchema
(
link
,
table
),
list
);
}
default
List
<
BaseData
>
getBatchKey
(
String
datasource
,
String
table
,
List
<
BaseData
>
list
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
getBatchKey
(
link
,
getSchema
(
link
,
table
),
list
);
}
default
Long
count
(
String
datasource
,
String
table
,
BaseData
et
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
count
(
link
,
getSchema
(
link
,
table
),
et
);
}
default
boolean
checkKey
(
String
datasource
,
String
table
,
BaseData
et
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
checkKey
(
link
,
getSchema
(
link
,
table
),
et
);
}
default
BaseData
save
(
String
datasource
,
String
table
,
BaseData
et
,
boolean
bGet
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
save
(
link
,
getSchema
(
link
,
table
),
et
,
bGet
);
}
default
List
<
BaseData
>
saveBatch
(
String
datasource
,
String
table
,
List
<
BaseData
>
list
,
boolean
bGet
)
{
DSLink
link
=
getDSLink
(
datasource
);
return
saveBatch
(
link
,
getSchema
(
link
,
table
),
list
,
bGet
);
}
default
List
<
BaseData
>
select
(
String
datasource
,
String
table
,
BaseData
et
){
DSLink
link
=
getDSLink
(
datasource
);
return
select
(
link
,
getSchema
(
link
,
table
),
et
);
}
default
Page
<
BaseData
>
select
(
String
datasource
,
String
table
,
BaseData
et
,
Pageable
pageable
){
DSLink
link
=
getDSLink
(
datasource
);
return
select
(
link
,
getSchema
(
link
,
table
),
et
,
pageable
);
}
default
List
<
BaseData
>
query
(
String
datasource
,
String
table
,
String
dataQuery
,
FilterData
context
){
DSLink
link
=
getDSLink
(
datasource
);
return
query
(
link
,
getSchema
(
link
,
table
),
dataQuery
,
context
);
}
default
Page
<
BaseData
>
query
(
String
datasource
,
String
table
,
String
dataQuery
,
FilterData
context
,
Pageable
pageable
){
DSLink
link
=
getDSLink
(
datasource
);
return
query
(
link
,
getSchema
(
link
,
table
),
dataQuery
,
context
,
pageable
);
}
default
List
<
BaseData
>
selectRaw
(
String
datasource
,
String
table
,
String
sql
,
FilterData
context
){
DSLink
link
=
getDSLink
(
datasource
);
return
selectRaw
(
link
,
getSchema
(
link
,
table
),
sql
,
context
);
}
default
boolean
execRaw
(
String
datasource
,
String
table
,
String
sql
,
BaseData
param
){
DSLink
link
=
getDSLink
(
datasource
);
return
execRaw
(
link
,
getSchema
(
link
,
table
),
sql
,
param
);
}
default
List
<
BaseData
>
fetch
(
String
datasource
,
String
table
,
String
dataSet
,
FilterData
context
){
DSLink
link
=
getDSLink
(
datasource
);
return
fetch
(
link
,
getSchema
(
link
,
table
),
dataSet
,
context
);
}
default
Page
<
BaseData
>
fetch
(
String
datasource
,
String
table
,
String
dataSet
,
FilterData
context
,
Pageable
pageable
){
DSLink
link
=
getDSLink
(
datasource
);
return
fetch
(
link
,
getSchema
(
link
,
table
),
dataSet
,
context
,
pageable
);
}
DSLink
getDSLink
(
String
datasource
);
POSchema
getSchema
(
DSLink
link
,
String
table
);
}
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/impl/BaseDataService.java
浏览文件 @
b0595b0b
此差异已折叠。
点击以展开。
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/impl/DbDataServiceImpl.java
已删除
100644 → 0
浏览文件 @
e8233e50
此差异已折叠。
点击以展开。
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/impl/DbPersistentServiceImpl.java
0 → 100644
浏览文件 @
b0595b0b
此差异已折叠。
点击以展开。
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/impl/MongoDataServiceImpl.java
已删除
100644 → 0
浏览文件 @
e8233e50
此差异已折叠。
点击以展开。
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/impl/MongoPersistentServiceImpl.java
0 → 100644
浏览文件 @
b0595b0b
package
cn
.
ibizlab
.
core
.
data
.
service
.
impl
;
import
cn.ibizlab.core.data.dto.BaseData
;
import
cn.ibizlab.core.data.dto.FilterData
;
import
cn.ibizlab.core.data.model.DSLink
;
import
cn.ibizlab.core.data.model.POSchema
;
import
cn.ibizlab.core.data.repository.MongoDataRepository
;
import
cn.ibizlab.core.data.service.IDSSettingService
;
import
cn.ibizlab.core.data.service.IPersistentService
;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.ObjectUtils
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Slf4j
public
class
MongoPersistentServiceImpl
implements
IPersistentService
{
@Autowired
private
MongoDataRepository
repository
;
@Override
public
BaseData
create
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
boolean
bGet
)
{
repository
.
insertData
(
link
.
getName
(),
poSchema
,
et
);
if
(
bGet
)
et
.
setAll
(
getByMap
(
link
,
poSchema
,
et
));
return
et
;
}
@Override
public
List
<
BaseData
>
createBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
,
boolean
bGet
)
{
repository
.
insertBathData
(
link
.
getName
(),
poSchema
,
list
);
if
(
bGet
)
return
getByMapBatch
(
link
,
poSchema
,
list
);
return
list
;
}
@Override
public
BaseData
update
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
boolean
bGet
)
{
repository
.
updateData
(
link
.
getName
(),
poSchema
,
et
);
if
(
bGet
)
et
.
setAll
(
getByMap
(
link
,
poSchema
,
et
));
return
et
;
}
@Override
public
List
<
BaseData
>
updateBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
,
boolean
bGet
)
{
repository
.
updateBathData
(
link
.
getName
(),
poSchema
,
list
);
if
(
bGet
)
return
getByMapBatch
(
link
,
poSchema
,
list
);
return
list
;
}
@Override
public
boolean
remove
(
DSLink
link
,
POSchema
poSchema
,
Serializable
key
)
{
BaseData
et
=
poSchema
.
newData
(
key
);
if
(
et
==
null
)
throw
new
BadRequestAlertException
(
"未找到主键"
,
poSchema
.
getName
(),
null
);
repository
.
removeData
(
link
.
getName
(),
poSchema
,
et
);
return
true
;
}
@Override
public
boolean
removeBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
Serializable
>
idList
)
{
List
<
BaseData
>
batch
=
new
ArrayList
<>();
idList
.
forEach
(
key
->{
BaseData
et
=
poSchema
.
newData
(
key
);
if
(
et
==
null
)
throw
new
BadRequestAlertException
(
"未找到主键"
,
poSchema
.
getName
(),
null
);
batch
.
add
(
et
);
});
if
(
batch
.
size
()>
0
)
{
repository
.
removeBathData
(
link
.
getName
(),
poSchema
,
batch
);
batch
.
clear
();
}
return
true
;
}
@Override
public
boolean
removeByMap
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
)
{
repository
.
removeData
(
link
.
getName
(),
poSchema
,
et
);
return
true
;
}
@Override
public
boolean
removeByMapBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
)
{
repository
.
removeBathData
(
link
.
getName
(),
poSchema
,
list
);
return
true
;
}
@Override
public
BaseData
get
(
DSLink
link
,
POSchema
poSchema
,
Serializable
key
)
{
BaseData
et
=
poSchema
.
newData
(
key
);
if
(
et
==
null
)
throw
new
BadRequestAlertException
(
"未找到主键"
,
poSchema
.
getName
(),
null
);
List
<
BaseData
>
list
=
repository
.
getData
(
link
.
getName
(),
poSchema
,
et
);
if
(
ObjectUtils
.
isEmpty
(
list
)||
list
.
size
()>
1
)
throw
new
BadRequestAlertException
(
"未找到数据"
,
poSchema
.
getName
(),
key
.
toString
());
return
list
.
get
(
0
);
}
@Override
public
List
<
BaseData
>
getBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
Serializable
>
idList
)
{
List
<
BaseData
>
batch
=
new
ArrayList
<>();
idList
.
forEach
(
key
->{
BaseData
et
=
poSchema
.
newData
(
key
);
if
(
et
==
null
)
throw
new
BadRequestAlertException
(
"未找到主键"
,
poSchema
.
getName
(),
null
);
batch
.
add
(
et
);
});
return
repository
.
getBatchData
(
link
.
getName
(),
poSchema
,
batch
);
}
@Override
public
BaseData
getByMap
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
)
{
List
<
BaseData
>
list
=
repository
.
getData
(
link
.
getName
(),
poSchema
,
et
);
if
(
ObjectUtils
.
isEmpty
(
list
)||
list
.
size
()>
1
)
throw
new
BadRequestAlertException
(
"未找到数据"
,
poSchema
.
getName
(),
""
);
return
list
.
get
(
0
);
}
@Override
public
List
<
BaseData
>
getByMapBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
)
{
return
repository
.
getBatchData
(
link
.
getName
(),
poSchema
,
list
);
}
@Override
public
List
<
BaseData
>
getBatchKey
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
)
{
return
repository
.
getBatchKey
(
link
.
getName
(),
poSchema
,
list
);
}
@Override
public
Long
count
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
)
{
return
repository
.
countData
(
link
.
getName
(),
poSchema
,
et
);
}
@Override
public
boolean
checkKey
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
)
{
Long
cnt
=
repository
.
countData
(
link
.
getName
(),
poSchema
,
et
);
return
cnt
==
1
;
}
@Override
public
BaseData
save
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
boolean
bGet
)
{
if
(
checkKey
(
link
,
poSchema
,
et
))
return
update
(
link
,
poSchema
,
et
,
bGet
);
else
return
create
(
link
,
poSchema
,
et
,
bGet
);
}
@Override
public
List
<
BaseData
>
saveBatch
(
DSLink
link
,
POSchema
poSchema
,
List
<
BaseData
>
list
,
boolean
bGet
)
{
List
<
BaseData
>
rt
=
this
.
getBatchKey
(
link
,
poSchema
,
list
);
Map
<
Serializable
,
Integer
>
keys
=
new
LinkedHashMap
<>();
rt
.
forEach
(
et
->{
Serializable
key
=
poSchema
.
getKeyValue
(
et
,
false
);
if
(!
ObjectUtils
.
isEmpty
(
key
))
keys
.
put
(
key
,
1
);
});
List
<
BaseData
>
create
=
new
ArrayList
<>();
List
<
BaseData
>
update
=
new
ArrayList
<>();
list
.
forEach
(
et
->
{
Serializable
key
=
poSchema
.
getKeyValue
(
et
,
false
);
if
(
keys
.
containsKey
(
key
))
update
.
add
(
et
);
else
create
.
add
(
et
);
});
List
rtList
=
new
ArrayList
<>();
if
(
update
.
size
()>
0
)
rtList
.
addAll
(
this
.
updateBatch
(
link
,
poSchema
,
update
,
bGet
));
if
(
create
.
size
()>
0
)
rtList
.
addAll
(
this
.
createBatch
(
link
,
poSchema
,
create
,
bGet
));
return
rtList
;
}
@Override
public
List
<
BaseData
>
select
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
)
{
return
repository
.
selectData
(
link
.
getName
(),
poSchema
,
et
);
}
@Override
public
Page
<
BaseData
>
select
(
DSLink
link
,
POSchema
poSchema
,
BaseData
et
,
Pageable
pageable
)
{
Page
<
BaseData
>
pages
=
repository
.
selectData
(
link
.
getName
(),
poSchema
,
poSchema
.
trans2PO
(
et
),
pageable
);
return
pages
;
}
@Override
public
List
<
BaseData
>
query
(
DSLink
link
,
POSchema
poSchema
,
String
dataQuery
,
FilterData
context
)
{
context
.
setPOSchema
(
poSchema
);
return
repository
.
queryData
(
link
.
getName
(),
poSchema
,
""
,
context
);
}
@Override
public
Page
<
BaseData
>
query
(
DSLink
link
,
POSchema
poSchema
,
String
dataQuery
,
FilterData
context
,
Pageable
pageable
)
{
context
.
setPOSchema
(
poSchema
);
if
(
pageable
!=
null
)
context
.
setPageable
(
pageable
);
else
pageable
=
context
.
getPageable
();
Page
<
BaseData
>
pages
=
repository
.
queryData
(
link
.
getName
(),
poSchema
,
""
,
context
,
pageable
);
return
pages
;
}
@Override
public
List
<
BaseData
>
selectRaw
(
DSLink
link
,
POSchema
poSchema
,
String
sql
,
FilterData
context
)
{
return
repository
.
queryData
(
link
.
getName
(),
poSchema
,
sql
,
context
);
}
@Override
public
boolean
execRaw
(
DSLink
link
,
POSchema
poSchema
,
String
sql
,
BaseData
param
)
{
throw
new
BadRequestAlertException
(
"没有实现方法execRaw"
,
poSchema
.
getName
(),
sql
);
}
@Override
public
List
<
BaseData
>
fetch
(
DSLink
link
,
POSchema
poSchema
,
String
dataSet
,
FilterData
context
)
{
context
.
setPOSchema
(
poSchema
);
return
repository
.
queryData
(
link
.
getName
(),
poSchema
,
""
,
context
);
}
@Override
public
Page
<
BaseData
>
fetch
(
DSLink
link
,
POSchema
poSchema
,
String
dataSet
,
FilterData
context
,
Pageable
pageable
)
{
context
.
setPOSchema
(
poSchema
);
if
(
pageable
!=
null
)
context
.
setPageable
(
pageable
);
else
pageable
=
context
.
getPageable
();
Page
<
BaseData
>
pages
=
repository
.
queryData
(
link
.
getName
(),
poSchema
,
""
,
context
,
pageable
);
return
pages
;
}
@Autowired
private
IDSSettingService
dsSettingService
;
@Override
public
DSLink
getDSLink
(
String
datasource
)
{
return
dsSettingService
.
getDataSource
(
datasource
);
}
@Override
public
POSchema
getSchema
(
DSLink
link
,
String
table
)
{
return
null
;
}
}
ibzdata-core/src/main/resources/mapper/data/DbData/DbDataMapper.xml
浏览文件 @
b0595b0b
...
...
@@ -88,7 +88,7 @@
</foreach>
</select>
<select
id=
"countData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
resultType=
"java.lang.
Integer
"
>
<select
id=
"countData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
resultType=
"java.lang.
Long
"
>
select count(1) as cnt from ${schema.name}
where
<if
test=
"schema.logicValidColumn!=null"
>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录