Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
xunj
/
festival-activites
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 450d20f6
authored
Feb 09, 2021
by
xunj
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
正是上线发布版本
1 parent
23764a4e
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
221 additions
and
185 deletions
activity-admin/src/main/java/com/polysoft/activity/constant/CommonTypeEnum.java
activity-admin/src/main/java/com/polysoft/activity/constant/MsgCodeEnum.java
activity-admin/src/main/java/com/polysoft/activity/controller/WishController.java
activity-admin/src/main/java/com/polysoft/activity/mapper/CattleBrandMapper.java
activity-admin/src/main/java/com/polysoft/activity/service/CattleBrandService.java
activity-admin/src/main/java/com/polysoft/activity/service/impl/CattleBrandServiceImpl.java
activity-admin/src/main/java/com/polysoft/activity/service/impl/UserInfoServiceImpl.java
activity-admin/src/main/java/com/polysoft/activity/service/impl/WishServiceImpl.java
activity-admin/src/main/java/com/polysoft/activity/task/CattleBrandCarveUpTask.java
activity-admin/src/main/java/com/polysoft/activity/task/InitRedPackageTask1.java
activity-admin/src/main/java/com/polysoft/activity/task/InitRedPackageTask2.java
activity-admin/src/main/java/com/polysoft/activity/task/InitRedPackageTask3.java
activity-admin/src/main/java/com/polysoft/activity/task/WishLuckDrawTask.java
activity-admin/src/main/resources/mapper/CattleBrandMapper.xml
activity-common/src/main/java/com/polysoft/activity/utils/ApiResult.java
activity-common/src/main/java/com/polysoft/activity/utils/RedPacketUtil.java
activity-admin/src/main/java/com/polysoft/activity/constant/CommonTypeEnum.java
View file @
450d20f
...
...
@@ -22,10 +22,15 @@ public enum CommonTypeEnum {
RED_ISENBLE_YES
(
"1"
,
"已结算"
),
//红包雨活动状态
ACTIVITY_STATUS1
(
"1"
,
"未开始"
),
ACTIVITY_STATUS2
(
"2"
,
"进行中"
),
ACTIVITY_STATUS3
(
"3"
,
"已结束"
),
LINK_SHARE_YES
(
"1"
,
"牛牌已被分享"
);
LINK_SHARE_YES
(
"1"
,
"牛牌已被分享"
),
COMPOSE_CATTLE_YES
(
"1"
,
"已合成牛牌"
),
COMPOSE_CATTLE_NO
(
"0"
,
"已合成牛牌"
),
CATTLE_OPSEN_NO
(
"0"
,
"福牛未打开"
),
CATTLE_OPSEN_YES
(
"1"
,
"福牛已打开"
);
//编码
private
String
code
;
//描述
...
...
activity-admin/src/main/java/com/polysoft/activity/constant/MsgCodeEnum.java
View file @
450d20f
...
...
@@ -4,9 +4,13 @@ public enum MsgCodeEnum {
BALANCE_NO
(
"1001"
,
"余额不足"
),
OPEN_CATTLE1
(
"2001"
,
"该用户不存在"
),
OPEN_CATTLE2
(
"2002"
,
"福牛红包已被领取"
),
OPEN_CATTLE3
(
"2003"
,
"开奖时间202
0
-02-17 20:21:00,少侠请耐心等待"
),
OPEN_CATTLE3
(
"2003"
,
"开奖时间202
1
-02-17 20:21:00,少侠请耐心等待"
),
//
RED_PACK_RECHAGE_NO
(
"3001"
,
"红包雨未结算完成"
);
RED_PACK_RECHAGE_NO
(
"3001"
,
"红包雨未结算完成"
),
CATTLE_OPEN__NO
(
"4001"
,
"牛牌合成未打开,请打开牛牌之后提现"
),
ACTIVITY_ALL_NO
(
"4002"
,
"活动未全部结束"
),
ACTIVITY_ALL_YES
(
"4003"
,
"非常遗憾,提现时效已过,拜拜……"
);
private
String
code
;
private
String
msg
;
...
...
activity-admin/src/main/java/com/polysoft/activity/controller/WishController.java
View file @
450d20f
...
...
@@ -27,11 +27,13 @@ public class WishController {
@PostMapping
(
"/addWish"
)
@ResponseBody
public
ApiResult
addWish
(
@Validated
AddWishParam
param
)
{
return
wishService
.
addWish
(
param
);
}
@PostMapping
(
"/queryWishList"
)
@ResponseBody
public
ApiResult
queryWishList
(
@RequestBody
QueryWishParam
param
)
{
return
wishService
.
queryWishList
(
param
);
}
@GetMapping
(
"/queryPrizeUser"
)
...
...
activity-admin/src/main/java/com/polysoft/activity/mapper/CattleBrandMapper.java
View file @
450d20f
...
...
@@ -18,7 +18,7 @@ import java.util.Map;
@Mapper
public
interface
CattleBrandMapper
extends
BaseMapper
<
CattleBrandDto
>
{
List
<
CattleBrandVO
>
queryCattleBrandList
(
@Param
(
"brandType"
)
String
brandType
);
List
<
CattleBrandVO
>
queryCattleBrandList
(
@Param
(
"brandType"
)
String
brandType
,
@Param
(
"isNotBrandType"
)
String
isNotBrandType
);
CattleBrandFroUserVO
queryCattleBrandByUserId
(
@Param
(
"userId"
)
Long
userId
);
CattleBrandConfVO
queryCattleBrandConf
(
@Param
(
"signDate"
)
String
signDate
);
List
<
UserCattleVO
>
getComposeCattleBrand
(
@Param
(
"userId"
)
Long
userId
);
...
...
@@ -28,7 +28,7 @@ public interface CattleBrandMapper extends BaseMapper<CattleBrandDto> {
TaskStatusVO
getTaskStatus
(
@Param
(
"userId"
)
Long
userId
,
@Param
(
"today"
)
String
today
);
int
saveShareForCattle
(
ShareDto
dto
);
int
deleteUsetCattleById
(
@Param
(
"id"
)
Long
id
);
List
<
RankVO
>
getRedSourceType4Rank
();
List
<
RankVO
>
getRedSourceType4Rank
(
@Param
(
"userId"
)
Long
userId
);
UserCattleVO
getUserCattleVOById
(
@Param
(
"id"
)
Long
id
,
@Param
(
"status"
)
String
status
);
int
updateUserCattleStatus
(
@Param
(
"id"
)
Long
id
,
@Param
(
"status"
)
String
status
);
...
...
activity-admin/src/main/java/com/polysoft/activity/service/CattleBrandService.java
View file @
450d20f
...
...
@@ -5,7 +5,7 @@ import com.polysoft.activity.utils.ApiResult;
public
interface
CattleBrandService
{
ApiResult
queryCattleBrandList
(
String
brandType
);
ApiResult
queryCattleBrandList
(
String
brandType
,
String
isNotBrandType
);
ApiResult
queryCattleBrandByUserId
(
Long
userId
);
ApiResult
queryCattleBrandByUserId2
(
Long
userId
);
ApiResult
saveComposeCattleBrand
(
ComposeCattleBrandParam
param
);
...
...
activity-admin/src/main/java/com/polysoft/activity/service/impl/CattleBrandServiceImpl.java
View file @
450d20f
...
...
@@ -51,13 +51,13 @@ public class CattleBrandServiceImpl implements CattleBrandService {
private
ActivityMapper
activityMapper
;
@Override
public
ApiResult
queryCattleBrandList
(
String
brandType
)
{
return
ApiResult
.
ok
(
cattleBrandMapper
.
queryCattleBrandList
(
brandType
));
public
ApiResult
queryCattleBrandList
(
String
brandType
,
String
isNotBrandType
)
{
return
ApiResult
.
ok
(
cattleBrandMapper
.
queryCattleBrandList
(
brandType
,
isNotBrandType
));
}
@Override
public
ApiResult
queryCattleBrandByUserId
(
Long
userId
)
{
List
<
CattleBrandVO
>
list
=
cattleBrandMapper
.
queryCattleBrandList
(
null
);
List
<
CattleBrandVO
>
list
=
cattleBrandMapper
.
queryCattleBrandList
(
null
,
null
);
CattleBrandFroUserVO
cattleBrand
=
cattleBrandMapper
.
queryCattleBrandByUserId
(
userId
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"cattleList"
,
list
);
...
...
@@ -103,10 +103,10 @@ public class CattleBrandServiceImpl implements CattleBrandService {
try
{
List
<
UserCattleVO
>
list
=
cattleBrandMapper
.
getComposeCattleBrand
(
param
.
getUserId
());
if
(
list
!=
null
&&
list
.
size
()
==
5
){
int
k1
=
cattleBrandMapper
.
updateComposeCattleStatus
(
param
.
getUserId
(),
"1"
,
DateUtil
.
format
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
int
k1
=
cattleBrandMapper
.
updateComposeCattleStatus
(
param
.
getUserId
(),
CommonTypeEnum
.
COMPOSE_CATTLE_YES
.
getCode
()
,
DateUtil
.
format
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
if
(
k1
<
1
){
log
.
error
(
"更新合成牛牌状态是失败"
);
throw
new
BusinessException
(
"
更新合成牛牌状态是
异常"
);
throw
new
BusinessException
(
"
合成牛牌
异常"
);
}
int
k2
=
cattleBrandMapper
.
deleteUserCalltle
(
list
);
if
(
k2
<
1
){
...
...
@@ -161,7 +161,7 @@ public class CattleBrandServiceImpl implements CattleBrandService {
//更新0 牛牌合成未打开 1 已打开
UpdateUserStatesDto
dto
=
new
UpdateUserStatesDto
();
dto
.
setUserId
(
param
.
getUserId
());
dto
.
setCattleOpenStatus
(
"1"
);
dto
.
setCattleOpenStatus
(
CommonTypeEnum
.
CATTLE_OPSEN_YES
.
getCode
()
);
int
k1
=
userInfoMapper
.
updateUserStates
(
dto
);
if
(
k1
<
1
){
log
.
info
(
"ID@@"
+
param
.
getUserId
()+
"@@更新牛一牛状态异常"
);
...
...
@@ -186,7 +186,7 @@ public class CattleBrandServiceImpl implements CattleBrandService {
throw
new
BusinessException
(
"打开牛牌更新t_red_rain表异常"
);
}
//查询排名
List
<
RankVO
>
rankVOList
=
cattleBrandMapper
.
getRedSourceType4Rank
();
List
<
RankVO
>
rankVOList
=
cattleBrandMapper
.
getRedSourceType4Rank
(
param
.
getUserId
()
);
int
total
=
rankVOList
.
size
();
Map
<
Long
,
Integer
>
map
=
rankVOList
.
stream
().
collect
(
Collectors
.
toMap
(
RankVO:
:
getUserId
,
RankVO:
:
getRanking
));
int
rank
=
map
.
get
(
param
.
getUserId
());
...
...
@@ -207,12 +207,14 @@ public class CattleBrandServiceImpl implements CattleBrandService {
public
ApiResult
getOpenCattleBrandResult
(
ComposeCattleBrandParam
param
)
{
OpenCattleVO
openCattleVO
=
new
OpenCattleVO
();
//查询排名
List
<
RankVO
>
rankVOList
=
cattleBrandMapper
.
getRedSourceType4Rank
();
List
<
RankVO
>
rankVOList
=
cattleBrandMapper
.
getRedSourceType4Rank
(
null
);
RankVO
rankVO
=
cattleBrandMapper
.
getRedSourceType4Rank
(
param
.
getUserId
()).
get
(
0
);
int
total
=
rankVOList
.
size
();
Map
<
Long
,
Integer
>
map
=
rankVOList
.
stream
().
collect
(
Collectors
.
toMap
(
RankVO:
:
getUserId
,
RankVO:
:
getRanking
));
int
rank
=
map
.
get
(
param
.
getUserId
());
DecimalFormat
df
=
new
DecimalFormat
(
"######0%"
);
String
percent
=
df
.
format
(
Double
.
valueOf
(
total
-
rank
)/
total
);
openCattleVO
.
setRedAmount
(
rankVO
.
getRedAmount
());
openCattleVO
.
setTotalPerson
(
total
);
openCattleVO
.
setPercent
(
percent
);
return
ApiResult
.
ok
(
openCattleVO
);
...
...
activity-admin/src/main/java/com/polysoft/activity/service/impl/UserInfoServiceImpl.java
View file @
450d20f
...
...
@@ -231,7 +231,7 @@ public class UserInfoServiceImpl implements UserInfoService {
dto
.
setId
(
SnowFlakeUtil
.
nextId
());
dto
.
setUserId
(
param
.
getUserId
());
String
barandType
=
random
.
PercentageRandom
()
+
""
;
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
).
get
(
0
);
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
,
null
).
get
(
0
);
dto
.
setCattleBrandId
(
cattleBrandVO
.
getCattleId
());
list
.
add
(
dto
);
int
k5
=
mapper
.
saveCattleBrand
(
list
);
...
...
@@ -298,12 +298,38 @@ public class UserInfoServiceImpl implements UserInfoService {
@Override
public
ApiResult
saveZapenTixian
(
IdQueryParam
param
)
{
Long
currentTime
=
System
.
currentTimeMillis
()/
1000
;
Long
guiDingTime
=
DateUtil
.
parse
(
"2021-02-17 20:21:00"
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
()/
1000
;
Long
guiDingLastTime
=
DateUtil
.
parse
(
"2021-02-18 00:00:00"
,
"yyyy-MM-dd HH:mm:ss"
).
getTime
()/
1000
;
if
(
currentTime
<
guiDingTime
){
return
ApiResult
.
error
(
MsgCodeEnum
.
ACTIVITY_ALL_NO
.
getCode
(),
MsgCodeEnum
.
ACTIVITY_ALL_NO
.
getMsg
());
}
if
(
currentTime
>
guiDingLastTime
){
return
ApiResult
.
error
(
MsgCodeEnum
.
ACTIVITY_ALL_YES
.
getCode
(),
MsgCodeEnum
.
ACTIVITY_ALL_YES
.
getMsg
());
}
UserInfoParam
userInfoParam
=
new
UserInfoParam
();
userInfoParam
.
setUserId
(
param
.
getId
());
UserInfoVO
infoVO
=
mapper
.
queryAuthUser
(
userInfoParam
);
//判断是否合成福牛 未合成直接提现
if
(
CommonTypeEnum
.
COMPOSE_CATTLE_NO
.
getCode
().
equals
(
infoVO
.
getComposeCattleStatus
())){
UpdateUserStatesDto
dto
=
new
UpdateUserStatesDto
();
dto
.
setUserId
(
param
.
getId
());
dto
.
setHammerStatus
(
"1"
);
mapper
.
updateUserStates
(
dto
);
return
ApiResult
.
ok
();
}
//判断合成福牛后,未打开提示打开
if
(
CommonTypeEnum
.
CATTLE_OPSEN_NO
.
getCode
().
equals
(
infoVO
.
getCattleOpenStatus
())){
return
ApiResult
.
ok
(
MsgCodeEnum
.
CATTLE_OPEN__NO
.
getCode
(),
MsgCodeEnum
.
CATTLE_OPEN__NO
.
getMsg
());
}
UpdateUserStatesDto
dto
=
new
UpdateUserStatesDto
();
dto
.
setUserId
(
param
.
getId
());
dto
.
setHammerStatus
(
"1"
);
return
ApiResult
.
ok
(
mapper
.
updateUserStates
(
dto
));
dto
.
setHammerStatus
(
CommonTypeEnum
.
CATTLE_OPSEN_YES
.
getCode
());
mapper
.
updateUserStates
(
dto
);
return
ApiResult
.
ok
();
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
ApiResult
saveFirstIntoCattle
(
UserInfoParam
param
)
{
CattleBrandVO
cattleBrandVO
=
null
;
...
...
@@ -318,7 +344,7 @@ public class UserInfoServiceImpl implements UserInfoService {
cattleDto
.
setId
(
SnowFlakeUtil
.
nextId
());
cattleDto
.
setUserId
(
param
.
getUserId
());
String
barandType
=
random
.
PercentageRandom
()
+
""
;
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
).
get
(
0
);
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
,
null
).
get
(
0
);
cattleDto
.
setCattleBrandId
(
cattleBrandVO
.
getCattleId
());
list
.
add
(
cattleDto
);
int
k2
=
mapper
.
saveCattleBrand
(
list
);
...
...
@@ -358,7 +384,7 @@ public class UserInfoServiceImpl implements UserInfoService {
cattleDto
.
setId
(
SnowFlakeUtil
.
nextId
());
cattleDto
.
setUserId
(
param
.
getUserId
());
String
barandType
=
random
.
PercentageRandom
()
+
""
;
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
).
get
(
0
);
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
,
null
).
get
(
0
);
cattleDto
.
setCattleBrandId
(
cattleBrandVO
.
getCattleId
());
list
.
add
(
cattleDto
);
int
k5
=
mapper
.
saveCattleBrand
(
list
);
...
...
activity-admin/src/main/java/com/polysoft/activity/service/impl/WishServiceImpl.java
View file @
450d20f
...
...
@@ -79,8 +79,11 @@ public class WishServiceImpl implements WishService {
dto
.
setCreateTime
(
date
);
dto
.
setPushDate
(
date
);
int
i
=
mapper
.
insert
(
dto
);
if
(
i
<
1
){
throw
new
BusinessException
(
"ID@@"
+
param
.
getUserId
()+
"@@发送心愿异常"
);
}
//发放牛牌
if
(
i
>
0
&&
firstPushNum
<
2
){
if
(
firstPushNum
<
1
){
CattleBrandConfVO
confVO
=
cattleBrandMapper
.
queryCattleBrandConf
(
DateUtil
.
format
(
new
Date
(),
"yyyy-MM-dd"
));
MathRandom
random
=
new
MathRandom
(
confVO
.
getRate1
(),
confVO
.
getRate2
(),
confVO
.
getRate3
(),
confVO
.
getRate4
(),
confVO
.
getRate5
());
List
<
SaveUserCattleDto
>
list
=
new
ArrayList
<>();
...
...
@@ -88,7 +91,7 @@ public class WishServiceImpl implements WishService {
saveUserCattleDto
.
setId
(
SnowFlakeUtil
.
nextId
());
saveUserCattleDto
.
setUserId
(
param
.
getUserId
());
String
barandType
=
random
.
PercentageRandom
()+
""
;
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
).
get
(
0
);
cattleBrandVO
=
cattleBrandMapper
.
queryCattleBrandList
(
barandType
,
null
).
get
(
0
);
if
(
cattleBrandVO
==
null
)
{
throw
new
BusinessException
(
"ID@@"
+
param
.
getUserId
()+
"@@发送心愿发放牛牌异常"
);
}
...
...
activity-admin/src/main/java/com/polysoft/activity/task/CattleBrandCarveUpTask.java
View file @
450d20f
...
...
@@ -36,7 +36,7 @@ public class CattleBrandCarveUpTask {
// @Scheduled( cron = "0 20 20 * * ? ")
// @Scheduled(initialDelay = 5000, fixedRate = 1*15*60*1000)
@Scheduled
(
cron
=
"
0 1
20 17 2 ? "
)
// 2021年2月17号 20时0分1秒 执行
@Scheduled
(
cron
=
"
1 0
20 17 2 ? "
)
// 2021年2月17号 20时0分1秒 执行
public
void
execute
()
{
try
{
sendWechat
();
...
...
activity-admin/src/main/java/com/polysoft/activity/task/InitRedPackageTask1.java
View file @
450d20f
...
...
@@ -45,7 +45,7 @@ public class InitRedPackageTask1 {
@Resource
private
CattleBrandMapper
cattleBrandMapper
;
// @Scheduled(initialDelay = 1000
0
, fixedRate = 1*15*60*1000)
// @Scheduled(initialDelay = 1000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40 10 17 * * ? ")
@Scheduled
(
cron
=
"45 0 20 11 2 ? "
)
// 2月11日 20点0分45秒执行
public
void
execute
()
{
...
...
@@ -63,20 +63,41 @@ public class InitRedPackageTask1 {
//查询出没有初始化的红包
final
int
batchNum
=
1
;
final
double
totalMoney
=
5000.00
;
if
(
4
==
4
){
List
<
AddRedRainDto
>
batchList4
=
new
ArrayList
<>();
QueryRedRainDto
dto4_1
=
new
QueryRedRainDto
();
dto4_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto4_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list4_1
=
activityMapper
.
queryRedRainList
(
dto4_1
);
int
redNum
=
28
;
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list4_1
.
size
());
List
<
CattleBrandVO
>
cattleList
=
(
List
<
CattleBrandVO
>)
cattleBrandService
.
queryCattleBrandList
(
null
,
"5"
).
get
(
"data"
);
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list4_1
.
get
(
s
),
AddRedRainDto
.
class
);
int
k
=
new
Random
().
nextInt
(
4
);
addRedRainDto
.
setCattleBrandId
(
cattleList
.
get
(
k
).
getCattleId
());
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
addRedRainDto
.
setSourceType
(
CommonTypeEnum
.
REDPACK_SOURCE_TYPE1
.
getCode
());
batchList4
.
add
(
addRedRainDto
);
}
activityMapper
.
updateRedPackageForCattle
(
batchList4
);
}
//11%红包
if
(
1
==
1
){
QueryRedRainDto
dto1
=
new
QueryRedRainDto
();
List
<
AddRedRainDto
>
batchList
=
new
ArrayList
<>();
dto1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto1
);
List
<
RedRainVO
>
list
1_1
=
activityMapper
.
queryRedRainList
(
dto1
);
//前10%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.
1
);
int
redNum
=
(
int
)(
list
1_1
.
size
()*
0.1
1
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.25
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
1_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
1_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -86,7 +107,7 @@ public class InitRedPackageTask1 {
}
activityMapper
.
updateRedPackage
(
batchList
);
}
//2
0
%红包
//2
2
%红包
if
(
2
==
2
){
//获取红包总数
QueryRedRainDto
dto2
=
new
QueryRedRainDto
();
...
...
@@ -97,16 +118,15 @@ public class InitRedPackageTask1 {
QueryRedRainDto
dto2_1
=
new
QueryRedRainDto
();
dto2_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto2_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list2
=
activityMapper
.
queryRedRainList
(
dto2_1
);
List
<
RedRainVO
>
list2_1
=
activityMapper
.
queryRedRainList
(
dto2_1
);
//前20%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.2
);
int
redNum
=
(
int
)(
list
.
size
()*
0.2
2
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.25
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -116,25 +136,25 @@ public class InitRedPackageTask1 {
}
activityMapper
.
updateRedPackage
(
batchList2
);
}
//67%红包
if
(
3
==
3
){
//获取红包总数
QueryRedRainDto
dto3
=
new
QueryRedRainDto
();
dto3
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto3
);
List
<
AddRedRainDto
>
batchList2
=
new
ArrayList
<>();
//获取未结算的红包数
QueryRedRainDto
dto3_1
=
new
QueryRedRainDto
();
dto3_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto3_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
2
=
activityMapper
.
queryRedRainList
(
dto3_1
);
List
<
RedRainVO
>
list
3_1
=
activityMapper
.
queryRedRainList
(
dto3_1
);
//前65%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.65
);
int
redNum
=
list3_1
.
size
(
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.5
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
2
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
3_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
2
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
3_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -144,34 +164,6 @@ public class InitRedPackageTask1 {
}
activityMapper
.
updateRedPackage
(
batchList2
);
}
if
(
4
==
4
){
//获取红包总数
QueryRedRainDto
dto4
=
new
QueryRedRainDto
();
dto4
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto4
);
List
<
AddRedRainDto
>
batchList2
=
new
ArrayList
<>();
//获取未结算的红包数
QueryRedRainDto
dto4_1
=
new
QueryRedRainDto
();
dto4_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto4_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list2
=
activityMapper
.
queryRedRainList
(
dto4_1
);
//前5%红包牛牌
int
redNum
=
list2
.
size
();
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
.
size
());
List
<
CattleBrandVO
>
cattleList
=
(
List
<
CattleBrandVO
>)
cattleBrandService
.
queryCattleBrandList
(
null
).
get
(
"data"
);
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
.
get
(
s
),
AddRedRainDto
.
class
);
int
k
=
new
Random
().
nextInt
(
5
);
addRedRainDto
.
setCattleBrandId
(
cattleList
.
get
(
k
).
getCattleId
());
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
addRedRainDto
.
setSourceType
(
CommonTypeEnum
.
REDPACK_SOURCE_TYPE1
.
getCode
());
batchList2
.
add
(
addRedRainDto
);
i
++;
}
activityMapper
.
updateRedPackageForCattle
(
batchList2
);
}
//更新聚宝盆
CalculateAmoutDto
calculateAmoutDto
=
new
CalculateAmoutDto
();
calculateAmoutDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
...
...
activity-admin/src/main/java/com/polysoft/activity/task/InitRedPackageTask2.java
View file @
450d20f
...
...
@@ -3,16 +3,15 @@ package com.polysoft.activity.task;
import
com.polysoft.activity.common.utils.BeanTransferUtils
;
import
com.polysoft.activity.constant.CommonTypeEnum
;
import
com.polysoft.activity.mapper.ActivityMapper
;
import
com.polysoft.activity.mapper.CattleBrandMapper
;
import
com.polysoft.activity.mapper.UserInfoMapper
;
import
com.polysoft.activity.model.dto.AddRedRainDto
;
import
com.polysoft.activity.model.dto.CalculateAmoutDto
;
import
com.polysoft.activity.model.dto.QueryRedRainDto
;
import
com.polysoft.activity.model.dto.SaveUserCattleDto
;
import
com.polysoft.activity.model.dto.UserInfoDto
;
import
com.polysoft.activity.model.dto.*
;
import
com.polysoft.activity.model.vo.CattleBrandConfVO
;
import
com.polysoft.activity.model.vo.CattleBrandVO
;
import
com.polysoft.activity.model.vo.RedAmountTotalVO
;
import
com.polysoft.activity.model.vo.RedRainVO
;
import
com.polysoft.activity.service.CattleBrandService
;
import
com.polysoft.activity.utils.MathRandom
;
import
com.polysoft.activity.utils.RedPacketUtil
;
import
com.polysoft.activity.utils.SnowFlakeUtil
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -43,9 +42,11 @@ public class InitRedPackageTask2 {
private
CattleBrandService
cattleBrandService
;
@Resource
private
UserInfoMapper
userInfoMapper
;
@Resource
private
CattleBrandMapper
cattleBrandMapper
;
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40 1
5
17 * * ? ")
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40 1
0
17 * * ? ")
@Scheduled
(
cron
=
"45 0 22 11 2 ? "
)
// 2月11日 22点0分45秒执行
public
void
execute
()
{
try
{
...
...
@@ -53,29 +54,51 @@ public class InitRedPackageTask2 {
sendWechat
();
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
throw
new
RuntimeException
(
"第
二
场红包雨线程睡眠异常"
);
throw
new
RuntimeException
(
"第
一
场红包雨线程睡眠异常"
);
}
}
}
private
void
sendWechat
(){
log
.
info
(
"第
二
批红包雨任务开始"
);
log
.
info
(
"第
一
批红包雨任务开始"
);
//查询出没有初始化的红包
final
int
batchNum
=
2
;
final
int
batchNum
=
1
;
final
double
totalMoney
=
5000.00
;
if
(
4
==
4
){
List
<
AddRedRainDto
>
batchList4
=
new
ArrayList
<>();
QueryRedRainDto
dto4_1
=
new
QueryRedRainDto
();
dto4_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto4_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list4_1
=
activityMapper
.
queryRedRainList
(
dto4_1
);
//前5%红包牛牌
int
redNum
=
28
;
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list4_1
.
size
());
List
<
CattleBrandVO
>
cattleList
=
(
List
<
CattleBrandVO
>)
cattleBrandService
.
queryCattleBrandList
(
null
,
"5"
).
get
(
"data"
);
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list4_1
.
get
(
s
),
AddRedRainDto
.
class
);
int
k
=
new
Random
().
nextInt
(
4
);
addRedRainDto
.
setCattleBrandId
(
cattleList
.
get
(
k
).
getCattleId
());
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
addRedRainDto
.
setSourceType
(
CommonTypeEnum
.
REDPACK_SOURCE_TYPE1
.
getCode
());
batchList4
.
add
(
addRedRainDto
);
}
activityMapper
.
updateRedPackageForCattle
(
batchList4
);
}
//11%红包
if
(
1
==
1
){
QueryRedRainDto
dto1
=
new
QueryRedRainDto
();
List
<
AddRedRainDto
>
batchList
=
new
ArrayList
<>();
dto1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto1
);
List
<
RedRainVO
>
list
1_1
=
activityMapper
.
queryRedRainList
(
dto1
);
//前10%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.
1
);
int
redNum
=
(
int
)(
list
1_1
.
size
()*
0.1
1
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.25
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
1_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
1_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -85,7 +108,7 @@ public class InitRedPackageTask2 {
}
activityMapper
.
updateRedPackage
(
batchList
);
}
//2
0
%红包
//2
2
%红包
if
(
2
==
2
){
//获取红包总数
QueryRedRainDto
dto2
=
new
QueryRedRainDto
();
...
...
@@ -96,16 +119,15 @@ public class InitRedPackageTask2 {
QueryRedRainDto
dto2_1
=
new
QueryRedRainDto
();
dto2_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto2_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list2
=
activityMapper
.
queryRedRainList
(
dto2_1
);
List
<
RedRainVO
>
list2_1
=
activityMapper
.
queryRedRainList
(
dto2_1
);
//前20%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.2
);
int
redNum
=
(
int
)(
list
.
size
()*
0.2
2
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.25
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -115,25 +137,25 @@ public class InitRedPackageTask2 {
}
activityMapper
.
updateRedPackage
(
batchList2
);
}
//67%红包
if
(
3
==
3
){
//获取红包总数
QueryRedRainDto
dto3
=
new
QueryRedRainDto
();
dto3
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto3
);
List
<
AddRedRainDto
>
batchList2
=
new
ArrayList
<>();
//获取未结算的红包数
QueryRedRainDto
dto3_1
=
new
QueryRedRainDto
();
dto3_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto3_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
2
=
activityMapper
.
queryRedRainList
(
dto3_1
);
List
<
RedRainVO
>
list
3_1
=
activityMapper
.
queryRedRainList
(
dto3_1
);
//前65%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.65
);
int
redNum
=
list3_1
.
size
(
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.5
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
2
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
3_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
2
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
3_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -143,34 +165,6 @@ public class InitRedPackageTask2 {
}
activityMapper
.
updateRedPackage
(
batchList2
);
}
if
(
4
==
4
){
//获取红包总数
QueryRedRainDto
dto4
=
new
QueryRedRainDto
();
dto4
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto4
);
List
<
AddRedRainDto
>
batchList2
=
new
ArrayList
<>();
//获取未结算的红包数
QueryRedRainDto
dto4_1
=
new
QueryRedRainDto
();
dto4_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto4_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list2
=
activityMapper
.
queryRedRainList
(
dto4_1
);
//前5%红包牛牌
int
redNum
=
list2
.
size
();
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
.
size
());
List
<
CattleBrandVO
>
cattleList
=
(
List
<
CattleBrandVO
>)
cattleBrandService
.
queryCattleBrandList
(
null
).
get
(
"data"
);
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
.
get
(
s
),
AddRedRainDto
.
class
);
int
k
=
new
Random
().
nextInt
(
5
);
addRedRainDto
.
setCattleBrandId
(
cattleList
.
get
(
k
).
getCattleId
());
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
addRedRainDto
.
setSourceType
(
CommonTypeEnum
.
REDPACK_SOURCE_TYPE1
.
getCode
());
batchList2
.
add
(
addRedRainDto
);
i
++;
}
activityMapper
.
updateRedPackageForCattle
(
batchList2
);
}
//更新聚宝盆
CalculateAmoutDto
calculateAmoutDto
=
new
CalculateAmoutDto
();
calculateAmoutDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
...
...
@@ -184,7 +178,7 @@ public class InitRedPackageTask2 {
dto
.
setRedBalance
(
item
.
getRedAmountTatol
());
userInfoDtoList
.
add
(
dto
);
});
userInfoMapper
.
updateRedBalace
(
userInfoDtoList
);
userInfoMapper
.
updateRedBalace
(
userInfoDtoList
);
//更新户牛牌
CalculateAmoutDto
calculateAmoutDto2
=
new
CalculateAmoutDto
();
calculateAmoutDto2
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
...
...
@@ -200,7 +194,7 @@ public class InitRedPackageTask2 {
saveUserCattleDtos
.
add
(
dto
);
});
userInfoMapper
.
saveCattleBrand
(
saveUserCattleDtos
);
log
.
info
(
"第
二
批红包雨任务结束"
);
log
.
info
(
"第
一
批红包雨任务结束"
);
}
private
HashSet
<
Integer
>
getLuckUser
(
int
count
,
int
random
){
HashSet
<
Integer
>
has
=
new
HashSet
<
Integer
>();
...
...
@@ -214,5 +208,4 @@ public class InitRedPackageTask2 {
}
return
has
;
}
}
activity-admin/src/main/java/com/polysoft/activity/task/InitRedPackageTask3.java
View file @
450d20f
...
...
@@ -3,23 +3,21 @@ package com.polysoft.activity.task;
import
com.polysoft.activity.common.utils.BeanTransferUtils
;
import
com.polysoft.activity.constant.CommonTypeEnum
;
import
com.polysoft.activity.mapper.ActivityMapper
;
import
com.polysoft.activity.mapper.CattleBrandMapper
;
import
com.polysoft.activity.mapper.UserInfoMapper
;
import
com.polysoft.activity.model.dto.AddRedRainDto
;
import
com.polysoft.activity.model.dto.CalculateAmoutDto
;
import
com.polysoft.activity.model.dto.QueryRedRainDto
;
import
com.polysoft.activity.model.dto.SaveUserCattleDto
;
import
com.polysoft.activity.model.dto.UserInfoDto
;
import
com.polysoft.activity.model.dto.*
;
import
com.polysoft.activity.model.vo.CattleBrandConfVO
;
import
com.polysoft.activity.model.vo.CattleBrandVO
;
import
com.polysoft.activity.model.vo.RedAmountTotalVO
;
import
com.polysoft.activity.model.vo.RedRainVO
;
import
com.polysoft.activity.service.CattleBrandService
;
import
com.polysoft.activity.utils.MathRandom
;
import
com.polysoft.activity.utils.RedPacketUtil
;
import
com.polysoft.activity.utils.SnowFlakeUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
...
...
@@ -44,40 +42,63 @@ public class InitRedPackageTask3 {
private
CattleBrandService
cattleBrandService
;
@Resource
private
UserInfoMapper
userInfoMapper
;
@Resource
private
CattleBrandMapper
cattleBrandMapper
;
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40
2
0 17 * * ? ")
@Scheduled
(
cron
=
"45 0 0 12 2 ? "
)
// 2月12日 0
时0
点0分45秒执行
// @Scheduled(initialDelay = 10000, fixedRate = 1*15*60*1000)
// @Scheduled( cron = "40
1
0 17 * * ? ")
@Scheduled
(
cron
=
"45 0 0 12 2 ? "
)
// 2月12日 0点0分45秒执行
public
void
execute
()
{
try
{
Thread
.
sleep
(
5000
);
sendWechat
();
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
throw
new
RuntimeException
(
"第
三
场红包雨线程睡眠异常"
);
throw
new
RuntimeException
(
"第
一
场红包雨线程睡眠异常"
);
}
}
}
private
void
sendWechat
(){
log
.
info
(
"第
三
批红包雨任务开始"
);
log
.
info
(
"第
一
批红包雨任务开始"
);
//查询出没有初始化的红包
final
int
batchNum
=
3
;
final
int
batchNum
=
1
;
final
double
totalMoney
=
5000.00
;
if
(
4
==
4
){
List
<
AddRedRainDto
>
batchList4
=
new
ArrayList
<>();
QueryRedRainDto
dto4_1
=
new
QueryRedRainDto
();
dto4_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto4_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list4_1
=
activityMapper
.
queryRedRainList
(
dto4_1
);
//前5%红包牛牌
int
redNum
=
28
;
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list4_1
.
size
());
List
<
CattleBrandVO
>
cattleList
=
(
List
<
CattleBrandVO
>)
cattleBrandService
.
queryCattleBrandList
(
null
,
"5"
).
get
(
"data"
);
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list4_1
.
get
(
s
),
AddRedRainDto
.
class
);
int
k
=
new
Random
().
nextInt
(
4
);
addRedRainDto
.
setCattleBrandId
(
cattleList
.
get
(
k
).
getCattleId
());
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
addRedRainDto
.
setSourceType
(
CommonTypeEnum
.
REDPACK_SOURCE_TYPE1
.
getCode
());
batchList4
.
add
(
addRedRainDto
);
}
activityMapper
.
updateRedPackageForCattle
(
batchList4
);
}
//11%红包
if
(
1
==
1
){
QueryRedRainDto
dto1
=
new
QueryRedRainDto
();
List
<
AddRedRainDto
>
batchList
=
new
ArrayList
<>();
dto1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto1
);
// !CollectionUtils.isEmpty(blackLists)
List
<
RedRainVO
>
list1_1
=
activityMapper
.
queryRedRainList
(
dto1
);
//前10%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.
1
);
int
redNum
=
(
int
)(
list
1_1
.
size
()*
0.1
1
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.25
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
1_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
1_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -87,7 +108,7 @@ public class InitRedPackageTask3 {
}
activityMapper
.
updateRedPackage
(
batchList
);
}
//2
0
%红包
//2
2
%红包
if
(
2
==
2
){
//获取红包总数
QueryRedRainDto
dto2
=
new
QueryRedRainDto
();
...
...
@@ -98,16 +119,15 @@ public class InitRedPackageTask3 {
QueryRedRainDto
dto2_1
=
new
QueryRedRainDto
();
dto2_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto2_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list2
=
activityMapper
.
queryRedRainList
(
dto2_1
);
List
<
RedRainVO
>
list2_1
=
activityMapper
.
queryRedRainList
(
dto2_1
);
//前20%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.2
);
int
redNum
=
(
int
)(
list
.
size
()*
0.2
2
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.25
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -117,25 +137,25 @@ public class InitRedPackageTask3 {
}
activityMapper
.
updateRedPackage
(
batchList2
);
}
//67%红包
if
(
3
==
3
){
//获取红包总数
QueryRedRainDto
dto3
=
new
QueryRedRainDto
();
dto3
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto3
);
List
<
AddRedRainDto
>
batchList2
=
new
ArrayList
<>();
//获取未结算的红包数
QueryRedRainDto
dto3_1
=
new
QueryRedRainDto
();
dto3_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto3_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
2
=
activityMapper
.
queryRedRainList
(
dto3_1
);
List
<
RedRainVO
>
list
3_1
=
activityMapper
.
queryRedRainList
(
dto3_1
);
//前65%红包
int
redNum
=
(
int
)(
list
.
size
()*
0.65
);
int
redNum
=
list3_1
.
size
(
);
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
totalMoney
*
0.5
,
redNum
,
0.01
,
200
,
2.1
);
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
2
.
size
());
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list
3_1
.
size
());
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
2
.
get
(
s
),
AddRedRainDto
.
class
);
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list
3_1
.
get
(
s
),
AddRedRainDto
.
class
);
addRedRainDto
.
setRedAmount
(
BigDecimal
.
valueOf
(
redAmount
.
get
(
i
)));
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
...
...
@@ -145,34 +165,6 @@ public class InitRedPackageTask3 {
}
activityMapper
.
updateRedPackage
(
batchList2
);
}
if
(
4
==
4
){
//获取红包总数
QueryRedRainDto
dto4
=
new
QueryRedRainDto
();
dto4
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list
=
activityMapper
.
queryRedRainList
(
dto4
);
List
<
AddRedRainDto
>
batchList2
=
new
ArrayList
<>();
//获取未结算的红包数
QueryRedRainDto
dto4_1
=
new
QueryRedRainDto
();
dto4_1
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_NO
.
getCode
());
dto4_1
.
setBatchNum
(
batchNum
);
List
<
RedRainVO
>
list2
=
activityMapper
.
queryRedRainList
(
dto4_1
);
//前5%红包牛牌
int
redNum
=
list2
.
size
();
HashSet
<
Integer
>
set
=
getLuckUser
(
redNum
,
list2
.
size
());
List
<
CattleBrandVO
>
cattleList
=
(
List
<
CattleBrandVO
>)
cattleBrandService
.
queryCattleBrandList
(
null
).
get
(
"data"
);
int
i
=
0
;
for
(
Integer
s
:
set
)
{
AddRedRainDto
addRedRainDto
=
BeanTransferUtils
.
transfer
(
list2
.
get
(
s
),
AddRedRainDto
.
class
);
int
k
=
new
Random
().
nextInt
(
5
);
addRedRainDto
.
setCattleBrandId
(
cattleList
.
get
(
k
).
getCattleId
());
addRedRainDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
addRedRainDto
.
setIsEnble
(
CommonTypeEnum
.
RED_ISENBLE_YES
.
getCode
());
addRedRainDto
.
setSourceType
(
CommonTypeEnum
.
REDPACK_SOURCE_TYPE1
.
getCode
());
batchList2
.
add
(
addRedRainDto
);
i
++;
}
activityMapper
.
updateRedPackageForCattle
(
batchList2
);
}
//更新聚宝盆
CalculateAmoutDto
calculateAmoutDto
=
new
CalculateAmoutDto
();
calculateAmoutDto
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE1
.
getCode
());
...
...
@@ -186,7 +178,7 @@ public class InitRedPackageTask3 {
dto
.
setRedBalance
(
item
.
getRedAmountTatol
());
userInfoDtoList
.
add
(
dto
);
});
userInfoMapper
.
updateRedBalace
(
userInfoDtoList
);
userInfoMapper
.
updateRedBalace
(
userInfoDtoList
);
//更新户牛牌
CalculateAmoutDto
calculateAmoutDto2
=
new
CalculateAmoutDto
();
calculateAmoutDto2
.
setRedType
(
CommonTypeEnum
.
REDPACK_TYPE2
.
getCode
());
...
...
@@ -202,7 +194,7 @@ public class InitRedPackageTask3 {
saveUserCattleDtos
.
add
(
dto
);
});
userInfoMapper
.
saveCattleBrand
(
saveUserCattleDtos
);
log
.
info
(
"第
三
批红包雨任务结束"
);
log
.
info
(
"第
一
批红包雨任务结束"
);
}
private
HashSet
<
Integer
>
getLuckUser
(
int
count
,
int
random
){
HashSet
<
Integer
>
has
=
new
HashSet
<
Integer
>();
...
...
activity-admin/src/main/java/com/polysoft/activity/task/WishLuckDrawTask.java
View file @
450d20f
...
...
@@ -33,7 +33,7 @@ public class WishLuckDrawTask {
// @Scheduled( cron = "0 40 17 * * ? ")
// @Scheduled(initialDelay = 5000, fixedRate = 1*15*60*1000)
@Scheduled
(
cron
=
"0 2
0 20 11,12,13,14,15,16,17 2 ? "
)
//2月11,12,13,14,15,16,17, 20时20
分0秒执行
@Scheduled
(
cron
=
"0 2
1 20 11,12,13,14,15,16,17 2 ? "
)
//2月11,12,13,14,15,16,17, 20时21
分0秒执行
public
void
execute
()
{
try
{
sendWechat
();
...
...
@@ -90,4 +90,9 @@ public class WishLuckDrawTask {
}
return
has
;
}
public
static
void
main
(
String
[]
args
)
{
WishLuckDrawTask
task
=
new
WishLuckDrawTask
();
task
.
getLuckUser
(
10
,
14
).
forEach
(
a
->
System
.
out
.
println
(
a
));
}
}
activity-admin/src/main/resources/mapper/CattleBrandMapper.xml
View file @
450d20f
...
...
@@ -46,6 +46,9 @@
<if
test=
"brandType != null and brandType != '' "
>
and brand_type = #{brandType}
</if>
<if
test=
"isNotBrandType != null and isNotBrandType != '' "
>
and brand_type
<>
#{isNotBrandType}
</if>
</select>
<select
id=
"queryCattleBrandByUserId"
resultType=
"com.polysoft.activity.model.vo.CattleBrandFroUserVO"
>
SELECT
...
...
@@ -118,6 +121,9 @@
t_red_rain t
WHERE
t.source_type = '4'
<if
test=
"userId != null"
>
and t.user_id=#{userId}
</if>
</select>
<select
id=
"getUserCattleVOById"
resultType=
"com.polysoft.activity.model.vo.UserCattleVO"
>
SELECT
...
...
activity-common/src/main/java/com/polysoft/activity/utils/ApiResult.java
View file @
450d20f
...
...
@@ -39,6 +39,12 @@ public class ApiResult extends HashMap<String, Object> {
r
.
put
(
"msg"
,
msg
);
return
r
;
}
public
static
ApiResult
error
(
String
code
,
String
msg
)
{
ApiResult
r
=
new
ApiResult
();
r
.
put
(
"code"
,
code
);
r
.
put
(
"msg"
,
msg
);
return
r
;
}
public
static
ApiResult
ok
(
String
code
,
String
msg
,
Object
data
)
{
ApiResult
r
=
new
ApiResult
();
r
.
put
(
"code"
,
code
);
...
...
activity-common/src/main/java/com/polysoft/activity/utils/RedPacketUtil.java
View file @
450d20f
...
...
@@ -81,7 +81,7 @@ public class RedPacketUtil {
public
static
void
main
(
String
[]
args
)
{
RedPacketUtil
redpack
=
new
RedPacketUtil
();
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
4000
-
444
,
177
,
5
,
3
0
,
2.1
);
List
<
Double
>
redAmount
=
redpack
.
getMoney
(
1250
,
10
,
0.01
,
20
0
,
2.1
);
redAmount
.
forEach
(
a
->
System
.
out
.
println
(
a
));
}
}
Write
Preview
Markdown
is supported
Attach a file
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 post a comment