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 8559711e
authored
Jan 28, 2021
by
xunj
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
心愿抽奖
1 parent
9e0212e6
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
304 additions
and
3 deletions
activity-admin/src/main/java/com/polysoft/activity/controller/WishController.java
activity-admin/src/main/java/com/polysoft/activity/mapper/WishMapper.java
activity-admin/src/main/java/com/polysoft/activity/mapper/WishRealPrizeMapper.java
activity-admin/src/main/java/com/polysoft/activity/model/dto/WishRealPrizeDto.java
activity-admin/src/main/java/com/polysoft/activity/model/param/AddWishParam.java
activity-admin/src/main/java/com/polysoft/activity/model/param/QueryWishParam.java
activity-admin/src/main/java/com/polysoft/activity/model/vo/QueryLuckDrawWishVO.java
activity-admin/src/main/java/com/polysoft/activity/model/vo/QueryRealPrizeVO.java
activity-admin/src/main/java/com/polysoft/activity/model/vo/WishVO.java
activity-admin/src/main/java/com/polysoft/activity/service/WishService.java
activity-admin/src/main/java/com/polysoft/activity/service/impl/WishServiceImpl.java
activity-admin/src/main/java/com/polysoft/activity/task/WishLuckDrawTask.java
activity-admin/src/main/resources/mapper/WishRealPrizeMapper.xml
activity-admin/src/main/java/com/polysoft/activity/controller/WishController.java
View file @
8559711
package
com
.
polysoft
.
activity
.
controller
;
import
com.github.pagehelper.PageHelper
;
import
com.polysoft.activity.model.param.AddWishParam
;
import
com.polysoft.activity.model.param.QueryWishParam
;
import
com.polysoft.activity.service.UserInfoService
;
import
com.polysoft.activity.service.WishService
;
import
com.polysoft.activity.utils.ApiResult
;
import
io.swagger.annotations.Api
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -25,9 +29,13 @@ public class WishController {
@PostMapping
(
"/addWish"
)
@ResponseBody
public
ApiResult
addWish
(
AddWishParam
param
)
{
public
ApiResult
addWish
(
@RequestBody
@Validated
AddWishParam
param
)
{
return
wishService
.
addWish
(
param
);
}
@GetMapping
(
"/queryWishList"
)
@ResponseBody
public
ApiResult
queryWishList
(
@RequestBody
QueryWishParam
param
)
{
return
wishService
.
queryWishList
(
param
);
}
}
activity-admin/src/main/java/com/polysoft/activity/mapper/WishMapper.java
View file @
8559711
...
...
@@ -2,8 +2,18 @@ package com.polysoft.activity.mapper;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.polysoft.activity.model.dto.AddWishDto
;
import
com.polysoft.activity.model.param.QueryWishParam
;
import
com.polysoft.activity.model.vo.QueryLuckDrawWishVO
;
import
com.polysoft.activity.model.vo.QueryRealPrizeVO
;
import
com.polysoft.activity.model.vo.WishVO
;
import
org.apache.ibatis.annotations.Mapper
;
import
java.util.List
;
@Mapper
public
interface
WishMapper
extends
BaseMapper
<
AddWishDto
>
{
List
<
WishVO
>
queryWishList
(
QueryWishParam
pageNum
);
List
<
QueryLuckDrawWishVO
>
queryLuckDrawWish
();
QueryRealPrizeVO
querRealPrize
();
}
activity-admin/src/main/java/com/polysoft/activity/mapper/WishRealPrizeMapper.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.polysoft.activity.model.dto.WishRealPrizeDto
;
import
org.apache.ibatis.annotations.Param
;
import
org.mapstruct.Mapper
;
import
java.util.List
;
/**
* @author lvyp
* @date 2021/1/28
*/
@Mapper
public
interface
WishRealPrizeMapper
extends
BaseMapper
<
WishRealPrizeDto
>
{
int
saveWishRealPrizeForList
(
@Param
(
"list"
)
List
<
WishRealPrizeDto
>
list
);
}
activity-admin/src/main/java/com/polysoft/activity/model/dto/WishRealPrizeDto.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
model
.
dto
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author lvyp
* @date 2021/1/28
*/
@Data
@TableName
(
value
=
"t_wish_real_prize"
)
public
class
WishRealPrizeDto
{
private
Long
id
;
private
Long
userId
;
private
Long
wishId
;
private
Long
prizeId
;
private
String
createTime
;
public
void
setCreateTime
(
Date
date
)
{
this
.
createTime
=
DateUtil
.
format
(
date
,
"yyyy-MM-dd HH:mm:ss"
);
}
}
activity-admin/src/main/java/com/polysoft/activity/model/param/AddWishParam.java
View file @
8559711
...
...
@@ -15,7 +15,6 @@ import java.util.List;
*/
@Data
public
class
AddWishParam
{
private
Long
wishId
;
@ApiModelProperty
(
"用户主键"
)
@NotBlank
(
message
=
"用户主键不能为空"
)
private
Long
userId
;
...
...
@@ -29,5 +28,7 @@ public class AddWishParam {
private
String
wishContext
;
@ApiModelProperty
(
"0 未中奖 1 中奖"
)
private
int
prizeFalg
=
0
;
@ApiModelProperty
(
"图片"
)
@NotBlank
(
message
=
"心愿图片不能为空"
)
private
List
<
MultipartFile
>
multipartFiles
;
}
activity-admin/src/main/java/com/polysoft/activity/model/param/QueryWishParam.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
model
.
param
;
import
com.polysoft.activity.common.utils.PageQuery
;
import
lombok.Data
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
QueryWishParam
extends
PageQuery
{
private
String
pushDate
;
private
Long
userId
;
private
Long
wishId
;
}
activity-admin/src/main/java/com/polysoft/activity/model/vo/QueryLuckDrawWishVO.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
model
.
vo
;
import
lombok.Data
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
QueryLuckDrawWishVO
{
private
Long
wishId
;
private
Long
userId
;
}
activity-admin/src/main/java/com/polysoft/activity/model/vo/QueryRealPrizeVO.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
model
.
vo
;
import
lombok.Data
;
/**
* @author lvyp
* @date 2021/1/27
*/
@Data
public
class
QueryRealPrizeVO
{
private
Long
prizeId
;
private
String
prizeName
;
private
String
luckDrawDate
;
private
String
prizeNum
;
private
String
prizePrice
;
}
activity-admin/src/main/java/com/polysoft/activity/model/vo/WishVO.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
model
.
vo
;
import
cn.hutool.core.date.DateUtil
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author lvyp
* @date 2021/1/26
*/
@Data
public
class
WishVO
{
private
Long
wishId
;
@ApiModelProperty
(
"用户主键"
)
private
Long
userId
;
@ApiModelProperty
(
"姓名"
)
private
String
userName
;
@ApiModelProperty
(
"城市地址"
)
private
String
address
;
@ApiModelProperty
(
"心愿语录内容"
)
private
String
wishContext
;
@ApiModelProperty
(
"0 未中奖 1 中奖"
)
private
int
prizeFalg
=
0
;
@ApiModelProperty
(
"创建日期"
)
private
String
createTime
;
@ApiModelProperty
(
"发布日期 示例:2020-01-21"
)
private
String
pushDate
;
@ApiModelProperty
(
"0 未删除 1 已删除"
)
private
int
deleteFalg
=
0
;
private
String
picUrl
;
}
activity-admin/src/main/java/com/polysoft/activity/service/WishService.java
View file @
8559711
package
com
.
polysoft
.
activity
.
service
;
import
com.polysoft.activity.model.dto.AddWishDto
;
import
com.polysoft.activity.model.param.AddWishParam
;
import
com.polysoft.activity.model.param.QueryWishParam
;
import
com.polysoft.activity.model.vo.QueryLuckDrawWishVO
;
import
com.polysoft.activity.model.vo.QueryRealPrizeVO
;
import
com.polysoft.activity.model.vo.WishVO
;
import
com.polysoft.activity.utils.ApiResult
;
import
java.util.List
;
public
interface
WishService
{
ApiResult
addWish
(
AddWishParam
param
);
ApiResult
queryWishList
(
QueryWishParam
pageNum
);
List
<
QueryLuckDrawWishVO
>
queryLuckDrawWish
();
QueryRealPrizeVO
querRealPrize
();
}
activity-admin/src/main/java/com/polysoft/activity/service/impl/WishServiceImpl.java
View file @
8559711
package
com
.
polysoft
.
activity
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.segments.MergeSegments
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.github.pagehelper.PageHelper
;
import
com.polysoft.activity.common.utils.BeanTransferUtils
;
import
com.polysoft.activity.common.utils.PageResult
;
import
com.polysoft.activity.mapper.WishMapper
;
import
com.polysoft.activity.mapper.WishPicMapper
;
import
com.polysoft.activity.model.dto.AddWishDto
;
import
com.polysoft.activity.model.dto.WishPicDto
;
import
com.polysoft.activity.model.param.AddWishParam
;
import
com.polysoft.activity.model.param.QueryWishParam
;
import
com.polysoft.activity.model.vo.QueryLuckDrawWishVO
;
import
com.polysoft.activity.model.vo.QueryRealPrizeVO
;
import
com.polysoft.activity.model.vo.WishVO
;
import
com.polysoft.activity.service.WishService
;
import
com.polysoft.activity.utils.ApiResult
;
import
com.polysoft.activity.utils.FileUtils
;
...
...
@@ -15,7 +25,9 @@ import org.springframework.stereotype.Service;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
@Service
...
...
@@ -58,4 +70,21 @@ public class WishServiceImpl implements WishService {
return
ApiResult
.
error
();
}
}
@Override
public
ApiResult
queryWishList
(
QueryWishParam
param
)
{
PageHelper
.
startPage
(
param
.
getPageNum
(),
param
.
getPageSize
());
PageResult
<
WishVO
>
result
=
BeanTransferUtils
.
toPagedResult
(
mapper
.
queryWishList
(
param
),
WishVO
.
class
);
return
ApiResult
.
ok
(
result
);
}
@Override
public
List
<
QueryLuckDrawWishVO
>
queryLuckDrawWish
()
{
return
mapper
.
queryLuckDrawWish
();
}
@Override
public
QueryRealPrizeVO
querRealPrize
()
{
return
mapper
.
querRealPrize
();
}
}
activity-admin/src/main/java/com/polysoft/activity/task/WishLuckDrawTask.java
0 → 100644
View file @
8559711
package
com
.
polysoft
.
activity
.
task
;
import
com.polysoft.activity.common.log.LoggerHelper
;
import
com.polysoft.activity.mapper.WishRealPrizeMapper
;
import
com.polysoft.activity.model.dto.WishRealPrizeDto
;
import
com.polysoft.activity.model.vo.QueryLuckDrawWishVO
;
import
com.polysoft.activity.model.vo.QueryRealPrizeVO
;
import
com.polysoft.activity.service.WishService
;
import
com.polysoft.activity.utils.SnowFlakeUtil
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Random
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
/**
* @author lvyp
* @date 2021/1/21
*/
@Component
@EnableScheduling
public
class
WishLuckDrawTask
{
@Resource
private
WishService
wishService
;
@Resource
private
WishRealPrizeMapper
wishRealPrizeMapper
;
@Scheduled
(
cron
=
"0 21 20 * * ? "
)
// @Scheduled( cron = "0 55 10 * * ? ")
public
void
execute
()
{
try
{
sendWechat
();
}
catch
(
Exception
e
)
{
LoggerHelper
.
err
(
this
.
getClass
(),
"EpidemicForSendWechatp休眠异常:{}"
,
e
);
}
}
private
void
sendWechat
(){
//查询疫情回访数据基础表
LoggerHelper
.
info
(
this
.
getClass
(),
"任务开始"
);
List
<
QueryLuckDrawWishVO
>
wishForToday
=
wishService
.
queryLuckDrawWish
();
QueryRealPrizeVO
realPrizeVO
=
wishService
.
querRealPrize
();
List
<
WishRealPrizeDto
>
dtos
=
new
ArrayList
<>();
Date
date
=
new
Date
();
if
(
wishForToday
!=
null
&&
wishForToday
.
size
()
>
0
&&
realPrizeVO
!=
null
)
{
if
(
wishForToday
.
size
()
<
10
)
{
wishForToday
.
forEach
(
item
->
{
WishRealPrizeDto
dto
=
new
WishRealPrizeDto
();
dto
.
setId
(
SnowFlakeUtil
.
nextId
());
dto
.
setUserId
(
item
.
getUserId
());
dto
.
setWishId
(
item
.
getWishId
());
dto
.
setPrizeId
(
realPrizeVO
.
getPrizeId
());
dto
.
setCreateTime
(
date
);
dtos
.
add
(
dto
);
});
}
else
{
HashSet
<
Integer
>
has
=
getLuckUser
(
10
,
wishForToday
.
size
());
List
<
QueryLuckDrawWishVO
>
luckWish
=
wishService
.
queryLuckDrawWish
();
for
(
Integer
n
:
has
)
{
QueryLuckDrawWishVO
item
=
luckWish
.
get
(
n
);
WishRealPrizeDto
dto
=
new
WishRealPrizeDto
();
dto
.
setId
(
SnowFlakeUtil
.
nextId
());
dto
.
setUserId
(
item
.
getUserId
());
dto
.
setWishId
(
dto
.
getWishId
());
dto
.
setPrizeId
(
realPrizeVO
.
getPrizeId
());
dto
.
setCreateTime
(
date
);
dtos
.
add
(
dto
);
}
}
wishRealPrizeMapper
.
saveWishRealPrizeForList
(
dtos
);
}
else
{
LoggerHelper
.
info
(
this
.
getClass
(),
"无抽奖"
);
}
}
private
HashSet
<
Integer
>
getLuckUser
(
int
count
,
int
random
){
HashSet
<
Integer
>
has
=
new
HashSet
<
Integer
>();
Integer
i
=
0
;
for
(
int
j
=
1
;
j
!=
0
;
j
++)
{
i
=
new
Random
().
nextInt
(
random
);
has
.
add
(
i
);
if
(
count
==
has
.
size
())
{
break
;
}
}
return
has
;
}
}
activity-admin/src/main/resources/mapper/WishRealPrizeMapper.xml
0 → 100644
View file @
8559711
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.polysoft.activity.mapper.WishRealPrizeMapper"
>
<insert
id=
"saveWishRealPrizeForList"
parameterType=
"list"
>
INSERT into t_wish_real_prize (
id,
user_id,
wish_id,
prize_id ,
create_time
)VALUES
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator =
","
>
(
#{item.id},
#{item.userId},
#{item.wishId},
#{item.prizeId},
#{item.createTime}
)
</foreach>
</insert>
</mapper>
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