Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-api-boot-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
lanbaoming
jiedao-api-boot-master
Commits
e9b7e996
Commit
e9b7e996
authored
Dec 19, 2024
by
Smile
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
会员模块-积分规则 订单V值积分规则重复校验新增客户方规则和是否首单规则更新。
parent
74ef0cae
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
51 additions
and
2 deletions
+51
-2
ScoreRuleServiceImpl.java
...module/member/service/scoreRule/ScoreRuleServiceImpl.java
+51
-2
No files found.
yudao-module-member/yudao-module-member-impl/src/main/java/cn/iocoder/yudao/module/member/service/scoreRule/ScoreRuleServiceImpl.java
View file @
e9b7e996
...
...
@@ -171,10 +171,11 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score
private
boolean
isSameOrderVRule
(
ScoreRuleOrderVExtraVO
oldExtraVO
,
ScoreRuleOrderVExtraVO
extraOrderV
)
{
return
oldExtraVO
.
getTransportType
().
equals
(
extraOrderV
.
getTransportType
())
&&
Objects
.
equals
(
oldExtraVO
.
getFirstOrder
(),
extraOrderV
.
getFirstOrder
()
)
&&
verifyFirstOrder
(
oldExtraVO
,
extraOrderV
)
&&
verifyReceiveAddr
(
oldExtraVO
,
extraOrderV
)
&&
verifyChannel
(
oldExtraVO
,
extraOrderV
)
&&
verifyOrderEntry
(
oldExtraVO
.
getOrderEntry
(),
extraOrderV
.
getOrderEntry
());
verifyOrderEntry
(
oldExtraVO
.
getOrderEntry
(),
extraOrderV
.
getOrderEntry
())
&&
verifyCustomerSide
(
oldExtraVO
.
getCustomerSide
(),
extraOrderV
.
getCustomerSide
());
}
private
boolean
verifyChannel
(
ScoreRuleOrderVExtraVO
oldExtraVO
,
ScoreRuleOrderVExtraVO
extraOrderV
)
{
...
...
@@ -189,6 +190,13 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score
}
return
true
;
}
private
boolean
verifyFirstOrder
(
ScoreRuleOrderVExtraVO
oldExtraVO
,
ScoreRuleOrderVExtraVO
extraOrderV
)
{
// 判断两个是否是不限,其中一个为不限都返回true,否则判断是否相等,不相等返回false
if
(
oldExtraVO
.
getFirstOrder
()
==
2
||
extraOrderV
.
getFirstOrder
()
==
2
)
{
return
true
;
}
return
oldExtraVO
.
getFirstOrder
().
equals
(
extraOrderV
.
getFirstOrder
());
}
private
boolean
verifyReceiveAddr
(
ScoreRuleOrderVExtraVO
oldExtraVO
,
ScoreRuleOrderVExtraVO
extraOrderV
)
{
List
<
String
>
oldReceiveAddrList
=
Arrays
.
asList
(
oldExtraVO
.
getReceiveAddr
().
split
(
","
));
...
...
@@ -231,6 +239,20 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score
return
categorizedSources1
.
equals
(
categorizedSources2
);
}
private
boolean
verifyCustomerSide
(
String
oldCustomerSide
,
String
newCustomerSide
)
{
List
<
String
>
oldCustomerSideList
=
Arrays
.
asList
(
oldCustomerSide
.
split
(
","
));
List
<
String
>
newCustomerSideList
=
Arrays
.
asList
(
newCustomerSide
.
split
(
","
));
// 对订单入口进行归类后比较
Set
<
String
>
categorizedSources1
=
categorizeCustomerSide
(
oldCustomerSideList
);
Set
<
String
>
categorizedSources2
=
categorizeCustomerSide
(
newCustomerSideList
);
// 如果一个规则归类为 "ALL",则无论另一个是什么都算相同
if
(
categorizedSources1
.
contains
(
"ALL"
)
||
categorizedSources2
.
contains
(
"ALL"
))
{
return
true
;
}
// 仅当分类后的集合完全一致时才算相同
return
categorizedSources1
.
equals
(
categorizedSources2
);
}
private
Set
<
String
>
categorizeOrderEntry
(
List
<
String
>
orderEntrys
)
{
Set
<
String
>
categorizedSources
=
new
HashSet
<>();
boolean
hasBackend
=
false
;
...
...
@@ -258,6 +280,33 @@ public class ScoreRuleServiceImpl extends AbstractService<ScoreRuleMapper, Score
return
categorizedSources
;
}
private
Set
<
String
>
categorizeCustomerSide
(
List
<
String
>
customerSides
)
{
Set
<
String
>
categorizedSources
=
new
HashSet
<>();
boolean
hasShipper
=
false
;
boolean
hasConsignee
=
false
;
for
(
String
customerSide
:
customerSides
)
{
if
(
customerSide
.
equals
(
"1"
))
{
hasShipper
=
true
;
}
else
if
(
customerSide
.
equals
(
"2"
))
{
hasConsignee
=
true
;
}
}
// 如果同时有后台和客户端,归为 "ALL"
if
(
hasShipper
&&
hasConsignee
)
{
categorizedSources
.
add
(
"ALL"
);
}
else
{
if
(
hasShipper
)
{
categorizedSources
.
add
(
"SHIPPER"
);
}
if
(
hasConsignee
)
{
categorizedSources
.
add
(
"CONSIGNEE"
);
}
}
return
categorizedSources
;
}
/**
...
...
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