记得上下班打卡 | 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
e3ec157d
Commit
e3ec157d
authored
Dec 06, 2021
by
jiangxiulong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽奖 vo
parent
65a713fd
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
32 deletions
+42
-32
IntegralActivityPrizeVo.java
...quidnet/service/sweet/dto/vo/IntegralActivityPrizeVo.java
+8
-0
ISweetIntegralActivityDrawService.java
...vice/sweet/service/ISweetIntegralActivityDrawService.java
+2
-2
SweetNewObjectUtil.java
...com/liquidnet/service/sweet/utils/SweetNewObjectUtil.java
+6
-1
SweetIntegralActivityDrawController.java
...sweet/controller/SweetIntegralActivityDrawController.java
+2
-2
SweetIntegralActivityDrawServiceImpl.java
...et/service/impl/SweetIntegralActivityDrawServiceImpl.java
+24
-27
No files found.
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/dto/vo/IntegralActivityPrizeVo.java
View file @
e3ec157d
...
@@ -38,6 +38,12 @@ public class IntegralActivityPrizeVo implements Serializable, Cloneable {
...
@@ -38,6 +38,12 @@ public class IntegralActivityPrizeVo implements Serializable, Cloneable {
@ApiModelProperty
(
value
=
"单次奖励数量如积分 中奖给多少物"
)
@ApiModelProperty
(
value
=
"单次奖励数量如积分 中奖给多少物"
)
private
Integer
prizeTypeNum
;
private
Integer
prizeTypeNum
;
@ApiModelProperty
(
value
=
"奖品数量"
)
private
Integer
prizeNum
;
@ApiModelProperty
(
value
=
"中奖概率"
)
private
BigDecimal
winningProbability
;
@ApiModelProperty
(
value
=
"创建时间"
)
@ApiModelProperty
(
value
=
"创建时间"
)
private
LocalDateTime
createdAt
;
private
LocalDateTime
createdAt
;
...
@@ -67,6 +73,8 @@ public class IntegralActivityPrizeVo implements Serializable, Cloneable {
...
@@ -67,6 +73,8 @@ public class IntegralActivityPrizeVo implements Serializable, Cloneable {
this
.
setPrizeImgSelect
(
source
.
getPrizeImgSelect
());
this
.
setPrizeImgSelect
(
source
.
getPrizeImgSelect
());
this
.
setPrizeType
(
source
.
getPrizeType
());
this
.
setPrizeType
(
source
.
getPrizeType
());
this
.
setPrizeTypeNum
(
source
.
getPrizeTypeNum
());
this
.
setPrizeTypeNum
(
source
.
getPrizeTypeNum
());
this
.
setPrizeNum
(
source
.
getPrizeNum
());
this
.
setWinningProbability
(
source
.
getWinningProbability
());
this
.
setCreatedAt
(
source
.
getCreatedAt
());
this
.
setCreatedAt
(
source
.
getCreatedAt
());
this
.
setUpdatedAt
(
source
.
getUpdatedAt
());
this
.
setUpdatedAt
(
source
.
getUpdatedAt
());
return
this
;
return
this
;
...
...
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/service/ISweetIntegralActivityDrawService.java
View file @
e3ec157d
...
@@ -3,7 +3,7 @@ package com.liquidnet.service.sweet.service;
...
@@ -3,7 +3,7 @@ package com.liquidnet.service.sweet.service;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.
admin.Sweet
IntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
...
@@ -19,7 +19,7 @@ import java.util.List;
...
@@ -19,7 +19,7 @@ import java.util.List;
*/
*/
public
interface
ISweetIntegralActivityDrawService
extends
IService
<
SweetIntegralActivityDraw
>
{
public
interface
ISweetIntegralActivityDrawService
extends
IService
<
SweetIntegralActivityDraw
>
{
ResponseDto
<
Sweet
IntegralActivityPrizeVo
>
create
(
String
integralActivityId
);
ResponseDto
<
IntegralActivityPrizeVo
>
create
(
String
integralActivityId
);
ResponseDto
<
PagedResult
<
IntegralActivityDrawVo
>>
drawList
(
Integer
type
,
String
integralActivityId
,
Integer
pageNum
);
ResponseDto
<
PagedResult
<
IntegralActivityDrawVo
>>
drawList
(
Integer
type
,
String
integralActivityId
,
Integer
pageNum
);
...
...
liquidnet-bus-api/liquidnet-service-sweet-api/src/main/java/com/liquidnet/service/sweet/utils/SweetNewObjectUtil.java
View file @
e3ec157d
...
@@ -2,8 +2,8 @@ package com.liquidnet.service.sweet.utils;
...
@@ -2,8 +2,8 @@ package com.liquidnet.service.sweet.utils;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -11,6 +11,7 @@ import java.util.LinkedList;
...
@@ -11,6 +11,7 @@ import java.util.LinkedList;
public
class
SweetNewObjectUtil
{
public
class
SweetNewObjectUtil
{
private
static
final
ArrayList
<
SweetIntegralActivityPrizeVo
>
sweetIntegralActivityPrizeVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetIntegralActivityPrizeVo
>
sweetIntegralActivityPrizeVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
IntegralActivityPrizeVo
>
integralActivityPrizeVoArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetIntegralActivityPrize
>
sweetIntegralActivityPrizeArrayList
=
new
ArrayList
<>();
private
static
final
ArrayList
<
SweetIntegralActivityPrize
>
sweetIntegralActivityPrizeArrayList
=
new
ArrayList
<>();
private
static
final
LinkedList
<
IntegralActivityDrawVo
>
sweetIntegralActivityDrawVoLinkedList
=
new
LinkedList
<>();
private
static
final
LinkedList
<
IntegralActivityDrawVo
>
sweetIntegralActivityDrawVoLinkedList
=
new
LinkedList
<>();
private
static
final
PagedResult
<
IntegralActivityDrawVo
>
sweetIntegralActivityDrawVoPagedResult
=
new
PagedResult
<>();
private
static
final
PagedResult
<
IntegralActivityDrawVo
>
sweetIntegralActivityDrawVoPagedResult
=
new
PagedResult
<>();
...
@@ -31,4 +32,8 @@ public class SweetNewObjectUtil {
...
@@ -31,4 +32,8 @@ public class SweetNewObjectUtil {
return
(
ArrayList
<
SweetIntegralActivityPrize
>)
sweetIntegralActivityPrizeArrayList
.
clone
();
return
(
ArrayList
<
SweetIntegralActivityPrize
>)
sweetIntegralActivityPrizeArrayList
.
clone
();
}
}
public
static
ArrayList
<
IntegralActivityPrizeVo
>
getIntegralActivityPrizeVoArrayList
()
{
return
(
ArrayList
<
IntegralActivityPrizeVo
>)
integralActivityPrizeVoArrayList
.
clone
();
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/controller/SweetIntegralActivityDrawController.java
View file @
e3ec157d
...
@@ -4,7 +4,7 @@ package com.liquidnet.service.sweet.controller;
...
@@ -4,7 +4,7 @@ package com.liquidnet.service.sweet.controller;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.PagedResult
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.
admin.Sweet
IntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.service.ISweetIntegralActivityDrawService
;
import
com.liquidnet.service.sweet.service.ISweetIntegralActivityDrawService
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
...
@@ -35,7 +35,7 @@ public class SweetIntegralActivityDrawController {
...
@@ -35,7 +35,7 @@ public class SweetIntegralActivityDrawController {
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"integralActivityId"
,
value
=
"活动id"
,
required
=
true
)
@ApiImplicitParam
(
type
=
"query"
,
dataType
=
"String"
,
name
=
"integralActivityId"
,
value
=
"活动id"
,
required
=
true
)
})
})
public
ResponseDto
<
Sweet
IntegralActivityPrizeVo
>
create
(
public
ResponseDto
<
IntegralActivityPrizeVo
>
create
(
@RequestParam
(
"integralActivityId"
)
String
integralActivityId
@RequestParam
(
"integralActivityId"
)
String
integralActivityId
)
{
)
{
return
activityDrawService
.
create
(
integralActivityId
);
return
activityDrawService
.
create
(
integralActivityId
);
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetIntegralActivityDrawServiceImpl.java
View file @
e3ec157d
...
@@ -14,10 +14,9 @@ import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
...
@@ -14,10 +14,9 @@ import com.liquidnet.service.feign.adam.api.FeignAdamBaseClient;
import
com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient
;
import
com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
com.liquidnet.service.stone.dto.StoneScoreListDto
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityVo
;
import
com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityDraw
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize
;
import
com.liquidnet.service.sweet.mapper.SweetIntegralActivityDrawMapper
;
import
com.liquidnet.service.sweet.mapper.SweetIntegralActivityDrawMapper
;
import
com.liquidnet.service.sweet.service.ISweetIntegralActivityDrawService
;
import
com.liquidnet.service.sweet.service.ISweetIntegralActivityDrawService
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
import
com.liquidnet.service.sweet.utils.QueueUtils
;
...
@@ -67,7 +66,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -67,7 +66,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
private
FeignAdamBaseClient
feignAdamBaseClient
;
private
FeignAdamBaseClient
feignAdamBaseClient
;
@Override
@Override
public
ResponseDto
<
Sweet
IntegralActivityPrizeVo
>
create
(
String
integralActivityId
)
{
public
ResponseDto
<
IntegralActivityPrizeVo
>
create
(
String
integralActivityId
)
{
Map
tokenClaims
=
CurrentUtil
.
getTokenClaims
();
Map
tokenClaims
=
CurrentUtil
.
getTokenClaims
();
String
userId
=
StringUtils
.
defaultString
((
String
.
valueOf
(
tokenClaims
.
get
(
"sub"
))),
""
);
String
userId
=
StringUtils
.
defaultString
((
String
.
valueOf
(
tokenClaims
.
get
(
"sub"
))),
""
);
// 加锁
// 加锁
...
@@ -112,26 +111,24 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -112,26 +111,24 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
}
}
// 如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了
// 如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了
List
<
SweetIntegralActivityPrize
>
prizeList
=
integralActivity
.
getPrizeList
();
List
<
IntegralActivityPrizeVo
>
prizeList
=
integralActivity
.
getPrizeList
();
ArrayList
<
SweetIntegralActivityPrize
>
sweetIntegralActivityPrizeArrayList
=
SweetNewObjectUtil
.
getSweetIntegralActivityPrize
ArrayList
();
ArrayList
<
IntegralActivityPrizeVo
>
activityPrizeVoArrayList
=
SweetNewObjectUtil
.
getIntegralActivityPrizeVo
ArrayList
();
for
(
SweetIntegralActivityPrize
info
:
prizeList
)
{
for
(
IntegralActivityPrizeVo
info
:
prizeList
)
{
int
integralActivityPrizeNum
=
redisDataUtils
.
getIntegralActivityPrizeNum
(
integralActivityId
,
info
.
getPrizeId
());
int
integralActivityPrizeNum
=
redisDataUtils
.
getIntegralActivityPrizeNum
(
integralActivityId
,
info
.
getPrizeId
());
if
(
integralActivityPrizeNum
>
0
)
{
if
(
integralActivityPrizeNum
>
0
)
{
sweetIntegralActivityPrize
ArrayList
.
add
(
info
);
activityPrizeVo
ArrayList
.
add
(
info
);
}
}
}
}
if
(
CollectionUtils
.
isEmpty
(
sweetIntegralActivityPrize
ArrayList
))
{
if
(
CollectionUtils
.
isEmpty
(
activityPrizeVo
ArrayList
))
{
return
ResponseDto
.
failure
(
"活动太火爆了,奖品已经没有库存啦~"
);
return
ResponseDto
.
failure
(
"活动太火爆了,奖品已经没有库存啦~"
);
}
}
SweetIntegralActivityPrize
sweetIntegralActivityPrize
=
this
.
lotteryDraw
(
sweetIntegralActivityPrizeArrayList
);
IntegralActivityPrizeVo
integralActivityPrizeVo
=
this
.
lotteryDraw
(
activityPrizeVoArrayList
);
SweetIntegralActivityPrizeVo
sweetIntegralActivityPrizeVo
=
SweetIntegralActivityPrizeVo
.
getNew
().
copy
(
sweetIntegralActivityPrize
);
// 减库存 顺便判断库存是否够 -1的时候回滚回去
// 减库存 顺便判断库存是否够 -1的时候回滚回去
long
activityPrizeNum
=
redisDataUtils
.
decrIntegralActivityPrizeNum
(
integralActivityId
,
sweetI
ntegralActivityPrizeVo
.
getPrizeId
(),
1
);
long
activityPrizeNum
=
redisDataUtils
.
decrIntegralActivityPrizeNum
(
integralActivityId
,
i
ntegralActivityPrizeVo
.
getPrizeId
(),
1
);
log
.
info
(
"奖品库存情况 activityPrizeNum:{}"
,
activityPrizeNum
);
log
.
info
(
"奖品库存情况 activityPrizeNum:{}"
,
activityPrizeNum
);
if
(
activityPrizeNum
<
0
)
{
// 库存不够了
if
(
activityPrizeNum
<
0
)
{
// 库存不够了
long
prizeNum
=
redisDataUtils
.
incrIntegralActivityPrizeNum
(
integralActivityId
,
sweetI
ntegralActivityPrizeVo
.
getPrizeId
(),
1
);
long
prizeNum
=
redisDataUtils
.
incrIntegralActivityPrizeNum
(
integralActivityId
,
i
ntegralActivityPrizeVo
.
getPrizeId
(),
1
);
log
.
info
(
"奖品库存情况回滚后 prizeNum:{}"
,
prizeNum
);
log
.
info
(
"奖品库存情况回滚后 prizeNum:{}"
,
prizeNum
);
return
ResponseDto
.
failure
(
"活动太火爆了,奖品已经没有库存了!"
);
return
ResponseDto
.
failure
(
"活动太火爆了,奖品已经没有库存了!"
);
}
}
...
@@ -144,20 +141,20 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -144,20 +141,20 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
integralActivityDrawVo
.
setDrawId
(
drawId
);
integralActivityDrawVo
.
setDrawId
(
drawId
);
integralActivityDrawVo
.
setIntegralActivityId
(
integralActivityId
);
integralActivityDrawVo
.
setIntegralActivityId
(
integralActivityId
);
integralActivityDrawVo
.
setActivityNum
(
integralActivity
.
getActivityNum
());
integralActivityDrawVo
.
setActivityNum
(
integralActivity
.
getActivityNum
());
integralActivityDrawVo
.
setPrizeId
(
sweetIntegralActivityPrize
.
getPrizeId
());
integralActivityDrawVo
.
setPrizeId
(
integralActivityPrizeVo
.
getPrizeId
());
integralActivityDrawVo
.
setPrizeTitle
(
sweetIntegralActivityPrize
.
getPrizeTitle
());
integralActivityDrawVo
.
setPrizeTitle
(
integralActivityPrizeVo
.
getPrizeTitle
());
integralActivityDrawVo
.
setPrizeType
(
sweetIntegralActivityPrize
.
getPrizeType
());
integralActivityDrawVo
.
setPrizeType
(
integralActivityPrizeVo
.
getPrizeType
());
integralActivityDrawVo
.
setPrizeTypeNum
(
sweetIntegralActivityPrize
.
getPrizeTypeNum
());
integralActivityDrawVo
.
setPrizeTypeNum
(
integralActivityPrizeVo
.
getPrizeTypeNum
());
// integralActivityDrawVo.setRelationId(sweetIntegralActivityPrize.getRelationId());
// integralActivityDrawVo.setRelationId(sweetIntegralActivityPrize.getRelationId());
integralActivityDrawVo
.
setUserId
(
userId
);
integralActivityDrawVo
.
setUserId
(
userId
);
integralActivityDrawVo
.
setNickname
(
nickname
);
integralActivityDrawVo
.
setNickname
(
nickname
);
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
integralActivityDrawVo
.
setCreatedAt
(
nowTime
);
integralActivityDrawVo
.
setCreatedAt
(
nowTime
);
Integer
receivingStatus
=
1
;
Integer
receivingStatus
=
1
;
Integer
prizeType
=
sweetIntegralActivityPrize
.
getPrizeType
();
Integer
prizeType
=
integralActivityPrizeVo
.
getPrizeType
();
if
(
prizeType
==
2
)
{
// 中奖积分
if
(
prizeType
==
2
)
{
// 中奖积分
// 增加积分
// 增加积分
ResponseDto
<
String
>
in2111
=
feignStoneIntegralClient
.
in2112
(
userId
,
sweetIntegralActivityPrize
.
getPrizeTypeNum
(),
integralActivity
.
getActivityTitle
());
ResponseDto
<
String
>
in2111
=
feignStoneIntegralClient
.
in2112
(
userId
,
integralActivityPrizeVo
.
getPrizeTypeNum
(),
integralActivity
.
getActivityTitle
());
log
.
info
(
"中奖加积分返回值情况 in2111:{}"
,
in2111
);
log
.
info
(
"中奖加积分返回值情况 in2111:{}"
,
in2111
);
// 发放状态
// 发放状态
receivingStatus
=
2
;
receivingStatus
=
2
;
...
@@ -177,15 +174,15 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -177,15 +174,15 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
sqls
.
add
(
SqlMapping
.
get
(
"integral_activity_draw.insert"
));
sqls
.
add
(
SqlMapping
.
get
(
"integral_activity_draw.insert"
));
sqlsDataA
.
add
(
new
Object
[]{
sqlsDataA
.
add
(
new
Object
[]{
drawId
,
integralActivityId
,
integralActivity
.
getActivityNum
(),
drawId
,
integralActivityId
,
integralActivity
.
getActivityNum
(),
sweetIntegralActivityPrize
.
getPrizeId
(),
sweetIntegralActivityPrize
.
getPrizeTitle
(),
sweetIntegralActivityPrize
.
getPrizeType
(),
integralActivityPrizeVo
.
getPrizeId
(),
integralActivityPrizeVo
.
getPrizeTitle
(),
integralActivityPrizeVo
.
getPrizeType
(),
sweetIntegralActivityPrize
.
getPrizeTypeNum
(),
//sweetIntegralActivityPrize.getRelationId(),
integralActivityPrizeVo
.
getPrizeTypeNum
(),
//sweetIntegralActivityPrize.getRelationId(),
userId
,
nickname
,
userId
,
nickname
,
receivingStatus
receivingStatus
});
});
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_INTEGRAL_ACTIVITY_DRAW
.
getKey
(),
queueUtils
.
sendMsgByRedis
(
MQConst
.
SweetQueue
.
SWEET_INTEGRAL_ACTIVITY_DRAW
.
getKey
(),
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
SqlMapping
.
gets
(
sqls
,
sqlsDataA
));
return
ResponseDto
.
success
(
sweetI
ntegralActivityPrizeVo
);
return
ResponseDto
.
success
(
i
ntegralActivityPrizeVo
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"积分抽奖异常 e:{}"
,
e
);
log
.
error
(
"积分抽奖异常 e:{}"
,
e
);
return
ResponseDto
.
failure
(
"操作失败,请稍后重试!"
);
return
ResponseDto
.
failure
(
"操作失败,请稍后重试!"
);
...
@@ -328,7 +325,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -328,7 +325,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
/**
/**
* 抽奖方法
* 抽奖方法
*/
*/
private
static
SweetIntegralActivityPrize
lotteryDraw
(
List
<
SweetIntegralActivityPrize
>
prizeList
)
{
private
static
IntegralActivityPrizeVo
lotteryDraw
(
List
<
IntegralActivityPrizeVo
>
prizeList
)
{
if
(
prizeList
==
null
||
prizeList
.
isEmpty
())
{
if
(
prizeList
==
null
||
prizeList
.
isEmpty
())
{
return
null
;
return
null
;
}
}
...
@@ -337,14 +334,14 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -337,14 +334,14 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
// 计算总概率,这样可以保证不一定总概率是1
// 计算总概率,这样可以保证不一定总概率是1
BigDecimal
sumRate
=
BigDecimal
.
ZERO
;
BigDecimal
sumRate
=
BigDecimal
.
ZERO
;
for
(
SweetIntegralActivityPrize
prize
:
prizeList
)
{
for
(
IntegralActivityPrizeVo
prize
:
prizeList
)
{
sumRate
=
sumRate
.
add
(
prize
.
getWinningProbability
());
sumRate
=
sumRate
.
add
(
prize
.
getWinningProbability
());
}
}
// 计算每个物品在总概率的基础下的概率情况
// 计算每个物品在总概率的基础下的概率情况
List
<
BigDecimal
>
sortOrignalRates
=
new
ArrayList
<>(
size
);
List
<
BigDecimal
>
sortOrignalRates
=
new
ArrayList
<>(
size
);
BigDecimal
tempSumRate
=
BigDecimal
.
ZERO
;
BigDecimal
tempSumRate
=
BigDecimal
.
ZERO
;
for
(
SweetIntegralActivityPrize
prize
:
prizeList
)
{
for
(
IntegralActivityPrizeVo
prize
:
prizeList
)
{
tempSumRate
=
tempSumRate
.
add
(
prize
.
getWinningProbability
());
tempSumRate
=
tempSumRate
.
add
(
prize
.
getWinningProbability
());
sortOrignalRates
.
add
(
tempSumRate
.
divide
(
sumRate
,
4
,
BigDecimal
.
ROUND_HALF_UP
));
sortOrignalRates
.
add
(
tempSumRate
.
divide
(
sumRate
,
4
,
BigDecimal
.
ROUND_HALF_UP
));
}
}
...
@@ -357,8 +354,8 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -357,8 +354,8 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
int
index
=
sortOrignalRates
.
indexOf
(
nextDoubleNew
);
int
index
=
sortOrignalRates
.
indexOf
(
nextDoubleNew
);
SweetIntegralActivityPrize
sweetIntegralActivityPrize
=
prizeList
.
get
(
index
);
IntegralActivityPrizeVo
integralActivityPrizeVo
=
prizeList
.
get
(
index
);
return
sweetIntegralActivityPrize
;
return
integralActivityPrizeVo
;
}
}
/*public static void main(String[] args) {
/*public static void main(String[] args) {
...
...
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