Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
youjj
cloud-platform
Commits
286e2694
Commit
286e2694
authored
Dec 05, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽奖实体相关创建
parent
3f37cbd2
Changes
41
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
2032 additions
and
0 deletions
+2032
-0
ExcelUtils.java
...github/wxiaoqi/security/common/util/excel/ExcelUtils.java
+92
-0
ActivityAttendanceRecordBo.java
...xxfc/platform/activity/bo/ActivityAttendanceRecordBo.java
+54
-0
ActivityWinningRecordBo.java
...om/xxfc/platform/activity/bo/ActivityWinningRecordBo.java
+54
-0
ActivityWinningRecordTotalVo.java
...fc/platform/activity/bo/ActivityWinningRecordTotalVo.java
+38
-0
PrizeTypeEnum.java
...va/com/xxfc/platform/activity/constant/PrizeTypeEnum.java
+35
-0
ActivityAttendanceRecordDTO.java
...fc/platform/activity/dto/ActivityAttendanceRecordDTO.java
+31
-0
ActivityAttendanceRecordFindDTO.java
...latform/activity/dto/ActivityAttendanceRecordFindDTO.java
+25
-0
ActivityLuckDrawFindDTO.java
...m/xxfc/platform/activity/dto/ActivityLuckDrawFindDTO.java
+27
-0
ActivityWinningRecordDTO.java
.../xxfc/platform/activity/dto/ActivityWinningRecordDTO.java
+27
-0
ActivityWinningRecordFindDTO.java
...c/platform/activity/dto/ActivityWinningRecordFindDTO.java
+28
-0
ActivityWinningRecordPageDTO.java
...c/platform/activity/dto/ActivityWinningRecordPageDTO.java
+31
-0
ActivityAttendanceRecord.java
...fc/platform/activity/entity/ActivityAttendanceRecord.java
+46
-0
ActivityLuckyDraw.java
.../com/xxfc/platform/activity/entity/ActivityLuckyDraw.java
+38
-0
ActivityPrize.java
...java/com/xxfc/platform/activity/entity/ActivityPrize.java
+56
-0
ActivityWinningRecord.java
.../xxfc/platform/activity/entity/ActivityWinningRecord.java
+49
-0
LotteryUtils.java
...in/java/com/xxfc/platform/activity/util/LotteryUtils.java
+46
-0
ActivityAttendanceRecordTotalVo.java
...platform/activity/vo/ActivityAttendanceRecordTotalVo.java
+34
-0
ActivityAttendanceRecordVo.java
...xxfc/platform/activity/vo/ActivityAttendanceRecordVo.java
+29
-0
ActivityPrizeVo.java
...n/java/com/xxfc/platform/activity/vo/ActivityPrizeVo.java
+34
-0
ActivityWinningRecordVo.java
...om/xxfc/platform/activity/vo/ActivityWinningRecordVo.java
+32
-0
LotteryVo.java
...rc/main/java/com/xxfc/platform/activity/vo/LotteryVo.java
+20
-0
ActivityAttendanceRecordBiz.java
...fc/platform/activity/biz/ActivityAttendanceRecordBiz.java
+174
-0
ActivityLuckyDrawBiz.java
.../com/xxfc/platform/activity/biz/ActivityLuckyDrawBiz.java
+109
-0
ActivityPrizeBiz.java
...java/com/xxfc/platform/activity/biz/ActivityPrizeBiz.java
+130
-0
ActivityWinningRecordBiz.java
.../xxfc/platform/activity/biz/ActivityWinningRecordBiz.java
+167
-0
ActivityAttendanceRecordMapper.java
...tform/activity/mapper/ActivityAttendanceRecordMapper.java
+20
-0
ActivityLuckyDrawMapper.java
...xfc/platform/activity/mapper/ActivityLuckyDrawMapper.java
+19
-0
ActivityPrizeMapper.java
...om/xxfc/platform/activity/mapper/ActivityPrizeMapper.java
+16
-0
ActivityWinningRecordMapper.java
...platform/activity/mapper/ActivityWinningRecordMapper.java
+20
-0
ActivityAttendanceRecordController.java
...orm/activity/rest/ActivityAttendanceRecordController.java
+44
-0
ActivityLuckyDrawController.java
...c/platform/activity/rest/ActivityLuckyDrawController.java
+42
-0
ActivityPrizeController.java
.../xxfc/platform/activity/rest/ActivityPrizeController.java
+56
-0
ActivityWinningRecordController.java
...atform/activity/rest/ActivityWinningRecordController.java
+22
-0
ActivityAttendanceRecordAdminController.java
...y/rest/admin/ActivityAttendanceRecordAdminController.java
+52
-0
ActivityLuckyDrawAdminController.java
...activity/rest/admin/ActivityLuckyDrawAdminController.java
+61
-0
ActivityPrizeAdminController.java
...orm/activity/rest/admin/ActivityPrizeAdminController.java
+37
-0
ActivityWinningRecordAdminController.java
...vity/rest/admin/ActivityWinningRecordAdminController.java
+53
-0
ActivityAttendanceRecordMapper.xml
.../main/resources/mapper/ActivityAttendanceRecordMapper.xml
+67
-0
ActivityLuckyDrawMapper.xml
...ver/src/main/resources/mapper/ActivityLuckyDrawMapper.xml
+42
-0
ActivityPrizeMapper.xml
...-server/src/main/resources/mapper/ActivityPrizeMapper.xml
+22
-0
ActivityWinningRecordMapper.xml
...src/main/resources/mapper/ActivityWinningRecordMapper.xml
+53
-0
No files found.
ace-common/src/main/java/com/github/wxiaoqi/security/common/util/excel/ExcelUtils.java
0 → 100644
View file @
286e2694
package
com
.
github
.
wxiaoqi
.
security
.
common
.
util
.
excel
;
import
org.apache.poi.ss.usermodel.*
;
import
org.apache.poi.xssf.usermodel.XSSFCellStyle
;
import
org.apache.poi.xssf.usermodel.XSSFFont
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 18:37
*/
public
class
ExcelUtils
{
private
XSSFWorkbook
hssfWorkbook
;
private
XSSFSheet
sheet
;
public
ExcelUtils
(
String
sheetName
){
hssfWorkbook
=
new
XSSFWorkbook
();
sheet
=
hssfWorkbook
.
createSheet
(
sheetName
);
}
public
void
createCellData
(
Sheet
sheet
,
int
startRowIndex
,
CellStyle
cellStyle
,
List
<
String
[]>
datas
)
{
for
(
String
[]
data
:
datas
)
{
Row
row
=
sheet
.
createRow
(
startRowIndex
++);
createCellCount
(
row
,
0
,
data
,
cellStyle
);
}
}
private
void
createCellCount
(
Row
row
,
int
CellStartIndex
,
String
[]
data
,
CellStyle
cellStyle
)
{
for
(
int
i
=
CellStartIndex
,
y
=
0
;
y
<
data
.
length
;
i
++,
y
++)
{
Cell
cell
=
row
.
createCell
(
i
);
cell
.
setCellStyle
(
cellStyle
);
cell
.
setCellValue
(
data
[
y
]);
}
}
public
void
createHeader
(
Row
row
,
int
cellStartIndex
,
String
[]
header
,
CellStyle
cellStyle
)
{
for
(
int
i
=
0
;
i
<
header
.
length
;
i
++)
{
Cell
cell
=
row
.
createCell
(
cellStartIndex
);
cell
.
setCellValue
(
header
[
i
]);
cell
.
setCellStyle
(
cellStyle
);
cellStartIndex
+=
1
;
}
}
public
CellStyle
createGeneralCellStyle
()
{
CellStyle
cellStyleGeneral
=
createHeaderCellStyle
();
cellStyleGeneral
.
setWrapText
(
true
);
XSSFFont
generalFont
=
createFont
();
generalFont
.
setBold
(
false
);
cellStyleGeneral
.
setFont
(
generalFont
);
return
cellStyleGeneral
;
}
public
CellStyle
createHeaderCellStyle
()
{
XSSFCellStyle
cellStyleHeader
=
hssfWorkbook
.
createCellStyle
();
cellStyleHeader
.
setAlignment
(
HorizontalAlignment
.
CENTER
);
cellStyleHeader
.
setVerticalAlignment
(
VerticalAlignment
.
CENTER
);
cellStyleHeader
.
setLocked
(
false
);
XSSFFont
headerFont
=
createFont
();
cellStyleHeader
.
setFont
(
headerFont
);
return
cellStyleHeader
;
}
public
XSSFFont
createFont
()
{
XSSFFont
font
=
hssfWorkbook
.
createFont
();
font
.
setFontName
(
"黑体"
);
font
.
setBold
(
true
);
return
font
;
}
public
XSSFWorkbook
getHssfWorkbook
()
{
return
hssfWorkbook
;
}
public
void
setHssfWorkbook
(
XSSFWorkbook
hssfWorkbook
)
{
this
.
hssfWorkbook
=
hssfWorkbook
;
}
public
XSSFSheet
getSheet
()
{
return
sheet
;
}
public
void
setSheet
(
XSSFSheet
sheet
)
{
this
.
sheet
=
sheet
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/bo/ActivityAttendanceRecordBo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
bo
;
import
com.xxfc.platform.activity.vo.ActivityAttendanceRecordTotalVo
;
import
com.xxfc.platform.activity.vo.ActivityAttendanceRecordVo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.util.Collections
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 15:19
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityAttendanceRecordBo
{
private
Integer
totalPage
;
private
Long
totalCount
;
private
Integer
pageNum
;
private
Integer
pageSize
;
private
List
<
ActivityAttendanceRecordVo
>
activityAttendanceRecordVos
;
private
ActivityAttendanceRecordTotalVo
activityAttendanceRecordTotalVo
;
public
Integer
getTotalPage
()
{
return
totalPage
==
null
?
0
:
totalPage
;
}
public
Long
getTotalCount
()
{
return
totalCount
==
null
?
0
:
totalCount
;
}
public
Integer
getPageNum
()
{
return
pageNum
==
null
?
1
:
pageNum
;
}
public
Integer
getPageSize
()
{
return
pageSize
==
null
?
0
:
pageSize
;
}
public
List
<
ActivityAttendanceRecordVo
>
getActivityAttendanceRecordVos
()
{
return
CollectionUtils
.
isEmpty
(
activityAttendanceRecordVos
)?
Collections
.
EMPTY_LIST
:
activityAttendanceRecordVos
;
}
public
ActivityAttendanceRecordTotalVo
getActivityAttendanceRecordTotalVo
()
{
return
activityAttendanceRecordTotalVo
==
null
?
new
ActivityAttendanceRecordTotalVo
():
activityAttendanceRecordTotalVo
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/bo/ActivityWinningRecordBo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
bo
;
import
com.xxfc.platform.activity.vo.ActivityWinningRecordVo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.io.Serializable
;
import
java.util.Collections
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 8:40
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityWinningRecordBo
implements
Serializable
{
private
Integer
totalPage
;
private
Long
totalCount
;
private
Integer
pageNum
;
private
Integer
pageSize
;
private
List
<
ActivityWinningRecordVo
>
activityWinningRecords
;
private
ActivityWinningRecordTotalVo
activityWinningRecordTotalVo
;
public
Integer
getTotalPage
()
{
return
totalPage
==
null
?
0
:
totalPage
;
}
public
Long
getTotalCount
()
{
return
totalCount
==
null
?
0
:
totalCount
;
}
public
Integer
getPageNum
()
{
return
pageNum
==
null
?
0
:
pageNum
;
}
public
Integer
getPageSize
()
{
return
pageSize
==
null
?
0
:
pageSize
;
}
public
List
<
ActivityWinningRecordVo
>
getActivityWinningRecords
()
{
return
CollectionUtils
.
isEmpty
(
activityWinningRecords
)?
Collections
.
EMPTY_LIST
:
activityWinningRecords
;
}
public
ActivityWinningRecordTotalVo
getActivityWinningRecordTotalVo
()
{
return
activityWinningRecordTotalVo
==
null
?
new
ActivityWinningRecordTotalVo
():
activityWinningRecordTotalVo
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/bo/ActivityWinningRecordTotalVo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
bo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 9:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityWinningRecordTotalVo
{
private
Integer
onLineNum
;
private
Integer
onLineWineNum
;
private
Integer
localeNum
;
private
Integer
localeWineNum
;
public
Integer
getOnLineNum
()
{
return
onLineNum
==
null
?
0
:
onLineNum
;
}
public
Integer
getOnLineWineNum
()
{
return
onLineWineNum
==
null
?
0
:
onLineWineNum
;
}
public
Integer
getLocaleNum
()
{
return
localeNum
==
null
?
0
:
localeNum
;
}
public
Integer
getLocaleWineNum
()
{
return
localeWineNum
==
null
?
0
:
localeWineNum
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/constant/PrizeTypeEnum.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
constant
;
/**
* @author libin
* @version 1.0
* @description 奖品类型
* @data 2019/12/4 18:24
*/
public
enum
PrizeTypeEnum
{
ONLINE
(
1
,
"线上"
),
LOCALE
(
2
,
"现场"
);
private
int
code
;
private
String
desc
;
PrizeTypeEnum
(
int
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
int
getCode
()
{
return
code
;
}
public
void
setCode
(
int
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityAttendanceRecordDTO.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 16:48
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityAttendanceRecordDTO
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Integer
userId
;
private
String
userName
;
private
String
phone
;
private
String
positionName
;
private
Integer
status
;
private
BigDecimal
amount
;
private
Integer
inviteNum
;
private
String
prizes
;
private
Long
attendTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityAttendanceRecordFindDTO.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 15:32
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityAttendanceRecordFindDTO
extends
PageParam
{
private
Integer
activityId
;
private
Long
startTime
;
private
Long
endTime
;
private
String
phone
;
private
Integer
status
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityLuckDrawFindDTO.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 18:56
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityLuckDrawFindDTO
extends
PageParam
{
private
Date
startTime
;
private
Date
endTime
;
private
String
phone
;
private
Integer
activityId
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityWinningRecordDTO.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 19:21
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityWinningRecordDTO
{
private
Integer
userId
;
private
Integer
activityId
;
private
String
activityName
;
private
String
prizeName
;
private
String
iconPath
;
private
Integer
prizeType
;
private
Integer
hasWinning
;
private
String
expiryDateCode
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityWinningRecordFindDTO.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 8:36
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityWinningRecordFindDTO
extends
PageParam
{
private
Integer
activityId
;
private
Date
startTime
;
private
Date
endTime
;
private
String
phone
;
private
Integer
hasWinning
;
private
Integer
prizeType
;
private
Integer
state
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/dto/ActivityWinningRecordPageDTO.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
dto
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 15:08
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityWinningRecordPageDTO
{
private
Integer
userId
;
private
String
userName
;
private
String
phone
;
private
String
positionName
;
private
Integer
prizeType
;
private
String
prizeName
;
private
String
iconPath
;
private
Integer
hasWinning
;
private
String
expiryDateCode
;
private
Date
crtTime
;
private
Date
lotteryTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityAttendanceRecord.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 14:34
*/
@Data
@Table
(
name
=
"activity_attendance_record"
)
public
class
ActivityAttendanceRecord
{
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Long
id
;
@Column
(
name
=
"user_id"
)
private
Integer
userId
;
@Column
(
name
=
"user_name"
)
private
String
userName
;
@Column
(
name
=
"phone"
)
private
String
phone
;
@Column
(
name
=
"activity_id"
)
private
Integer
activityId
;
@Column
(
name
=
"activity_name"
)
private
String
activityName
;
@Column
(
name
=
"position_id"
)
private
Integer
positionId
;
@Column
(
name
=
"position_name"
)
private
String
positionName
;
@ApiModelProperty
(
"线上抽奖次数"
)
@Column
(
name
=
"online_lottery_num"
)
private
Integer
onlineLotteryNum
;
@ApiModelProperty
(
"现场抽奖次数"
)
@Column
(
name
=
"locale_lottery_num"
)
private
Integer
localeLotteryNum
;
@Column
(
name
=
"crt_time"
)
private
Date
crtTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityLuckyDraw.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
entity
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description 报名
* @data 2019/12/3 15:06
*/
@Data
@Table
(
name
=
"activity_lucky_draw"
)
public
class
ActivityLuckyDraw
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Long
id
;
@Column
(
name
=
"user_name"
)
private
String
userName
;
@Column
(
name
=
"phone"
)
private
String
phone
;
private
Integer
activityId
;
@Column
(
name
=
"activity_name"
)
private
String
activityName
;
@Column
(
name
=
"ticket_num"
)
private
Integer
ticketNum
;
@Column
(
name
=
"user_id"
)
private
Integer
userId
;
@Column
(
name
=
"crt_time"
)
private
Date
crtTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityPrize.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
entity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description 奖品、设置
* @data 2019/12/3 15:21
*/
@Data
@Table
(
name
=
"activity_prize"
)
@ApiModel
public
class
ActivityPrize
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Integer
id
;
@ApiModelProperty
(
"编号"
)
@Column
(
name
=
"serial_number"
)
private
Integer
serialNumber
;
@Column
(
name
=
"name"
)
private
String
name
;
@ApiModelProperty
(
"奖品图片地址"
)
@Column
(
name
=
"icon_path"
)
private
String
iconPath
;
@ApiModelProperty
(
"每天最多中奖份数"
)
@Column
(
name
=
"day_max_use"
)
private
Integer
dayMaxUse
;
@Column
(
name
=
"total_stock"
)
private
Integer
totalStock
;
@Column
(
name
=
"probability"
)
private
Double
probability
;
@ApiModelProperty
(
"1:线上 2:现场"
)
@Column
(
name
=
"type"
)
private
Integer
type
;
@Column
(
name
=
"crt_time"
)
private
Date
crtTime
;
@Column
(
name
=
"upd_time"
)
private
Date
updTime
;
@Column
(
name
=
"is_entity"
)
private
Integer
isEntity
;
@Column
(
name
=
"goods_id"
)
private
Integer
goodsId
;
@Column
(
name
=
"is_prize"
)
private
Integer
isPrize
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityWinningRecord.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description 中奖记录
* @data 2019/12/3 16:14
*/
@Data
@Table
(
name
=
"activity_winning_record"
)
public
class
ActivityWinningRecord
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@Id
@GeneratedValue
(
generator
=
"JDBC"
)
private
Long
id
;
@Column
(
name
=
"user_id"
)
private
Integer
userId
;
@Column
(
name
=
"activity_id"
)
private
Integer
activityId
;
@ApiModelProperty
(
"1:线上 2:现场"
)
@Column
(
name
=
"prize_type"
)
private
Integer
prizeType
;
@Column
(
name
=
"prize_name"
)
private
String
prizeName
;
@Column
(
name
=
"icon_path"
)
private
String
iconPath
;
@ApiModelProperty
(
"是否中奖 1:是 0:否"
)
@Column
(
name
=
"has_winning"
)
private
Integer
hasWinning
;
@ApiModelProperty
(
"兑奖码"
)
@Column
(
name
=
"expiry_date_code"
)
private
String
expiryDateCode
;
@Column
(
name
=
"crt_time"
)
private
Date
crtTime
;
@Column
(
name
=
"lottery_time"
)
private
Date
lotteryTime
;
@Column
(
name
=
"goods_id"
)
private
Integer
goodsId
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/util/LotteryUtils.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
util
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 20:01
*/
public
class
LotteryUtils
{
public
static
int
getrandomIndex
(
List
<
ActivityPrize
>
prizes
)
{
int
random
=
-
1
;
try
{
//计算总权重
double
sumWeight
=
0
;
for
(
ActivityPrize
p
:
prizes
)
{
sumWeight
+=
p
.
getProbability
();
}
//产生随机数
double
randomNumber
;
randomNumber
=
Math
.
random
();
//根据随机数在所有奖品分布的区域并确定所抽奖品
double
d1
=
0
;
double
d2
=
0
;
for
(
int
i
=
0
;
i
<
prizes
.
size
();
i
++)
{
d2
+=
Double
.
parseDouble
(
String
.
valueOf
(
prizes
.
get
(
i
).
getProbability
()))
/
sumWeight
;
if
(
i
==
0
)
{
d1
=
0
;
}
else
{
d1
+=
Double
.
parseDouble
(
String
.
valueOf
(
prizes
.
get
(
i
-
1
).
getProbability
()))
/
sumWeight
;
}
if
(
randomNumber
>=
d1
&&
randomNumber
<=
d2
)
{
random
=
i
;
break
;
}
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"生成抽奖随机数出错,出错原因:"
+
e
.
getMessage
());
}
return
random
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/vo/ActivityAttendanceRecordTotalVo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 15:21
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityAttendanceRecordTotalVo
{
private
Integer
attendNum
;
private
Integer
finishNum
;
private
BigDecimal
amount
;
public
Integer
getAttendNum
()
{
return
attendNum
==
null
?
0
:
attendNum
;
}
public
Integer
getFinishNum
()
{
return
finishNum
==
null
?
0
:
finishNum
;
}
public
BigDecimal
getAmount
()
{
return
amount
==
null
?
BigDecimal
.
ZERO
:
amount
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/vo/ActivityAttendanceRecordVo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 15:20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityAttendanceRecordVo
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
String
userName
;
private
String
phone
;
private
String
positionName
;
private
Integer
status
;
private
BigDecimal
amount
;
private
Integer
inviteNum
;
private
String
prizes
;
private
Long
attendTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/vo/ActivityPrizeVo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
vo
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.util.Collections
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 17:27
*/
@Data
@Builder
(
toBuilder
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityPrizeVo
{
private
List
<
ActivityPrize
>
onlinePrize
;
private
List
<
ActivityPrize
>
localePrize
;
public
List
<
ActivityPrize
>
getOnlinePrize
()
{
return
CollectionUtils
.
isEmpty
(
onlinePrize
)?
Collections
.
EMPTY_LIST
:
onlinePrize
;
}
public
List
<
ActivityPrize
>
getLocalePrize
()
{
return
CollectionUtils
.
isEmpty
(
localePrize
)?
Collections
.
EMPTY_LIST
:
localePrize
;
}
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/vo/ActivityWinningRecordVo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 9:47
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
ActivityWinningRecordVo
{
private
String
userName
;
private
String
positionName
;
@ApiModelProperty
(
"1:线上 2:现场"
)
private
Integer
prizeType
;
private
String
prizeName
;
private
String
iconPath
;
@ApiModelProperty
(
"是否中奖 1:是 0:否"
)
private
Integer
hasWinning
;
@ApiModelProperty
(
"兑奖码"
)
private
String
expiryDateCode
;
private
Date
lotteryTime
;
}
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/vo/LotteryVo.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
vo
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 19:49
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public
class
LotteryVo
{
private
String
prizeName
;
private
String
expiryDateCode
;
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityAttendanceRecordBiz.java
0 → 100644
View file @
286e2694
This diff is collapsed.
Click to expand it.
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityLuckyDrawBiz.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.common.util.excel.ExcelUtils
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.activity.entity.ActivityLuckyDraw
;
import
com.xxfc.platform.activity.mapper.ActivityLuckyDrawMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.servlet.ServletOutputStream
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.List
;
/**
* 活动抽奖报名表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-03 16:46:02
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Service
public
class
ActivityLuckyDrawBiz
extends
BaseBiz
<
ActivityLuckyDrawMapper
,
ActivityLuckyDraw
>
{
/**
* 报名
*
* @param activityLuckyDraw
*/
public
void
signUp
(
ActivityLuckyDraw
activityLuckyDraw
)
{
activityLuckyDraw
.
setCrtTime
(
new
Date
());
mapper
.
insertSelective
(
activityLuckyDraw
);
}
/**
* 分页查询报名列表
*
* @param activityLuckDrawFindDTO
* @return
*/
public
PageDataVO
<
ActivityLuckyDraw
>
listLuckDrawWithPage
(
ActivityLuckDrawFindDTO
activityLuckDrawFindDTO
)
{
PageDataVO
<
ActivityLuckyDraw
>
dataVO
=
PageDataVO
.
pageInfo
(
activityLuckDrawFindDTO
.
getPage
(),
activityLuckDrawFindDTO
.
getLimit
(),
()
->
mapper
.
listLuckDrawWithPage
(
activityLuckDrawFindDTO
));
List
<
ActivityLuckyDraw
>
data
=
dataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
data
))
{
PageDataVO
<
ActivityLuckyDraw
>
activityLuckyDrawPageDataVO
=
new
PageDataVO
<>();
activityLuckyDrawPageDataVO
.
setPageNum
(
activityLuckDrawFindDTO
.
getPage
());
activityLuckyDrawPageDataVO
.
setPageSize
(
activityLuckDrawFindDTO
.
getLimit
());
return
activityLuckyDrawPageDataVO
;
}
return
dataVO
;
}
public
void
exportActivityLuckDrawData
(
ActivityLuckDrawFindDTO
activityLuckDrawFindDTO
,
ServletOutputStream
outputStream
)
throws
IOException
{
List
<
ActivityLuckyDraw
>
activityLuckyDraws
=
listActivityLuckDraw
(
activityLuckDrawFindDTO
);
ExcelUtils
excelUtils
=
new
ExcelUtils
(
"报名列表"
);
XSSFWorkbook
hssfWorkbook
=
excelUtils
.
getHssfWorkbook
();
XSSFSheet
sheet
=
excelUtils
.
getSheet
();
Row
headerRow
=
sheet
.
createRow
(
0
);
CellStyle
headerCellStyle
=
excelUtils
.
createHeaderCellStyle
();
String
[]
headers
=
{
"姓名"
,
"电话"
,
"人数"
,
"报名时间"
};
excelUtils
.
createHeader
(
headerRow
,
0
,
headers
,
headerCellStyle
);
CellStyle
generalCellStyle
=
excelUtils
.
createGeneralCellStyle
();
List
<
String
[]>
activityLuckDrawDataList
=
getActivityLuckDrawDataList
(
activityLuckyDraws
);
excelUtils
.
createCellData
(
sheet
,
1
,
generalCellStyle
,
activityLuckDrawDataList
);
hssfWorkbook
.
write
(
outputStream
);
hssfWorkbook
.
close
();
}
private
List
<
String
[]>
getActivityLuckDrawDataList
(
List
<
ActivityLuckyDraw
>
activityLuckyDraws
){
List
<
String
[]>
activityLuckDrawDataList
=
new
ArrayList
<>(
activityLuckyDraws
.
size
());
for
(
ActivityLuckyDraw
activityLuckyDraw
:
activityLuckyDraws
)
{
String
[]
activityLuckDrawData
=
getActivityLuckDrawData
(
activityLuckyDraw
);
activityLuckDrawDataList
.
add
(
activityLuckDrawData
);
}
return
activityLuckDrawDataList
;
}
private
String
[]
getActivityLuckDrawData
(
ActivityLuckyDraw
activityLuckyDraw
){
Date
crtTime
=
activityLuckyDraw
.
getCrtTime
();
String
timeStr
=
DateUtil
.
format
(
crtTime
,
"yyyy-MM-dd HH:mm:ss"
);
return
new
String
[]{
activityLuckyDraw
.
getUserName
(),
activityLuckyDraw
.
getPhone
(),
activityLuckyDraw
.
getTicketNum
()+
""
,
timeStr
};
}
public
List
<
ActivityLuckyDraw
>
listActivityLuckDraw
(
ActivityLuckDrawFindDTO
activityLuckDrawFindDTO
){
List
<
ActivityLuckyDraw
>
activityLuckyDraws
=
mapper
.
listLuckDrawWithPage
(
activityLuckDrawFindDTO
);
if
(
CollectionUtils
.
isEmpty
(
activityLuckyDraws
)){
return
Collections
.
EMPTY_LIST
;
}
return
activityLuckyDraws
;
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityPrizeBiz.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.xxfc.platform.activity.constant.PrizeTypeEnum
;
import
com.xxfc.platform.activity.entity.ActivityWinningRecord
;
import
com.xxfc.platform.activity.util.LotteryUtils
;
import
com.xxfc.platform.activity.vo.ActivityPrizeVo
;
import
com.xxfc.platform.activity.vo.LotteryVo
;
import
lombok.RequiredArgsConstructor
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
com.xxfc.platform.activity.mapper.ActivityPrizeMapper
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
org.springframework.transaction.annotation.Transactional
;
import
tk.mybatis.mapper.entity.Example
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* 奖品设置
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-03 16:46:02
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Service
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityPrizeBiz
extends
BaseBiz
<
ActivityPrizeMapper
,
ActivityPrize
>
{
private
final
ActivityWinningRecordBiz
activityWinningRecordBiz
;
private
final
UserCouponBiz
userCouponBiz
;
/**
* 查询奖品
*
* @return
*/
public
ActivityPrizeVo
selectActivitys
()
{
ActivityPrizeVo
activityPrizeVo
=
new
ActivityPrizeVo
();
List
<
ActivityPrize
>
activityPrizes
=
mapper
.
selectAll
();
if
(
CollectionUtils
.
isEmpty
(
activityPrizes
))
{
return
activityPrizeVo
;
}
Map
<
Integer
,
List
<
ActivityPrize
>>
activityPrizeMap
=
activityPrizes
.
stream
().
collect
(
Collectors
.
groupingBy
(
ActivityPrize:
:
getType
,
Collectors
.
toList
()));
activityPrizeVo
.
setOnlinePrize
(
activityPrizeMap
.
get
(
PrizeTypeEnum
.
ONLINE
.
getCode
()));
activityPrizeVo
.
setLocalePrize
(
activityPrizeMap
.
get
(
PrizeTypeEnum
.
LOCALE
.
getCode
()));
return
activityPrizeVo
;
}
/**
* 保存奖品设置
*
* @param activityPrizes
*/
public
void
saveActivityPrizes
(
List
<
ActivityPrize
>
activityPrizes
)
{
if
(
CollectionUtils
.
isEmpty
(
activityPrizes
))
{
throw
new
BaseException
(
"奖品不能为空"
);
}
Map
<
Boolean
,
List
<
ActivityPrize
>>
activityPrizeMap
=
activityPrizes
.
stream
().
collect
(
Collectors
.
partitioningBy
(
x
->
Objects
.
nonNull
(
x
.
getId
()),
Collectors
.
toList
()));
//保存
List
<
ActivityPrize
>
activityPrizesOfSave
=
activityPrizeMap
.
get
(
Boolean
.
FALSE
);
if
(
CollectionUtils
.
isNotEmpty
(
activityPrizesOfSave
))
{
activityPrizesOfSave
.
stream
().
peek
(
x
->
x
.
setCrtTime
(
new
Date
())).
count
();
mapper
.
insertList
(
activityPrizesOfSave
);
}
//更新
List
<
ActivityPrize
>
activityPrizesOfUpdate
=
activityPrizeMap
.
get
(
Boolean
.
TRUE
);
if
(
CollectionUtils
.
isNotEmpty
(
activityPrizesOfUpdate
))
{
for
(
ActivityPrize
activityPrize
:
activityPrizesOfUpdate
)
{
activityPrize
.
setUpdTime
(
new
Date
());
mapper
.
updateByPrimaryKeySelective
(
activityPrize
);
}
}
}
/**
* 根据奖品类型查询
*
* @param prizeType
* @return
*/
public
List
<
ActivityPrize
>
findActivityPrizeByType
(
Integer
prizeType
)
{
Example
example
=
new
Example
(
ActivityPrize
.
class
);
example
.
orderBy
(
"serialNumber"
).
asc
();
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"type"
,
prizeType
);
List
<
ActivityPrize
>
activityPrizes
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
activityPrizes
))
{
return
Collections
.
EMPTY_LIST
;
}
return
activityPrizes
;
}
/**
* 抽奖
* //todo
* @param activityId
* @param prizeType
* @param appUserDTO
* @return
*/
public
LotteryVo
activityLottery
(
Integer
activityId
,
Integer
prizeType
,
AppUserDTO
appUserDTO
)
{
LotteryVo
lotteryVo
=
new
LotteryVo
();
List
<
ActivityPrize
>
activityPrizes
=
findActivityPrizeByType
(
prizeType
);
int
index
=
LotteryUtils
.
getrandomIndex
(
activityPrizes
);
ActivityPrize
activityPrize
=
activityPrizes
.
get
(
index
);
if
(
activityPrize
.
getTotalStock
()
==
0
){
lotteryVo
.
setPrizeName
(
"谢谢参与"
);
return
lotteryVo
;
}
if
(
PrizeTypeEnum
.
LOCALE
.
getCode
()==
prizeType
){
//兑奖码生成
}
ActivityWinningRecord
activityWinningRecord
=
new
ActivityWinningRecord
();
activityWinningRecord
.
setActivityId
(
activityId
);
activityWinningRecord
.
setPrizeType
(
prizeType
);
activityWinningRecord
.
setUserId
(
appUserDTO
.
getUserid
());
activityWinningRecord
.
setIconPath
(
activityPrize
.
getIconPath
());
activityWinningRecordBiz
.
saveRecord
(
activityWinningRecord
);
return
lotteryVo
;
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityWinningRecordBiz.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.util.excel.ExcelUtils
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.google.common.collect.Lists
;
import
com.xxfc.platform.activity.bo.ActivityWinningRecordBo
;
import
com.xxfc.platform.activity.bo.ActivityWinningRecordTotalVo
;
import
com.xxfc.platform.activity.constant.PrizeTypeEnum
;
import
com.xxfc.platform.activity.dto.ActivityWinningRecordDTO
;
import
com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO
;
import
com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO
;
import
com.xxfc.platform.activity.entity.ActivityWinningRecord
;
import
com.xxfc.platform.activity.mapper.ActivityWinningRecordMapper
;
import
com.xxfc.platform.activity.vo.ActivityWinningRecordVo
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.util.CellRangeAddress
;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.StringUtils
;
import
javax.servlet.ServletOutputStream
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.concurrent.atomic.AtomicInteger
;
/**
* 中奖记录
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-03 16:46:02
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Service
public
class
ActivityWinningRecordBiz
extends
BaseBiz
<
ActivityWinningRecordMapper
,
ActivityWinningRecord
>
{
/**
* 保存
*
* @param activityWinningRecord
*/
public
void
saveRecord
(
ActivityWinningRecord
activityWinningRecord
)
{
activityWinningRecord
.
setCrtTime
(
new
Date
());
mapper
.
insertSelective
(
activityWinningRecord
);
}
public
ActivityWinningRecordBo
listActivityWinningRecordWithPage
(
ActivityWinningRecordFindDTO
activityWinningRecordFindDTO
)
{
ActivityWinningRecordBo
activityWinningRecordBo
=
new
ActivityWinningRecordBo
();
PageDataVO
<
ActivityWinningRecordPageDTO
>
dataVO
=
PageDataVO
.
pageInfo
(
activityWinningRecordFindDTO
.
getPage
(),
activityWinningRecordFindDTO
.
getLimit
(),
()
->
mapper
.
selectActivityWinningRecord
(
activityWinningRecordFindDTO
));
ActivityWinningRecordTotalVo
activityWinningRecordTotalVo
=
getActivityWinningRecordTotal
(
activityWinningRecordFindDTO
);
List
<
ActivityWinningRecordPageDTO
>
data
=
dataVO
.
getData
();
if
(
CollectionUtils
.
isEmpty
(
data
)){
activityWinningRecordBo
.
setActivityWinningRecordTotalVo
(
activityWinningRecordTotalVo
);
return
activityWinningRecordBo
;
}
List
<
ActivityWinningRecordVo
>
activityWinningRecordVos
=
new
ArrayList
<>();
ActivityWinningRecordVo
activityWinningRecordVo
=
null
;
for
(
ActivityWinningRecordPageDTO
activityWinningRecord
:
data
)
{
activityWinningRecordVo
=
new
ActivityWinningRecordVo
();
BeanUtils
.
copyProperties
(
activityWinningRecord
,
activityWinningRecordVo
);
activityWinningRecordVos
.
add
(
activityWinningRecordVo
);
}
activityWinningRecordBo
.
setPageNum
(
dataVO
.
getPageNum
());
activityWinningRecordBo
.
setPageSize
(
dataVO
.
getPageSize
());
activityWinningRecordBo
.
setTotalPage
(
dataVO
.
getTotalPage
());
activityWinningRecordBo
.
setTotalCount
(
dataVO
.
getTotalCount
());
activityWinningRecordBo
.
setActivityWinningRecordTotalVo
(
activityWinningRecordTotalVo
);
activityWinningRecordBo
.
setActivityWinningRecords
(
activityWinningRecordVos
);
return
activityWinningRecordBo
;
}
private
ActivityWinningRecordTotalVo
getActivityWinningRecordTotal
(
ActivityWinningRecordFindDTO
activityWinningRecordFindDTO
){
activityWinningRecordFindDTO
.
setHasWinning
(
null
);
ActivityWinningRecordTotalVo
activityWinningRecordTotalVo
=
new
ActivityWinningRecordTotalVo
();
List
<
ActivityWinningRecordPageDTO
>
activityWinningRecords
=
mapper
.
selectActivityWinningRecord
(
activityWinningRecordFindDTO
);
if
(
CollectionUtils
.
isEmpty
(
activityWinningRecords
)){
return
activityWinningRecordTotalVo
;
}
AtomicInteger
onlineCounter
=
new
AtomicInteger
(
0
);
AtomicInteger
onlineWinCounter
=
new
AtomicInteger
(
0
);
AtomicInteger
localeCounter
=
new
AtomicInteger
(
0
);
AtomicInteger
localeWineCounter
=
new
AtomicInteger
(
0
);
for
(
ActivityWinningRecordPageDTO
activityWinningRecord
:
activityWinningRecords
)
{
if
(
activityWinningRecord
.
getPrizeType
()==
1
){
onlineCounter
.
incrementAndGet
();
if
(
activityWinningRecord
.
getHasWinning
()==
1
){
onlineWinCounter
.
incrementAndGet
();
}
}
if
(
activityWinningRecord
.
getPrizeType
()==
2
){
localeCounter
.
incrementAndGet
();
if
(
activityWinningRecord
.
getHasWinning
()==
1
){
localeWineCounter
.
incrementAndGet
();
}
}
}
activityWinningRecordTotalVo
.
setOnLineNum
(
onlineCounter
.
get
());
activityWinningRecordTotalVo
.
setOnLineWineNum
(
onlineWinCounter
.
get
());
activityWinningRecordTotalVo
.
setLocaleNum
(
localeCounter
.
get
());
activityWinningRecordTotalVo
.
setLocaleWineNum
(
localeWineCounter
.
get
());
return
activityWinningRecordTotalVo
;
}
public
void
exportActivityWinngingData
(
ActivityWinningRecordFindDTO
activityWinningRecordFindDTO
,
ServletOutputStream
outputStream
)
throws
IOException
{
ExcelUtils
excelUtils
=
new
ExcelUtils
(
"中奖列表"
);
XSSFWorkbook
hssfWorkbook
=
excelUtils
.
getHssfWorkbook
();
XSSFSheet
sheet
=
excelUtils
.
getSheet
();
List
<
ActivityWinningRecordPageDTO
>
activityWinningRecordPageDTOS
=
mapper
.
selectActivityWinningRecord
(
activityWinningRecordFindDTO
);
ActivityWinningRecordTotalVo
activityWinningRecordTotal
=
getActivityWinningRecordTotal
(
activityWinningRecordFindDTO
);
String
[]
header1
=
{
"线上抽奖触发数"
,
"线上中奖个数"
,
"现场上抽奖触发数"
,
"现场中奖个数"
};
Row
headerRow1
=
sheet
.
createRow
(
0
);
CellStyle
headerCellStyle
=
excelUtils
.
createHeaderCellStyle
();
excelUtils
.
createHeader
(
headerRow1
,
0
,
header1
,
headerCellStyle
);
String
[]
headerValue
=
{
activityWinningRecordTotal
.
getOnLineNum
()+
""
,
activityWinningRecordTotal
.
getOnLineWineNum
()+
""
,
activityWinningRecordTotal
.
getLocaleNum
()+
""
,
activityWinningRecordTotal
.
getLocaleWineNum
()+
""
};
CellStyle
generalCellStyle
=
excelUtils
.
createGeneralCellStyle
();
ArrayList
<
String
[]>
headerData
=
Lists
.
newArrayList
();
headerData
.
add
(
headerValue
);
excelUtils
.
createCellData
(
sheet
,
1
,
generalCellStyle
,
headerData
);
CellRangeAddress
cellRangeAddress
=
new
CellRangeAddress
(
2
,
2
,
0
,
6
);
sheet
.
addMergedRegion
(
cellRangeAddress
);
String
[]
header2
=
{
"用户名"
,
"电话"
,
"身份"
,
"发放类型"
,
"抽奖礼品"
,
"兑奖码"
,
"中奖时间"
};
Row
header2Row
=
sheet
.
createRow
(
3
);
excelUtils
.
createHeader
(
header2Row
,
0
,
header2
,
headerCellStyle
);
List
<
String
[]>
activityWinngingDataList
=
getActivityWinngingDataList
(
activityWinningRecordPageDTOS
);
excelUtils
.
createCellData
(
sheet
,
4
,
generalCellStyle
,
activityWinngingDataList
);
hssfWorkbook
.
write
(
outputStream
);
hssfWorkbook
.
close
();
}
private
List
<
String
[]>
getActivityWinngingDataList
(
List
<
ActivityWinningRecordPageDTO
>
activityWinningRecordDTOS
){
List
<
String
[]>
activityWinngingDataList
=
new
ArrayList
<>();
for
(
ActivityWinningRecordPageDTO
activityWinningRecordDTO
:
activityWinningRecordDTOS
)
{
String
[]
activityWinngingData
=
getActivityWinngingData
(
activityWinningRecordDTO
);
activityWinngingDataList
.
add
(
activityWinngingData
);
}
return
activityWinngingDataList
;
}
private
String
[]
getActivityWinngingData
(
ActivityWinningRecordPageDTO
activityWinningRecordPageDTO
){
String
prizeType
=
activityWinningRecordPageDTO
.
getPrizeType
()==
PrizeTypeEnum
.
ONLINE
.
getCode
()?
"线上"
:
"现场"
;
String
expiryDateCode
=
StringUtils
.
hasText
(
activityWinningRecordPageDTO
.
getExpiryDateCode
())?
activityWinningRecordPageDTO
.
getExpiryDateCode
():
"无"
;
String
timeStr
=
DateUtil
.
format
(
activityWinningRecordPageDTO
.
getLotteryTime
(),
"yyyy-MM-dd HH:mm:ss"
);
return
new
String
[]{
activityWinningRecordPageDTO
.
getUserName
(),
activityWinningRecordPageDTO
.
getPhone
(),
activityWinningRecordPageDTO
.
getPositionName
(),
prizeType
,
activityWinningRecordPageDTO
.
getPrizeName
(),
expiryDateCode
,
timeStr
};
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityAttendanceRecordMapper.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordDTO
;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordFindDTO
;
import
com.xxfc.platform.activity.entity.ActivityAttendanceRecord
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 参与活动数据
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-04 14:54:06
*/
public
interface
ActivityAttendanceRecordMapper
extends
Mapper
<
ActivityAttendanceRecord
>
{
List
<
ActivityAttendanceRecordDTO
>
selectActivityAttendanceRecord
(
ActivityAttendanceRecordFindDTO
activityAttendanceRecordFindDTO
);
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityLuckyDrawMapper.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO
;
import
com.xxfc.platform.activity.entity.ActivityLuckyDraw
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 活动抽奖报名表
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-03 16:46:02
*/
public
interface
ActivityLuckyDrawMapper
extends
Mapper
<
ActivityLuckyDraw
>
{
List
<
ActivityLuckyDraw
>
listLuckDrawWithPage
(
ActivityLuckDrawFindDTO
activityLuckDrawFindDTO
);
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityPrizeMapper.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
tk.mybatis.mapper.additional.insert.InsertListMapper
;
import
tk.mybatis.mapper.common.Mapper
;
/**
* 奖品设置
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-03 16:46:02
*/
public
interface
ActivityPrizeMapper
extends
Mapper
<
ActivityPrize
>,
InsertListMapper
<
ActivityPrize
>
{
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityWinningRecordMapper.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO
;
import
com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO
;
import
com.xxfc.platform.activity.entity.ActivityWinningRecord
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
/**
* 中奖记录
*
* @author libin
* @email 18178966185@163.com
* @date 2019-12-03 16:46:02
*/
public
interface
ActivityWinningRecordMapper
extends
Mapper
<
ActivityWinningRecord
>
{
List
<
ActivityWinningRecordPageDTO
>
selectActivityWinningRecord
(
ActivityWinningRecordFindDTO
activityWinningRecordFindDTO
);
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityAttendanceRecordController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityAttendanceRecordBiz
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 14:56
*/
@RestController
@RequestMapping
(
"activityAttendanceRecord"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityAttendanceRecordController
{
private
final
ActivityAttendanceRecordBiz
activityAttendanceRecordBiz
;
/**
* 判断是否还有抽奖机会
*
* @param activityId
* @param prizeType
* @param appUserDTO
* @return
*/
@GetMapping
(
"/number_of_luckydraw/{activityId}/{prizeType}"
)
public
ObjectRestResponse
<
Boolean
>
hasNumberOfLuckyDrawByType
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
,
@PathVariable
(
value
=
"prizeType"
)
Integer
prizeType
,
AppUserDTO
appUserDTO
)
{
Boolean
state
=
activityAttendanceRecordBiz
.
hasNumberOfLuckyDrawByType
(
activityId
,
prizeType
,
appUserDTO
.
getUserid
());
return
ObjectRestResponse
.
succ
(
state
);
}
@PostMapping
(
"/attend/{activityId}"
)
public
ObjectRestResponse
<
Void
>
attendActivity
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
,
@RequestParam
(
value
=
"activityName"
,
required
=
false
)
String
activityName
,
AppUserDTO
appUserDTO
){
activityAttendanceRecordBiz
.
attendActivity
(
activityId
,
activityName
,
appUserDTO
);
return
ObjectRestResponse
.
succ
();
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityLuckyDrawController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityLuckyDrawBiz
;
import
com.xxfc.platform.activity.entity.ActivityLuckyDraw
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.RestController
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 16:51
*/
@RestController
@RequestMapping
(
"activityLuckyDraw"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityLuckyDrawController
{
private
final
ActivityLuckyDrawBiz
activityLuckyDrawBiz
;
/**
* 报名
* @param activityLuckyDraw
* @param appUserDTO
* @return
*/
@PostMapping
(
"/sign_up"
)
public
ObjectRestResponse
<
Void
>
signUP
(
@RequestBody
ActivityLuckyDraw
activityLuckyDraw
,
AppUserDTO
appUserDTO
){
activityLuckyDraw
.
setUserId
(
appUserDTO
.
getUserid
());
activityLuckyDraw
.
setPhone
(
appUserDTO
.
getUsername
());
activityLuckyDrawBiz
.
signUp
(
activityLuckyDraw
);
return
ObjectRestResponse
.
succ
();
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityPrizeController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityPrizeBiz
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
com.xxfc.platform.activity.vo.ActivityPrizeVo
;
import
com.xxfc.platform.activity.vo.LotteryVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 19:44
*/
@RestController
@RequestMapping
(
"activityPrize"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityPrizeController
{
private
final
ActivityPrizeBiz
activityPrizeBiz
;
/**
* 奖品类型获取
*
* @param prizeType
* @return
*/
@GetMapping
(
"/find_prize"
)
public
ObjectRestResponse
<
List
<
ActivityPrize
>>
findActivityPrizeByType
(
@RequestParam
(
value
=
"prizeType"
)
Integer
prizeType
)
{
List
<
ActivityPrize
>
activityPrizes
=
activityPrizeBiz
.
findActivityPrizeByType
(
prizeType
);
return
ObjectRestResponse
.
succ
(
activityPrizes
);
}
/**
* 抽奖
*
* @param activityId
* @param appUserDTO
* @return
*/
@PostMapping
(
"/lottery/{activityId}/{prizeType}"
)
public
ObjectRestResponse
<
LotteryVo
>
activityLottery
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
,
@PathVariable
(
value
=
"prizeType"
)
Integer
prizeType
,
AppUserDTO
appUserDTO
)
{
LotteryVo
lotteryVo
=
activityPrizeBiz
.
activityLottery
(
activityId
,
prizeType
,
appUserDTO
);
return
ObjectRestResponse
.
succ
(
lotteryVo
);
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityWinningRecordController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
;
import
com.xxfc.platform.activity.biz.ActivityAttendanceRecordBiz
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 19:44
*/
@RestController
@RequestMapping
(
"activityWinningRecord"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityWinningRecordController
{
private
final
ActivityAttendanceRecordBiz
activityAttendanceRecordBiz
;
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/admin/ActivityAttendanceRecordAdminController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
.
admin
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityAttendanceRecordBiz
;
import
com.xxfc.platform.activity.bo.ActivityAttendanceRecordBo
;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordFindDTO
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.RestController
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/4 14:56
*/
@RestController
@RequestMapping
(
"admin/activityAttendanceRecord"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityAttendanceRecordAdminController
{
private
final
ActivityAttendanceRecordBiz
activityAttendanceRecordBiz
;
@PostMapping
(
"/page"
)
public
ObjectRestResponse
<
ActivityAttendanceRecordBo
>
listActivityAttendanceRecordWithPage
(
@RequestBody
ActivityAttendanceRecordFindDTO
activityAttendanceRecordFindDTO
){
ActivityAttendanceRecordBo
activityAttendanceRecordBo
=
activityAttendanceRecordBiz
.
listActivityAttendanceRecord
(
activityAttendanceRecordFindDTO
);
return
ObjectRestResponse
.
succ
(
activityAttendanceRecordBo
);
}
@PostMapping
(
"/export"
)
public
void
exportActivityAttendanceRecordData
(
@RequestBody
ActivityAttendanceRecordFindDTO
activityAttendanceRecordFindDTO
,
HttpServletResponse
response
){
try
{
String
name
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
).
format
(
LocalDateTime
.
now
());
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
String
filename
=
String
.
format
(
"%s-activity-attendance-record.xlsx"
,
name
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
filename
.
getBytes
(),
"iso8859-1"
));
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
activityAttendanceRecordBiz
.
exportActivityAttendanceRecordData
(
activityAttendanceRecordFindDTO
,
outputStream
);
response
.
setCharacterEncoding
(
"UTF-8"
);
}
catch
(
Exception
ex
){
throw
new
BaseException
(
"导出数据失败"
);
}
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/admin/ActivityLuckyDrawAdminController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
.
admin
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.xxfc.platform.activity.biz.ActivityLuckyDrawBiz
;
import
com.xxfc.platform.activity.dto.ActivityLuckDrawFindDTO
;
import
com.xxfc.platform.activity.entity.ActivityLuckyDraw
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.RestController
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 16:51
*/
@RestController
@RequestMapping
(
"admin/activityLuckyDraw"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityLuckyDrawAdminController
{
private
final
ActivityLuckyDrawBiz
activityLuckyDrawBiz
;
/**
* 分页查询报名列表
*
* @param activityLuckDrawFindDTO
* @return
*/
@PostMapping
(
"/page"
)
public
ObjectRestResponse
<
PageDataVO
<
ActivityLuckyDraw
>>
listActivtyLuckyDrawWithPage
(
@RequestBody
ActivityLuckDrawFindDTO
activityLuckDrawFindDTO
)
{
PageDataVO
<
ActivityLuckyDraw
>
activityLuckyDrawPageDataVO
=
activityLuckyDrawBiz
.
listLuckDrawWithPage
(
activityLuckDrawFindDTO
);
return
ObjectRestResponse
.
succ
(
activityLuckyDrawPageDataVO
);
}
@PostMapping
(
"/export"
)
public
void
exportActivityLuckyDrawData
(
@RequestBody
ActivityLuckDrawFindDTO
activityLuckDrawFindDTO
,
HttpServletResponse
response
){
try
{
String
name
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
).
format
(
LocalDateTime
.
now
());
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
String
filename
=
String
.
format
(
"%s-activity-luckdraw.xlsx"
,
name
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
filename
.
getBytes
(),
"iso8859-1"
));
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
activityLuckyDrawBiz
.
exportActivityLuckDrawData
(
activityLuckDrawFindDTO
,
outputStream
);
response
.
setCharacterEncoding
(
"UTF-8"
);
}
catch
(
Exception
ex
){
throw
new
BaseException
(
"导出数据失败"
);
}
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/admin/ActivityPrizeAdminController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
.
admin
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityPrizeBiz
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
com.xxfc.platform.activity.vo.ActivityPrizeVo
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 19:44
*/
@RestController
@RequestMapping
(
"/admin/activityPrize"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityPrizeAdminController
{
private
final
ActivityPrizeBiz
activityPrizeBiz
;
@PostMapping
(
"/save"
)
public
ObjectRestResponse
<
Void
>
savePrize
(
@RequestBody
List
<
ActivityPrize
>
activityPrizes
)
{
activityPrizeBiz
.
saveActivityPrizes
(
activityPrizes
);
return
ObjectRestResponse
.
succ
();
}
@GetMapping
(
"/list"
)
public
ObjectRestResponse
<
ActivityPrizeVo
>
listActivityPrize
(){
ActivityPrizeVo
activityPrizeVo
=
activityPrizeBiz
.
selectActivitys
();
return
ObjectRestResponse
.
succ
(
activityPrizeVo
);
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/admin/ActivityWinningRecordAdminController.java
0 → 100644
View file @
286e2694
package
com
.
xxfc
.
platform
.
activity
.
rest
.
admin
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.xxfc.platform.activity.biz.ActivityWinningRecordBiz
;
import
com.xxfc.platform.activity.bo.ActivityWinningRecordBo
;
import
com.xxfc.platform.activity.dto.ActivityWinningRecordFindDTO
;
import
com.github.wxiaoqi.security.common.exception.BaseException
;
import
lombok.RequiredArgsConstructor
;
import
org.springframework.beans.factory.annotation.Autowired
;
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.RestController
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
/**
* @author libin
* @version 1.0
* @description
* @data 2019/12/3 16:51
*/
@RestController
@RequestMapping
(
"admin/activityWinningRecord"
)
@RequiredArgsConstructor
(
onConstructor
=
@__
(
@Autowired
))
public
class
ActivityWinningRecordAdminController
{
private
final
ActivityWinningRecordBiz
activityWinningRecordBiz
;
@PostMapping
(
"/page"
)
public
ObjectRestResponse
<
ActivityWinningRecordBo
>
listActivityWinningRecordWithPage
(
@RequestBody
ActivityWinningRecordFindDTO
activityLuckDrawFindDTO
){
ActivityWinningRecordBo
activityWinningRecordBo
=
activityWinningRecordBiz
.
listActivityWinningRecordWithPage
(
activityLuckDrawFindDTO
);
return
ObjectRestResponse
.
succ
(
activityWinningRecordBo
);
}
@PostMapping
(
"/export"
)
public
void
exportActivityWinningRecordData
(
@RequestBody
ActivityWinningRecordFindDTO
activityWinningRecordFindDTO
,
HttpServletResponse
response
){
try
{
String
name
=
DateTimeFormatter
.
ofPattern
(
"YYYYMMddHHmmss"
).
format
(
LocalDateTime
.
now
());
response
.
setContentType
(
"application/vnd.ms-excel;charset=utf-8"
);
String
filename
=
String
.
format
(
"%s-activity-winnging-record.xlsx"
,
name
);
response
.
setHeader
(
"Content-Disposition"
,
"attachment;filename="
+
new
String
(
filename
.
getBytes
(),
"iso8859-1"
));
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
activityWinningRecordBiz
.
exportActivityWinngingData
(
activityWinningRecordFindDTO
,
outputStream
);
response
.
setCharacterEncoding
(
"UTF-8"
);
}
catch
(
Exception
ex
){
throw
new
BaseException
(
"导出数据失败"
);
}
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityAttendanceRecordMapper.xml
0 → 100644
View file @
286e2694
<?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.xxfc.platform.activity.mapper.ActivityAttendanceRecordMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.activity.entity.ActivityAttendanceRecord"
id=
"activityAttendanceRecordMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"userId"
column=
"user_id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"phone"
column=
"phone"
/>
<result
property=
"activityId"
column=
"activity_id"
/>
<result
property=
"activityName"
column=
"activity_name"
/>
<result
property=
"positionId"
column=
"position_id"
/>
<result
property=
"positionName"
column=
"position_name"
/>
<result
property=
"onlineLotteryNum"
column=
"online_lottery_num"
/>
<result
property=
"localeLotteryNum"
column=
"locale_lottery_num"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
</resultMap>
<select
id=
"selectActivityAttendanceRecord"
resultType=
"com.xxfc.platform.activity.dto.ActivityAttendanceRecordDTO"
>
select apu.user_id as `userId`,
apu.`current_progress` as `amount`,
apu.`status`,
apu.crt_time as `attendTime`,
aar.user_name as `userName`,
aar.phone,
aar.position_name as `positionName`,
apr.inviteNum,
awr.prizes
from (select `user_id`,`popularize_id`,`current_progress`,`status`,`crt_time` from activity_popularize_user where
`popularize_id`=#{activityId}
<if
test=
"status!=null"
>
and `status`=#{status}
</if>
<if
test=
"startTime!=null and endTime!=null"
>
and `crt_time` between #{startTime} and #{endTime}
</if>
<if
test=
"startTime!=null and endTime==null"
>
and
<![CDATA[
`crt_time`>
=#{startTime}
]]>
</if>
<if
test=
"startTime==null and endTime!=null"
>
and
<![CDATA[
`crt_time`<=#{endTime}
]]>
</if>
) as `apu`
inner join (select * from `activity_attendance_record` where `activity_id`=#{activityId}
<if
test=
"phone!=null and phone!=''"
>
and `phone`=#{phone}
</if>
) as `aar`
on aar.user_id = apu.user_id and apu.popularize_id = aar.activity_id
left join (select `major_user_id`, count(minor_user_id) as `inviteNum`
from activity_popularize_relation where `popularize_id`=#{activityId}
group by major_user_id) as `apr` on apr.major_user_id = apu.user_id
left join (select `user_id`, `activity_id`, group_concat(`prize_name`) as `prizes`
from `activity_winning_record` where `activity_id`=#{activityId}
group by user_id, `activity_id`) as `awr`
on awr.user_id = apu.user_id and awr.activity_id = apu.popularize_id
order by apu.current_progress desc
</select>
</mapper>
\ No newline at end of file
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityLuckyDrawMapper.xml
0 → 100644
View file @
286e2694
<?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.xxfc.platform.activity.mapper.ActivityLuckyDrawMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.activity.entity.ActivityLuckyDraw"
id=
"activityLuckyDrawMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"userName"
column=
"user_name"
/>
<result
property=
"phone"
column=
"phone"
/>
<result
property=
"activityId"
column=
"activity_id"
/>
<result
property=
"activityName"
column=
"activity_name"
/>
<result
property=
"ticketNum"
column=
"ticket_num"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"userId"
column=
"user_id"
/>
</resultMap>
<select
id=
"listLuckDrawWithPage"
resultMap=
"activityLuckyDrawMap"
>
select * from `activity_lucky_draw` where 1=1
<if
test=
"activityId!=null"
>
and `activity_id`=#{activityId}
</if>
<if
test=
"phone!=null and phone!=''"
>
and `phone`=#{phone}
</if>
<if
test=
"startTime!=null and endTime!=null"
>
and `crt_time` between #{startTime} and #{endTime}
</if>
<if
test=
"startTime!=null and endTime==null"
>
and
<![CDATA[
`crt_time`>
=#{startTime}
]]>
</if>
<if
test=
"startTime==null and endTime!=null"
>
and
<![CDATA[
`crt_time`<=#{endTime}
]]>
</if>
order by `crt_time` desc
</select>
</mapper>
\ No newline at end of file
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityPrizeMapper.xml
0 → 100644
View file @
286e2694
<?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.xxfc.platform.activity.mapper.ActivityPrizeMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.activity.entity.ActivityPrize"
id=
"activityPrizeMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"serialNumber"
column=
"serial_number"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"iconPath"
column=
"icon_path"
/>
<result
property=
"dayMaxUse"
column=
"day_max_use"
/>
<result
property=
"totalStock"
column=
"total_stock"
/>
<result
property=
"probability"
column=
"probability"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"isEntity"
column=
"is_entity"
/>
<result
property=
"goodsId"
column=
"goods_id"
/>
<result
property=
"isPrize"
column=
"is_prize"
/>
</resultMap>
</mapper>
\ No newline at end of file
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityWinningRecordMapper.xml
0 → 100644
View file @
286e2694
<?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.xxfc.platform.activity.mapper.ActivityWinningRecordMapper"
>
<!-- 可根据自己的需求,是否要使用 -->
<resultMap
type=
"com.xxfc.platform.activity.entity.ActivityWinningRecord"
id=
"activityWinningRecordMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"userId"
column=
"user_id"
/>
<result
property=
"activityId"
column=
"activity_id"
/>
<result
property=
"prizeType"
column=
"prize_type"
/>
<result
property=
"prizeName"
column=
"prize_name"
/>
<result
property=
"iconPath"
column=
"icon_path"
/>
<result
property=
"hasWinning"
column=
"has_winning"
/>
<result
property=
"expiryDateCode"
column=
"expiry_date_code"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"lotteryTime"
column=
"lottery_time"
/>
<result
property=
"goodsId"
column=
"goods_id"
/>
</resultMap>
<select
id=
"selectActivityWinningRecord"
resultType=
"com.xxfc.platform.activity.dto.ActivityWinningRecordPageDTO"
>
select * from `activity_winning_record` as `awr`
left join `activity_attendance_record` as `aar` ON aar.user_id=awr.user_id and aar.activity_id=awr.activity_id
where 1=1
<if
test=
"activityId!=null"
>
and awr.`activity_id`=#{activityId}
</if>
<if
test=
"hasWinning!=null"
>
and awr.`has_winning`=#{hasWinning}
</if>
<if
test=
"phone!=null and phone!=''"
>
and aar.`phone`=#{phone}
</if>
<if
test=
"prizeType!=null"
>
and awr.`prize_type`=#{prizeType}
</if>
<if
test=
"startTime!=null and endTime!=null"
>
and awr.`lottery_time` between #{startTime} and #{endTime}
</if>
<if
test=
"startTime!=null and endTime==null"
>
and
<![CDATA[
awr.`lottery_time` >
=#{startTime}
]]>
</if>
<if
test=
"startTime==null and endTime!=null"
>
and
<![CDATA[
awr.`lottery_time` <=#{endTime}
]]>
</if>
order by awr.`lottery_time` desc
</select>
</mapper>
\ No newline at end of file
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