Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
D
draw
Project
Project
Details
Activity
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
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
draw
draw
Commits
5f4d77c5
Commit
5f4d77c5
authored
Oct 25, 2022
by
邓吉芬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化
parent
d604c67c
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
196 additions
and
35 deletions
+196
-35
BusinessConfig.java
...in/java/com/miya/draw/config/business/BusinessConfig.java
+6
-0
BusinessConfigImpl.java
...ava/com/miya/draw/config/business/BusinessConfigImpl.java
+3
-0
ActivityConfig.java
src/main/java/com/miya/draw/entity/ActivityConfig.java
+63
-0
DrawManagerImpl.java
src/main/java/com/miya/draw/manager/DrawManagerImpl.java
+53
-29
ActivityConfigMapper.java
src/main/java/com/miya/draw/mapper/ActivityConfigMapper.java
+17
-0
IActivityConfigService.java
...in/java/com/miya/draw/service/IActivityConfigService.java
+13
-0
IActivityGoodsService.java
...ain/java/com/miya/draw/service/IActivityGoodsService.java
+1
-1
ActivityConfigServiceImpl.java
...com/miya/draw/service/impl/ActivityConfigServiceImpl.java
+35
-0
ActivityGoodsServiceImpl.java
.../com/miya/draw/service/impl/ActivityGoodsServiceImpl.java
+4
-5
bootstrap-test.yml
src/main/resources/bootstrap-test.yml
+0
-0
bussiness-config.yml
src/main/resources/bussiness-config.yml
+1
-0
No files found.
src/main/java/com/miya/draw/config/business/BusinessConfig.java
View file @
5f4d77c5
...
...
@@ -56,5 +56,11 @@ public interface BusinessConfig {
*/
Long
getDrawMaxMoney
();
/**
* 抽奖有效时间
* @return
*/
int
getValidTime
();
}
src/main/java/com/miya/draw/config/business/BusinessConfigImpl.java
View file @
5f4d77c5
...
...
@@ -37,5 +37,8 @@ public class BusinessConfigImpl implements BusinessConfig {
@Value
(
"${draw.maxmoney}"
)
public
Long
drawMaxMoney
;
@Value
(
"${draw.validTime}"
)
private
int
validTime
;
}
src/main/java/com/miya/draw/entity/ActivityConfig.java
0 → 100644
View file @
5f4d77c5
package
com
.
miya
.
draw
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
org.springframework.beans.factory.annotation.Value
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* @author :djf
* @date :2022-10-24
* @description:活动业务参数配置
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"activity_config对象"
,
description
=
""
)
@TableName
(
"activity_config"
)
public
class
ActivityConfig
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
@ApiModelProperty
(
value
=
"活动Id"
)
private
Long
activityId
;
@ApiModelProperty
(
value
=
"抽奖方式 1满额抽奖 2足量抽奖"
)
private
Integer
raffle
;
@ApiModelProperty
(
value
=
"抽奖最大次数"
)
private
Integer
drawMaxCount
;
@ApiModelProperty
(
value
=
"足量抽奖时每多少件加1次次数"
)
private
Integer
amountUnit
;
@ApiModelProperty
(
value
=
"足量抽奖时理论上最多买多少件"
)
private
Integer
maxAmount
;
@ApiModelProperty
(
value
=
"满额抽奖时每多少元加1次次数"
)
public
String
countUnit
;
@ApiModelProperty
(
value
=
"满额抽奖时理论上最多花费金额 元"
)
public
Long
maxMoney
;
@ApiModelProperty
(
value
=
"抽奖次数有效时间 1:当天有效 2:两天内有效以此类推"
)
private
int
validTime
;
@ApiModelProperty
(
value
=
"活动是否有效 0无效 1有效"
)
private
Integer
validStatus
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
LocalDateTime
createTime
;
@ApiModelProperty
(
value
=
"更新时间"
)
private
LocalDateTime
updateTime
;
}
src/main/java/com/miya/draw/manager/DrawManagerImpl.java
View file @
5f4d77c5
...
...
@@ -3,17 +3,14 @@ package com.miya.draw.manager;
import
cn.hutool.core.bean.copier.BeanCopier
;
import
cn.hutool.core.bean.copier.CopyOptions
;
import
cn.hutool.core.date.LocalDateTimeUtil
;
import
com.miya.draw.config.business.BusinessConfigImpl
;
import
com.miya.draw.config.constant.ConStants
;
import
com.miya.draw.config.exception.BusinessException
;
import
com.miya.draw.entity.Account
;
import
com.miya.draw.entity.AccountPrize
;
import
com.miya.draw.entity.Prize
;
import
com.miya.draw.entity.SyncTrade
;
import
com.miya.draw.entity.*
;
import
com.miya.draw.enums.*
;
import
com.miya.draw.model.DrawModel
;
import
com.miya.draw.request.DrawUserInfoGainRequest
;
import
com.miya.draw.service.*
;
import
com.miya.draw.service.impl.ActivityConfigServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -42,8 +39,6 @@ public class DrawManagerImpl implements IDrawManager {
@Autowired
private
IAccountService
accountService
;
@Autowired
private
BusinessConfigImpl
businessConfigImpl
;
@Autowired
private
IAccountPrizeService
accountPrizeService
;
...
...
@@ -66,6 +61,9 @@ public class DrawManagerImpl implements IDrawManager {
@Autowired
private
IOtherManager
otherManager
;
@Autowired
private
IActivityConfigService
activityConfigService
;
@Override
public
DrawModel
gainActivityUserInfo
(
DrawUserInfoGainRequest
request
)
{
try
{
...
...
@@ -77,35 +75,40 @@ public class DrawManagerImpl implements IDrawManager {
}
catch
(
Exception
e
)
{
log
.
error
(
"保存用户信息出错:{}"
,
e
.
getMessage
());
}
ActivityConfig
activityConfig
=
activityConfigService
.
getConfig
();
if
(
activityConfig
==
null
){
throw
new
BusinessException
(
ErrorEnum
.
SYSTEM_EXP
,
"未获取活动有效配置"
);
}
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
LocalDateTime
start
=
nowTime
.
minusDays
(
3
);
LocalDateTime
start
=
nowTime
.
minusDays
(
activityConfig
.
getValidTime
()-
1
);
start
=
LocalDateTimeUtil
.
beginOfDay
(
start
);
LocalDateTime
end
=
LocalDateTimeUtil
.
endOfDay
(
nowTime
);
Integer
maxDrawCountLimit
=
businessConfigImpl
.
getDrawMaxCount
();
Integer
alreadyDrawCount
=
accountPrizeService
.
gainAlreadyDrawCount
(
request
.
getPhone
(),
businessConfigImpl
.
getActivityId
(),
start
,
end
);
Integer
maxDrawCountLimit
=
activityConfig
.
getDrawMaxCount
();
Integer
alreadyDrawCount
=
accountPrizeService
.
gainAlreadyDrawCount
(
request
.
getPhone
(),
activityConfig
.
getActivityId
(),
start
,
end
);
List
<
String
>
storeIdList
=
activityStoreService
.
listAllActivityStoreId
();
List
<
String
>
goodCodeList
=
activityGoodsService
.
listAllActivityGoods
();
List
<
String
>
goodCodeList
=
activityGoodsService
.
listAllActivityGoods
(
activityConfig
.
getActivityId
()
);
List
<
SyncTrade
>
buyGoodList
=
syncTradeService
.
listCanDrawGoods
(
request
.
getPhone
(),
start
,
end
,
storeIdList
,
goodCodeList
);
BigDecimal
buyTotal
=
gainBuyTotal
(
buyGoodList
);
Long
purchasedAmount
=
buyTotal
.
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
();
Integer
drawCountTotal
=
0
;
if
(
businessConfigImpl
.
getRaffle
()==
RaffleEnum
.
AMOUNTUNIT
.
getCode
()){
if
(
activityConfig
.
getRaffle
()==
RaffleEnum
.
AMOUNTUNIT
.
getCode
()){
buyTotal
=
getAmountTotal
(
buyGoodList
);
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
businessConfigImpl
.
getAmountu
nit
()),
RoundingMode
.
DOWN
).
intValue
();
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
activityConfig
.
getAmountU
nit
()),
RoundingMode
.
DOWN
).
intValue
();
//足量抽奖
}
else
{
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
businessConfigImpl
.
getDraw
CountUnit
()),
RoundingMode
.
DOWN
).
intValue
();
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
activityConfig
.
get
CountUnit
()),
RoundingMode
.
DOWN
).
intValue
();
}
drawCountTotal
=
Math
.
min
(
businessConfigImpl
.
getDrawMaxCount
(),
drawCountTotal
);
drawCountTotal
=
Math
.
min
(
activityConfig
.
getDrawMaxCount
(),
drawCountTotal
);
drawCountTotal
=
drawCountTotal
-
alreadyDrawCount
;
Integer
joinActivityPeopleNum
=
accountPrizeService
.
countJoinActivityPeople
(
businessConfigImpl
.
getActivityId
());
Integer
joinActivityPeopleNum
=
accountPrizeService
.
countJoinActivityPeople
(
activityConfig
.
getActivityId
());
return
DrawModel
.
builder
()
.
alreadyDrawCount
(
alreadyDrawCount
)
.
drawCountTotal
(
drawCountTotal
>=
0
?
drawCountTotal:
0
)
.
maxDrawCountLimit
(
maxDrawCountLimit
)
.
numOfDrawCount
(
Math
.
max
(
0
,
maxDrawCountLimit
-
alreadyDrawCount
))
.
purchasedAmount
(
purchasedAmount
)
.
taxAmountCache
(
Math
.
max
(
0L
,
BigDecimal
.
valueOf
(
businessConfigImpl
.
getDraw
MaxMoney
()).
subtract
(
buyTotal
).
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
()))
.
taxAmountCache
(
Math
.
max
(
0L
,
BigDecimal
.
valueOf
(
activityConfig
.
get
MaxMoney
()).
subtract
(
buyTotal
).
multiply
(
BigDecimal
.
valueOf
(
100
)).
longValue
()))
.
numOfJoinActivityPeople
(
joinActivityPeopleNum
)
.
build
();
}
...
...
@@ -141,7 +144,11 @@ public class DrawManagerImpl implements IDrawManager {
@Override
public
List
<
DrawModel
>
listMinePrizeList
(
String
phone
)
{
List
<
AccountPrize
>
prizeList
=
accountPrizeService
.
listMinePrize
(
phone
,
businessConfigImpl
.
getActivityId
());
ActivityConfig
activityConfig
=
activityConfigService
.
getConfig
();
if
(
activityConfig
==
null
){
throw
new
BusinessException
(
ErrorEnum
.
SYSTEM_EXP
,
"未获取活动有效配置"
);
}
List
<
AccountPrize
>
prizeList
=
accountPrizeService
.
listMinePrize
(
phone
,
activityConfig
.
getActivityId
());
return
getDrawModels
(
prizeList
);
}
...
...
@@ -174,32 +181,35 @@ public class DrawManagerImpl implements IDrawManager {
RLock
lock
=
redissonClient
.
getLock
(
buildKey
(
phone
));
try
{
lock
.
tryLock
(
5
,
10
,
TimeUnit
.
SECONDS
);
//获取配置
ActivityConfig
activityConfig
=
activityConfigService
.
getConfig
();
// 1 验证是否可以抽奖
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
LocalDateTime
start
=
nowTime
.
minusDays
(
3
);
LocalDateTime
start
=
nowTime
.
minusDays
(
activityConfig
.
getValidTime
()-
1
);
start
=
LocalDateTimeUtil
.
beginOfDay
(
start
);
LocalDateTime
end
=
LocalDateTimeUtil
.
endOfDay
(
nowTime
);
List
<
SyncTrade
>
buyGoodList
=
syncTradeService
.
listCanDrawGoods
(
phone
,
start
,
end
,
activityStoreService
.
listAllActivityStoreId
(),
activityGoodsService
.
listAllActivityGoods
());
List
<
SyncTrade
>
buyGoodList
=
syncTradeService
.
listCanDrawGoods
(
phone
,
start
,
end
,
activityStoreService
.
listAllActivityStoreId
(),
activityGoodsService
.
listAllActivityGoods
(
activityConfig
.
getActivityId
()
));
int
drawCountTotal
=
0
;
//判断抽奖方式
//满额抽奖
if
(
businessConfigImpl
.
getRaffle
()==
RaffleEnum
.
AMOUNTUNIT
.
getCode
()){
if
(
activityConfig
.
getRaffle
()==
RaffleEnum
.
AMOUNTUNIT
.
getCode
()){
BigDecimal
buyTotal
=
getAmountTotal
(
buyGoodList
);
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
businessConfigImpl
.
getAmountu
nit
()),
RoundingMode
.
DOWN
).
intValue
();
drawCountTotal
=
Math
.
min
(
businessConfigImpl
.
getDrawMaxCount
(),
drawCountTotal
);
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
activityConfig
.
getAmountU
nit
()),
RoundingMode
.
DOWN
).
intValue
();
drawCountTotal
=
Math
.
min
(
activityConfig
.
getDrawMaxCount
(),
drawCountTotal
);
if
(
drawCountTotal
<=
0
)
{
throw
new
BusinessException
(
ErrorEnum
.
DRAW_CHECK_EXP
,
"抱歉,你的购物金额不足,已无抽奖次数"
);
}
//足量抽奖
}
else
{
BigDecimal
buyTotal
=
gainBuyTotal
(
buyGoodList
);
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
businessConfigImpl
.
getDraw
CountUnit
()),
RoundingMode
.
DOWN
).
intValue
();
drawCountTotal
=
Math
.
min
(
businessConfigImpl
.
getDrawMaxCount
(),
drawCountTotal
);
drawCountTotal
=
buyTotal
.
divide
(
new
BigDecimal
(
activityConfig
.
get
CountUnit
()),
RoundingMode
.
DOWN
).
intValue
();
drawCountTotal
=
Math
.
min
(
activityConfig
.
getDrawMaxCount
(),
drawCountTotal
);
if
(
drawCountTotal
<=
0
)
{
throw
new
BusinessException
(
ErrorEnum
.
DRAW_CHECK_EXP
,
"抱歉,您购买的活动商品不足,已无抽奖次数"
);
}
}
Integer
alreadyDrawCount
=
accountPrizeService
.
gainAlreadyDrawCount
(
phone
,
businessConfigImpl
.
getActivityId
(),
start
,
end
);
Integer
alreadyDrawCount
=
accountPrizeService
.
gainAlreadyDrawCount
(
phone
,
activityConfig
.
getActivityId
(),
start
,
end
);
// 可抽奖次数> 已抽奖次数
Prize
prize
;
AccountPrize
accountPrize
;
...
...
@@ -221,7 +231,7 @@ public class DrawManagerImpl implements IDrawManager {
}
// 记录抽奖信息
accountPrize
=
new
AccountPrize
();
accountPrize
.
setActivityId
(
businessConfigImpl
.
getActivityId
());
accountPrize
.
setActivityId
(
activityConfig
.
getActivityId
());
accountPrize
.
setPrizeId
(
prize
.
getId
());
accountPrize
.
setAccountName
(
phone
);
accountPrize
.
setAccountPhone
(
phone
);
...
...
@@ -233,7 +243,7 @@ public class DrawManagerImpl implements IDrawManager {
otherManager
.
sendCoupon
(
prize
.
getCouponId
(),
phone
,
accountPrize
.
getId
());
}
}
else
{
if
(
alreadyDrawCount
>=
businessConfigImpl
.
getDrawMaxCount
())
{
if
(
alreadyDrawCount
>=
activityConfig
.
getDrawMaxCount
())
{
throw
new
BusinessException
(
ErrorEnum
.
DRAW_CHECK_EXP
,
"抱歉,你的今日可抽奖次数已用完,请明日再来哦"
);
}
else
{
throw
new
BusinessException
(
ErrorEnum
.
DRAW_CHECK_EXP
,
"抱歉,你的购物金额或购买活动商品不足,已无抽奖次数"
);
...
...
@@ -253,9 +263,23 @@ public class DrawManagerImpl implements IDrawManager {
}
}
public
static
void
main
(
String
[]
args
)
{
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
LocalDateTime
start
=
nowTime
.
minusDays
(
1
-
1
);
start
=
LocalDateTimeUtil
.
beginOfDay
(
start
);
LocalDateTime
end
=
LocalDateTimeUtil
.
endOfDay
(
nowTime
);
}
@Override
public
List
<
DrawModel
>
listAllWinningInfo
(
Integer
size
)
{
List
<
AccountPrize
>
prizeList
=
accountPrizeService
.
listAllWinningInfo
(
size
,
businessConfigImpl
.
getActivityId
());
ActivityConfig
activityConfig
=
activityConfigService
.
getConfig
();
if
(
activityConfig
==
null
){
throw
new
BusinessException
(
ErrorEnum
.
SYSTEM_EXP
,
"未获取活动有效配置"
);
}
List
<
AccountPrize
>
prizeList
=
accountPrizeService
.
listAllWinningInfo
(
size
,
activityConfig
.
getActivityId
());
return
getDrawModels
(
prizeList
);
}
...
...
src/main/java/com/miya/draw/mapper/ActivityConfigMapper.java
0 → 100644
View file @
5f4d77c5
package
com
.
miya
.
draw
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.miya.draw.entity.Account
;
import
com.miya.draw.entity.ActivityConfig
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @author :djf
* @date :2022-10-25
* @description:活动配置
*/
@Mapper
public
interface
ActivityConfigMapper
extends
BaseMapper
<
ActivityConfig
>
{
}
src/main/java/com/miya/draw/service/IActivityConfigService.java
0 → 100644
View file @
5f4d77c5
package
com
.
miya
.
draw
.
service
;
import
com.miya.draw.entity.ActivityConfig
;
/**
* @author :djf
* @date :2022-10-25
* @description:活动配置
*/
public
interface
IActivityConfigService
{
ActivityConfig
getConfig
();
}
src/main/java/com/miya/draw/service/IActivityGoodsService.java
View file @
5f4d77c5
...
...
@@ -20,5 +20,5 @@ public interface IActivityGoodsService extends IService<ActivityGoods> {
*
* @return
*/
List
<
String
>
listAllActivityGoods
();
List
<
String
>
listAllActivityGoods
(
Long
activityId
);
}
src/main/java/com/miya/draw/service/impl/ActivityConfigServiceImpl.java
0 → 100644
View file @
5f4d77c5
package
com
.
miya
.
draw
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.miya.draw.entity.ActivityConfig
;
import
com.miya.draw.mapper.ActivityConfigMapper
;
import
com.miya.draw.service.IActivityConfigService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author :djf
* @date :2022-10-25
* @description:
*/
@Service
public
class
ActivityConfigServiceImpl
extends
ServiceImpl
<
ActivityConfigMapper
,
ActivityConfig
>
implements
IActivityConfigService
{
@Override
public
ActivityConfig
getConfig
()
{
LambdaQueryWrapper
<
ActivityConfig
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
ActivityConfig:
:
getValidStatus
,
1
);
wrapper
.
last
(
"order by create_time desc "
);
List
<
ActivityConfig
>
list
=
baseMapper
.
selectList
(
wrapper
);
if
(!
CollectionUtils
.
isEmpty
(
list
)){
return
list
.
get
(
0
);
}
return
null
;
}
}
src/main/java/com/miya/draw/service/impl/ActivityGoodsServiceImpl.java
View file @
5f4d77c5
...
...
@@ -2,7 +2,6 @@ package com.miya.draw.service.impl;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.miya.draw.config.business.BusinessConfigImpl
;
import
com.miya.draw.config.constant.ConStants
;
import
com.miya.draw.entity.ActivityGoods
;
import
com.miya.draw.enums.YesOrNoEnum
;
...
...
@@ -39,11 +38,11 @@ public class ActivityGoodsServiceImpl extends ServiceImpl<ActivityGoodsMapper, A
@Autowired
private
RedisTemplate
<
String
,
Object
>
redisTemplate
;
@Resource
private
BusinessConfigImpl
businessConfigImpl
;
@Override
public
List
<
String
>
listAllActivityGoods
()
{
public
List
<
String
>
listAllActivityGoods
(
Long
activityId
)
{
List
<
String
>
goodList
=
new
ArrayList
<>();
try
{
Object
object
=
redisTemplate
.
opsForValue
().
get
(
buildKey
());
...
...
@@ -55,7 +54,7 @@ public class ActivityGoodsServiceImpl extends ServiceImpl<ActivityGoodsMapper, A
}
LambdaQueryWrapper
<
ActivityGoods
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
ActivityGoods:
:
getValidState
,
YesOrNoEnum
.
YES
.
getCode
());
wrapper
.
eq
(
ActivityGoods:
:
getActivityId
,
businessConfigImpl
.
getActivityId
()
);
wrapper
.
eq
(
ActivityGoods:
:
getActivityId
,
activityId
);
List
<
ActivityGoods
>
activityGoodsList
=
activityGoodsMapper
.
selectList
(
wrapper
);
if
(
CollectionUtils
.
isNotEmpty
(
activityGoodsList
))
{
goodList
=
activityGoodsList
.
stream
().
map
(
ActivityGoods:
:
getCode
).
collect
(
Collectors
.
toList
());
...
...
src/main/resources/bootstrap.yml
→
src/main/resources/bootstrap
-test
.yml
View file @
5f4d77c5
File moved
src/main/resources/bussiness-config.yml
View file @
5f4d77c5
...
...
@@ -7,3 +7,4 @@ draw:
amountunit
:
0
#满量抽奖时每多少件加1次次数
maxmoney
:
200
#满额抽奖时理论上最多花费金额 元
maxamount
:
0
#满量抽奖时理论上最多买多少件
validTime
:
1
#抽奖次数有效时间 1:当天有效 2:两天内有效以此类推
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