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
ad147fb5
Commit
ad147fb5
authored
Nov 11, 2022
by
邓吉芬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.多活动支持
parent
dabe3aab
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
198 additions
and
99 deletions
+198
-99
DrawController.java
src/main/java/com/miya/draw/controller/DrawController.java
+3
-3
AccountPrize.java
src/main/java/com/miya/draw/entity/AccountPrize.java
+4
-0
Activity.java
src/main/java/com/miya/draw/entity/Activity.java
+9
-9
Prize.java
src/main/java/com/miya/draw/entity/Prize.java
+3
-0
DrawManagerImpl.java
src/main/java/com/miya/draw/manager/DrawManagerImpl.java
+85
-54
IDrawManager.java
src/main/java/com/miya/draw/manager/IDrawManager.java
+6
-4
ActivityMapper.java
src/main/java/com/miya/draw/mapper/ActivityMapper.java
+2
-3
DrawClickRequest.java
src/main/java/com/miya/draw/request/DrawClickRequest.java
+5
-0
DrawUserInfoGainRequest.java
...n/java/com/miya/draw/request/DrawUserInfoGainRequest.java
+5
-0
MinePrizeGainRequest.java
...main/java/com/miya/draw/request/MinePrizeGainRequest.java
+6
-0
PrizeDrawListRequest.java
...main/java/com/miya/draw/request/PrizeDrawListRequest.java
+7
-0
IAccountPrizeService.java
...main/java/com/miya/draw/service/IAccountPrizeService.java
+9
-11
IActivityService.java
src/main/java/com/miya/draw/service/IActivityService.java
+18
-0
AccountPrizeServiceImpl.java
...a/com/miya/draw/service/impl/AccountPrizeServiceImpl.java
+10
-15
ActivityServiceImpl.java
.../java/com/miya/draw/service/impl/ActivityServiceImpl.java
+26
-0
No files found.
src/main/java/com/miya/draw/controller/DrawController.java
View file @
ad147fb5
...
...
@@ -58,7 +58,7 @@ public class DrawController {
@ApiOperation
(
value
=
"用户点击活抽奖"
)
@PostMapping
(
value
=
"draw/click"
)
public
RestResult
<
DrawClickResponse
>
drawClick
(
@RequestBody
@Valid
DrawClickRequest
request
)
throws
InterruptedException
{
DrawModel
drawModel
=
drawManager
.
drawClick
(
request
.
getPhone
());
DrawModel
drawModel
=
drawManager
.
drawClick
(
request
.
getPhone
()
,
request
.
getActivityId
()
);
BeanCopier
<
DrawClickResponse
>
beanCopier
=
BeanCopier
.
create
(
drawModel
,
DrawClickResponse
.
builder
().
build
(),
CopyOptions
.
create
());
DrawClickResponse
response
=
beanCopier
.
copy
();
return
RestResultUtil
.
createSuccessResult
(
response
);
...
...
@@ -68,7 +68,7 @@ public class DrawController {
@ApiOperation
(
value
=
"获得我的奖品"
)
@PostMapping
(
value
=
"gain/mine/prize"
)
public
RestResult
<
List
<
MinePrizeGainResponse
>>
gainMinePrize
(
@RequestBody
@Valid
MinePrizeGainRequest
request
)
{
List
<
DrawModel
>
drawModelList
=
drawManager
.
listMinePrizeList
(
request
.
getPhone
()
);
List
<
DrawModel
>
drawModelList
=
drawManager
.
listMinePrizeList
(
request
);
List
<
MinePrizeGainResponse
>
minePrizeGainResponseList
=
new
ArrayList
<>();
if
(
CollectionUtils
.
isNotEmpty
(
drawModelList
))
{
minePrizeGainResponseList
=
drawModelList
.
stream
().
map
(
drawModel
->
{
...
...
@@ -94,7 +94,7 @@ public class DrawController {
@ApiOperation
(
value
=
"整体中奖情况"
)
@PostMapping
(
value
=
"prize/draw/list"
)
public
RestResult
<
List
<
PrizeDrawListResponse
>>
prizeDrawList
(
@RequestBody
@Valid
PrizeDrawListRequest
request
)
{
List
<
DrawModel
>
drawModelList
=
drawManager
.
listAllWinningInfo
(
request
.
getSize
()
);
List
<
DrawModel
>
drawModelList
=
drawManager
.
listAllWinningInfo
(
request
);
drawModelList
.
forEach
(
x
->
{
if
(
StringUtils
.
isNotBlank
(
x
.
getAccountName
())){
...
...
src/main/java/com/miya/draw/entity/AccountPrize.java
View file @
ad147fb5
package
com
.
miya
.
draw
.
entity
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -73,5 +74,8 @@ public class AccountPrize implements Serializable {
@ApiModelProperty
(
value
=
"更新时间"
)
private
LocalDateTime
updateTime
;
@TableField
(
exist
=
false
)
private
Integer
count
;
}
src/main/java/com/miya/draw/entity/Activity
Config
.java
→
src/main/java/com/miya/draw/entity/Activity.java
View file @
ad147fb5
...
...
@@ -19,16 +19,16 @@ import java.time.LocalDateTime;
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
@ApiModel
(
value
=
"activity
_config
对象"
,
description
=
""
)
@TableName
(
"activity
_config
"
)
public
class
Activity
Config
implements
Serializable
{
@ApiModel
(
value
=
"activity对象"
,
description
=
""
)
@TableName
(
"activity"
)
public
class
Activity
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
=
"活动
名称
"
)
private
String
name
;
@ApiModelProperty
(
value
=
"抽奖方式 1满额抽奖 2足量抽奖"
)
private
Integer
raffle
;
...
...
@@ -54,11 +54,11 @@ public class ActivityConfig implements Serializable {
@ApiModelProperty
(
value
=
"0 不限制门店 1限制门店"
)
private
Integer
activityStoreStatus
;
@ApiModelProperty
(
value
=
"
活动是否有效 0无效 1有效
"
)
private
Integer
validStatus
;
@ApiModelProperty
(
value
=
"
开始时间
"
)
private
LocalDateTime
startTime
;
@ApiModelProperty
(
value
=
"
单个用户限制奖品Id,多个用逗号隔开
"
)
private
Lo
ng
prizeId
;
@ApiModelProperty
(
value
=
"
结束时间
"
)
private
Lo
calDateTime
endTime
;
@ApiModelProperty
(
value
=
"创建时间"
)
private
LocalDateTime
createTime
;
...
...
src/main/java/com/miya/draw/entity/Prize.java
View file @
ad147fb5
...
...
@@ -53,6 +53,9 @@ public class Prize implements Serializable {
@ApiModelProperty
(
value
=
"活动id"
)
private
Long
activityId
;
@ApiModelProperty
(
value
=
"限抽 0表示不限"
)
private
Integer
astrict
;
@ApiModelProperty
(
value
=
"是否有效 0无效 1有效"
)
private
Integer
validStatus
;
...
...
src/main/java/com/miya/draw/manager/DrawManagerImpl.java
View file @
ad147fb5
This diff is collapsed.
Click to expand it.
src/main/java/com/miya/draw/manager/IDrawManager.java
View file @
ad147fb5
...
...
@@ -2,6 +2,8 @@ package com.miya.draw.manager;
import
com.miya.draw.model.DrawModel
;
import
com.miya.draw.request.DrawUserInfoGainRequest
;
import
com.miya.draw.request.MinePrizeGainRequest
;
import
com.miya.draw.request.PrizeDrawListRequest
;
import
java.util.List
;
...
...
@@ -24,7 +26,7 @@ public interface IDrawManager {
* @param phone
* @return
*/
List
<
DrawModel
>
listMinePrizeList
(
String
phone
);
List
<
DrawModel
>
listMinePrizeList
(
MinePrizeGainRequest
request
);
/**
* 修改我的奖品的地址信息
...
...
@@ -44,12 +46,12 @@ public interface IDrawManager {
* @param phone
* @return
*/
DrawModel
drawClick
(
String
phone
)
throws
InterruptedException
;
DrawModel
drawClick
(
String
phone
,
Long
activityId
)
throws
InterruptedException
;
/**
* 获得所有的中奖信息
* @param
size
* @param
request
* @return
*/
List
<
DrawModel
>
listAllWinningInfo
(
Integer
size
);
List
<
DrawModel
>
listAllWinningInfo
(
PrizeDrawListRequest
request
);
}
src/main/java/com/miya/draw/mapper/Activity
Config
Mapper.java
→
src/main/java/com/miya/draw/mapper/ActivityMapper.java
View file @
ad147fb5
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
com.miya.draw.entity.Activity
;
import
org.apache.ibatis.annotations.Mapper
;
/**
...
...
@@ -11,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
* @description:活动配置
*/
@Mapper
public
interface
Activity
ConfigMapper
extends
BaseMapper
<
ActivityConfig
>
{
public
interface
Activity
Mapper
extends
BaseMapper
<
Activity
>
{
}
src/main/java/com/miya/draw/request/DrawClickRequest.java
View file @
ad147fb5
...
...
@@ -6,6 +6,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* 用户点击抽奖请求模型
...
...
@@ -20,4 +21,8 @@ public class DrawClickRequest extends BaseRequest {
@NotBlank
(
message
=
"手机号不能为空"
)
@ApiModelProperty
(
value
=
"手机号"
)
private
String
phone
;
@NotNull
(
message
=
"活动Id不能为空"
)
@ApiModelProperty
(
value
=
"手机号"
,
required
=
true
)
private
Long
activityId
;
}
src/main/java/com/miya/draw/request/DrawUserInfoGainRequest.java
View file @
ad147fb5
...
...
@@ -6,6 +6,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* 获取抽奖用户信息请求模型
...
...
@@ -17,6 +18,10 @@ import javax.validation.constraints.NotBlank;
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
DrawUserInfoGainRequest
extends
BaseRequest
{
@NotNull
(
message
=
"活动Id不能为空"
)
@ApiModelProperty
(
value
=
"手机号"
,
required
=
true
)
private
Long
activityId
;
@ApiModelProperty
(
value
=
"用户名"
)
private
String
userName
;
...
...
src/main/java/com/miya/draw/request/MinePrizeGainRequest.java
View file @
ad147fb5
...
...
@@ -6,6 +6,7 @@ import lombok.Data;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* 获得我的奖品
...
...
@@ -17,7 +18,12 @@ import javax.validation.constraints.NotBlank;
@Data
public
class
MinePrizeGainRequest
extends
BaseRequest
{
@NotNull
(
message
=
"活动Id不能为空"
)
@ApiModelProperty
(
value
=
"手机号"
,
required
=
true
)
private
Long
activityId
;
@NotBlank
(
message
=
"手机号不能为空"
)
@ApiModelProperty
(
value
=
"手机号"
,
required
=
true
)
private
String
phone
;
}
src/main/java/com/miya/draw/request/PrizeDrawListRequest.java
View file @
ad147fb5
...
...
@@ -5,6 +5,9 @@ import io.swagger.annotations.ApiModelProperty;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
/**
* 所有的中奖信息请求
*
...
...
@@ -15,6 +18,10 @@ import lombok.EqualsAndHashCode;
@ApiModel
(
value
=
"获取所有的中奖信息请求"
)
public
class
PrizeDrawListRequest
extends
BaseRequest
{
@NotNull
(
message
=
"活动Id不能为空"
)
@ApiModelProperty
(
value
=
"手机号"
,
required
=
true
)
private
Long
activityId
;
@ApiModelProperty
(
value
=
"一次请求多少条 默认30"
)
private
Integer
size
=
30
;
}
src/main/java/com/miya/draw/service/IAccountPrizeService.java
View file @
ad147fb5
package
com
.
miya
.
draw
.
service
;
import
com.miya.draw.entity.AccountPrize
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.miya.draw.entity.AccountPrize
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author jack
* @since 2021-05-05
* @author :djf
* @date :2022-11-10
* @description:
*/
public
interface
IAccountPrizeService
extends
IService
<
AccountPrize
>
{
/**
* 获得用户的抽奖次数
*
...
...
@@ -24,16 +22,16 @@ public interface IAccountPrizeService extends IService<AccountPrize> {
* @param end 结束时间
* @return 已抽奖次数
*/
Integer
gainAlreadyDrawCount
(
String
phone
,
Long
activityId
,
LocalDateTime
start
,
LocalDateTime
end
);
Integer
gainAlreadyDrawCount
(
String
phone
,
Long
activityId
,
LocalDateTime
start
,
LocalDateTime
end
);
/**
* 获取用户手机号抽中指定奖品的次数
* @param phone
* @param activityId
* @param prizeId
* @param prizeId
s
* @return
*/
Integer
gainAlreadyDrawCountByPrize
(
String
phone
,
Long
activityId
,
Long
prizeId
);
List
<
AccountPrize
>
gainAlreadyDrawCountByPrize
(
String
phone
,
Long
activityId
,
List
<
Long
>
prizeIds
);
/**
* 获得我的奖品列表
...
...
@@ -41,7 +39,7 @@ public interface IAccountPrizeService extends IService<AccountPrize> {
* @param phone
* @return
*/
List
<
AccountPrize
>
listMinePrize
(
String
phone
,
Long
activityId
);
List
<
AccountPrize
>
listMinePrize
(
String
phone
,
Long
activityId
);
/**
* 获得所有的中奖信息
...
...
src/main/java/com/miya/draw/service/IActivity
Config
Service.java
→
src/main/java/com/miya/draw/service/IActivityService.java
View file @
ad147fb5
package
com
.
miya
.
draw
.
service
;
import
com.miya.draw.entity.Activity
Config
;
import
com.miya.draw.entity.Activity
;
/**
* @author :djf
* @date :2022-10-25
* @description:活动配置
*/
public
interface
IActivity
Config
Service
{
public
interface
IActivityService
{
ActivityConfig
getConfig
();
/**
* 根据Id获取活动信息
* @param id
* @return
*/
Activity
getById
(
Long
id
);
}
src/main/java/com/miya/draw/service/impl/AccountPrizeServiceImpl.java
View file @
ad147fb5
...
...
@@ -12,12 +12,9 @@ import com.miya.draw.enums.ErrorEnum;
import
com.miya.draw.enums.PrizeTypeEnum
;
import
com.miya.draw.mapper.AccountPrizeMapper
;
import
com.miya.draw.mapper.PrizeMapper
;
import
com.miya.draw.service.IAccountPrizeService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
com.miya.draw.service.IAccountPrizeService
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
...
...
@@ -41,10 +38,6 @@ public class AccountPrizeServiceImpl extends ServiceImpl<AccountPrizeMapper, Acc
@Resource
private
AccountPrizeMapper
accountPrizeMapper
;
@Resource
private
PrizeMapper
prizeMapper
;
@Override
...
...
@@ -85,12 +78,14 @@ public class AccountPrizeServiceImpl extends ServiceImpl<AccountPrizeMapper, Acc
}
@Override
public
Integer
gainAlreadyDrawCountByPrize
(
String
phone
,
Long
activityId
,
Long
prizeId
)
{
LambdaQueryWrapper
<
AccountPrize
>
wrapper
=
new
LambdaQueryWrapper
<>();
wrapper
.
eq
(
AccountPrize:
:
getActivityId
,
activityId
);
wrapper
.
eq
(
AccountPrize:
:
getPrizeId
,
prizeId
);
wrapper
.
eq
(
AccountPrize:
:
getAccountPhone
,
phone
);
return
accountPrizeMapper
.
selectCount
(
wrapper
);
public
List
<
AccountPrize
>
gainAlreadyDrawCountByPrize
(
String
phone
,
Long
activityId
,
List
<
Long
>
prizeIds
)
{
QueryWrapper
<
AccountPrize
>
wrapper
=
new
QueryWrapper
<>();
wrapper
.
select
(
"count(id) as count,prize_id "
)
.
eq
(
"activity_id"
,
activityId
)
.
eq
(
"account_phone"
,
phone
)
.
in
(
"prize_id"
,
prizeIds
)
.
last
(
"group by prize_id"
);
return
accountPrizeMapper
.
selectList
(
wrapper
);
}
/**
...
...
src/main/java/com/miya/draw/service/impl/Activity
Config
ServiceImpl.java
→
src/main/java/com/miya/draw/service/impl/ActivityServiceImpl.java
View file @
ad147fb5
...
...
@@ -2,13 +2,12 @@ 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.Activity
Config
;
import
com.miya.draw.mapper.Activity
Config
Mapper
;
import
com.miya.draw.service.IActivity
Config
Service
;
import
com.miya.draw.entity.Activity
;
import
com.miya.draw.mapper.ActivityMapper
;
import
com.miya.draw.service.IActivityService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
...
...
@@ -17,19 +16,11 @@ import java.util.List;
* @description:
*/
@Service
public
class
ActivityConfigServiceImpl
extends
ServiceImpl
<
ActivityConfigMapper
,
ActivityConfig
>
implements
IActivityConfigService
{
public
class
ActivityServiceImpl
extends
ServiceImpl
<
ActivityMapper
,
Activity
>
implements
IActivityService
{
@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
;
public
Activity
getById
(
Long
id
)
{
return
baseMapper
.
selectById
(
id
);
}
}
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