Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nnjcy-data-model
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
梁家彪
nnjcy-data-model
Commits
94de6fdc
Commit
94de6fdc
authored
Oct 09, 2023
by
wqc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加组件
parent
ca96da48
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
292 additions
and
11 deletions
+292
-11
dataoperation-server/src/main/java/com/zq/dataoperation/controller/ComponentRunController.java
+6
-0
dataoperation-server/src/main/java/com/zq/dataoperation/service/CommonQueryService.java
+33
-3
dataoperation-server/src/main/java/com/zq/dataoperation/utils/MobileUtil.java
+166
-0
dataoperation-server/src/main/resources/mapper/MetaDataMapper.xml
+27
-0
dataoperation-server/src/main/resources/mapper/MetaDataMappingMapper.xml
+56
-0
spider-flow-core/src/main/java/com/zq/spiderflow/core/executor/shape/ValidateNumberExecutor.java
+0
-0
spider-flow-web/src/main/java/com/zq/spiderflow/controller/DataSourceController.java
+4
-8
No files found.
dataoperation-server/src/main/java/com/zq/dataoperation/controller/ComponentRunController.java
View file @
94de6fdc
...
...
@@ -47,4 +47,10 @@ public class ComponentRunController {
return
ResultVo
.
success
(
commonQueryService
.
CutString
(
body
));
}
@ApiOperation
(
"验证国内电话"
)
@PostMapping
(
"/validateNumber"
)
public
ResultVo
validateNumber
(
@RequestBody
Map
<
String
,
Object
>
body
)
throws
Exception
{
return
ResultVo
.
success
(
commonQueryService
.
validateNumber
(
body
));
}
}
dataoperation-server/src/main/java/com/zq/dataoperation/service/CommonQueryService.java
View file @
94de6fdc
...
...
@@ -17,6 +17,7 @@ import com.zq.dataoperation.entity.MetaDataMapping;
import
com.zq.dataoperation.entity.QueryDb
;
import
com.zq.dataoperation.utils.ConnectionUtil
;
import
com.zq.dataoperation.utils.IdentityUtils
;
import
com.zq.dataoperation.utils.MobileUtil
;
import
com.zq.dataoperation.utils.SqlUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.jdbc.core.JdbcTemplate
;
...
...
@@ -192,7 +193,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
String
metaData
=
jsonObject
.
get
(
"metaData"
).
toString
();
String
sql1
=
"SELECT "
+
metaData
+
" FROM "
+
tableName
+
" GROUP BY "
+
metaData
+
" HAVING COUNT("
+
metaData
+
")>1;"
;
List
<
Map
>
mapList
=
commonQuery
(
sql1
,
datasourceId
);
if
(
mapList
==
null
){
if
(
mapList
.
size
()==
0
){
return
"该字段没有重复值"
;
}
else
{
String
sql
=
"SELECT * FROM "
+
tableName
+
" WHERE id not in (SELECT MIN(id) FROM "
+
tableName
+
" GROUP BY "
+
metaData
+
" HAVING COUNT("
+
metaData
+
")>1);"
;
...
...
@@ -207,7 +208,7 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
String
tableName
=
jsonObject
.
get
(
"tableName"
).
toString
();
String
metaData
=
jsonObject
.
get
(
"metaData"
).
toString
();
String
sql
=
"SELECT * FROM "
+
tableName
;
if
(
StringUtils
.
isNotBlank
(
metaData
))
{
if
(
!
StringUtils
.
isNotBlank
(
metaData
))
{
return
"字段为身份证且不为空!"
;
}
if
(
IdentityUtils
.
isLegalIdCard
(
metaData
)!=
true
){
...
...
@@ -260,10 +261,39 @@ public class CommonQueryService extends ServiceImpl<CommonQuerySettingDao, Commo
String
indexStr
=
jsonObject
.
get
(
"indexStr"
).
toString
();
String
metaData
=
jsonObject
.
get
(
"metaData"
).
toString
();
String
sql
=
"SELECT *,"
+
" SUBSTR("
+
metaData
+
","
+
beginStr
+
","
+
indexStr
+
") AS "
+
metaData
+
"1 FROM "
+
tableName
;
if
(
StringUtils
.
isNotBlank
(
metaData
)&&
StringUtils
.
isNotBlank
(
tableName
)&&
StringUtils
.
isNotBlank
(
beginStr
)&&
StringUtils
.
isNotBlank
(
indexStr
))
{
if
(
!
StringUtils
.
isNotBlank
(
metaData
)&&
StringUtils
.
isNotBlank
(
tableName
)&&
StringUtils
.
isNotBlank
(
beginStr
)&&
StringUtils
.
isNotBlank
(
indexStr
))
{
return
"传入参数不能为空"
;
}
else
{
return
commonQuery
(
sql
,
datasourceId
);
}
}
public
Object
validateNumber
(
Map
<
String
,
Object
>
body
)
throws
Exception
{
JSONObject
jsonObject
=
JSONUtil
.
parseObj
(
body
);
Long
datasourceId
=
Long
.
valueOf
(
jsonObject
.
get
(
"datasourceId"
).
toString
());
String
tableName
=
jsonObject
.
get
(
"tableName"
).
toString
();
String
metaData
=
jsonObject
.
get
(
"metaData"
).
toString
();
HashMap
<
String
,
Object
>
map
=
new
HashMap
<>();
if
(!
StringUtils
.
isNotBlank
(
metaData
)&&
StringUtils
.
isNotBlank
(
tableName
))
{
return
"传入参数不能为空"
;
}
String
phone
=
"SELECT "
+
metaData
+
" FROM "
+
tableName
;
String
sql
=
"SELECT * FROM "
+
tableName
+
" WHERE "
+
metaData
+
" REGEXP '^1[3-9][0-9]{9}$'"
;
// List<Map> mapList = commonQuery(phone, datasourceId);
// for (Object list:mapList) {
// String meta = list.toString();
// if(MobileUtil.checkPhone(meta)!=true) {
// log.error("不是国内手机号");
// continue;
// }else{
// dataList = commonQuery(sql, datasourceId);
// }
// }
List
<
Map
>
dataList
=
commonQuery
(
sql
,
datasourceId
);
String
dirty
=
"SELECT * FROM "
+
tableName
+
" WHERE "
+
metaData
+
" NOT REGEXP '^1[3-9][0-9]{9}$'"
;
List
<
Map
>
dirtyList
=
commonQuery
(
dirty
,
datasourceId
);
map
.
put
(
"dataList"
,
dataList
);
map
.
put
(
"dirtyList"
,
dirtyList
);
return
map
;
}
}
dataoperation-server/src/main/java/com/zq/dataoperation/utils/MobileUtil.java
0 → 100644
View file @
94de6fdc
package
com
.
zq
.
dataoperation
.
utils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.regex.Pattern
;
/**
* 手机号校验工具类
*/
public
class
MobileUtil
{
/**
* 中国电信号码格式验证 手机段: 133,149,153,173,177,180,181,189,191,199,1349,1410,1700,1701,1702
**/
private
static
final
String
CHINA_TELECOM_PATTERN
=
"(?:^(?:\\+86)?1(?:33|49|53|7[347]|8[019]|9[139])\\d{8}$)|(?:^(?:\\+86)?1349\\d{7}$)|(?:^(?:\\+86)?1410\\d{7}$)|(?:^(?:\\+86)?170[0-2]\\d{7}$)"
;
/**
* 中国联通号码格式验证 手机段:130,131,132,145,146,155,156,166,171,175,176,185,186,1704,1707,1708,1709
**/
private
static
final
String
CHINA_UNICOM_PATTERN
=
"(?:^(?:\\+86)?1(?:3[0-2]|4[56]|5[56]|6[67]|7[156]|8[56]|96)\\d{8}$)|(?:^(?:\\+86)?170[47-9]\\d{7}$)"
;
/**
* 中国移动号码格式验证
* 手机段:134,135,136,137,138,139,147,148,150,151,152,157,158,159,172,178,182,183,184,187,188,195,198,1440,1703,1705,1706
**/
private
static
final
String
CHINA_MOBILE_PATTERN
=
"(?:^(?:\\+86)?1(?:3[4-9]|4[78]|5[0-27-9]|72|78|8[2-478]|98|95)\\d{8}$)|(?:^(?:\\+86)?1440\\d{7}$)|(?:^(?:\\+86)?170[356]\\d{7}$)"
;
/**
* 虚拟运营商号码格式验证
* 162 165 167 170 171
*/
private
static
final
String
CHINA_VIRTUALLY_PATTERN
=
"(?:^(?:\\+86)?1(?:6[257]|7[01])\\d{8}$)"
;
/**
* 中国香港
*/
private
static
final
String
CHINA_HANGKONG_PATTERN
=
"^(00)?(852)[5|6|9]\\d{7}$"
;
/**
* 中国香港手机号码校验
*
* @param phone
*
* @return
*/
public
static
boolean
checkChinaHangkong
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
Pattern
regexp
=
Pattern
.
compile
(
CHINA_HANGKONG_PATTERN
);
if
(
regexp
.
matcher
(
phone
).
matches
())
{
return
true
;
}
else
{
return
false
;
}
}
return
true
;
}
/**
* 中国大陆手机号码校验
*
* @param phone
*
* @return
*/
public
static
boolean
checkPhone
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
if
(
checkChinaMobile
(
phone
)
||
checkChinaUnicom
(
phone
)
||
checkChinaTelecom
(
phone
)||
checkChinaVirtually
(
phone
)||
checkChinaHangkong
(
phone
))
{
return
true
;
}
else
{
return
false
;
}
}
return
true
;
}
/**
* 中国移动手机号码校验
*
* @param phone
*
* @return
*/
public
static
boolean
checkChinaMobile
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
Pattern
regexp
=
Pattern
.
compile
(
CHINA_MOBILE_PATTERN
);
if
(
regexp
.
matcher
(
phone
).
matches
())
{
return
true
;
}
else
{
return
false
;
}
}
return
true
;
}
/**
* 中国联通手机号码校验
*
* @param phone
*
* @return
*/
public
static
boolean
checkChinaUnicom
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
Pattern
regexp
=
Pattern
.
compile
(
CHINA_UNICOM_PATTERN
);
if
(
regexp
.
matcher
(
phone
).
matches
())
{
return
true
;
}
else
{
return
false
;
}
}
return
true
;
}
/**
* 中国电信手机号码校验
*
* @param phone
*
* @return
*/
public
static
boolean
checkChinaTelecom
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
Pattern
regexp
=
Pattern
.
compile
(
CHINA_TELECOM_PATTERN
);
if
(
regexp
.
matcher
(
phone
).
matches
())
{
return
true
;
}
else
{
return
false
;
}
}
return
true
;
}
/**
* 虚拟运营商手机号码校验
*
* @param phone
*
* @return
*/
public
static
boolean
checkChinaVirtually
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
Pattern
regexp
=
Pattern
.
compile
(
CHINA_VIRTUALLY_PATTERN
);
if
(
regexp
.
matcher
(
phone
).
matches
())
{
return
true
;
}
else
{
return
false
;
}
}
return
true
;
}
/**
* 隐藏手机号中间四位
*
* @param phone
*
* @return java.lang.String
*/
public
static
String
hideMiddleMobile
(
String
phone
)
{
if
(
StringUtils
.
isNotBlank
(
phone
))
{
phone
=
phone
.
replaceAll
(
"(\\d{3})\\d{4}(\\d{4})"
,
"$1****$2"
);
}
return
phone
;
}
}
dataoperation-server/src/main/resources/mapper/MetaDataMapper.xml
0 → 100644
View file @
94de6fdc
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.dataoperation.dao.MetaDataDao"
>
<select
id=
"getPage"
resultType=
"com.zq.dataoperation.vo.MetaDataVo"
>
SELECT
m.*,
mc.CATEGORY_NAME
FROM meta_data m
LEFT JOIN meta_data_category mc ON m.CATEGORY_ID = mc.ID
<where>
<if
test=
"req.metaName != null and req.metaName != ''"
>
AND m.META_NAME like '%${req.metaName}%'
</if>
<if
test=
"req.categoryId != null"
>
AND mc.ID = #{req.categoryId}
</if>
</where>
ORDER BY m.ID DESC
</select>
<select
id=
"getPageList"
resultType=
"com.zq.dataoperation.vo.MetaDataVo"
>
select * FROM meta_data me WHERE me.category_id = #{req.categoryId} LIMIT #{req.page},#{req.size}
</select>
</mapper>
dataoperation-server/src/main/resources/mapper/MetaDataMappingMapper.xml
0 → 100644
View file @
94de6fdc
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.zq.dataoperation.dao.MetaDataMappingDao"
>
<select
id=
"selectByMetaIdList"
resultType=
"java.util.List"
>
select * from meta_data_mapping where metadata_id=#{id}
</select>
<select
id=
"selectRepeat"
resultType=
"com.zq.dataoperation.entity.MetaDataMapping"
>
SELECT
*
FROM
meta_data_mapping
WHERE
table_sqlname = #{tableSqlname}
AND field_name IN(SELECT field_name FROM meta_data_mapping GROUP BY field_name HAVING COUNT(field_name) > 1)
</select>
<select
id=
"getSqlName"
resultType=
"com.zq.dataoperation.entity.MetaDataMapping"
>
SELECT DISTINCT
table_sqlname
FROM
meta_data_mapping
WHERE
table_sqlname IN (
SELECT
table_sqlname
FROM
meta_data_mapping
GROUP BY
table_sqlname
HAVING
COUNT( table_sqlname ) > 1)
</select>
<select
id=
"selectByCateId"
resultType=
"com.zq.dataoperation.entity.MetaDataMapping"
>
SELECT
DISTINCT
t.table_sqlname,
t.query_db_id
FROM
meta_data_mapping t
LEFT JOIN meta_data m ON t.metadata_id = m.id
LEFT JOIN meta_data_category y ON m.category_id = y.id
WHERE y.id=#{id}
</select>
<select
id=
"getMetaByTable"
resultType=
"com.zq.dataoperation.vo.MetaDataReq"
>
SELECT
a.*,
p.table_sqlname
FROM
meta_data a
LEFT JOIN meta_data_mapping p ON a.id = p.metadata_id
WHERE
p.table_sqlname = #{tableSqlName}
</select>
</mapper>
spider-flow-core/src/main/java/com/zq/spiderflow/core/executor/shape/ValidateNumberExecutor.java
0 → 100644
View file @
94de6fdc
This diff is collapsed.
Click to expand it.
spider-flow-web/src/main/java/com/zq/spiderflow/controller/DataSourceController.java
View file @
94de6fdc
...
...
@@ -11,10 +11,7 @@ import org.apache.commons.lang3.StringUtils;
import
com.zq.spiderflow.core.model.DataSource
;
import
com.zq.spiderflow.model.JsonBean
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.*
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
...
...
@@ -53,8 +50,8 @@ public class DataSourceController {
return
dataSource
;
}
@
RequestMapping
(
"/remove
"
)
public
void
remove
(
String
id
){
@
DeleteMapping
(
"/remove/{id}
"
)
public
void
remove
(
@PathVariable
String
id
){
DataSourceUtils
.
remove
(
id
);
dataSourceService
.
removeById
(
id
);
}
...
...
@@ -92,4 +89,4 @@ public class DataSourceController {
}
}
}
}
\ No newline at end of file
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment