记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
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
董敬伟
liquidnet-bus-v1
Commits
db10662a
Commit
db10662a
authored
May 24, 2022
by
胡佳晨
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加 分批购 支持盲盒配置
parent
0a936419
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
12 deletions
+13
-12
GoblinNftBoxUtils.java
.../com/liquidnet/service/goblin/util/GoblinNftBoxUtils.java
+13
-12
No files found.
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/util/GoblinNftBoxUtils.java
View file @
db10662a
...
...
@@ -40,7 +40,7 @@ public class GoblinNftBoxUtils {
*
* @return
*/
p
ublic
Map
<
String
,
Integer
>
getSkuHitRatio
(
Integer
exStock
,
Map
<
String
,
BigDecimal
>
map
)
{
p
rivate
Map
<
String
,
Integer
>
getSkuHitRatio
(
Integer
exStock
,
Map
<
String
,
BigDecimal
>
map
)
{
// 获取sku总概率
BigDecimal
hitRatioCount
=
new
BigDecimal
(
0
);
...
...
@@ -49,10 +49,10 @@ public class GoblinNftBoxUtils {
// Map<String, Map<String, Object>> mapMap = new HashMap<>();
// sku --> 概率/库存
int
countStockNumber
=
0
;
Integer
countStockNumber
=
0
;
HashMap
<
String
,
Map
<
String
,
Object
>>
mapMap
=
CollectionUtil
.
mapHashMap
();
for
(
String
key
:
map
.
keySet
())
{
BigDecimal
skuHitRatio
=
BigDecimal
.
valueOf
(
Double
.
parseDouble
(
map
.
get
(
key
).
toString
()));
BigDecimal
skuHitRatio
=
BigDecimal
.
valueOf
(
Double
.
valueOf
(
map
.
get
(
key
).
toString
()));
HashMap
<
String
,
Object
>
objectMap
=
CollectionUtil
.
mapStringObject
();
if
(
skuHitRatio
==
null
)
{
continue
;
...
...
@@ -92,7 +92,7 @@ public class GoblinNftBoxUtils {
for
(
String
key
:
mapMap
.
keySet
())
{
Object
stock
=
mapMap
.
get
(
key
).
get
(
"stock"
);
Object
hitRatio
=
mapMap
.
get
(
key
).
get
(
"hitRatio"
);
if
(
Integer
.
parseInt
(
stock
.
toString
())
<=
0
)
{
if
(
Integer
.
valueOf
(
stock
.
toString
())
<=
0
)
{
continue
;
}
...
...
@@ -102,19 +102,19 @@ public class GoblinNftBoxUtils {
// 要减去的库存
int
subStock
=
BigDecimal
.
valueOf
(
exStock
).
multiply
((
new
BigDecimal
(
hitRatio
.
toString
()).
divide
(
hitRatioCount
,
2
,
BigDecimal
.
ROUND_HALF_UP
))).
setScale
(
0
,
BigDecimal
.
ROUND_UP
).
intValue
();
if
(
subStock
>
Integer
.
parseInt
(
stock
.
toString
()))
{
subNumber
+=
Integer
.
parseInt
(
stock
.
toString
());
countStockNumber
-=
Integer
.
parseInt
(
stock
.
toString
());
if
(
subStock
>
Integer
.
valueOf
(
stock
.
toString
()))
{
subNumber
+=
Integer
.
valueOf
(
stock
.
toString
());
countStockNumber
-=
Integer
.
valueOf
(
stock
.
toString
());
mapMap
.
get
(
key
).
put
(
"stock"
,
0
);
if
(
stockMap
.
get
(
key
)
==
null
)
{
stockMap
.
put
(
key
,
Integer
.
valueOf
(
stock
.
toString
()));
}
else
{
stockMap
.
put
(
key
,
stockMap
.
get
(
key
)
+
Integer
.
parseInt
(
stock
.
toString
()));
stockMap
.
put
(
key
,
stockMap
.
get
(
key
)
+
Integer
.
valueOf
(
stock
.
toString
()));
}
}
else
{
countStockNumber
-=
subStock
;
mapMap
.
get
(
key
).
put
(
"stock"
,
Integer
.
parseInt
(
stock
.
toString
())
-
subStock
);
mapMap
.
get
(
key
).
put
(
"stock"
,
Integer
.
valueOf
(
stock
.
toString
())
-
subStock
);
subNumber
+=
subStock
;
if
(
stockMap
.
get
(
key
)
==
null
)
{
stockMap
.
put
(
key
,
subStock
);
...
...
@@ -130,11 +130,12 @@ public class GoblinNftBoxUtils {
for
(
int
k
=
0
;
k
<
usNumber
;
k
++)
{
String
subKey
=
""
;
double
maxValue
=
Double
.
MAX_VALUE
;
for
(
String
key
:
bigDecimalHashMap
.
keySet
())
{
if
(
skuIdList
.
contains
(
key
))
{
if
(
skuIdList
.
contains
(
key
)
||
stockMap
.
get
(
key
)
==
0
)
{
continue
;
}
double
compare
=
Double
.
parseDouble
(
bigDecimalHashMap
.
get
(
key
).
toString
());
Double
compare
=
Double
.
valueOf
(
bigDecimalHashMap
.
get
(
key
).
toString
());
if
(
maxValue
>
compare
)
{
maxValue
=
compare
;
subKey
=
key
;
...
...
@@ -153,7 +154,7 @@ public class GoblinNftBoxUtils {
for
(
String
key
:
mapMap
.
keySet
())
{
Object
hitRatio
=
mapMap
.
get
(
key
).
get
(
"hitRatio"
);
Object
stock
=
mapMap
.
get
(
key
).
get
(
"stock"
);
if
(
Integer
.
parseInt
(
stock
.
toString
())
<=
0
&&
!
eliminateSkuIdList
.
contains
(
key
))
{
if
(
Integer
.
valueOf
(
stock
.
toString
())
<=
0
&&
!
eliminateSkuIdList
.
contains
(
key
))
{
eliminateSkuIdList
.
add
(
key
);
hitRatioCount
=
hitRatioCount
.
subtract
(
new
BigDecimal
(
hitRatio
.
toString
()));
}
...
...
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