Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-product
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
xingmin
yd-product
Commits
8dcb3a2e
Commit
8dcb3a2e
authored
Jan 23, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
f8d3c7be
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
57 additions
and
7 deletions
+57
-7
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiAttributeSettingServiceImpl.java
+57
-7
No files found.
yd-product-api/src/main/java/com/yd/product/api/service/impl/ApiAttributeSettingServiceImpl.java
View file @
8dcb3a2e
...
...
@@ -77,7 +77,7 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
AttributeSetting
dto
=
attributeSettingList
.
get
(
i
);
List
<
String
>
fieldValueBizIds
=
new
ArrayList
<>();
//
只使用fieldValueBizId字段来收集
业务ID
//
收集fieldValueBizId中的
业务ID
if
(
StringUtils
.
isNotBlank
(
dto
.
getFieldValueBizId
()))
{
if
(
dto
.
getFieldValueBizId
().
contains
(
";"
))
{
// 多选情况,多个字段值业务ID用分号分隔
...
...
@@ -87,9 +87,15 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
fieldValueBizIds
.
add
(
dto
.
getFieldValueBizId
());
}
}
// 注意:这里不再尝试从value字段解析业务ID
// 因为从你的JSON数据看,fieldValueBizId为空但value包含业务ID的情况
// 应该被视为数据问题,需要在保存时解决
// 对于fieldValueBizId为空的情况,但value字段可能包含业务ID
else
if
(
StringUtils
.
isNotBlank
(
dto
.
getValue
()))
{
String
value
=
dto
.
getValue
();
// 尝试从value字段解析可能的业务ID
List
<
String
>
possibleBizIds
=
parsePossibleBizIdsFromValue
(
value
);
if
(!
possibleBizIds
.
isEmpty
())
{
fieldValueBizIds
.
addAll
(
possibleBizIds
);
}
}
if
(!
fieldValueBizIds
.
isEmpty
())
{
allFieldValueBizIds
.
addAll
(
fieldValueBizIds
);
...
...
@@ -149,9 +155,8 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
List
<
String
>
valueNames
=
valueBizIds
.
stream
()
.
map
(
fieldValueBizId
->
{
String
name
=
finalFieldValueBizIdToNameMap
.
get
(
fieldValueBizId
);
// 如果查询不到名称,则使用原始值(value字段)
// 注意:这里假设value字段存储的是实际的值,而不是业务ID
return
StringUtils
.
isNotBlank
(
name
)
?
name
:
dto
.
getValue
();
// 如果查询不到名称,使用业务ID本身
return
StringUtils
.
isNotBlank
(
name
)
?
name
:
fieldValueBizId
;
})
.
collect
(
Collectors
.
toList
());
settingDto
.
setValueNames
(
StringUtils
.
join
(
valueNames
,
";"
));
...
...
@@ -177,4 +182,48 @@ public class ApiAttributeSettingServiceImpl implements ApiAttributeSettingServic
}
return
apiAttributeSettingDtoList
;
}
/**
* 从value字段解析可能的业务ID
* 这个方法尝试识别value字段中是否包含业务ID
*/
private
List
<
String
>
parsePossibleBizIdsFromValue
(
String
value
)
{
List
<
String
>
bizIds
=
new
ArrayList
<>();
if
(
StringUtils
.
isBlank
(
value
))
{
return
bizIds
;
}
// 如果value包含分号,按分号分割
if
(
value
.
contains
(
";"
))
{
String
[]
parts
=
value
.
split
(
";"
);
for
(
String
part
:
parts
)
{
String
trimmedPart
=
part
.
trim
();
// 如果部分看起来像是业务ID(包含下划线且长度较长)
if
(
isLikelyBizId
(
trimmedPart
))
{
bizIds
.
add
(
trimmedPart
);
}
}
}
// 如果不包含分号,检查整个value
else
if
(
isLikelyBizId
(
value
))
{
bizIds
.
add
(
value
);
}
return
bizIds
;
}
/**
* 判断一个字符串是否可能是业务ID
* 这是一个保守的判断,只检查基本特征
*/
private
boolean
isLikelyBizId
(
String
str
)
{
if
(
StringUtils
.
isBlank
(
str
))
{
return
false
;
}
// 业务ID通常包含下划线,且长度较长
// 这是一个简单的判断,可以根据实际情况调整
return
str
.
contains
(
"_"
)
&&
str
.
length
()
>
10
;
}
}
\ 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