Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
6b699caa
Commit
6b699caa
authored
Feb 19, 2020
by
zhangdongwei-intern
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat-1002382: 时间管理任务新增奖励配置
parent
d3f90ff9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
1031 additions
and
6 deletions
+1031
-6
ReplyMessageBaseDto.java
.../com/pcloud/book/timecontrol/dto/ReplyMessageBaseDto.java
+4
-0
TaskPrizeBiz.java
...in/java/com/pcloud/book/timecontrol/biz/TaskPrizeBiz.java
+36
-0
TaskBizImpl.java
...ava/com/pcloud/book/timecontrol/biz/impl/TaskBizImpl.java
+0
-0
TaskPrizeBizImpl.java
...om/pcloud/book/timecontrol/biz/impl/TaskPrizeBizImpl.java
+0
-0
TimeControlPrizeItem.java
.../pcloud/book/timecontrol/entity/TimeControlPrizeItem.java
+44
-0
TimeControlTaskPrize.java
.../pcloud/book/timecontrol/entity/TimeControlTaskPrize.java
+36
-0
TimeControlTaskSend.java
...m/pcloud/book/timecontrol/entity/TimeControlTaskSend.java
+2
-0
TaskPrizeItemTypeEnum.java
.../pcloud/book/timecontrol/enums/TaskPrizeItemTypeEnum.java
+16
-0
TaskPrizeTypeEnum.java
.../com/pcloud/book/timecontrol/enums/TaskPrizeTypeEnum.java
+15
-0
TimeControlPrizeFacadeImpl.java
...k/timecontrol/facade/impl/TimeControlPrizeFacadeImpl.java
+74
-0
TaskPrizeItemMapper.java
...m/pcloud/book/timecontrol/mapper/TaskPrizeItemMapper.java
+50
-0
TaskPrizeMapper.java
...a/com/pcloud/book/timecontrol/mapper/TaskPrizeMapper.java
+67
-0
TimeControlTaskSendMapper.java
...ud/book/timecontrol/mapper/TimeControlTaskSendMapper.java
+2
-0
CouponVO.java
...rc/main/java/com/pcloud/book/timecontrol/vo/CouponVO.java
+13
-0
CreateAppVO.java
...main/java/com/pcloud/book/timecontrol/vo/CreateAppVO.java
+21
-0
CreateCertificateVO.java
...a/com/pcloud/book/timecontrol/vo/CreateCertificateVO.java
+15
-0
CreatePrize4TaskItemVO.java
...om/pcloud/book/timecontrol/vo/CreatePrize4TaskItemVO.java
+28
-0
CreatePrize4TaskVO.java
...va/com/pcloud/book/timecontrol/vo/CreatePrize4TaskVO.java
+28
-0
QueryAppVO.java
.../main/java/com/pcloud/book/timecontrol/vo/QueryAppVO.java
+37
-0
QueryCertificateVO.java
...va/com/pcloud/book/timecontrol/vo/QueryCertificateVO.java
+19
-0
QueryCouponVO.java
...in/java/com/pcloud/book/timecontrol/vo/QueryCouponVO.java
+16
-0
QueryPrizeVO.java
...ain/java/com/pcloud/book/timecontrol/vo/QueryPrizeVO.java
+32
-0
SaveAppVO.java
...c/main/java/com/pcloud/book/timecontrol/vo/SaveAppVO.java
+21
-0
SaveCertificateVO.java
...ava/com/pcloud/book/timecontrol/vo/SaveCertificateVO.java
+15
-0
SaveCouponVO.java
...ain/java/com/pcloud/book/timecontrol/vo/SaveCouponVO.java
+13
-0
SaveTaskPrizeVO.java
.../java/com/pcloud/book/timecontrol/vo/SaveTaskPrizeVO.java
+27
-0
UpdatePrize4TaskItemVO.java
...om/pcloud/book/timecontrol/vo/UpdatePrize4TaskItemVO.java
+18
-0
AppRequestVO.java
.../com/pcloud/book/timecontrol/vo/request/AppRequestVO.java
+41
-0
CertificateRequestVO.java
...oud/book/timecontrol/vo/request/CertificateRequestVO.java
+30
-0
PrizeCouponRequestVO.java
...oud/book/timecontrol/vo/request/PrizeCouponRequestVO.java
+28
-0
SavePrize4TaskItemVO.java
...oud/book/timecontrol/vo/request/SavePrize4TaskItemVO.java
+39
-0
TaskPrizeItemMapper.xml
...main/resources/mapper/timecontrol/TaskPrizeItemMapper.xml
+0
-0
TaskPrizeMapper.xml
...src/main/resources/mapper/timecontrol/TaskPrizeMapper.xml
+227
-0
TimeControlTaskItemMapper.xml
...esources/mapper/timecontrol/TimeControlTaskItemMapper.xml
+2
-1
TimeControlTaskSendMapper.xml
...esources/mapper/timecontrol/TimeControlTaskSendMapper.xml
+12
-2
TimeControlTaskSubscribeMapper.xml
...ces/mapper/timecontrol/TimeControlTaskSubscribeMapper.xml
+3
-3
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/ReplyMessageBaseDto.java
View file @
6b699caa
...
...
@@ -21,4 +21,8 @@ public class ReplyMessageBaseDto implements Serializable {
private
String
sendHour
;
/**
* 0-不可配置,1-已配置,2-未配置
*/
private
Integer
configState
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/TaskPrizeBiz.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
biz
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto
;
import
com.pcloud.book.timecontrol.vo.CreatePrize4TaskItemVO
;
import
com.pcloud.book.timecontrol.vo.QueryPrizeVO
;
import
com.pcloud.book.timecontrol.vo.SaveTaskPrizeVO
;
import
com.pcloud.book.timecontrol.vo.request.SavePrize4TaskItemVO
;
import
java.util.List
;
public
interface
TaskPrizeBiz
{
Integer
saveTaskPrize
(
SaveTaskPrizeVO
saveTaskPrizeVO
);
Integer
createPrize4TaskItem
(
CreatePrize4TaskItemVO
createPrize4TaskItemVO
);
QueryPrizeVO
getPrize4Task
(
Integer
taskId
);
/**
* 根据taskItem获取单次任务奖励
* @param taskItemId
* @return
*/
QueryPrizeVO
getPrize4TaskItem
(
Integer
taskItemId
);
List
<
ReplyMessageBaseDto
>
listTaskItemPrize
(
Integer
taskId
);
/**
* 修改单次任务奖励
* @param vo
*/
void
savePrize4TaskItem
(
SavePrize4TaskItemVO
vo
);
String
downloadCertificate
(
Integer
id
,
Integer
type
);
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskBizImpl.java
View file @
6b699caa
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskPrizeBizImpl.java
0 → 100644
View file @
6b699caa
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlPrizeItem.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
entity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
TimeControlPrizeItem
{
private
Integer
id
;
private
Integer
taskId
;
private
Integer
taskItemId
;
private
Integer
prizeId
;
private
Integer
prizeType
;
private
String
couponUrl
;
private
String
couponTitle
;
private
String
content
;
private
String
picUrl
;
private
Long
serveId
;
private
String
serveType
;
private
String
linkUrl
;
private
String
description
;
private
String
certificateTitle
;
private
String
certificateUser
;
private
String
certificateBaseUrl
;
private
Date
createTime
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTaskPrize.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
entity
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.Date
;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public
class
TimeControlTaskPrize
{
private
Integer
id
;
private
Integer
taskId
;
private
Integer
taskItemId
;
private
Integer
type
;
private
Integer
totalPrizeNum
;
private
Integer
hasCoupon
;
private
Integer
hasApp
;
private
Integer
hasCertificate
;
private
Date
createTime
;
private
Date
updateTime
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTaskSend.java
View file @
6b699caa
...
...
@@ -34,4 +34,6 @@ public class TimeControlTaskSend implements Serializable {
private
Integer
completeState
;
private
String
sendHour
;
private
Integer
working
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/enums/TaskPrizeItemTypeEnum.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
enums
;
public
enum
TaskPrizeItemTypeEnum
{
COUPON
(
1
,
"优惠券"
),
APP
(
2
,
"APP"
),
CERTIFICATE
(
3
,
"奖状"
);
public
final
Integer
key
;
public
final
String
desc
;
TaskPrizeItemTypeEnum
(
Integer
key
,
String
desc
){
this
.
key
=
key
;
this
.
desc
=
desc
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/enums/TaskPrizeTypeEnum.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
enums
;
public
enum
TaskPrizeTypeEnum
{
GRAND_TOTAL
(
0
,
"累计奖励"
),
SINGLE
(
1
,
"单次奖励"
);
public
final
Integer
key
;
public
final
String
desc
;
TaskPrizeTypeEnum
(
Integer
key
,
String
desc
){
this
.
key
=
key
;
this
.
desc
=
desc
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/facade/impl/TimeControlPrizeFacadeImpl.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
facade
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.timecontrol.biz.TaskPrizeBiz
;
import
com.pcloud.book.timecontrol.vo.SaveTaskPrizeVO
;
import
com.pcloud.book.timecontrol.vo.request.SavePrize4TaskItemVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
import
java.util.Optional
;
@RequestMapping
(
"taskPrize"
)
@RestController
(
"timeControlPrizeFacade"
)
public
class
TimeControlPrizeFacadeImpl
{
@Autowired
private
TaskPrizeBiz
taskPrizeBiz
;
@ApiOperation
(
value
=
"保存累计奖励"
)
@PostMapping
(
"saveTaskPrize"
)
ResponseDto
<?>
saveTaskPrize
(
@RequestHeader
String
token
,
@RequestBody
SaveTaskPrizeVO
saveTaskPrizeVO
)
throws
PermissionException
{
Map
<
String
,
Object
>
token4Redis
=
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
taskPrizeBiz
.
saveTaskPrize
(
saveTaskPrizeVO
));
}
@ApiOperation
(
value
=
"获取任务累计奖励"
)
@GetMapping
(
"getPrize4Task"
)
ResponseDto
<?>
getPrize4Task
(
@RequestHeader
String
token
,
@RequestParam
(
"taskId"
)
Integer
taskId
)
throws
PermissionException
{
Map
<
String
,
Object
>
token4Redis
=
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
taskPrizeBiz
.
getPrize4Task
(
taskId
));
}
@ApiOperation
(
value
=
"保存单次任务奖励"
)
@PostMapping
(
value
=
"savePrize4TaskItem"
)
ResponseDto
<?>
savePrize4TaskItem
(
@RequestHeader
String
token
,
@Validated
@RequestBody
SavePrize4TaskItemVO
vo
)
throws
PermissionException
,
BizException
{
Optional
.
ofNullable
(
vo
).
orElseThrow
(()
->
new
BookBizException
(
BookBizException
.
ERROR
,
"参数不能为空"
));
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
taskPrizeBiz
.
savePrize4TaskItem
(
vo
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
value
=
"获取单次任务奖励"
)
@GetMapping
(
"getPrize4TaskItem"
)
ResponseDto
<?>
getPrize4TaskItem
(
@RequestHeader
String
token
,
@RequestParam
Integer
taskItemId
)
throws
PermissionException
{
return
new
ResponseDto
<>(
taskPrizeBiz
.
getPrize4TaskItem
(
taskItemId
));
}
@ApiOperation
(
value
=
"获取奖励配置目录"
)
@GetMapping
(
"listTaskItemPrize"
)
ResponseDto
<?>
listTaskItemPrize
(
@RequestHeader
String
token
,
@RequestParam
Integer
taskId
)
throws
PermissionException
{
return
new
ResponseDto
<>(
taskPrizeBiz
.
listTaskItemPrize
(
taskId
));
}
@ApiOperation
(
value
=
"预览奖状"
)
@GetMapping
(
"downloadCertificate"
)
ResponseDto
<?>
downloadCertificate
(
@RequestHeader
String
token
,
@RequestParam
Integer
id
,
@RequestParam
Integer
type
)
{
String
url
=
taskPrizeBiz
.
downloadCertificate
(
id
,
type
);
return
new
ResponseDto
<>(
url
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TaskPrizeItemMapper.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
mapper
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Component
(
"taskPrizeItemMapper"
)
public
interface
TaskPrizeItemMapper
{
int
insert
(
TimeControlPrizeItem
model
);
TimeControlPrizeItem
selectByPrimaryKey
(
Integer
id
);
/**
* 根据prizeId和类型查询奖励详情
* @param prizeId
* @param prizeType
* @return
*/
TimeControlPrizeItem
getByPrizeId
(
@Param
(
"prizeId"
)
Integer
prizeId
,
@Param
(
"prizeType"
)
Integer
prizeType
);
/**
* 批量新增奖励详情
* @param prizeItemList
*/
void
batchInsert
(
@Param
(
"prizeItemList"
)
List
<
TimeControlPrizeItem
>
prizeItemList
);
/**
* 根据prizeId删除奖励
* @param prizeId
*/
void
deleteByPrizeId
(
Integer
prizeId
);
/**
* 根据奖励id获取奖励的item列表
* @param prizeId
* @return
*/
List
<
TimeControlPrizeItem
>
listByPrizeId
(
Integer
prizeId
);
/**
* 根据taskItemId删除奖励
* @param taskItemId
* @param deleteTypes
*/
void
deleteByTaskItemId
(
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"deleteTypes"
)
List
<
Integer
>
deleteTypes
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TaskPrizeMapper.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
mapper
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskPrize
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Component
(
"taskPrizeMapper"
)
public
interface
TaskPrizeMapper
{
/**
* 新增
* @param model
* @return
*/
int
insert
(
TimeControlTaskPrize
model
);
TimeControlTaskPrize
selectByPrimaryKey
(
Integer
id
);
/**
* 根据taskId和类型查询奖励
* @param taskId
* @param type
* @return
*/
TimeControlTaskPrize
getByTaskId
(
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"type"
)
Integer
type
);
int
updateByPrimaryKeySelective
(
TimeControlTaskPrize
model
);
/**
* 根据任务和类型删除
* @param taskId
* @param type
*/
void
deleteByTaskId
(
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"type"
)
Integer
type
);
/**
* 根据taskItemId删除奖励
* @param taskItemId
*/
void
deleteByTaskItemId
(
Integer
taskItemId
);
/**
* 根据taskItemId获取单次任务奖励
* @param taskItemId
* @return
*/
TimeControlTaskPrize
selectByTaskItemId
(
Integer
taskItemId
);
/**
*获取配置奖励的单次任务
*/
List
<
Integer
>
getConfigItemId
(
@Param
(
"taskItemIds"
)
List
<
Integer
>
taskItemIds
);
/**
* 获取所有开关的关闭的单次任务
* @param taskItemIds
* @return
*/
List
<
Integer
>
getAllCloseItemId
(
@Param
(
"taskItemIds"
)
List
<
Integer
>
taskItemIds
);
TimeControlTaskPrize
getByTaskItemId
(
Integer
taskItemId
);
TimeControlTaskPrize
getByType
(
@Param
(
"id"
)
Integer
id
,
@Param
(
"type"
)
Integer
type
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskSendMapper.java
View file @
6b699caa
...
...
@@ -61,4 +61,6 @@ public interface TimeControlTaskSendMapper {
List
<
SubscribeTaskUserDTO
>
getTaskNoCompletedCount
(
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskId"
)
Integer
taskId
);
Integer
getNoCompletedCount
(
@Param
(
"subscribeId"
)
Integer
subscribeId
);
Integer
getCompletedCount
(
Integer
subscribeId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/CouponVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CouponVO
implements
Serializable
{
private
String
couponUrl
;
private
String
couponTitle
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/CreateAppVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CreateAppVO
implements
Serializable
{
private
String
content
;
private
String
picUrl
;
private
Long
serveId
;
private
String
serveType
;
private
String
linkUrl
;
private
String
description
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/CreateCertificateVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CreateCertificateVO
implements
Serializable
{
private
String
certificateTitle
;
private
String
certificateUser
;
private
String
certificateBaseUrl
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/CreatePrize4TaskItemVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
@Data
public
class
CreatePrize4TaskItemVO
implements
Serializable
{
private
Integer
taskItemId
;
@NotNull
private
Integer
hasCoupon
;
private
CouponVO
couponVO
;
@NotNull
private
Integer
hasApp
;
private
CreateAppVO
createAppVO
;
@NotNull
private
Integer
hasCertificate
;
private
CreateCertificateVO
createCertificateVO
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/CreatePrize4TaskVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
CreatePrize4TaskVO
implements
Serializable
{
private
Integer
prizeId
;
private
Integer
taskId
;
private
Integer
totalPrizeNum
;
private
Integer
hasCoupon
;
private
CouponVO
couponVO
;
private
Integer
hasApp
;
private
CreateAppVO
createAppVO
;
private
Integer
hasCertificate
;
private
CreateCertificateVO
createCertificateVO
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/QueryAppVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
QueryAppVO
implements
Serializable
{
private
Integer
id
;
private
String
content
;
private
String
picUrl
;
private
Long
serveId
;
private
String
serveType
;
private
String
linkUrl
;
private
String
description
;
@ApiModelProperty
(
"应用或作品图片"
)
private
String
servePic
;
@ApiModelProperty
(
"应用或作品名称"
)
private
String
serveName
;
@ApiModelProperty
(
"应用或作品类型名称"
)
private
String
serveTypeName
;
@ApiModelProperty
(
"应用或作品类型编码"
)
private
String
serveTypeCode
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/QueryCertificateVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
QueryCertificateVO
implements
Serializable
{
private
Integer
id
;
private
String
certificateTitle
;
private
String
certificateUser
;
private
String
certificateBaseUrl
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/QueryCouponVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
QueryCouponVO
implements
Serializable
{
private
Integer
id
;
private
String
couponUrl
;
private
String
couponTitle
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/QueryPrizeVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
QueryPrizeVO
implements
Serializable
{
private
Integer
id
;
private
Integer
taskId
;
private
Integer
taskItemId
;
private
Integer
totalPrizeNum
;
private
Integer
hasCoupon
;
private
QueryCouponVO
queryCouponVO
;
private
Integer
hasApp
;
private
QueryAppVO
queryAppVO
;
private
Integer
hasCertificate
;
private
QueryCertificateVO
queryCertificateVO
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/SaveAppVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
SaveAppVO
implements
Serializable
{
private
String
content
;
private
String
picUrl
;
private
Long
serveId
;
private
String
serveType
;
private
String
linkUrl
;
private
String
description
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/SaveCertificateVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
SaveCertificateVO
implements
Serializable
{
private
String
certificateTitle
;
private
String
certificateUser
;
private
String
certificateBaseUrl
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/SaveCouponVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
SaveCouponVO
implements
Serializable
{
private
String
couponUrl
;
private
String
couponTitle
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/SaveTaskPrizeVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
SaveTaskPrizeVO
implements
Serializable
{
private
Integer
id
;
private
Integer
taskId
;
private
Integer
totalPrizeNum
;
private
Integer
hasCoupon
;
private
SaveCouponVO
couponVO
;
private
Integer
hasApp
;
private
SaveAppVO
appVO
;
private
Integer
hasCertificate
;
private
SaveCertificateVO
certificateVO
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/UpdatePrize4TaskItemVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
UpdatePrize4TaskItemVO
implements
Serializable
{
private
Integer
prizeId
;
private
Integer
hasCoupon
;
private
Integer
hasApp
;
private
Integer
hasCertificate
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/request/AppRequestVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
.
request
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum
;
import
com.pcloud.common.utils.bean.BeanUtils
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Data
public
class
AppRequestVO
{
@NotNull
(
message
=
"课程标题不能为空"
)
private
String
content
;
@NotNull
(
message
=
"课程封面图不能为空"
)
private
String
picUrl
;
@NotNull
(
message
=
"课程应用id不能为空"
)
private
Long
serveId
;
@NotNull
(
message
=
"课程类型不能为空"
)
private
String
serveType
;
/**
* 课程链接
*/
private
String
linkUrl
;
/**
* 课程简介
*/
private
String
description
;
public
static
TimeControlPrizeItem
valueToPrizeItem
(
SavePrize4TaskItemVO
savePrize4TaskItemVO
){
TimeControlPrizeItem
prizeItem
=
new
TimeControlPrizeItem
();
AppRequestVO
vo
=
savePrize4TaskItemVO
.
getApp
();
BeanUtils
.
copyProperties
(
vo
,
prizeItem
);
prizeItem
.
setTaskId
(
savePrize4TaskItemVO
.
getTaskId
());
prizeItem
.
setTaskItemId
(
savePrize4TaskItemVO
.
getTaskItemId
());
prizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
APP
.
key
);
prizeItem
.
setCreateTime
(
new
Date
());
return
prizeItem
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/request/CertificateRequestVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
.
request
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum
;
import
com.pcloud.common.utils.BeanUtils
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Data
public
class
CertificateRequestVO
{
@NotNull
(
message
=
"证书文案不能为空"
)
private
String
certificateTitle
;
@NotNull
(
message
=
"证书落款不能为空"
)
private
String
certificateUser
;
@NotNull
(
message
=
"证书图片链接不能为空"
)
private
String
certificateBaseUrl
;
public
static
TimeControlPrizeItem
valueToPrizeItem
(
SavePrize4TaskItemVO
savePrize4TaskItemVO
){
TimeControlPrizeItem
prizeItem
=
new
TimeControlPrizeItem
();
CertificateRequestVO
vo
=
savePrize4TaskItemVO
.
getCertificate
();
BeanUtils
.
copyProperties
(
vo
,
prizeItem
);
prizeItem
.
setTaskId
(
savePrize4TaskItemVO
.
getTaskId
());
prizeItem
.
setTaskItemId
(
savePrize4TaskItemVO
.
getTaskItemId
());
prizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
CERTIFICATE
.
key
);
prizeItem
.
setCreateTime
(
new
Date
());
return
prizeItem
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/request/PrizeCouponRequestVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
.
request
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum
;
import
com.pcloud.common.utils.BeanUtils
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Data
public
class
PrizeCouponRequestVO
{
@NotNull
(
message
=
"优惠券链接不能为空"
)
private
String
couponUrl
;
@NotNull
(
message
=
"优惠券标题不能为空"
)
private
String
couponTitle
;
public
static
TimeControlPrizeItem
valueToPrizeItem
(
SavePrize4TaskItemVO
savePrize4TaskItemVO
){
TimeControlPrizeItem
prizeItem
=
new
TimeControlPrizeItem
();
PrizeCouponRequestVO
vo
=
savePrize4TaskItemVO
.
getCoupon
();
BeanUtils
.
copyProperties
(
vo
,
prizeItem
);
prizeItem
.
setTaskId
(
savePrize4TaskItemVO
.
getTaskId
());
prizeItem
.
setTaskItemId
(
savePrize4TaskItemVO
.
getTaskItemId
());
prizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
COUPON
.
key
);
prizeItem
.
setCreateTime
(
new
Date
());
return
prizeItem
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/request/SavePrize4TaskItemVO.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
vo
.
request
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskPrize
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeTypeEnum
;
import
com.pcloud.common.utils.BeanUtils
;
import
lombok.Data
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotNull
;
import
java.util.Date
;
@Data
public
class
SavePrize4TaskItemVO
{
@NotNull
(
message
=
"taskId不能为空"
)
private
Integer
taskId
;
@NotNull
(
message
=
"taskItemId不能为空"
)
private
Integer
taskItemId
;
@NotNull
(
message
=
"未设置是否开启优惠券奖励"
)
private
Integer
hasCoupon
;
@NotNull
(
message
=
"未设置是否开启课程奖励"
)
private
Integer
hasApp
;
@NotNull
(
message
=
"未设置是否开启证书奖励"
)
private
Integer
hasCertificate
;
@Valid
private
PrizeCouponRequestVO
coupon
;
@Valid
private
AppRequestVO
app
;
@Valid
private
CertificateRequestVO
certificate
;
public
static
TimeControlTaskPrize
valueToTaskPrize
(
SavePrize4TaskItemVO
vo
){
TimeControlTaskPrize
taskPrize
=
new
TimeControlTaskPrize
();
BeanUtils
.
copyProperties
(
vo
,
taskPrize
);
taskPrize
.
setType
(
TaskPrizeTypeEnum
.
SINGLE
.
key
);
taskPrize
.
setCreateTime
(
new
Date
());
taskPrize
.
setUpdateTime
(
new
Date
());
return
taskPrize
;
}
}
pcloud-service-book/src/main/resources/mapper/timecontrol/TaskPrizeItemMapper.xml
0 → 100644
View file @
6b699caa
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/resources/mapper/timecontrol/TaskPrizeMapper.xml
0 → 100644
View file @
6b699caa
<?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.pcloud.book.timecontrol.mapper.TaskPrizeMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.timecontrol.entity.TimeControlTaskPrize"
>
<id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"task_id"
property=
"taskId"
jdbcType=
"INTEGER"
/>
<result
column=
"task_item_id"
property=
"taskItemId"
jdbcType=
"INTEGER"
/>
<result
column=
"type"
property=
"type"
jdbcType=
"INTEGER"
/>
<result
column=
"total_prize_num"
property=
"totalPrizeNum"
jdbcType=
"INTEGER"
/>
<result
column=
"has_coupon"
property=
"hasCoupon"
jdbcType=
"INTEGER"
/>
<result
column=
"has_app"
property=
"hasApp"
jdbcType=
"INTEGER"
/>
<result
column=
"has_certificate"
property=
"hasCertificate"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, task_id, task_item_id, type, total_prize_num, has_coupon, has_app, has_certificate, create_time, update_time
</sql>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize
where id = #{id,jdbcType=INTEGER}
</select>
<select
id=
"getByTaskId"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize
where task_id = #{taskId,jdbcType=INTEGER} AND type = #{type,jdbcType=INTEGER}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
delete from time_control_task_prize
where id = #{id,jdbcType=INTEGER}
</delete>
<delete
id=
"deleteByTaskId"
>
delete from time_control_task_prize
where task_id = #{taskId,jdbcType=INTEGER} AND type = #{type,jdbcType=INTEGER}
</delete>
<delete
id=
"deleteByTaskItemId"
parameterType=
"int"
>
delete from time_control_task_prize
where task_item_id = #{taskItemId}
</delete>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskPrize"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_prize (task_id, task_item_id,
type, total_prize_num, has_coupon,
has_app, has_certificate, create_time,update_time)
values (#{taskId,jdbcType=INTEGER}, #{taskItemId,jdbcType=INTEGER},
#{type,jdbcType=INTEGER}, #{totalPrizeNum,jdbcType=INTEGER}, #{hasCoupon,jdbcType=INTEGER},
#{hasApp,jdbcType=INTEGER}, #{hasCertificate,jdbcType=INTEGER}, NOW(),NOW())
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskPrize"
>
insert into time_control_task_prize
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
id,
</if>
<if
test=
"taskId != null"
>
task_id,
</if>
<if
test=
"taskItemId != null"
>
task_item_id,
</if>
<if
test=
"type != null"
>
type,
</if>
<if
test=
"totalPrizeNum != null"
>
total_prize_num,
</if>
<if
test=
"hasCoupon != null"
>
has_coupon,
</if>
<if
test=
"hasApp != null"
>
has_app,
</if>
<if
test=
"hasCertificate != null"
>
has_certificate,
</if>
<if
test=
"createTime != null"
>
create_time,
</if>
<if
test=
"updateTime != null"
>
update_time,
</if>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"id != null"
>
#{id,jdbcType=INTEGER},
</if>
<if
test=
"taskId != null"
>
#{taskId,jdbcType=INTEGER},
</if>
<if
test=
"taskItemId != null"
>
#{taskItemId,jdbcType=INTEGER},
</if>
<if
test=
"type != null"
>
#{type,jdbcType=INTEGER},
</if>
<if
test=
"totalPrizeNum != null"
>
#{totalPrizeNum,jdbcType=INTEGER},
</if>
<if
test=
"hasCoupon != null"
>
#{hasCoupon,jdbcType=INTEGER},
</if>
<if
test=
"hasApp != null"
>
#{hasApp,jdbcType=INTEGER},
</if>
<if
test=
"hasCertificate != null"
>
#{hasCertificate,jdbcType=INTEGER},
</if>
<if
test=
"createTime != null"
>
#{createTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"updateTime != null"
>
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskPrize"
>
update time_control_task_prize
<set
>
<if
test=
"taskId != null"
>
task_id = #{taskId,jdbcType=INTEGER},
</if>
<if
test=
"taskItemId != null"
>
task_item_id = #{taskItemId,jdbcType=INTEGER},
</if>
<if
test=
"type != null"
>
type = #{type,jdbcType=INTEGER},
</if>
<if
test=
"totalPrizeNum != null"
>
total_prize_num = #{totalPrizeNum,jdbcType=INTEGER},
</if>
<if
test=
"hasCoupon != null"
>
has_coupon = #{hasCoupon,jdbcType=INTEGER},
</if>
<if
test=
"hasApp != null"
>
has_app = #{hasApp,jdbcType=INTEGER},
</if>
<if
test=
"hasCertificate != null"
>
has_certificate = #{hasCertificate,jdbcType=INTEGER},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if
test=
"updateTime != null"
>
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskPrize"
>
update time_control_task_prize
set task_id = #{taskId,jdbcType=INTEGER},
task_item_id = #{taskItemId,jdbcType=INTEGER},
type = #{type,jdbcType=INTEGER},
total_prize_num = #{totalPrizeNum,jdbcType=INTEGER},
has_coupon = #{hasCoupon,jdbcType=INTEGER},
has_app = #{hasApp,jdbcType=INTEGER},
has_certificate = #{hasCertificate,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<update
id=
"update"
></update>
<select
id=
"selectByTaskItemId"
parameterType=
"int"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize where task_item_id = #{taskItemId}
</select>
<select
id=
"getConfigItemId"
resultType=
"Integer"
>
select task_item_id
from time_control_task_prize
where 1=1
<if
test=
"taskItemIds!=null and taskItemIds.size()>0"
>
and task_item_id in
<foreach
collection=
"taskItemIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
</select>
<select
id=
"getAllCloseItemId"
resultType=
"Integer"
>
select DISTINCT task_item_id
from time_control_task_prize
where 1=1
<if
test=
"taskItemIds!=null and taskItemIds.size()>0"
>
and task_item_id in
<foreach
collection=
"taskItemIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
and has_coupon=0 and has_app=0 and has_certificate=0
</select>
<select
id=
"getByTaskItemId"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize
where task_item_id = #{taskItemId} AND type = 1
</select>
<select
id=
"getByType"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize
where type = #{type}
<if
test=
"type == 0"
>
and task_id = #{id}
</if>
<if
test=
"type == 1"
>
and task_item_id = #{id}
</if>
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskItemMapper.xml
View file @
6b699caa
...
...
@@ -57,7 +57,8 @@
</select>
<select
id=
"listTaskItemDay"
resultType=
"com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto"
>
select id, task_id taskId, start_day startDay, send_hour sendHour
select id, task_id taskId, start_day startDay, send_hour sendHour,
if(finish_confirm=0,0,2) configState
from time_control_task_item where task_id = #{taskId}
order by startDay asc, send_hour asc
</select>
...
...
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSendMapper.xml
View file @
6b699caa
...
...
@@ -11,10 +11,12 @@
<result
column=
"send_state"
property=
"sendState"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"send_day"
property=
"sendDay"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"working"
property=
"working"
jdbcType=
"INTEGER"
/>
<result
column=
"complete_state"
property=
"completeState"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time
id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time
, complete_state
</sql>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
...
...
@@ -79,7 +81,7 @@
</update>
<select
id=
"getById"
resultMap=
"BaseResultMap"
>
select id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state
select id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state
, working, complete_state
from time_control_task_send
where id = #{taskSendId}
</select>
...
...
@@ -229,4 +231,11 @@
WHERE subscribe_id =#{subscribeId}
and complete_state !=1 AND send_state !=2
</select>
<select
id=
"getCompletedCount"
resultType=
"java.lang.Integer"
>
select ifnull(count(1),0)
from time_control_task_send
WHERE subscribe_id =#{subscribeId}
and working =1 and complete_state = 1
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSubscribeMapper.xml
View file @
6b699caa
...
...
@@ -23,12 +23,12 @@
</update>
<update
id=
"unSubscribeTask"
>
UPDATE time_control_task_subscribe set state = #{state}, update_time = now()
UPDATE time_control_task_subscribe set state = #{state}, update_time = now()
, working = 0
where id = #{id}
</update>
<update
id=
"unSubscribeTaskByTaskId"
>
UPDATE time_control_task_subscribe set state = 0, update_time = now()
UPDATE time_control_task_subscribe set state = 0, update_time = now()
, working = 0
where task_id = #{taskId}
</update>
...
...
@@ -50,7 +50,7 @@
</select>
<select
id=
"getById"
resultMap=
"BaseResultMap"
>
select wx_user_id, book_id, task_id, state, create_time, update_time, robot_wx_id
select wx_user_id, book_id, task_id, state, create_time, update_time, robot_wx_id
, id
from time_control_task_subscribe WHERE id = #{subscribeId}
</select>
...
...
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