Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gic-cloud
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
data-hook
gic-cloud
Commits
7e61c3f0
Commit
7e61c3f0
authored
Sep 18, 2021
by
陶光胜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
取数平台调整
parent
31f0a0cd
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
119 additions
and
33 deletions
+119
-33
IDownloadTaskService.java
...gic/cloud/data/hook/api/service/IDownloadTaskService.java
+2
-0
DecryptUtils.java
...in/java/com/gic/cloud/data/hook/service/DecryptUtils.java
+16
-0
DownloadRecordDao.java
...om/gic/cloud/data/hook/service/dao/DownloadRecordDao.java
+2
-0
DownloadTaskDao.java
.../com/gic/cloud/data/hook/service/dao/DownloadTaskDao.java
+2
-0
CsvResultSetHelper.java
...ic/cloud/data/hook/service/entity/CsvResultSetHelper.java
+12
-13
DownloadTaskServiceImpl.java
...cloud/data/hook/service/impl/DownloadTaskServiceImpl.java
+15
-0
FlatQueryResultServiceImpl.java
...ud/data/hook/service/impl/FlatQueryResultServiceImpl.java
+25
-17
FreeQueryServiceImpl.java
...ic/cloud/data/hook/service/impl/FreeQueryServiceImpl.java
+13
-3
DownloadRecordDao.xml
...k-service/src/main/resources/mapper/DownloadRecordDao.xml
+20
-0
DownloadTaskDao.xml
...ook-service/src/main/resources/mapper/DownloadTaskDao.xml
+12
-0
No files found.
gic-cloud-data-hook-api/src/main/java/com/gic/cloud/data/hook/api/service/IDownloadTaskService.java
View file @
7e61c3f0
...
@@ -67,4 +67,6 @@ public interface IDownloadTaskService {
...
@@ -67,4 +67,6 @@ public interface IDownloadTaskService {
List
<
DownloadRecord
>
listUnDownloadTask
(
String
source
);
List
<
DownloadRecord
>
listUnDownloadTask
(
String
source
);
DownloadProcessDTO
getDownloadProcess
();
DownloadProcessDTO
getDownloadProcess
();
void
checkTaskStatus
(
String
param
);
}
}
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/DecryptUtils.java
View file @
7e61c3f0
package
com
.
gic
.
cloud
.
data
.
hook
.
service
;
package
com
.
gic
.
cloud
.
data
.
hook
.
service
;
import
com.alibaba.dubbo.common.utils.StringUtils
;
import
com.gic.data.shield.SdkEnv
;
import
com.gic.data.shield.SdkEnv
;
import
com.gic.data.shield.decrypt.DataDecryptionClient
;
import
com.gic.data.shield.decrypt.DataDecryptionClient
;
import
com.gic.data.shield.exception.DecryptException
;
import
com.gic.data.shield.exception.DecryptException
;
...
@@ -40,5 +41,20 @@ public class DecryptUtils {
...
@@ -40,5 +41,20 @@ public class DecryptUtils {
}
}
}
}
public
static
String
dataSecurityProcessUserName
(
String
userName
){
if
(
StringUtils
.
isBlank
(
userName
)){
return
userName
;
}
int
length
=
userName
.
length
();
StringBuffer
stringBuffer
=
new
StringBuffer
();
stringBuffer
.
append
(
userName
.
charAt
(
0
));
if
(
length
>
1
){
for
(
int
k
=
0
;
k
<
length
-
1
;
k
++){
stringBuffer
.
append
(
"*"
);
}
}
return
stringBuffer
.
toString
();
}
}
}
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/dao/DownloadRecordDao.java
View file @
7e61c3f0
...
@@ -30,4 +30,6 @@ public interface DownloadRecordDao {
...
@@ -30,4 +30,6 @@ public interface DownloadRecordDao {
@Param
(
"fuzzyRange"
)
String
fuzzyRange
,
@Param
(
"fuzzy"
)
String
fuzzy
);
@Param
(
"fuzzyRange"
)
String
fuzzyRange
,
@Param
(
"fuzzy"
)
String
fuzzy
);
List
<
DownloadRecord
>
listUnDownloadTask
(
@Param
(
"source"
)
String
source
);
List
<
DownloadRecord
>
listUnDownloadTask
(
@Param
(
"source"
)
String
source
);
List
<
DownloadRecord
>
listExpireTask
();
}
}
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/dao/DownloadTaskDao.java
View file @
7e61c3f0
...
@@ -64,4 +64,6 @@ public interface DownloadTaskDao {
...
@@ -64,4 +64,6 @@ public interface DownloadTaskDao {
DownloadProcessDTO
getDownloadProcess
();
DownloadProcessDTO
getDownloadProcess
();
int
updateTaskStatusError
(
@Param
(
"idList"
)
List
<
String
>
idList
);
}
}
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/entity/CsvResultSetHelper.java
View file @
7e61c3f0
package
com
.
gic
.
cloud
.
data
.
hook
.
service
.
entity
;
package
com
.
gic
.
cloud
.
data
.
hook
.
service
.
entity
;
import
com.gic.cloud.data.hook.service.DecryptUtils
;
import
com.gic.cloud.data.hook.service.DecryptUtils
;
import
com.gic.cloud.data.hook.service.impl.FreeQueryServiceImpl
;
import
com.opencsv.ResultSetHelper
;
import
com.opencsv.ResultSetHelper
;
import
java.io.IOException
;
import
java.io.IOException
;
...
@@ -68,26 +69,24 @@ public class CsvResultSetHelper implements ResultSetHelper {
...
@@ -68,26 +69,24 @@ public class CsvResultSetHelper implements ResultSetHelper {
boolean
doDecrypt
=
false
;
// 是否进行解密
boolean
doDecrypt
=
false
;
// 是否进行解密
if
(
this
.
filterMode
.
equals
(
CsvDataFilterMode
.
DESENSI
))
{
// 如果需要脱敏
if
(
this
.
filterMode
.
equals
(
CsvDataFilterMode
.
DESENSI
))
{
// 如果需要脱敏
if
(
this
.
filters
!=
null
&&
this
.
filters
.
size
()
>
0
)
{
if
(
this
.
filters
!=
null
&&
this
.
filters
.
size
()
>
0
)
{
for
(
String
filter
:
this
.
filters
)
{
if
(
filters
.
contains
(
columnName
)){
if
(
columnName
.
contains
(
filter
))
{
doDesensi
=
true
;
doDesensi
=
true
;
}
break
;
}
// IF OVER
}
// FOR OVER
}
// IF OVER
}
// IF OVER
}
else
if
(
this
.
filterMode
.
equals
(
CsvDataFilterMode
.
DECRYPT
))
{
// 如果需要解密
}
else
if
(
this
.
filterMode
.
equals
(
CsvDataFilterMode
.
DECRYPT
))
{
// 如果需要解密
if
(
this
.
filters
!=
null
&&
this
.
filters
.
size
()
>
0
)
{
if
(
this
.
filters
!=
null
&&
this
.
filters
.
size
()
>
0
)
{
for
(
String
filter
:
this
.
filters
)
{
if
(
filters
.
contains
(
columnName
)
||
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
columnName
)){
if
(
columnName
.
equals
(
filter
))
{
doDecrypt
=
true
;
doDecrypt
=
true
;
}
break
;
}
// IF OVER
}
// FOR OVER
}
// IF OVER
}
// IF OVER
}
}
// 数据处理
// 数据处理
if
(
doDesensi
)
{
// 如果需要脱敏处理
if
(
doDesensi
)
{
// 如果需要脱敏处理
result
[
i
]
=
"******"
;
if
(
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
columnName
)){
result
[
i
]
=
DecryptUtils
.
dataSecurityProcessUserName
(
resultSet
.
getString
(
columnName
));
}
else
{
result
[
i
]
=
"******"
;
}
}
else
if
(
doDecrypt
)
{
// 如果需要解密处理
}
else
if
(
doDecrypt
)
{
// 如果需要解密处理
//System.out.println("CSV 解密字段名 " + columnName);
//System.out.println("CSV 解密字段名 " + columnName);
String
tmpResult
=
resultSet
.
getString
(
columnName
);
String
tmpResult
=
resultSet
.
getString
(
columnName
);
...
...
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/impl/DownloadTaskServiceImpl.java
View file @
7e61c3f0
...
@@ -15,6 +15,7 @@ import com.gic.cloud.data.hook.service.dao.RiskModeRecordDao;
...
@@ -15,6 +15,7 @@ import com.gic.cloud.data.hook.service.dao.RiskModeRecordDao;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageHelper
;
import
com.github.pagehelper.PageInfo
;
import
com.github.pagehelper.PageInfo
;
import
com.opencsv.CSVWriter
;
import
com.opencsv.CSVWriter
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.concurrent.BasicThreadFactory
;
import
org.apache.commons.lang3.concurrent.BasicThreadFactory
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
...
@@ -260,5 +261,19 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService {
...
@@ -260,5 +261,19 @@ public class DownloadTaskServiceImpl implements IDownloadTaskService {
return
downloadProcess
;
return
downloadProcess
;
}
}
@Override
public
void
checkTaskStatus
(
String
param
)
{
List
<
DownloadRecord
>
downloadRecordList
=
this
.
downloadRecordDao
.
listExpireTask
();
List
<
String
>
idList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
downloadRecordList
)){
for
(
DownloadRecord
downloadRecord
:
downloadRecordList
){
idList
.
add
(
downloadRecord
.
getId
());
}
}
if
(
CollectionUtils
.
isNotEmpty
(
idList
)){
//设置超时任务的状态为error
}
}
}
}
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/impl/FlatQueryResultServiceImpl.java
View file @
7e61c3f0
...
@@ -271,22 +271,26 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
...
@@ -271,22 +271,26 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
} else fieldResult = "";
} else fieldResult = "";
} else fieldResult = "******";
} else fieldResult = "******";
} else fieldResult = rs.getObject(fieldColumnIndex);**/
} else fieldResult = rs.getObject(fieldColumnIndex);**/
if
(
FreeQueryServiceImpl
.
FILTERS_PHONE_ONLY
.
contains
(
fieldName
)
||
FreeQueryServiceImpl
.
FILTERS_PHONE_AND_CARD
.
contains
(
fieldName
))
{
if
(
queryDataType
==
QueryDataType
.
FULL
){
if
(
queryDataType
==
QueryDataType
.
FULL
){
String
preResult
=
rs
.
getString
(
fieldColumnIndex
);
String
preResult
=
rs
.
getString
(
fieldColumnIndex
);
if
(
dataPermission
==
1
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_ONLY
.
contains
(
fieldName
)){
if
(
dataPermission
==
1
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_ONLY
.
contains
(
fieldName
)){
fieldResult
=
DecryptUtils
.
decrypt
(
preResult
);
fieldResult
=
DecryptUtils
.
decrypt
(
preResult
);
}
else
if
(
dataPermission
==
2
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_AND_CARD
.
contains
(
fieldName
)){
}
else
if
(
dataPermission
==
2
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_AND_CARD
.
contains
(
fieldName
)){
fieldResult
=
DecryptUtils
.
decrypt
(
preResult
);
fieldResult
=
DecryptUtils
.
decrypt
(
preResult
);
}
else
fieldResult
=
rs
.
getObject
(
fieldColumnIndex
);
}
else
if
(
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
fieldName
)){
}
else
{
fieldResult
=
DecryptUtils
.
decrypt
(
preResult
);
if
(
dataPermission
==
1
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_ONLY
.
contains
(
fieldName
)){
}
else
fieldResult
=
rs
.
getObject
(
fieldColumnIndex
);
fieldResult
=
"******"
;
}
else
{
}
else
if
(
dataPermission
==
2
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_AND_CARD
.
contains
(
fieldName
)){
if
(
dataPermission
==
1
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_ONLY
.
contains
(
fieldName
)){
fieldResult
=
"******"
;
fieldResult
=
"******"
;
}
else
fieldResult
=
rs
.
getObject
(
fieldColumnIndex
);
}
else
if
(
dataPermission
==
2
&&
FreeQueryServiceImpl
.
FILTERS_PHONE_AND_CARD
.
contains
(
fieldName
)){
}
fieldResult
=
"******"
;
}
else
fieldResult
=
rs
.
getObject
(
fieldColumnIndex
);
}
else
if
(
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
fieldName
)){
fieldResult
=
DecryptUtils
.
dataSecurityProcessUserName
(
rs
.
getObject
(
fieldColumnIndex
)+
""
);
}
else
fieldResult
=
rs
.
getObject
(
fieldColumnIndex
);
}
}
// SWITCH OVER
}
// SWITCH OVER
result
.
add
(
fieldName
,
fieldResult
);
result
.
add
(
fieldName
,
fieldResult
);
// } // IF ELSE OVER
// } // IF ELSE OVER
...
@@ -605,11 +609,15 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
...
@@ -605,11 +609,15 @@ public class FlatQueryResultServiceImpl implements IFlatQueryResultService {
//row.createCell(j).setCellValue(c);
//row.createCell(j).setCellValue(c);
String
cName
=
rs
.
getMetaData
().
getColumnName
(
j
+
1
);
String
cName
=
rs
.
getMetaData
().
getColumnName
(
j
+
1
);
List
<
String
>
cFilters
=
condition
.
getDecryptFilters
();
List
<
String
>
cFilters
=
condition
.
getDecryptFilters
();
if
(
task
.
getQueryDataType
()
==
QueryDataType
.
FULL
&&
cFilters
.
contains
(
cName
))
{
if
(
task
.
getQueryDataType
()
==
QueryDataType
.
FULL
&&
(
cFilters
.
contains
(
cName
)
||
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
cName
)
))
{
String
tmpResult
=
rs
.
getString
(
j
+
1
);
String
tmpResult
=
rs
.
getString
(
j
+
1
);
if
(
StringUtils
.
isNotBlank
(
tmpResult
))
tmpResult
=
DecryptUtils
.
getInstance
().
decrypt
(
tmpResult
);
if
(
StringUtils
.
isNotBlank
(
tmpResult
))
tmpResult
=
DecryptUtils
.
getInstance
().
decrypt
(
tmpResult
);
row
.
createCell
(
j
).
setCellValue
(
tmpResult
);
row
.
createCell
(
j
).
setCellValue
(
tmpResult
);
}
else
{
}
else
{
if
(
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
cName
)){
String
name
=
DecryptUtils
.
getInstance
().
decrypt
(
rs
.
getString
(
j
+
1
));
DecryptUtils
.
dataSecurityProcessUserName
(
name
);
}
int
cType
=
rs
.
getMetaData
().
getColumnType
(
j
+
1
);
int
cType
=
rs
.
getMetaData
().
getColumnType
(
j
+
1
);
switch
(
cType
)
{
switch
(
cType
)
{
case
Types
.
TIMESTAMP
:
case
Types
.
TIMESTAMP
:
...
...
gic-cloud-data-hook-service/src/main/java/com/gic/cloud/data/hook/service/impl/FreeQueryServiceImpl.java
View file @
7e61c3f0
...
@@ -56,6 +56,8 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
...
@@ -56,6 +56,8 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
/** 脱敏字段 */
/** 脱敏字段 */
public
static
final
List
<
String
>
FILTERS_PHONE_AND_CARD
=
Arrays
.
asList
(
"card_num"
,
"mobile"
,
"phone"
,
"enterprise_name"
,
"phone_number"
,
"receive_phone_number"
,
"receive_card_num"
,
"use_phone_number"
,
"use_card_num"
,
"friend_card_num"
,
"from_card_num"
,
"friend_phone_num"
,
"from_phone_num"
);
public
static
final
List
<
String
>
FILTERS_PHONE_AND_CARD
=
Arrays
.
asList
(
"card_num"
,
"mobile"
,
"phone"
,
"enterprise_name"
,
"phone_number"
,
"receive_phone_number"
,
"receive_card_num"
,
"use_phone_number"
,
"use_card_num"
,
"friend_card_num"
,
"from_card_num"
,
"friend_phone_num"
,
"from_phone_num"
);
public
static
final
List
<
String
>
FILETERS_USER_NAME
=
Arrays
.
asList
(
"member_name"
,
"children_name"
,
"mbr_name"
);
@Autowired
@Autowired
IDownloadTaskService
downloadTaskService
;
IDownloadTaskService
downloadTaskService
;
...
@@ -230,7 +232,11 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
...
@@ -230,7 +232,11 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
String
fieldName
=
metaData
.
getColumnLabel
(
i
+
1
);
String
fieldName
=
metaData
.
getColumnLabel
(
i
+
1
);
Object
filedValue
;
Object
filedValue
;
if
(
queryDataType
==
QueryDataType
.
SAFE
&&
FreeQueryServiceImpl
.
isFilterFields
(
desensiType
,
fieldName
))
{
if
(
queryDataType
==
QueryDataType
.
SAFE
&&
FreeQueryServiceImpl
.
isFilterFields
(
desensiType
,
fieldName
))
{
filedValue
=
"******"
;
if
(
FILETERS_USER_NAME
.
contains
(
fieldName
)){
filedValue
=
DecryptUtils
.
dataSecurityProcessUserName
(
rs
.
getString
(
fieldName
));
}
else
{
filedValue
=
"******"
;
}
}
else
{
}
else
{
switch
(
metaData
.
getColumnType
(
i
+
1
))
{
switch
(
metaData
.
getColumnType
(
i
+
1
))
{
case
Types
.
TIMESTAMP
:
case
Types
.
TIMESTAMP
:
...
@@ -434,8 +440,12 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
...
@@ -434,8 +440,12 @@ public class FreeQueryServiceImpl implements IFreeQueryService {
//row.createCell(j).setCellValue(c);
//row.createCell(j).setCellValue(c);
String
cName
=
rs
.
getMetaData
().
getColumnName
(
j
+
1
);
String
cName
=
rs
.
getMetaData
().
getColumnName
(
j
+
1
);
if
(
task
.
getQueryDataType
()
==
QueryDataType
.
SAFE
if
(
task
.
getQueryDataType
()
==
QueryDataType
.
SAFE
&&
FreeQueryServiceImpl
.
isFilterFields
(
condition
.
getDesensiType
(),
cName
))
{
&&
(
FreeQueryServiceImpl
.
isFilterFields
(
condition
.
getDesensiType
(),
cName
)
||
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
cName
)))
{
row
.
createCell
(
j
).
setCellValue
(
"******"
);
if
(
FreeQueryServiceImpl
.
FILETERS_USER_NAME
.
contains
(
cName
)){
row
.
createCell
(
j
).
setCellValue
(
DecryptUtils
.
dataSecurityProcessUserName
(
rs
.
getString
(
cName
)));
}
else
{
row
.
createCell
(
j
).
setCellValue
(
"******"
);
}
}
else
{
}
else
{
int
cType
=
rs
.
getMetaData
().
getColumnType
(
j
+
1
);
int
cType
=
rs
.
getMetaData
().
getColumnType
(
j
+
1
);
switch
(
cType
)
{
switch
(
cType
)
{
...
...
gic-cloud-data-hook-service/src/main/resources/mapper/DownloadRecordDao.xml
View file @
7e61c3f0
...
@@ -117,4 +117,23 @@
...
@@ -117,4 +117,23 @@
and start_time
<
= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 23:59:59') order by start_time
and start_time
<
= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 23:59:59') order by start_time
</select>
</select>
<select
id=
"listExpireTask"
resultType=
"DownloadRecord"
>
SELECT
id,
enterprise_id,
name AS "task_name",
module_name,
amount,
query_data_type,
real_sql,
report_id,
desensi_type,
download_condition,
apply_permitted,
apply_status
FROM
dh_download_task
WHERE (status = 'building' or status = 'waiting')
and start_time
<
= DATE_ADD(start_time,INTERVAL -24 HOUR) order by start_time
</select>
</mapper>
</mapper>
\ No newline at end of file
gic-cloud-data-hook-service/src/main/resources/mapper/DownloadTaskDao.xml
View file @
7e61c3f0
...
@@ -192,4 +192,15 @@
...
@@ -192,4 +192,15 @@
(status = 'building' or status = 'waiting') and start_time
>
= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 00:00:00')
(status = 'building' or status = 'waiting') and start_time
>
= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 00:00:00')
and start_time
<
= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 23:59:59')
and start_time
<
= CONCAT(DATE_FORMAT(NOW(),'%Y-%m-%d'),' 23:59:59')
</select>
</select>
<update
id=
"updateTaskStatusError"
>
UPDATE
<include
refid=
"updateTable"
/>
SET
status = 'error'
WHERE
id in
<foreach
collection=
"idList"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</update>
</mapper>
</mapper>
\ 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