Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzdata
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzdata
提交
39476b17
提交
39476b17
编写于
8月 17, 2021
作者:
sq3536
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
提交
上级
7c019597
变更
16
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
572 行增加
和
197 行删除
+572
-197
DevBootSecurityConfig.java
...rc/main/java/cn/ibizlab/config/DevBootSecurityConfig.java
+2
-0
pom.xml
ibzdata-core/pom.xml
+5
-1
DOModel.java
...re/src/main/java/cn/ibizlab/core/data/domain/DOModel.java
+109
-4
RequestData.java
...e/src/main/java/cn/ibizlab/core/data/dto/RequestData.java
+40
-32
LiteStorage.java
.../src/main/java/cn/ibizlab/core/data/lite/LiteStorage.java
+86
-0
MetaEntityModel.java
.../main/java/cn/ibizlab/core/data/lite/MetaEntityModel.java
+2
-0
DbDataMapper.java
...c/main/java/cn/ibizlab/core/data/mapper/DbDataMapper.java
+4
-0
POSchema.java
...re/src/main/java/cn/ibizlab/core/data/model/POSchema.java
+212
-136
PojoSchema.java
.../src/main/java/cn/ibizlab/core/data/model/PojoSchema.java
+4
-4
TransUtils.java
.../src/main/java/cn/ibizlab/core/data/model/TransUtils.java
+8
-3
ModelService.java
.../main/java/cn/ibizlab/core/data/service/ModelService.java
+3
-0
DbDataServiceImpl.java
.../cn/ibizlab/core/data/service/impl/DbDataServiceImpl.java
+46
-5
DbDataMapper.xml
...re/src/main/resources/mapper/data/DbData/DbDataMapper.xml
+29
-5
DataResource.java
...r-api/src/main/java/cn/ibizlab/api/rest/DataResource.java
+6
-3
DataObject.java
...util/src/main/java/cn/ibizlab/util/helper/DataObject.java
+1
-3
pom.xml
pom.xml
+15
-1
未找到文件。
ibzdata-boot/src/main/java/cn/ibizlab/config/DevBootSecurityConfig.java
浏览文件 @
39476b17
...
...
@@ -115,6 +115,8 @@ public class DevBootSecurityConfig extends WebSecurityConfigurerAdapter {
.
antMatchers
(
HttpMethod
.
GET
,
"/"
+
logoutPath
).
permitAll
()
// 文件操作
.
antMatchers
(
"/"
+
downloadpath
+
"/**"
).
permitAll
()
.
antMatchers
(
"/ibiz-repository/**"
).
permitAll
()
.
antMatchers
(
"/ibiz-repo/**"
).
permitAll
()
.
antMatchers
(
"/"
+
uploadpath
).
permitAll
()
.
antMatchers
(
"/"
+
previewpath
+
"/**"
).
permitAll
();
...
...
ibzdata-core/pom.xml
浏览文件 @
39476b17
...
...
@@ -97,7 +97,11 @@
<groupId>
com.baomidou
</groupId>
<artifactId>
jobs-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
net.ibizsys.model
</groupId>
<artifactId>
ibizlab-model
</artifactId>
<version>
1.1.60
</version>
</dependency>
</dependencies>
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/domain/DOModel.java
浏览文件 @
39476b17
...
...
@@ -6,10 +6,12 @@ import java.math.BigInteger;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
cn.ibizlab.core.data.dto.BaseData
;
import
cn.ibizlab.core.data.model.POSchema
;
import
cn.ibizlab.core.data.model.PojoSchema
;
import
cn.ibizlab.core.data.model.TransUtils
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
...
...
@@ -139,21 +141,124 @@ public class DOModel extends EntityBase implements Serializable {
@JsonIgnore
public
String
getKeyPropertyName
()
{
if
(
this
.
getSchema
()!=
null
&&(!
ObjectUtils
.
isEmpty
(
this
.
schema
.
getKeyMap
().
values
())))
return
this
.
schema
.
getKeyMap
().
values
().
iterator
().
next
();
PojoSchema
keyProperty
=
getKeyProperty
();
if
(
keyProperty
!=
null
)
return
keyProperty
.
getName
().
toLowerCase
();
return
"id"
;
}
@JSONField
(
serialize
=
false
)
@JsonIgnore
public
PojoSchema
getKeyProperty
()
{
if
(!
ObjectUtils
.
isEmpty
(
this
.
getKeyMap
().
values
()))
return
this
.
getKeyMap
().
values
().
iterator
().
next
();
return
null
;
}
@JSONField
(
serialize
=
false
)
@JsonIgnore
public
String
getKeyFieldName
()
{
if
(
this
.
getSchema
()!=
null
&&(!
ObjectUtils
.
isEmpty
(
this
.
schema
.
getKeyMap
().
keySet
()
)))
return
this
.
schema
.
getKeyMap
().
keySet
().
iterator
().
next
();
if
(
!
ObjectUtils
.
isEmpty
(
this
.
getKeyMap
().
keySet
(
)))
return
this
.
getKeyMap
().
keySet
().
iterator
().
next
().
toLowerCase
();
return
"id"
;
}
@JSONField
(
serialize
=
false
)
@JsonIgnore
public
Map
<
String
,
PojoSchema
>
getKeyMap
()
{
if
(
this
.
getSchema
()!=
null
&&
this
.
getSchema
().
getKeyMap
()!=
null
)
return
this
.
getSchema
().
getKeyMap
();
return
null
;
}
public
Serializable
getKeyValue
(
BaseData
data
,
boolean
genKeyWhenNotExists
)
{
Map
<
String
,
PojoSchema
>
keyMap
=
this
.
getKeyMap
();
if
(
keyMap
!=
null
)
{
if
(
keyMap
.
size
()==
1
)
{
PojoSchema
keyProperty
=
this
.
getKeyProperty
();
Object
key
=
data
.
get
(
this
.
getKeyPropertyName
());
if
(
ObjectUtils
.
isEmpty
(
key
))
{
if
(
genKeyWhenNotExists
)
{
if
(
PojoSchema
.
Type
.
integer
.
getCode
().
equals
(
keyProperty
.
getType
())||
PojoSchema
.
Type
.
number
.
getCode
().
equals
(
keyProperty
.
getType
()))
key
=
IdWorker
.
getId
();
else
key
=
IdWorker
.
get32UUID
();
data
.
set
(
this
.
getKeyPropertyName
(),
key
);
}
else
return
null
;
}
return
(
Serializable
)
key
;
}
else
if
(
keyMap
.
size
()>
1
)
{
String
key
=
""
;
for
(
PojoSchema
keySchema:
keyMap
.
values
())
{
if
(
ObjectUtils
.
isEmpty
(
data
.
get
(
keySchema
.
getName
().
toLowerCase
())))
return
null
;
if
(!
StringUtils
.
isEmpty
(
key
))
key
+=
"||"
;
else
key
+=
data
.
getStringValue
(
keySchema
.
getName
().
toLowerCase
());
}
return
key
;
}
}
return
null
;
}
public
BaseData
newData
(
Object
keyValue
)
{
return
setKeyValue
(
new
BaseData
(),
keyValue
);
}
public
BaseData
setKeyValue
(
BaseData
data
,
Object
keyValue
)
{
Map
<
String
,
PojoSchema
>
keyMap
=
this
.
getKeyMap
();
if
(
keyMap
!=
null
)
{
if
(
keyMap
.
size
()==
1
)
{
PojoSchema
keyProperty
=
this
.
getKeyProperty
();
data
.
set
(
keyProperty
.
getName
().
toLowerCase
(),
keyValue
);
return
data
;
}
else
if
(
keyMap
.
size
()>
1
)
{
String
key
=
DataObject
.
getStringValue
(
keyValue
,
""
);
String
[]
keys
=
key
.
split
(
"||"
);
if
(
keyMap
.
size
()!=
keys
.
length
)
return
null
;
int
i
=
0
;
for
(
PojoSchema
keySchema:
keyMap
.
values
())
{
if
(
PojoSchema
.
Type
.
integer
.
getCode
().
equals
(
keySchema
.
getType
()))
data
.
set
(
keySchema
.
getName
().
toLowerCase
(),
DataObject
.
getLongValue
(
keys
[
i
],
null
));
else
if
(
PojoSchema
.
Type
.
number
.
getCode
().
equals
(
keySchema
.
getType
()))
data
.
set
(
keySchema
.
getName
().
toLowerCase
(),
DataObject
.
getBigDecimalValue
(
keys
[
i
],
null
));
else
if
(
PojoSchema
.
Type
.
string
.
getCode
().
equals
(
keySchema
.
getType
())&&(!
StringUtils
.
isEmpty
(
keySchema
.
getFormat
()))&&
keySchema
.
getFormat
().
indexOf
(
"data"
)==
0
)
data
.
set
(
keySchema
.
getName
().
toLowerCase
(),
DataObject
.
getTimestampValue
(
keys
[
i
],
null
));
else
data
.
set
(
keySchema
.
getName
().
toLowerCase
(),
keys
[
i
]);
}
return
data
;
}
}
return
null
;
}
@JSONField
(
serialize
=
false
)
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/dto/RequestData.java
浏览文件 @
39476b17
...
...
@@ -22,66 +22,74 @@ public class RequestData<T> extends BaseData
public
RequestData
setKey
(
Object
key
)
{
return
this
.
set
(
"key"
,
key
);
this
.
key
=
key
;
return
this
;
}
public
Serializable
getKey
()
{
Object
key
=
this
.
get
(
"key"
);
Object
key
=
this
.
key
;
if
(
key
==
null
)
key
=
this
.
get
(
"key"
);
if
(
key
!=
null
)
return
(
Serializable
)
key
;
else
return
null
;
}
public
RequestData
setSystem
(
String
system
)
{
return
this
.
set
(
"system"
,
system
);
private
Object
key
;
private
String
system
;
private
String
scope
;
private
String
entity
;
private
String
method
;
private
String
dataSource
;
public
String
getSystem
()
{
return
system
;
}
public
String
getSystem
()
{
return
this
.
getStringValue
(
"system"
)
;
public
RequestData
setSystem
(
String
system
)
{
this
.
system
=
system
;
return
this
;
}
public
RequestData
setScope
(
String
scope
)
{
return
this
.
set
(
"scope"
,
scope
);
public
String
getScope
()
{
return
scope
;
}
public
String
getScope
()
{
return
this
.
getStringValue
(
"scope"
,
"default"
)
;
public
RequestData
setScope
(
String
scope
)
{
this
.
scope
=
scope
;
return
this
;
}
public
RequestData
setEntity
(
String
entity
)
{
return
this
.
set
(
"entity"
,
entity
);
public
String
getEntity
()
{
return
entity
;
}
public
String
getEntity
()
{
return
this
.
getStringValue
(
"entity"
,
this
.
getStringValue
(
"dename"
))
;
public
RequestData
setEntity
(
String
entity
)
{
this
.
entity
=
entity
;
return
this
;
}
public
RequestData
setMethod
(
String
method
)
{
return
this
.
set
(
"method"
,
method
);
public
String
getMethod
()
{
return
method
;
}
public
String
getMethod
()
{
return
this
.
getStringValue
(
"method"
,
this
.
getStringValue
(
"action"
))
;
public
RequestData
setMethod
(
String
method
)
{
this
.
method
=
method
;
return
this
;
}
public
RequestData
setDataSource
(
String
datasource
)
{
return
this
.
set
(
"datasource"
,
datasource
);
public
String
getDataSource
()
{
return
dataSource
;
}
public
String
getDataSource
()
{
return
this
.
getStringValue
(
"datasource"
)
;
public
RequestData
setDataSource
(
String
dataSource
)
{
this
.
dataSource
=
dataSource
;
return
this
;
}
public
RequestData
setBody
(
T
data
)
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/lite/LiteStorage.java
浏览文件 @
39476b17
package
cn
.
ibizlab
.
core
.
data
.
lite
;
import
com.alibaba.fastjson.JSON
;
import
net.ibizsys.model.IPSSystem
;
import
net.ibizsys.model.PSModelServiceImpl
;
import
net.ibizsys.model.dataentity.IPSDataEntity
;
import
net.ibizsys.model.dataentity.defield.IPSDEField
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
javax.annotation.PostConstruct
;
import
java.io.File
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Component
public
class
LiteStorage
{
...
...
@@ -20,6 +32,12 @@ public class LiteStorage {
return
service
;
}
public
static
EntityModel
getEntityModel
(
String
system
,
String
entity
)
{
return
service
.
getProxyEntityModel
(
system
,
entity
);
}
@Autowired
private
LiteModelFeignClient
client
;
...
...
@@ -28,4 +46,72 @@ public class LiteStorage {
public
void
init
(){
LiteStorage
.
setLiteModelService
(
client
);
}
@Value
(
"${ibiz.model.path:/app/file/model/}"
)
private
String
modelPath
;
private
Map
<
String
,
IPSSystem
>
dynamicSystems
;
public
synchronized
IPSSystem
getDynamicSystem
(
String
system
)
{
if
(
dynamicSystems
==
null
)
dynamicSystems
=
new
HashMap
<>();
if
(
dynamicSystems
.
containsKey
(
system
))
return
dynamicSystems
.
get
(
system
);
return
initDynamicSystem
(
system
);
}
public
synchronized
IPSSystem
initDynamicSystem
(
String
system
)
{
if
(
dynamicSystems
==
null
)
dynamicSystems
=
new
HashMap
<>();
PSModelServiceImpl
psModelService
=
new
PSModelServiceImpl
();
psModelService
.
setPSModelFolderPath
(
modelPath
+
File
.
separator
+
system
+
File
.
separator
+
"model"
);
IPSSystem
iPSSystem
=
null
;
try
{
iPSSystem
=
psModelService
.
getPSSystem
();
dynamicSystems
.
put
(
system
,
iPSSystem
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
String
.
format
(
"加载系统模型错误:%s"
,
e
.
getMessage
()));
}
return
iPSSystem
;
}
public
synchronized
EntityModel
getDynamicEntity
(
String
system
,
String
entity
)
throws
Exception
{
IPSSystem
iPSSystem
=
getDynamicSystem
(
system
);
if
(
iPSSystem
==
null
)
return
null
;
IPSDataEntity
dataEntity
=
iPSSystem
.
getPSDataEntity
(
entity
,
true
);
if
(
dataEntity
==
null
)
return
null
;
EntityModel
entityModel
=
new
EntityModel
();
MetaEntityModel
metaEntityModel
=
new
MetaEntityModel
();
metaEntityModel
.
setEntityId
(
dataEntity
.
getId
()).
setEntityName
(
dataEntity
.
getName
())
.
setLogicName
(
dataEntity
.
getLogicName
()).
setCodeName
(
dataEntity
.
getCodeName
()).
setTableName
(
dataEntity
.
getTableName
())
.
setSystemId
(
system
).
setSystemName
(
iPSSystem
.
getLogicName
()).
setShowOrder
(
0
);
if
(
dataEntity
.
isLogicValid
())
{
List
<
Setting
>
settingList
=
new
ArrayList
<>();
String
val
=
dataEntity
.
getValidLogicValue
();
if
(
StringUtils
.
isEmpty
(
val
))
val
=
"1"
;
String
deVal
=
dataEntity
.
getInvalidLogicValue
();
if
(
StringUtils
.
isEmpty
(
deVal
))
deVal
=
"0"
;
settingList
.
add
(
new
Setting
().
setProperty
(
"logicval"
).
setValue
(
val
));
settingList
.
add
(
new
Setting
().
setProperty
(
"logicdelval"
).
setValue
(
deVal
));
metaEntityModel
.
setExtParams
(
JSON
.
toJSONString
(
settingList
));
}
entityModel
.
setEntity
(
metaEntityModel
);
for
(
IPSDEField
defield:
dataEntity
.
getAllPSDEFields
())
{
}
return
entityModel
;
}
}
ibzdata-core/src/main/java/cn/ibizlab/core/data/lite/MetaEntityModel.java
浏览文件 @
39476b17
...
...
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.experimental.Accessors
;
import
java.sql.Timestamp
;
...
...
@@ -16,6 +17,7 @@ import java.sql.Timestamp;
@Getter
@Setter
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@JsonIgnoreProperties
(
value
=
"handler"
)
public
class
MetaEntityModel
{
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/mapper/DbDataMapper.java
浏览文件 @
39476b17
...
...
@@ -21,6 +21,10 @@ public interface DbDataMapper {
int
save
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
List
<
BaseData
>
checkData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
List
<
BaseData
>
getData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
int
insertData
(
@Param
(
"schema"
)
POSchema
schema
,
@Param
(
"data"
)
BaseData
data
);
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/model/POSchema.java
浏览文件 @
39476b17
此差异已折叠。
点击以展开。
ibzdata-core/src/main/java/cn/ibizlab/core/data/model/PojoSchema.java
浏览文件 @
39476b17
...
...
@@ -205,11 +205,11 @@ public class PojoSchema {
@JsonIgnore
@JSONField
(
serialize
=
false
)
private
Map
<
String
,
String
>
keyMap
;
private
Map
<
String
,
PojoSchema
>
keyMap
;
@JsonIgnore
@JSONField
(
serialize
=
false
)
public
synchronized
Map
<
String
,
String
>
getKeyMap
()
public
synchronized
Map
<
String
,
PojoSchema
>
getKeyMap
()
{
if
(
Type
.
object
.
getCode
().
equals
(
this
.
type
))
{
...
...
@@ -218,13 +218,13 @@ public class PojoSchema {
keyMap
=
new
LinkedHashMap
<>();
getProperties
().
values
().
forEach
(
sub
->{
if
(
sub
.
getOptions
().
isKeyField
()&&
sub
.
getOptions
().
isPhysicalField
())
keyMap
.
put
(
sub
.
getOptions
().
getFieldName
(),
sub
.
getName
()
);
keyMap
.
put
(
sub
.
getOptions
().
getFieldName
(),
sub
);
});
if
(
keyMap
.
isEmpty
())
{
getProperties
().
values
().
forEach
(
sub
->{
if
(
sub
.
getOptions
().
isUnionKeyField
()&&
sub
.
getOptions
().
isPhysicalField
())
keyMap
.
put
(
sub
.
getOptions
().
getFieldName
(),
sub
.
getName
()
);
keyMap
.
put
(
sub
.
getOptions
().
getFieldName
(),
sub
);
});
}
}
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/model/TransUtils.java
浏览文件 @
39476b17
...
...
@@ -160,8 +160,7 @@ public class TransUtils {
for
(
String
name:
pojoSchema
.
getProperties
().
keySet
())
{
PojoSchema
sub
=
pojoSchema
.
getProperties
().
get
(
name
);
if
(!
sub
.
getOptions
().
isPhysicalField
())
continue
;
String
dataType
=
sub
.
getOptions
().
getDataType
();
Integer
length
=
sub
.
getOptions
().
getDataLength
();
...
...
@@ -171,6 +170,9 @@ public class TransUtils {
if
(
PojoSchema
.
Type
.
object
.
getCode
().
equals
(
sub
.
getType
())||
PojoSchema
.
Type
.
array
.
getCode
().
equals
(
sub
.
getType
()))
{
if
(!
sub
.
getOptions
().
isPhysicalField
())
continue
;
if
(
StringUtils
.
isEmpty
(
dataType
))
dataType
=
"TEXT"
;
column
.
setType
(
dataType
);
column
.
setLength
(
null
);
...
...
@@ -230,7 +232,10 @@ public class TransUtils {
}
}
poSchema
.
addColumn
(
column
);
if
(!
sub
.
getOptions
().
isPhysicalField
())
poSchema
.
addTransient
(
column
.
setComputed
(
true
));
else
poSchema
.
addColumn
(
column
);
}
...
...
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/ModelService.java
浏览文件 @
39476b17
...
...
@@ -18,7 +18,9 @@ import java.nio.charset.StandardCharsets;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.nio.file.StandardOpenOption
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Slf4j
...
...
@@ -35,4 +37,5 @@ public class ModelService {
return
doModelService
.
get
(
system
+
".domain."
+
entity
);
}
}
ibzdata-core/src/main/java/cn/ibizlab/core/data/service/impl/DbDataServiceImpl.java
浏览文件 @
39476b17
...
...
@@ -6,15 +6,20 @@ import cn.ibizlab.core.data.dto.BaseData;
import
cn.ibizlab.core.data.dto.DbDataQuery
;
import
cn.ibizlab.core.data.filter.DOModelSearchContext
;
import
cn.ibizlab.core.data.mapper.DbDataMapper
;
import
cn.ibizlab.core.data.model.POSchema
;
import
cn.ibizlab.core.data.model.PojoSchema
;
import
cn.ibizlab.core.data.service.IDOModelService
;
import
cn.ibizlab.core.data.service.IDataService
;
import
cn.ibizlab.util.errors.BadRequestAlertException
;
import
cn.ibizlab.util.filter.SearchContextBase
;
import
com.baomidou.mybatisplus.core.toolkit.IdWorker
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.ObjectUtils
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
...
...
@@ -35,7 +40,12 @@ public class DbDataServiceImpl extends BaseDataService {
@Override
public
boolean
create
(
DOModel
model
,
String
datasource
,
BaseData
et
)
{
return
dbDataMapper
.
insertData
(
model
.
getDefaultPOSchema
().
build
(),
et
)==
1
;
Serializable
key
=
model
.
getKeyValue
(
et
,
true
);
if
(
ObjectUtils
.
isEmpty
(
key
))
throw
new
BadRequestAlertException
(
"未找到主键"
,
model
.
getName
(),
null
);
if
(
dbDataMapper
.
insertData
(
model
.
getDefaultPOSchema
(),
et
)==
1
)
et
.
setAll
(
get
(
model
,
datasource
,
key
));
return
true
;
}
@Override
...
...
@@ -47,7 +57,11 @@ public class DbDataServiceImpl extends BaseDataService {
@Override
public
boolean
update
(
DOModel
model
,
String
datasource
,
BaseData
et
)
{
dbDataMapper
.
updateData
(
model
.
getDefaultPOSchema
().
build
(),
et
);
Serializable
key
=
model
.
getKeyValue
(
et
,
true
);
if
(
ObjectUtils
.
isEmpty
(
key
))
throw
new
BadRequestAlertException
(
"未找到主键"
,
model
.
getName
(),
null
);
dbDataMapper
.
updateData
(
model
.
getDefaultPOSchema
(),
et
);
et
.
setAll
(
get
(
model
,
datasource
,(
Serializable
)
key
));
return
true
;
}
...
...
@@ -60,7 +74,13 @@ public class DbDataServiceImpl extends BaseDataService {
@Override
public
boolean
remove
(
DOModel
model
,
String
datasource
,
Serializable
key
)
{
return
false
;
if
(
ObjectUtils
.
isEmpty
(
key
))
throw
new
BadRequestAlertException
(
"未找到主键"
,
model
.
getName
(),
null
);
BaseData
et
=
model
.
newData
(
key
);
if
(
et
==
null
)
throw
new
BadRequestAlertException
(
"未找到主键"
,
model
.
getName
(),
null
);
dbDataMapper
.
removeData
(
model
.
getDefaultPOSchema
(),
et
);
return
true
;
}
@Override
...
...
@@ -72,7 +92,18 @@ public class DbDataServiceImpl extends BaseDataService {
@Override
public
BaseData
get
(
DOModel
model
,
String
datasource
,
Serializable
key
)
{
return
null
;
if
(
ObjectUtils
.
isEmpty
(
key
))
throw
new
BadRequestAlertException
(
"未找到主键"
,
model
.
getName
(),
null
);
BaseData
et
=
model
.
newData
(
key
);
if
(
et
==
null
)
throw
new
BadRequestAlertException
(
"未找到主键"
,
model
.
getName
(),
null
);
POSchema
poSchema
=
model
.
getDefaultPOSchema
();
List
<
BaseData
>
list
=
dbDataMapper
.
getData
(
poSchema
,
et
);
if
(
ObjectUtils
.
isEmpty
(
list
)||
list
.
size
()>
1
)
throw
new
BadRequestAlertException
(
"未找到数据"
,
model
.
getName
(),
key
.
toString
());
if
(
list
.
size
()>
1
)
throw
new
BadRequestAlertException
(
"数据不唯一"
,
model
.
getName
(),
key
.
toString
());
return
poSchema
.
trans
(
list
.
get
(
0
));
}
@Override
...
...
@@ -84,13 +115,23 @@ public class DbDataServiceImpl extends BaseDataService {
@Override
public
boolean
checkKey
(
DOModel
model
,
String
datasource
,
BaseData
et
)
{
Serializable
key
=
model
.
getKeyValue
(
et
,
true
);
if
(
ObjectUtils
.
isEmpty
(
key
))
return
false
;
List
<
BaseData
>
list
=
dbDataMapper
.
getData
(
model
.
getDefaultPOSchema
(),
et
);
if
(
ObjectUtils
.
isEmpty
(
list
)&&
list
.
size
()==
1
)
return
list
.
get
(
0
).
getIntegerValue
(
"cnt"
,
0
)==
1
;
return
false
;
}
@Override
public
boolean
save
(
DOModel
model
,
String
datasource
,
BaseData
et
)
{
return
false
;
if
(
checkKey
(
model
,
datasource
,
et
))
return
update
(
model
,
datasource
,
et
);
else
return
create
(
model
,
datasource
,
et
);
}
@Override
...
...
ibzdata-core/src/main/resources/mapper/data/DbData/DbDataMapper.xml
浏览文件 @
39476b17
...
...
@@ -18,13 +18,13 @@
<insert
id=
"insertData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
>
INSERT INTO ${schema.name}
(
<foreach
collection=
"schema.
result
Map"
item=
"value"
index=
"key"
separator=
","
>
<foreach
collection=
"schema.
baseColumn
Map"
item=
"value"
index=
"key"
separator=
","
>
${key}
</foreach>
)
VALUES
(
<foreach
collection=
"schema.
result
Map"
item=
"value"
index=
"key"
separator=
","
>
<foreach
collection=
"schema.
baseColumn
Map"
item=
"value"
index=
"key"
separator=
","
>
#{data[${value}]}
</foreach>
)
...
...
@@ -33,7 +33,7 @@
<update
id=
"updateData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
>
update ${schema.name}
set
<foreach
collection=
"schema.
result
Map"
item=
"value"
index=
"key"
separator=
","
>
<foreach
collection=
"schema.
baseColumn
Map"
item=
"value"
index=
"key"
separator=
","
>
<if
test=
"data.keys.contains(value)"
>
${key}= #{data[${value}]}
</if>
</foreach>
where
...
...
@@ -42,14 +42,38 @@
</foreach>
</update>
<select
id=
"getData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
resultType=
"cn.ibizlab.core.data.dto.BaseData"
>
select
<foreach
collection=
"schema.baseColumnMap"
item=
"value"
index=
"key"
separator=
","
>
${key}
</foreach>
from ${schema.name}
where
<if
test=
"schema.logicValidColumn!=null"
>
${schema.logicValidCond} and
</if>
<foreach
collection=
"schema.keyMap"
item=
"value"
index=
"key"
separator=
"and"
>
${key}= #{data[${value}]}
</foreach>
</select>
<select
id=
"checkData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
resultType=
"cn.ibizlab.core.data.dto.BaseData"
>
select count(1) as cnt from ${schema.name}
where
<if
test=
"schema.logicValidColumn!=null"
>
${schema.logicValidCond} and
</if>
<foreach
collection=
"schema.keyMap"
item=
"value"
index=
"key"
separator=
"and"
>
${key}= #{data[${value}]}
</foreach>
</select>
<update
id=
"removeData"
parameterType=
"cn.ibizlab.core.data.dto.BaseData"
>
<if
test=
"schema.logicValidColumn!=null"
>
update ${schema.name}
set
<foreach
collection=
"schema.resultMap"
item=
"value"
index=
"key"
separator=
","
>
${schema.logicValidDelCond}
</foreach>
where
<foreach
collection=
"schema.keyMap"
item=
"value"
index=
"key"
separator=
"and"
>
${key}= #{data[${value}]}
...
...
ibzdata-provider/ibzdata-provider-api/src/main/java/cn/ibizlab/api/rest/DataResource.java
浏览文件 @
39476b17
...
...
@@ -29,9 +29,12 @@ public class DataResource
public
IDataService
dataService
;
@ApiOperation
(
value
=
"保存数据"
,
tags
=
{
"数据"
},
notes
=
"保存数据"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
{
"/{system}/{entity}/{method}"
,
"/{system}/{scope}/{entity}/{method}"
})
public
ResponseEntity
<
BaseData
>
call
(
@PathVariable
(
name
=
"system"
,
required
=
true
)
String
system
,
@PathVariable
(
name
=
"scope"
,
required
=
false
)
String
scope
,
@PathVariable
(
name
=
"entity"
,
required
=
true
)
String
entity
,
@PathVariable
(
name
=
"method"
,
required
=
true
)
String
method
,
@RequestParam
(
name
=
"datasource"
,
required
=
false
)
String
datasource
,
@RequestBody
BaseData
baseData
)
{
ResponseData
<
BaseData
>
responseData
=
dataService
.
call
(
system
,
scope
,
entity
,
method
,
datasource
,
new
RequestData
().
setBody
(
baseData
));
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
{
"/{system}/{entity}/{method}"
,
"/{system}/{scope}/{entity}/{method}"
,
"/ibiz-repository/{system}/{entity}/{method}"
,
"/ibiz-repository/{system}/{scope}/{entity}/{method}"
,
"/ibiz-repo/{system}/{entity}/{method}"
,
"/ibiz-repo/{system}/{scope}/{entity}/{method}"
})
public
ResponseEntity
call
(
@PathVariable
(
name
=
"system"
,
required
=
true
)
String
system
,
@PathVariable
(
name
=
"scope"
,
required
=
false
)
String
scope
,
@PathVariable
(
name
=
"entity"
,
required
=
true
)
String
entity
,
@PathVariable
(
name
=
"method"
,
required
=
true
)
String
method
,
@RequestParam
(
name
=
"datasource"
,
required
=
false
)
String
datasource
,
@RequestBody
RequestData
requestData
)
{
ResponseData
responseData
=
dataService
.
call
(
system
,
scope
,
entity
,
method
,
datasource
,
requestData
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
responseData
.
getBody
());
}
...
...
ibzdata-util/src/main/java/cn/ibizlab/util/helper/DataObject.java
浏览文件 @
39476b17
...
...
@@ -31,9 +31,7 @@ public class DataObject {
if
(
rt
.
endsWith
(
" 00:00:00"
))
{
rt
=
dayFormat
.
format
(
objValue
);
}
else
if
(
rt
.
endsWith
(
":00"
))
{
rt
=
datetimeFormat2
.
format
(
objValue
);
}
return
rt
;
}
if
(
objValue
instanceof
BigDecimal
)
...
...
pom.xml
浏览文件 @
39476b17
...
...
@@ -47,6 +47,20 @@
<updatePolicy>
always
</updatePolicy>
</snapshots>
</repository>
</repositories>
<repository>
<id>
ibizmvnrepository
</id>
<name>
ibizmvnrepository
</name>
<url>
http://172.16.240.220:8081/nexus/content/groups/public/
</url>
<layout>
default
</layout>
<releases>
<enabled>
true
</enabled>
</releases>
<snapshots>
<enabled>
true
</enabled>
<updatePolicy>
always
</updatePolicy>
</snapshots>
</repository>
</repositories>
</project>
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录