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
294be177
Commit
294be177
authored
Dec 09, 2019
by
jiaorz
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/luck_draw_feature' into luck_draw_feature
parents
7b1bfeb2
ceaef0ef
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
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 @
294be177
<?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 @
294be177
<?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 @
294be177
<?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 @
294be177
<?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