记得上下班打卡 | 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
d70c77ae
Commit
d70c77ae
authored
Oct 28, 2021
by
胡佳晨
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev_stone' into dev_stone
parents
1f0b325e
edfc5552
Changes
7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
654 additions
and
22 deletions
+654
-22
form.html
...urces/templates/zhengzai/sweet/integralActivity/form.html
+546
-8
list.html
...urces/templates/zhengzai/sweet/integralActivity/list.html
+2
-2
SweetIntegralActivityServiceImpl.java
.../sweet/service/impl/SweetIntegralActivityServiceImpl.java
+24
-3
SweetRedisAdminUtils.java
...ient/admin/zhengzai/sweet/utils/SweetRedisAdminUtils.java
+22
-7
SweetConstant.java
...a/com/liquidnet/service/sweet/constant/SweetConstant.java
+2
-0
SweetIntegralActivityDrawServiceImpl.java
...et/service/impl/SweetIntegralActivityDrawServiceImpl.java
+15
-2
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+43
-0
No files found.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/integralActivity/form.html
View file @
d70c77ae
This diff is collapsed.
Click to expand it.
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/integralActivity/list.html
View file @
d70c77ae
...
@@ -26,7 +26,7 @@
...
@@ -26,7 +26,7 @@
</div>
</div>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-success"
onclick=
"$.operate.add
(
)"
shiro:hasPermission=
"sweet:integralActivity:create"
>
<a
class=
"btn btn-success"
onclick=
"$.operate.add
Tab(1
)"
shiro:hasPermission=
"sweet:integralActivity:create"
>
<i
class=
"fa fa-plus"
></i>
添加
<i
class=
"fa fa-plus"
></i>
添加
</a>
</a>
</div>
</div>
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
$
(
function
()
{
$
(
function
()
{
var
options
=
{
var
options
=
{
url
:
prefix
+
"/list"
,
url
:
prefix
+
"/list"
,
updateUrl
:
prefix
+
"/formView"
,
// /update/{id}
updateUrl
:
prefix
+
"/formView
?id={id}
"
,
// /update/{id}
createUrl
:
prefix
+
"/formView"
,
createUrl
:
prefix
+
"/formView"
,
detailUrl
:
"/sweet/IntegralActivityDraw/listView/{id}"
,
detailUrl
:
"/sweet/IntegralActivityDraw/listView/{id}"
,
exportUrl
:
"/sweet/IntegralActivityDraw/export"
,
exportUrl
:
"/sweet/IntegralActivityDraw/export"
,
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/sweet/service/impl/SweetIntegralActivityServiceImpl.java
View file @
d70c77ae
...
@@ -69,8 +69,8 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
...
@@ -69,8 +69,8 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
sweetIntegralActivityPrize
.
setIntegralActivityId
(
integralActivityId
);
sweetIntegralActivityPrize
.
setIntegralActivityId
(
integralActivityId
);
sweetIntegralActivityPrizeMapper
.
insert
(
sweetIntegralActivityPrize
);
sweetIntegralActivityPrizeMapper
.
insert
(
sweetIntegralActivityPrize
);
// 奖品库存和中奖人数redis
// 奖品库存和中奖人数redis
sweetRedisAdminUtils
.
setIntegralActivityPrizeNum
(
integralActivityId
,
sweetIntegralActivityPrize
);
sweetRedisAdminUtils
.
incrIntegralActivityPrizeNum
(
integralActivityId
,
sweetIntegralActivityPrize
.
getPrizeId
(),
sweetIntegralActivityPrize
.
getPrizeNum
()
);
sweetRedisAdminUtils
.
setIntegralActivityPrizeWinnersNum
(
integralActivityId
,
sweetIntegralActivityPrize
);
sweetRedisAdminUtils
.
incrIntegralActivityPrizeWinnersNum
(
integralActivityId
,
sweetIntegralActivityPrize
.
getPrizeId
(),
sweetIntegralActivityPrize
.
getWinnersNum
()
);
}
}
}
}
// 活动redis处理
// 活动redis处理
...
@@ -98,10 +98,31 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
...
@@ -98,10 +98,31 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
SweetIntegralActivityPrize
sweetIntegralActivityPrize
=
SweetIntegralActivityPrizeFormParam
.
getNew
().
copy
(
prize
);
SweetIntegralActivityPrize
sweetIntegralActivityPrize
=
SweetIntegralActivityPrizeFormParam
.
getNew
().
copy
(
prize
);
sweetIntegralActivityPrize
.
setUpdatedAt
(
LocalDateTime
.
now
());
sweetIntegralActivityPrize
.
setUpdatedAt
(
LocalDateTime
.
now
());
sweetIntegralActivityPrize
.
setIntegralActivityId
(
integralActivityId
);
sweetIntegralActivityPrize
.
setIntegralActivityId
(
integralActivityId
);
String
prizeId
=
prize
.
getPrizeId
();
sweetIntegralActivityPrizeMapper
.
update
(
sweetIntegralActivityPrizeMapper
.
update
(
sweetIntegralActivityPrize
,
sweetIntegralActivityPrize
,
Wrappers
.
lambdaUpdate
(
SweetIntegralActivityPrize
.
class
).
eq
(
SweetIntegralActivityPrize:
:
getPrizeId
,
prize
.
getPrizeId
()
)
Wrappers
.
lambdaUpdate
(
SweetIntegralActivityPrize
.
class
).
eq
(
SweetIntegralActivityPrize:
:
getPrizeId
,
prize
Id
)
);
);
// 处理奖品库存
SweetIntegralActivityPrize
sweetIntegralActivityPrizeOld
=
sweetIntegralActivityPrizeMapper
.
selectOne
(
Wrappers
.
lambdaQuery
(
SweetIntegralActivityPrize
.
class
).
eq
(
SweetIntegralActivityPrize:
:
getPrizeId
,
prizeId
)
);
Integer
prizeNum
=
sweetIntegralActivityPrizeOld
.
getPrizeNum
();
Integer
winnersNum
=
sweetIntegralActivityPrizeOld
.
getWinnersNum
();
Integer
prizeNumNew
=
sweetIntegralActivityPrize
.
getPrizeNum
();
Integer
winnersNumNew
=
sweetIntegralActivityPrize
.
getWinnersNum
();
int
prizeNumDiff
=
prizeNumNew
-
prizeNum
;
int
winnersNumDiff
=
winnersNumNew
-
winnersNum
;
if
(
prizeNumDiff
>
0
)
{
//增加库存
sweetRedisAdminUtils
.
incrIntegralActivityPrizeNum
(
integralActivityId
,
prizeId
,
prizeNumDiff
);
}
else
if
(
prizeNumDiff
<
0
)
{
// 减少库存
sweetRedisAdminUtils
.
decrIntegralActivityPrizeNum
(
integralActivityId
,
prizeId
,
Math
.
abs
(
prizeNumDiff
));
}
if
(
winnersNumDiff
>
0
)
{
//增加中奖人数
sweetRedisAdminUtils
.
incrIntegralActivityPrizeWinnersNum
(
integralActivityId
,
prizeId
,
winnersNumDiff
);
}
else
if
(
winnersNumDiff
<
0
)
{
// 减少中奖人数
sweetRedisAdminUtils
.
decrIntegralActivityPrizeWinnersNum
(
integralActivityId
,
prizeId
,
Math
.
abs
(
winnersNumDiff
));
}
}
}
}
}
// 活动redis处理
// 活动redis处理
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/sweet/utils/SweetRedisAdminUtils.java
View file @
d70c77ae
...
@@ -3,7 +3,6 @@ package com.liquidnet.client.admin.zhengzai.sweet.utils;
...
@@ -3,7 +3,6 @@ package com.liquidnet.client.admin.zhengzai.sweet.utils;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.constant.SweetConstant
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityVo
;
import
com.liquidnet.service.sweet.dto.vo.IntegralActivityVo
;
import
com.liquidnet.service.sweet.entity.SweetIntegralActivityPrize
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -27,19 +26,35 @@ public class SweetRedisAdminUtils {
...
@@ -27,19 +26,35 @@ public class SweetRedisAdminUtils {
boolean
set
=
redisUtil
.
set
(
redisKey
,
integralActivityVo
);
boolean
set
=
redisUtil
.
set
(
redisKey
,
integralActivityVo
);
}
}
public
void
setIntegralActivityPrizeNum
(
String
integralActivityId
,
SweetIntegralActivityPrize
sweetIntegralActivityPrize
)
{
public
void
incrIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
,
Integer
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.
concat
(
integralActivityId
)
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
":prizeId:"
)
.
concat
(
sweetIntegralActivityPrize
.
getPrizeId
()
);
.
concat
(
prizeId
);
redisUtil
.
incr
(
redisKey
,
sweetIntegralActivityPrize
.
getPrizeNum
()
);
redisUtil
.
incr
(
redisKey
,
num
);
}
}
public
void
setIntegralActivityPrizeWinnersNum
(
String
integralActivityId
,
SweetIntegralActivityPrize
sweetIntegralActivityPrize
)
{
public
void
incrIntegralActivityPrizeWinnersNum
(
String
integralActivityId
,
String
prizeId
,
Integer
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
.
concat
(
integralActivityId
)
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
":prizeId:"
)
.
concat
(
sweetIntegralActivityPrize
.
getPrizeId
());
.
concat
(
prizeId
);
redisUtil
.
incr
(
redisKey
,
sweetIntegralActivityPrize
.
getPrizeNum
());
redisUtil
.
incr
(
redisKey
,
num
);
}
public
void
decrIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
,
Integer
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
prizeId
);
redisUtil
.
decr
(
redisKey
,
num
);
}
public
void
decrIntegralActivityPrizeWinnersNum
(
String
integralActivityId
,
String
prizeId
,
Integer
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
prizeId
);
redisUtil
.
decr
(
redisKey
,
num
);
}
}
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/constant/SweetConstant.java
View file @
d70c77ae
...
@@ -97,4 +97,6 @@ public class SweetConstant {
...
@@ -97,4 +97,6 @@ public class SweetConstant {
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST
=
"sweet:integralActivity:Draw:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_ALL_LIST
=
"sweet:integralActivity:Draw:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER
=
"sweet:integralActivity:Draw:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_USER
=
"sweet:integralActivity:Draw:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
=
"sweet:integralActivity:DrawIn:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_DRAW_IN_USER
=
"sweet:integralActivity:DrawIn:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
=
"sweet:integralActivity:prizeNum:activityId:"
;
public
static
final
String
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
=
"sweet:integralActivity:prizeWinnersNum:activityId:"
;
}
}
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetIntegralActivityDrawServiceImpl.java
View file @
d70c77ae
...
@@ -16,6 +16,7 @@ import com.liquidnet.service.sweet.utils.SweetNewObjectUtil;
...
@@ -16,6 +16,7 @@ import com.liquidnet.service.sweet.utils.SweetNewObjectUtil;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
...
@@ -60,17 +61,29 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
...
@@ -60,17 +61,29 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
// TODO: 2021/10/27 判断用户积分是否>=integralActivity.setActivityNum();
// TODO: 2021/10/27 判断用户积分是否>=integralActivity.setActivityNum();
//
TODO 如果库存没了 限制的中奖人数到了就从列表剔出
//
如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了
List
<
SweetIntegralActivityPrize
>
prizeList
=
integralActivity
.
getPrizeList
();
List
<
SweetIntegralActivityPrize
>
prizeList
=
integralActivity
.
getPrizeList
();
ArrayList
<
SweetIntegralActivityPrize
>
sweetIntegralActivityPrizeArrayList
=
SweetNewObjectUtil
.
getSweetIntegralActivityPrizeArrayList
();
ArrayList
<
SweetIntegralActivityPrize
>
sweetIntegralActivityPrizeArrayList
=
SweetNewObjectUtil
.
getSweetIntegralActivityPrizeArrayList
();
for
(
SweetIntegralActivityPrize
info
:
prizeList
)
{
for
(
SweetIntegralActivityPrize
info
:
prizeList
)
{
int
integralActivityPrizeNum
=
redisDataUtils
.
getIntegralActivityPrizeNum
(
integralActivityId
,
info
.
getPrizeId
());
int
integralActivityPrizeWinnersNum
=
redisDataUtils
.
getIntegralActivityPrizeWinnersNum
(
integralActivityId
,
info
.
getPrizeId
());
if
(
integralActivityPrizeNum
>
0
&&
integralActivityPrizeWinnersNum
>
0
)
{
sweetIntegralActivityPrizeArrayList
.
add
(
info
);
sweetIntegralActivityPrizeArrayList
.
add
(
info
);
}
}
}
if
(
CollectionUtils
.
isEmpty
(
sweetIntegralActivityPrizeArrayList
))
{
return
ResponseDto
.
failure
(
"活动太火爆了,奖品已经没有库存啦~"
);
}
SweetIntegralActivityPrize
sweetIntegralActivityPrize
=
this
.
lotteryDraw
(
sweetIntegralActivityPrizeArrayList
);
SweetIntegralActivityPrize
sweetIntegralActivityPrize
=
this
.
lotteryDraw
(
sweetIntegralActivityPrizeArrayList
);
SweetIntegralActivityPrizeVo
sweetIntegralActivityPrizeVo
=
SweetIntegralActivityPrizeVo
.
getNew
().
copy
(
sweetIntegralActivityPrize
);
SweetIntegralActivityPrizeVo
sweetIntegralActivityPrizeVo
=
SweetIntegralActivityPrizeVo
.
getNew
().
copy
(
sweetIntegralActivityPrize
);
// 记录
// 记录
long
activityPrizeNum
=
redisDataUtils
.
setIntegralActivityPrizeNum
(
integralActivityId
,
sweetIntegralActivityPrizeVo
.
getPrizeId
(),
1
);
long
activityPrizeWinnersNum
=
redisDataUtils
.
setIntegralActivityPrizeWinnersNum
(
integralActivityId
,
sweetIntegralActivityPrizeVo
.
getPrizeId
(),
1
);
if
(
activityPrizeNum
<
0
||
activityPrizeWinnersNum
<
0
)
{
// 库存不够了
return
ResponseDto
.
failure
(
"活动太火爆了,请稍后再试"
);
}
SweetIntegralActivityDraw
sweetIntegralActivityDraw
=
SweetIntegralActivityDraw
.
getNew
();
SweetIntegralActivityDraw
sweetIntegralActivityDraw
=
SweetIntegralActivityDraw
.
getNew
();
sweetIntegralActivityDraw
.
setDrawId
(
IDGenerator
.
nextSnowId
());
sweetIntegralActivityDraw
.
setDrawId
(
IDGenerator
.
nextSnowId
());
sweetIntegralActivityDraw
.
setIntegralActivityId
(
integralActivityId
);
sweetIntegralActivityDraw
.
setIntegralActivityId
(
integralActivityId
);
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
d70c77ae
...
@@ -674,4 +674,47 @@ public class RedisDataUtils {
...
@@ -674,4 +674,47 @@ public class RedisDataUtils {
// TODO: 2021/10/27 page大于1 去mongo里面取
// TODO: 2021/10/27 page大于1 去mongo里面取
}
}
public
int
getIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
prizeId
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
null
==
obj
)
{
return
0
;
}
else
{
return
(
int
)
obj
;
}
}
public
int
getIntegralActivityPrizeWinnersNum
(
String
integralActivityId
,
String
prizeId
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
prizeId
);
Object
obj
=
redisUtil
.
get
(
redisKey
);
if
(
null
==
obj
)
{
return
0
;
}
else
{
return
(
int
)
obj
;
}
}
public
long
setIntegralActivityPrizeNum
(
String
integralActivityId
,
String
prizeId
,
int
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_NUM
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
prizeId
);
long
decr
=
redisUtil
.
decr
(
redisKey
,
num
);
return
decr
;
}
public
long
setIntegralActivityPrizeWinnersNum
(
String
integralActivityId
,
String
prizeId
,
int
num
)
{
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_INTEGRAL_ACTIVITY_PRIZE_WINNERS_NUM
.
concat
(
integralActivityId
)
.
concat
(
":prizeId:"
)
.
concat
(
prizeId
);
long
decr
=
redisUtil
.
decr
(
redisKey
,
num
);
return
decr
;
}
}
}
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