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
Show whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
1918 additions
and
14 deletions
+1918
-14
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
+142
-8
TaskPrizeBizImpl.java
...om/pcloud/book/timecontrol/biz/impl/TaskPrizeBizImpl.java
+458
-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
+287
-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 {
...
@@ -21,4 +21,8 @@ public class ReplyMessageBaseDto implements Serializable {
private
String
sendHour
;
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
package
com
.
pcloud
.
book
.
timecontrol
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
timecontrol
.
biz
.
impl
;
import
com.pcloud.appcenter.app.dto.AppDto
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
import
com.pcloud.book.skill.dao.PcloudSkillDao
;
import
com.pcloud.book.skill.dao.PcloudSkillDao
;
import
com.pcloud.book.skill.entity.PcloudSkill
;
import
com.pcloud.book.skill.entity.PcloudSkill
;
import
com.pcloud.book.skill.enums.SkillTypeEnum
;
import
com.pcloud.book.skill.enums.SkillTypeEnum
;
import
com.pcloud.book.timecontrol.biz.TaskBiz
;
import
com.pcloud.book.timecontrol.biz.TaskBiz
;
import
com.pcloud.book.timecontrol.biz.TaskSubscribeBiz
;
import
com.pcloud.book.timecontrol.biz.TaskSubscribeBiz
;
import
com.pcloud.book.timecontrol.dto.*
;
import
com.pcloud.book.timecontrol.dto.BookTaskBindingDto
;
import
com.pcloud.book.timecontrol.entity.*
;
import
com.pcloud.book.timecontrol.dto.CreateReplyMessageDto
;
import
com.pcloud.book.timecontrol.mapper.*
;
import
com.pcloud.book.timecontrol.dto.CreateTaskDto
;
import
com.pcloud.book.timecontrol.dto.CreateTaskItemDto
;
import
com.pcloud.book.timecontrol.dto.LabelDto
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageDto
;
import
com.pcloud.book.timecontrol.dto.TaskDto
;
import
com.pcloud.book.timecontrol.dto.TaskItemDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskItemDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlReplyMessage
;
import
com.pcloud.book.timecontrol.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskPrize
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSend
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSubscribe
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeTypeEnum
;
import
com.pcloud.book.timecontrol.enums.TaskSendStateEnum
;
import
com.pcloud.book.timecontrol.enums.TaskSendStateEnum
;
import
com.pcloud.book.timecontrol.mapper.BookTaskBindingMapper
;
import
com.pcloud.book.timecontrol.mapper.TaskPrizeItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TaskPrizeMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlReplyMessageMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSubscribeMapper
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.book.util.common.YesOrNoEnums
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtilParent
;
import
com.pcloud.common.utils.string.StringUtilParent
;
import
com.pcloud.labelcenter.label.service.LabelService
;
import
com.pcloud.labelcenter.label.service.LabelService
;
import
com.pcloud.wechatgroup.base.exception.WechatGroupBizException
;
import
com.pcloud.wechatgroup.base.exception.WechatGroupBizException
;
import
lombok.extern.slf4j.Slf4j
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.sdk.wxgroup.SendArticleMessageVO
;
import
com.sdk.wxgroup.SendFileVO
;
import
com.sdk.wxgroup.SendFileVO
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -37,7 +71,12 @@ import org.springframework.http.ResponseEntity;
...
@@ -37,7 +71,12 @@ import org.springframework.http.ResponseEntity;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
/**
/**
* @date: 2020年01月30日 14:20
* @date: 2020年01月30日 14:20
...
@@ -74,6 +113,16 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -74,6 +113,16 @@ public class TaskBizImpl implements TaskBiz {
private
WechatGroupConsr
wechatGroupConsr
;
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
@Autowired
private
WeixinQrcodeBiz
weixinQrcodeBiz
;
private
WeixinQrcodeBiz
weixinQrcodeBiz
;
@Autowired
private
TaskPrizeMapper
taskPrizeMapper
;
@Autowired
private
TaskPrizeItemMapper
taskPrizeItemMapper
;
@Autowired
private
AppConsr
appConsr
;
@Autowired
private
QrcodeSceneConsr
qrcodeSceneConsr
;
@Autowired
private
TaskPrizeBizImpl
taskPrizeBiz
;
@Override
@Override
public
Integer
createTask
(
CreateTaskDto
createTaskDto
)
{
public
Integer
createTask
(
CreateTaskDto
createTaskDto
)
{
...
@@ -471,13 +520,15 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -471,13 +520,15 @@ public class TaskBizImpl implements TaskBiz {
@Override
@Override
@ParamLog
@ParamLog
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
finishTaskSend
(
Integer
taskSendId
)
{
public
void
finishTaskSend
(
Integer
taskSendId
)
{
TimeControlTaskSend
timeControlTaskSend
=
timeControlTaskSendMapper
.
getById
(
taskSendId
);
TimeControlTaskSend
timeControlTaskSend
=
timeControlTaskSendMapper
.
getById
(
taskSendId
);
if
(
null
==
timeControlTaskSend
)
{
if
(
null
==
timeControlTaskSend
)
{
return
;
return
;
}
}
if
(!
TaskSendStateEnum
.
FINISH_SEND
.
getState
().
equals
(
timeControlTaskSend
.
getSendState
()))
{
if
(!(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskSend
.
getWorking
())
&&
YesOrNoEnums
.
NO
.
getValue
().
equals
(
timeControlTaskSend
.
getCompleteState
()))){
LOGGER
.
info
(
"任务未完成"
);
LOGGER
.
info
(
"状态不对,不能完成任务"
);
return
;
}
}
Integer
taskItemId
=
timeControlTaskSend
.
getTaskItemId
();
Integer
taskItemId
=
timeControlTaskSend
.
getTaskItemId
();
String
wxUserId
=
timeControlTaskSend
.
getWxUserId
();
String
wxUserId
=
timeControlTaskSend
.
getWxUserId
();
...
@@ -487,7 +538,7 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -487,7 +538,7 @@ public class TaskBizImpl implements TaskBiz {
String
ip
=
weixinQrcodeBiz
.
getRobotIpByGeneration
(
groupRobotDTO
.
getVersion
());
String
ip
=
weixinQrcodeBiz
.
getRobotIpByGeneration
(
groupRobotDTO
.
getVersion
());
List
<
TimeControlReplyMessage
>
replyMessages
=
replyMessageMapper
.
list4TaskItem
(
taskItemId
,
1
);
List
<
TimeControlReplyMessage
>
replyMessages
=
replyMessageMapper
.
list4TaskItem
(
taskItemId
,
1
);
if
(!
ListUtils
.
isEmpty
(
replyMessages
))
{
if
(!
ListUtils
.
isEmpty
(
replyMessages
))
{
LOGGER
.
info
(
"
發送消息開始
"
);
LOGGER
.
info
(
"
开始发送完成信息
"
);
for
(
TimeControlReplyMessage
replyMessage
:
replyMessages
)
{
for
(
TimeControlReplyMessage
replyMessage
:
replyMessages
)
{
if
(
replyMessage
!=
null
)
{
if
(
replyMessage
!=
null
)
{
switch
(
replyMessage
.
getMessageType
())
{
switch
(
replyMessage
.
getMessageType
())
{
...
@@ -535,10 +586,93 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -535,10 +586,93 @@ public class TaskBizImpl implements TaskBiz {
if
(
noCompletedItem
==
0
){
if
(
noCompletedItem
==
0
){
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
}
}
new
Thread
(()
->
{
//处理奖励信息
handlePrize
(
timeControlTaskSubscribe
,
ip
,
timeControlTaskSend
.
getTaskItemId
());
}).
start
();
}
private
void
handlePrize
(
TimeControlTaskSubscribe
timeControlTaskSubscribe
,
String
ip
,
Integer
taskItemId
)
{
LOGGER
.
info
(
"开始处理奖励信息"
);
//先判断有无单次奖励
TimeControlTaskPrize
taskPrize
=
taskPrizeMapper
.
getByTaskItemId
(
taskItemId
);
if
(
null
!=
taskPrize
)
{
if
(
taskPrize
.
getHasApp
().
equals
(
YesOrNoEnums
.
YES
.
getValue
())
||
taskPrize
.
getHasCoupon
().
equals
(
YesOrNoEnums
.
YES
.
getValue
())
||
taskPrize
.
getHasCertificate
().
equals
(
YesOrNoEnums
.
YES
.
getValue
()))
{
List
<
TimeControlPrizeItem
>
timeControlPrizeItems
=
taskPrizeItemMapper
.
listByPrizeId
(
taskPrize
.
getId
());
if
(!
ListUtils
.
isEmpty
(
timeControlPrizeItems
))
{
LOGGER
.
info
(
"开始发送单次奖励"
);
timeControlPrizeItems
.
forEach
(
timeControlPrizeItem
->
{
sendMessage
(
timeControlPrizeItem
,
ip
,
timeControlTaskSubscribe
.
getWxUserId
(),
timeControlTaskSubscribe
.
getRobotWxId
());
});
}
}
}
Integer
taskId
=
timeControlTaskSubscribe
.
getTaskId
();
//判断是否到大累计奖励
Integer
completedCount
=
timeControlTaskSendMapper
.
getCompletedCount
(
timeControlTaskSubscribe
.
getId
());
TimeControlTaskPrize
byTaskId
=
taskPrizeMapper
.
getByTaskId
(
taskId
,
TaskPrizeTypeEnum
.
GRAND_TOTAL
.
key
);
if
(
byTaskId
!=
null
&&
completedCount
.
equals
(
byTaskId
.
getTotalPrizeNum
()))
{
List
<
TimeControlPrizeItem
>
timeControlPrizeItems
=
taskPrizeItemMapper
.
listByPrizeId
(
byTaskId
.
getId
());
if
(!
ListUtils
.
isEmpty
(
timeControlPrizeItems
))
{
LOGGER
.
info
(
"开始发送累计奖励"
);
timeControlPrizeItems
.
forEach
(
timeControlPrizeItem
->
{
sendMessage
(
timeControlPrizeItem
,
ip
,
timeControlTaskSubscribe
.
getWxUserId
(),
timeControlTaskSubscribe
.
getRobotWxId
());
});
}
}
}
private
void
sendMessage
(
TimeControlPrizeItem
timeControlPrizeItem
,
String
ip
,
String
wxUserId
,
String
robotWxId
)
{
if
(
timeControlPrizeItem
.
getPrizeType
()
==
1
)
{
//优惠券
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
timeControlPrizeItem
.
getCouponTitle
()
+
"\n"
+
timeControlPrizeItem
.
getCouponUrl
());
sendTextMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
sendTextMessageVO
.
setWxId
(
robotWxId
);
sendTextMessageVO
.
setAltId
(
robotWxId
);
sendTextMessageVO
.
setWxGroupId
(
wxUserId
);
sendTextMessageVO
.
setIp
(
ip
);
WxGroupSDK
.
sendTextMessage
(
sendTextMessageVO
);
}
else
if
(
timeControlPrizeItem
.
getPrizeType
()
==
2
)
{
//应用
if
(
AppAndProductTypeEnum
.
APP
.
value
.
equals
(
timeControlPrizeItem
.
getServeType
()))
{
AppDto
appDto
=
appConsr
.
getBaseById
(
timeControlPrizeItem
.
getServeId
());
if
(
appDto
!=
null
)
{
AccountSettingDto
accountSettingDto
=
qrcodeSceneConsr
.
getWechatInfo
(
appDto
.
getChannelId
());
// 处理链接地址
String
endUrl
=
timeControlPrizeItem
.
getLinkUrl
()
+
"&wxId="
+
wxUserId
+
"&robotWxId="
+
robotWxId
;
String
linkUrl
=
SendWeixinRequestTools
.
splitUrl
(
accountSettingDto
,
endUrl
);
String
resultUrl
=
UrlUtils
.
getShortUrl4Own
(
linkUrl
);
SendArticleMessageVO
sendArticleMessageVO
=
new
SendArticleMessageVO
();
sendArticleMessageVO
.
setCode
(
1
);
sendArticleMessageVO
.
setAltId
(
robotWxId
);
sendArticleMessageVO
.
setDescription
(
appDto
.
getTypeName
());
sendArticleMessageVO
.
setWxGroupId
(
wxUserId
);
sendArticleMessageVO
.
setLinkUrl
(
resultUrl
);
sendArticleMessageVO
.
setPicUrl
(
appDto
.
getSquareImg
());
sendArticleMessageVO
.
setTitle
(
appDto
.
getTitle
());
sendArticleMessageVO
.
setIp
(
ip
);
WxGroupSDK
.
sendArticleMessage
(
sendArticleMessageVO
);
}
}
}
else
if
(
timeControlPrizeItem
.
getPrizeType
()
==
3
)
{
String
s
=
taskPrizeBiz
.
downloadUrl
(
timeControlPrizeItem
,
wxUserId
);
if
(
null
!=
s
)
{
SendFileVO
sendFileVO
=
new
SendFileVO
();
sendFileVO
.
setFileUrl
(
s
);
sendFileVO
.
setFileName
(
DateUtils
.
today
()
+
"-任务奖状"
+
".jpg"
);
sendFileVO
.
setIp
(
ip
);
sendFileVO
.
setAltId
(
robotWxId
);
sendFileVO
.
setWxId
(
wxUserId
);
WxGroupSDK
.
sendFile
(
sendFileVO
);
}
}
}
}
@Override
@Override
public
TaskDto
getTaskByIdAndWxUserId
(
Integer
relSkillId
,
String
wxUserId
)
{
public
TaskDto
getTaskByIdAndWxUserId
(
Integer
relSkillId
,
String
wxUserId
)
{
return
taskMapper
.
getTaskByIdAndWxUserId
(
relSkillId
,
wxUserId
);
return
taskMapper
.
getTaskByIdAndWxUserId
(
relSkillId
,
wxUserId
);
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskPrizeBizImpl.java
0 → 100644
View file @
6b699caa
package
com
.
pcloud
.
book
.
timecontrol
.
biz
.
impl
;
import
com.google.common.collect.Lists
;
import
com.pcloud.appcenter.app.dto.AppDto
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
import
com.pcloud.book.timecontrol.biz.TaskBiz
;
import
com.pcloud.book.timecontrol.biz.TaskPrizeBiz
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskPrize
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum
;
import
com.pcloud.book.timecontrol.enums.TaskPrizeTypeEnum
;
import
com.pcloud.book.timecontrol.mapper.TaskPrizeItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TaskPrizeMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.timecontrol.vo.CouponVO
;
import
com.pcloud.book.timecontrol.vo.CreateAppVO
;
import
com.pcloud.book.timecontrol.vo.CreateCertificateVO
;
import
com.pcloud.book.timecontrol.vo.CreatePrize4TaskItemVO
;
import
com.pcloud.book.timecontrol.vo.QueryAppVO
;
import
com.pcloud.book.timecontrol.vo.QueryCertificateVO
;
import
com.pcloud.book.timecontrol.vo.QueryCouponVO
;
import
com.pcloud.book.timecontrol.vo.QueryPrizeVO
;
import
com.pcloud.book.timecontrol.vo.SaveCertificateVO
;
import
com.pcloud.book.timecontrol.vo.SaveCouponVO
;
import
com.pcloud.book.timecontrol.vo.SaveTaskPrizeVO
;
import
com.pcloud.book.timecontrol.vo.request.AppRequestVO
;
import
com.pcloud.book.timecontrol.vo.request.CertificateRequestVO
;
import
com.pcloud.book.timecontrol.vo.request.PrizeCouponRequestVO
;
import
com.pcloud.book.timecontrol.vo.request.SavePrize4TaskItemVO
;
import
com.pcloud.book.util.common.YesOrNoEnums
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.entity.UploadResultInfo
;
import
com.pcloud.common.enums.ImageTypeEnum
;
import
com.pcloud.common.utils.BeanUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.NumberUtil
;
import
com.pcloud.common.utils.UUIDUitl
;
import
com.pcloud.common.utils.aliyun.OssUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
javax.imageio.ImageIO
;
import
java.awt.*
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayOutputStream
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
@Component
(
"taskPrizeBiz"
)
public
class
TaskPrizeBizImpl
implements
TaskPrizeBiz
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
TaskPrizeBizImpl
.
class
);
@Autowired
private
TimeControlTaskMapper
taskMapper
;
@Autowired
private
TimeControlTaskItemMapper
taskItemMapper
;
@Autowired
private
TaskPrizeMapper
taskPrizeMapper
;
@Autowired
private
TaskPrizeItemMapper
taskPrizeItemMapper
;
@Autowired
private
TaskBiz
taskBiz
;
@Autowired
private
AppConsr
appConsr
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
@ParamLog
(
"保存累计奖励"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
saveTaskPrize
(
SaveTaskPrizeVO
saveTaskPrizeVO
){
Integer
taskId
=
saveTaskPrizeVO
.
getTaskId
();
if
(
null
==
taskId
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"taskId不能为空!"
);
}
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
if
(
null
==
timeControlTask
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"任务不存在!"
);
}
List
<
TimeControlPrizeItem
>
prizeItems
=
Lists
.
newArrayList
();
// 构建优惠券对象
buildCoupon
(
saveTaskPrizeVO
,
prizeItems
);
// 构建课程对象
buildApp
(
saveTaskPrizeVO
,
prizeItems
);
// 构建奖状对象
buildCertificate
(
saveTaskPrizeVO
,
prizeItems
);
// 删除旧数据
taskPrizeMapper
.
deleteByTaskId
(
taskId
,
TaskPrizeTypeEnum
.
GRAND_TOTAL
.
key
);
if
(
NumberUtil
.
isNumber
(
saveTaskPrizeVO
.
getId
())
&&
saveTaskPrizeVO
.
getId
()
>
0
){
taskPrizeItemMapper
.
deleteByPrizeId
(
saveTaskPrizeVO
.
getId
());
}
// 新增
Integer
prizeId
=
insertTaskPrize
(
saveTaskPrizeVO
);
if
(!
ListUtils
.
isEmpty
(
prizeItems
)){
prizeItems
.
stream
().
forEach
(
x
->{
x
.
setPrizeId
(
prizeId
);
});
taskPrizeItemMapper
.
batchInsert
(
prizeItems
);
}
return
prizeId
;
}
@ParamLog
(
"累计奖励数据入库"
)
private
Integer
insertTaskPrize
(
SaveTaskPrizeVO
saveTaskPrizeVO
)
{
TimeControlTaskPrize
timeControlTaskPrize
=
new
TimeControlTaskPrize
();
BeanUtils
.
copyProperties
(
saveTaskPrizeVO
,
timeControlTaskPrize
);
timeControlTaskPrize
.
setType
(
TaskPrizeTypeEnum
.
GRAND_TOTAL
.
key
);
taskPrizeMapper
.
insert
(
timeControlTaskPrize
);
return
timeControlTaskPrize
.
getId
();
}
@ParamLog
(
"构建优惠券对象"
)
private
void
buildCoupon
(
SaveTaskPrizeVO
saveTaskPrizeVO
,
List
<
TimeControlPrizeItem
>
prizeItems
)
{
if
(
YesOrNoEnums
.
NO
.
getValue
().
equals
(
saveTaskPrizeVO
.
getHasCoupon
())){
return
;
}
SaveCouponVO
couponVO
=
saveTaskPrizeVO
.
getCouponVO
();
if
(
StringUtil
.
isEmpty
(
couponVO
.
getCouponTitle
())
||
StringUtil
.
isEmpty
(
couponVO
.
getCouponUrl
()))
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"请填写完整的优惠券信息!"
);
}
TimeControlPrizeItem
timeControlPrizeItem
=
new
TimeControlPrizeItem
();
BeanUtils
.
copyProperties
(
couponVO
,
timeControlPrizeItem
);
timeControlPrizeItem
.
setTaskId
(
saveTaskPrizeVO
.
getTaskId
());
timeControlPrizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
COUPON
.
key
);
prizeItems
.
add
(
timeControlPrizeItem
);
}
@ParamLog
(
"构建课程对象"
)
private
void
buildApp
(
SaveTaskPrizeVO
saveTaskPrizeVO
,
List
<
TimeControlPrizeItem
>
prizeItems
)
{
if
(
YesOrNoEnums
.
NO
.
getValue
().
equals
(
saveTaskPrizeVO
.
getHasApp
())){
return
;
}
TimeControlPrizeItem
timeControlPrizeItem
=
new
TimeControlPrizeItem
();
BeanUtils
.
copyProperties
(
saveTaskPrizeVO
.
getAppVO
(),
timeControlPrizeItem
);
timeControlPrizeItem
.
setTaskId
(
saveTaskPrizeVO
.
getTaskId
());
timeControlPrizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
APP
.
key
);
prizeItems
.
add
(
timeControlPrizeItem
);
}
@ParamLog
(
"构建奖状对象"
)
private
void
buildCertificate
(
SaveTaskPrizeVO
saveTaskPrizeVO
,
List
<
TimeControlPrizeItem
>
prizeItems
)
{
if
(
YesOrNoEnums
.
NO
.
getValue
().
equals
(
saveTaskPrizeVO
.
getHasCertificate
())){
return
;
}
SaveCertificateVO
certificateVO
=
saveTaskPrizeVO
.
getCertificateVO
();
if
(
StringUtil
.
isEmpty
(
certificateVO
.
getCertificateTitle
())
||
StringUtil
.
isEmpty
(
certificateVO
.
getCertificateUser
()))
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"请填写完整的奖状信息!"
);
}
TimeControlPrizeItem
timeControlPrizeItem
=
new
TimeControlPrizeItem
();
BeanUtils
.
copyProperties
(
certificateVO
,
timeControlPrizeItem
);
timeControlPrizeItem
.
setTaskId
(
saveTaskPrizeVO
.
getTaskId
());
timeControlPrizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
CERTIFICATE
.
key
);
prizeItems
.
add
(
timeControlPrizeItem
);
}
@ParamLog
(
"查询累计奖励"
)
@Override
public
QueryPrizeVO
getPrize4Task
(
Integer
taskId
)
{
if
(
null
==
taskId
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"taskId不能为空"
);
}
QueryPrizeVO
prizeVO
=
new
QueryPrizeVO
();
TimeControlTaskPrize
timeControlTaskPrize
=
taskPrizeMapper
.
getByTaskId
(
taskId
,
TaskPrizeTypeEnum
.
GRAND_TOTAL
.
key
);
if
(
timeControlTaskPrize
==
null
||
timeControlTaskPrize
.
getId
()
==
0
){
return
prizeVO
;
}
BeanUtils
.
copyProperties
(
timeControlTaskPrize
,
prizeVO
);
//获取奖励
this
.
fillPrizeItem
(
prizeVO
);
return
prizeVO
;
}
@Override
@ParamLog
(
value
=
"获取单次任务奖励"
,
isAfterReturn
=
false
)
public
QueryPrizeVO
getPrize4TaskItem
(
Integer
taskItemId
)
{
if
(
null
==
taskItemId
){
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"taskItemId不能为空"
);
}
QueryPrizeVO
prizeVO
=
new
QueryPrizeVO
();
TimeControlTaskPrize
timeControlTaskPrize
=
taskPrizeMapper
.
selectByTaskItemId
(
taskItemId
);
if
(
null
==
timeControlTaskPrize
||
null
==
timeControlTaskPrize
.
getId
()){
return
prizeVO
;
}
BeanUtils
.
copyProperties
(
timeControlTaskPrize
,
prizeVO
);
//获取奖励
this
.
fillPrizeItem
(
prizeVO
);
return
prizeVO
;
}
@Override
@ParamLog
(
"保存单次任务奖励"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
savePrize4TaskItem
(
SavePrize4TaskItemVO
vo
)
{
TimeControlTaskPrize
timeControlTaskPrize
=
SavePrize4TaskItemVO
.
valueToTaskPrize
(
vo
);
List
<
TimeControlPrizeItem
>
prizeItems
=
new
ArrayList
<>();
//要删除的奖励类型
List
<
Integer
>
deleteTypes
=
new
ArrayList
<>();
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
vo
.
getHasCoupon
())){
Optional
.
ofNullable
(
vo
.
getCoupon
()).
orElseThrow
(()
->
new
BookBizException
(
BookBizException
.
ERROR
,
"未设置优惠券"
));
TimeControlPrizeItem
couponPrizeItem
=
PrizeCouponRequestVO
.
valueToPrizeItem
(
vo
);
prizeItems
.
add
(
couponPrizeItem
);
deleteTypes
.
add
(
couponPrizeItem
.
getPrizeType
());
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
vo
.
getHasApp
())){
Optional
.
ofNullable
(
vo
.
getApp
()).
orElseThrow
(()
->
new
BookBizException
(
BookBizException
.
ERROR
,
"未设置课程"
));
TimeControlPrizeItem
appPrizeItem
=
AppRequestVO
.
valueToPrizeItem
(
vo
);
prizeItems
.
add
(
appPrizeItem
);
deleteTypes
.
add
(
appPrizeItem
.
getPrizeType
());
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
vo
.
getHasCertificate
())){
Optional
.
ofNullable
(
vo
.
getCertificate
()).
orElseThrow
(()
->
new
BookBizException
(
BookBizException
.
ERROR
,
"未设置证书"
));
TimeControlPrizeItem
certificatePrizeItem
=
CertificateRequestVO
.
valueToPrizeItem
(
vo
);
prizeItems
.
add
(
certificatePrizeItem
);
deleteTypes
.
add
(
certificatePrizeItem
.
getPrizeType
());
}
taskPrizeMapper
.
deleteByTaskItemId
(
vo
.
getTaskItemId
());
taskPrizeMapper
.
insert
(
timeControlTaskPrize
);
if
(
deleteTypes
.
size
()
==
0
){
return
;
}
prizeItems
=
prizeItems
.
stream
().
peek
(
item
->
item
.
setPrizeId
(
timeControlTaskPrize
.
getId
())).
collect
(
Collectors
.
toList
());
taskPrizeItemMapper
.
deleteByTaskItemId
(
vo
.
getTaskItemId
(),
deleteTypes
);
taskPrizeItemMapper
.
batchInsert
(
prizeItems
);
}
@Override
public
String
downloadCertificate
(
Integer
id
,
Integer
type
)
{
TimeControlTaskPrize
taskPrize
=
taskPrizeMapper
.
getByType
(
id
,
type
);
if
(
taskPrize
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"保存奖状设置后才可下载"
);
}
List
<
TimeControlPrizeItem
>
timeControlPrizeItems
=
taskPrizeItemMapper
.
listByPrizeId
(
taskPrize
.
getId
());
if
(!
ListUtils
.
isEmpty
(
timeControlPrizeItems
))
{
for
(
TimeControlPrizeItem
timeControlPrizeItem
:
timeControlPrizeItems
)
{
if
(
timeControlPrizeItem
.
getPrizeType
().
equals
(
TaskPrizeItemTypeEnum
.
CERTIFICATE
.
key
))
{
return
downloadUrl
(
timeControlPrizeItem
,
null
);
}
}
}
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"保存奖状设置后才可下载"
);
}
public
String
downloadUrl
(
TimeControlPrizeItem
timeControlPrizeItem
,
String
wxUserId
)
{
//发送奖状
String
fFileUrl
=
timeControlPrizeItem
.
getCertificateBaseUrl
();
fFileUrl
=
fFileUrl
.
replace
(
"//oss."
,
"//file."
);
try
{
//准备画板
BufferedImage
bg
;
bg
=
ImageIO
.
read
(
new
URL
(
fFileUrl
));
BufferedImage
bg1
=
new
BufferedImage
(
bg
.
getWidth
(),
bg
.
getHeight
(),
BufferedImage
.
TYPE_3BYTE_BGR
);
Graphics2D
g
=
bg1
.
createGraphics
();
g
.
drawImage
(
bg
.
getScaledInstance
(
bg
.
getWidth
(),
bg
.
getHeight
(),
Image
.
SCALE_DEFAULT
),
0
,
0
,
null
);
g
.
setRenderingHint
(
RenderingHints
.
KEY_ANTIALIASING
,
RenderingHints
.
VALUE_ANTIALIAS_ON
);
String
name
=
"xxx"
;
if
(
null
!=
wxUserId
)
{
GroupUserDTO
wxUserInfoByWxUserId
=
wechatGroupConsr
.
getWxUserInfoByWxUserId
(
wxUserId
);
name
=
wxUserInfoByWxUserId
.
getNickName
();
}
//绘制昵称
name
=
"亲爱的"
+
name
+
":"
;
g
.
setColor
(
new
Color
(
102
,
102
,
102
));
Font
font
=
new
Font
(
"黑体"
,
Font
.
BOLD
,
16
);
g
.
setFont
(
font
);
g
.
drawString
(
name
,
23
,
85
);
//绘制文案
String
certificateTitle
=
timeControlPrizeItem
.
getCertificateTitle
();
int
length
=
certificateTitle
.
length
();
if
(
length
>
33
)
{
g
.
drawString
(
timeControlPrizeItem
.
getCertificateTitle
().
substring
(
0
,
16
),
40
,
115
);
g
.
drawString
(
timeControlPrizeItem
.
getCertificateTitle
().
substring
(
16
,
33
),
23
,
138
);
g
.
drawString
(
timeControlPrizeItem
.
getCertificateTitle
().
substring
(
33
),
23
,
161
);
}
else
if
(
length
>
16
)
{
g
.
drawString
(
timeControlPrizeItem
.
getCertificateTitle
().
substring
(
0
,
16
),
40
,
115
);
g
.
drawString
(
timeControlPrizeItem
.
getCertificateTitle
().
substring
(
16
),
23
,
138
);
}
else
{
g
.
drawString
(
timeControlPrizeItem
.
getCertificateTitle
(),
40
,
115
);
}
//绘制日期
Calendar
cal
=
Calendar
.
getInstance
();
cal
.
setTime
(
new
Date
());
Integer
year
=
cal
.
get
(
Calendar
.
YEAR
);
Integer
month
=
cal
.
get
(
Calendar
.
MONTH
)
+
1
;
Integer
day
=
cal
.
get
(
Calendar
.
DATE
);
g
.
drawString
(
year
+
"年"
+
month
+
"月"
+
day
+
"日"
,
180
,
215
);
//绘制落款
String
loan
=
timeControlPrizeItem
.
getCertificateUser
();
g
.
setColor
(
new
Color
(
102
,
102
,
102
));
g
.
setFont
(
font
);
FontMetrics
fm
=
g
.
getFontMetrics
(
font
);
int
textWidth
=
fm
.
stringWidth
(
loan
);
int
x
=
bg
.
getWidth
()
-
textWidth
-
20
;
g
.
drawString
(
loan
,
x
,
190
);
ByteArrayOutputStream
os
=
new
ByteArrayOutputStream
();
ImageIO
.
write
(
bg1
,
ImageTypeEnum
.
JPG
.
value
,
os
);
UploadResultInfo
uploadResultInfo
=
OssUtils
.
uploadFileByte
(
os
.
toByteArray
(),
UUIDUitl
.
taskName
(),
ImageTypeEnum
.
JPG
.
value
);
os
.
close
();
String
url
=
uploadResultInfo
==
null
?
null
:
uploadResultInfo
.
getUrl
();
LOGGER
.
info
(
"上传后的地址:"
+
url
);
if
(
url
!=
null
)
{
url
=
url
.
replace
(
"//oss."
,
"//file."
);
return
url
;
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"生成奖状失败:"
+
e
.
getMessage
(),
e
);
}
return
null
;
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
createPrize4TaskItem
(
CreatePrize4TaskItemVO
createPrize4TaskItemVO
)
{
Integer
taskItemId
=
createPrize4TaskItemVO
.
getTaskItemId
();
TimeControlTaskItem
timeControlTaskItem
=
taskItemMapper
.
selectByPrimaryKey
(
taskItemId
);
if
(
null
==
timeControlTaskItem
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"任务不存在!"
);
}
Integer
taskId
=
timeControlTaskItem
.
getTaskId
();
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
if
(
null
==
timeControlTask
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"任务不存在!"
);
}
List
<
TimeControlPrizeItem
>
prizeItemList
=
new
ArrayList
<>();
//参数校验
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
createPrize4TaskItemVO
.
getHasCoupon
()))
{
CouponVO
couponVO
=
createPrize4TaskItemVO
.
getCouponVO
();
if
(
StringUtil
.
isEmpty
(
couponVO
.
getCouponTitle
())
||
StringUtil
.
isEmpty
(
couponVO
.
getCouponUrl
()))
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"请填写完整的优惠券信息!"
);
}
TimeControlPrizeItem
prizeItem
=
new
TimeControlPrizeItem
();
BeanUtils
.
copyProperties
(
couponVO
,
prizeItem
);
prizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
COUPON
.
key
);
prizeItemList
.
add
(
prizeItem
);
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
createPrize4TaskItemVO
.
getHasCertificate
()))
{
CreateCertificateVO
createCertificateVO
=
createPrize4TaskItemVO
.
getCreateCertificateVO
();
if
(
StringUtil
.
isEmpty
(
createCertificateVO
.
getCertificateTitle
())
||
StringUtil
.
isEmpty
(
createCertificateVO
.
getCertificateUser
()))
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"请填写完整的奖状信息!"
);
}
TimeControlPrizeItem
prizeItem
=
new
TimeControlPrizeItem
();
BeanUtils
.
copyProperties
(
createCertificateVO
,
prizeItem
);
prizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
CERTIFICATE
.
key
);
prizeItemList
.
add
(
prizeItem
);
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
createPrize4TaskItemVO
.
getHasApp
()))
{
CreateAppVO
createAppVO
=
createPrize4TaskItemVO
.
getCreateAppVO
();
TimeControlPrizeItem
prizeItem
=
new
TimeControlPrizeItem
();
BeanUtils
.
copyProperties
(
createAppVO
,
prizeItem
);
prizeItem
.
setPrizeType
(
TaskPrizeItemTypeEnum
.
APP
.
key
);
prizeItemList
.
add
(
prizeItem
);
}
TimeControlTaskPrize
taskPrize
=
TimeControlTaskPrize
.
builder
().
taskId
(
taskId
).
taskItemId
(
taskItemId
).
type
(
TaskPrizeTypeEnum
.
SINGLE
.
key
)
.
totalPrizeNum
(
0
).
hasCoupon
(
createPrize4TaskItemVO
.
getHasCoupon
()).
hasApp
(
createPrize4TaskItemVO
.
getHasApp
())
.
hasCertificate
(
createPrize4TaskItemVO
.
getHasCertificate
()).
build
();
taskPrizeMapper
.
insert
(
taskPrize
);
Integer
prizeId
=
taskPrize
.
getId
();
if
(!
ListUtils
.
isEmpty
(
prizeItemList
))
{
prizeItemList
.
forEach
(
timeControlPrizeItem
->
{
timeControlPrizeItem
.
setTaskId
(
taskId
);
timeControlPrizeItem
.
setTaskItemId
(
taskItemId
);
timeControlPrizeItem
.
setPrizeId
(
prizeId
);
});
}
taskPrizeItemMapper
.
batchInsert
(
prizeItemList
);
return
prizeId
;
}
@ParamLog
(
"填充任务奖励item"
)
private
void
fillPrizeItem
(
QueryPrizeVO
prizeVO
){
List
<
TimeControlPrizeItem
>
prizeItems
=
taskPrizeItemMapper
.
listByPrizeId
(
prizeVO
.
getId
());
if
(
ListUtils
.
isEmpty
(
prizeItems
)){
return
;
}
for
(
TimeControlPrizeItem
prizeItem
:
prizeItems
){
if
(
TaskPrizeItemTypeEnum
.
COUPON
.
key
.
equals
(
prizeItem
.
getPrizeType
())){
QueryCouponVO
queryCouponVO
=
new
QueryCouponVO
();
BeanUtils
.
copyProperties
(
prizeItem
,
queryCouponVO
);
prizeVO
.
setQueryCouponVO
(
queryCouponVO
);
}
else
if
(
TaskPrizeItemTypeEnum
.
APP
.
key
.
equals
(
prizeItem
.
getPrizeType
())){
QueryAppVO
queryAppVO
=
new
QueryAppVO
();
BeanUtils
.
copyProperties
(
prizeItem
,
queryAppVO
);
fillApp
(
queryAppVO
);
prizeVO
.
setQueryAppVO
(
queryAppVO
);
}
else
if
(
TaskPrizeItemTypeEnum
.
CERTIFICATE
.
key
.
equals
(
prizeItem
.
getPrizeType
())){
QueryCertificateVO
queryCertificateVO
=
new
QueryCertificateVO
();
BeanUtils
.
copyProperties
(
prizeItem
,
queryCertificateVO
);
prizeVO
.
setQueryCertificateVO
(
queryCertificateVO
);
}
}
}
@ParamLog
(
"填充APP详情"
)
private
void
fillApp
(
QueryAppVO
queryAppVO
)
{
if
(
NumberUtil
.
isNumber
(
queryAppVO
.
getServeId
())
&&
queryAppVO
.
getServeId
()
>
0
&&
AppAndProductTypeEnum
.
APP
.
value
.
equals
(
queryAppVO
.
getServeType
())){
AppDto
appDto
=
appConsr
.
getBaseById
(
queryAppVO
.
getServeId
());
if
(
appDto
!=
null
){
queryAppVO
.
setServePic
(
appDto
.
getSquareImg
());
queryAppVO
.
setServeName
(
appDto
.
getTitle
());
queryAppVO
.
setServeTypeCode
(
appDto
.
getTypeCode
());
queryAppVO
.
setServeTypeName
(
appDto
.
getTypeName
());
}
}
}
@Override
public
List
<
ReplyMessageBaseDto
>
listTaskItemPrize
(
Integer
taskId
)
{
List
<
ReplyMessageBaseDto
>
list
=
taskBiz
.
listTaskItemDay
(
taskId
);
if
(
ListUtils
.
isEmpty
(
list
)){
return
new
ArrayList
<>();
}
fillConfigState
(
list
);
return
list
;
}
@ParamLog
(
"填充是否可配置"
)
private
void
fillConfigState
(
List
<
ReplyMessageBaseDto
>
list
)
{
List
<
Integer
>
taskItemIds
=
list
.
stream
().
filter
(
a
->
a
.
getConfigState
()
==
2
).
map
(
a
->
a
.
getId
()).
distinct
().
collect
(
Collectors
.
toList
());
//在配置表的
List
<
Integer
>
configItemId
=
taskPrizeMapper
.
getConfigItemId
(
taskItemIds
);
//在配置表但是开关都是关闭的
if
(!
ListUtils
.
isEmpty
(
configItemId
)){
List
<
Integer
>
allCloseItemId
=
taskPrizeMapper
.
getAllCloseItemId
(
configItemId
);
if
(!
ListUtils
.
isEmpty
(
allCloseItemId
)){
configItemId
.
removeAll
(
allCloseItemId
);
}
for
(
ReplyMessageBaseDto
replyMessageBaseDto
:
list
)
{
if
(!
ListUtils
.
isEmpty
(
configItemId
)){
if
(
replyMessageBaseDto
.
getConfigState
()==
2
&&
configItemId
.
contains
(
replyMessageBaseDto
.
getId
())){
replyMessageBaseDto
.
setConfigState
(
1
);
}
}
}
}
}
}
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 {
...
@@ -34,4 +34,6 @@ public class TimeControlTaskSend implements Serializable {
private
Integer
completeState
;
private
Integer
completeState
;
private
String
sendHour
;
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 {
...
@@ -61,4 +61,6 @@ public interface TimeControlTaskSendMapper {
List
<
SubscribeTaskUserDTO
>
getTaskNoCompletedCount
(
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskId"
)
Integer
taskId
);
List
<
SubscribeTaskUserDTO
>
getTaskNoCompletedCount
(
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskId"
)
Integer
taskId
);
Integer
getNoCompletedCount
(
@Param
(
"subscribeId"
)
Integer
subscribeId
);
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
<?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.TaskPrizeItemMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.timecontrol.entity.TimeControlPrizeItem"
>
<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=
"prize_id"
property=
"prizeId"
jdbcType=
"INTEGER"
/>
<result
column=
"prize_type"
property=
"prizeType"
jdbcType=
"INTEGER"
/>
<result
column=
"coupon_url"
property=
"couponUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"coupon_title"
property=
"couponTitle"
jdbcType=
"VARCHAR"
/>
<result
column=
"content"
property=
"content"
jdbcType=
"VARCHAR"
/>
<result
column=
"pic_url"
property=
"picUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"serve_id"
property=
"serveId"
jdbcType=
"INTEGER"
/>
<result
column=
"serve_type"
property=
"serveType"
jdbcType=
"VARCHAR"
/>
<result
column=
"link_url"
property=
"linkUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"description"
property=
"description"
jdbcType=
"VARCHAR"
/>
<result
column=
"certificate_title"
property=
"certificateTitle"
jdbcType=
"VARCHAR"
/>
<result
column=
"certificate_user"
property=
"certificateUser"
jdbcType=
"VARCHAR"
/>
<result
column=
"certificate_base_url"
property=
"certificateBaseUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, task_id, task_item_id, prize_id, prize_type, coupon_url, coupon_title, content,
pic_url, serve_id, serve_type, link_url, description, certificate_title, certificate_user,
certificate_base_url, create_time
</sql>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize_item
where id = #{id,jdbcType=INTEGER}
</select>
<select
id=
"getByPrizeId"
resultMap=
"BaseResultMap"
parameterType=
"map"
>
SELECT
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize_item
WHERE prize_id = #{prizeId,jdbcType=INTEGER} AND prize_type = #{prizeType,jdbcType=INTEGER}
ORDER BY id DESC
LIMIT 0,1
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
delete from time_control_task_prize_item
where id = #{id,jdbcType=INTEGER}
</delete>
<delete
id=
"deleteByPrizeId"
>
delete from time_control_task_prize_item
where prize_id = #{prizeId,jdbcType=INTEGER}
</delete>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlPrizeItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_prize_item (task_id, task_item_id,
prize_id, prize_type, coupon_url,
coupon_title, content, pic_url,
serve_id, serve_type, link_url,
description, certificate_title, certificate_user,
certificate_base_url, create_time)
values (#{taskId,jdbcType=INTEGER}, #{taskItemId,jdbcType=INTEGER},
#{prizeId,jdbcType=INTEGER}, #{prizeType,jdbcType=INTEGER}, #{couponUrl,jdbcType=VARCHAR},
#{couponTitle,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, #{picUrl,jdbcType=VARCHAR},
#{serveId,jdbcType=INTEGER}, #{serveType,jdbcType=VARCHAR}, #{linkUrl,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR}, #{certificateTitle,jdbcType=VARCHAR}, #{certificateUser,jdbcType=VARCHAR},
#{certificateBaseUrl,jdbcType=VARCHAR}, NOW())
</insert>
<insert
id=
"insertSelective"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlPrizeItem"
>
insert into time_control_task_prize_item
<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=
"prizeId != null"
>
prize_id,
</if>
<if
test=
"prizeType != null"
>
prize_type,
</if>
<if
test=
"couponUrl != null"
>
coupon_url,
</if>
<if
test=
"couponTitle != null"
>
coupon_title,
</if>
<if
test=
"content != null"
>
content,
</if>
<if
test=
"picUrl != null"
>
pic_url,
</if>
<if
test=
"serveId != null"
>
serve_id,
</if>
<if
test=
"serveType != null"
>
serve_type,
</if>
<if
test=
"linkUrl != null"
>
link_url,
</if>
<if
test=
"description != null"
>
description,
</if>
<if
test=
"certificateTitle != null"
>
certificate_title,
</if>
<if
test=
"certificateUser != null"
>
certificate_user,
</if>
<if
test=
"certificateBaseUrl != null"
>
certificate_base_url,
</if>
<if
test=
"createTime != null"
>
create_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=
"prizeId != null"
>
#{prizeId,jdbcType=INTEGER},
</if>
<if
test=
"prizeType != null"
>
#{prizeType,jdbcType=INTEGER},
</if>
<if
test=
"couponUrl != null"
>
#{couponUrl,jdbcType=VARCHAR},
</if>
<if
test=
"couponTitle != null"
>
#{couponTitle,jdbcType=VARCHAR},
</if>
<if
test=
"content != null"
>
#{content,jdbcType=VARCHAR},
</if>
<if
test=
"picUrl != null"
>
#{picUrl,jdbcType=VARCHAR},
</if>
<if
test=
"serveId != null"
>
#{serveId,jdbcType=INTEGER},
</if>
<if
test=
"serveType != null"
>
#{serveType,jdbcType=VARCHAR},
</if>
<if
test=
"linkUrl != null"
>
#{linkUrl,jdbcType=VARCHAR},
</if>
<if
test=
"description != null"
>
#{description,jdbcType=VARCHAR},
</if>
<if
test=
"certificateTitle != null"
>
#{certificateTitle,jdbcType=VARCHAR},
</if>
<if
test=
"certificateUser != null"
>
#{certificateUser,jdbcType=VARCHAR},
</if>
<if
test=
"certificateBaseUrl != null"
>
#{certificateBaseUrl,jdbcType=VARCHAR},
</if>
<if
test=
"createTime != null"
>
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update
id=
"updateByPrimaryKeySelective"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlPrizeItem"
>
update time_control_task_prize_item
<set
>
<if
test=
"taskId != null"
>
task_id = #{taskId,jdbcType=INTEGER},
</if>
<if
test=
"taskItemId != null"
>
task_item_id = #{taskItemId,jdbcType=INTEGER},
</if>
<if
test=
"prizeId != null"
>
prize_id = #{prizeId,jdbcType=INTEGER},
</if>
<if
test=
"prizeType != null"
>
prize_type = #{prizeType,jdbcType=INTEGER},
</if>
<if
test=
"couponUrl != null"
>
coupon_url = #{couponUrl,jdbcType=VARCHAR},
</if>
<if
test=
"couponTitle != null"
>
coupon_title = #{couponTitle,jdbcType=VARCHAR},
</if>
<if
test=
"content != null"
>
content = #{content,jdbcType=VARCHAR},
</if>
<if
test=
"picUrl != null"
>
pic_url = #{picUrl,jdbcType=VARCHAR},
</if>
<if
test=
"serveId != null"
>
serve_id = #{serveId,jdbcType=INTEGER},
</if>
<if
test=
"serveType != null"
>
serve_type = #{serveType,jdbcType=VARCHAR},
</if>
<if
test=
"linkUrl != null"
>
link_url = #{linkUrl,jdbcType=VARCHAR},
</if>
<if
test=
"description != null"
>
description = #{description,jdbcType=VARCHAR},
</if>
<if
test=
"certificateTitle != null"
>
certificate_title = #{certificateTitle,jdbcType=VARCHAR},
</if>
<if
test=
"certificateUser != null"
>
certificate_user = #{certificateUser,jdbcType=VARCHAR},
</if>
<if
test=
"certificateBaseUrl != null"
>
certificate_base_url = #{certificateBaseUrl,jdbcType=VARCHAR},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update
id=
"updateByPrimaryKey"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlPrizeItem"
>
update time_control_task_prize_item
set task_id = #{taskId,jdbcType=INTEGER},
task_item_id = #{taskItemId,jdbcType=INTEGER},
prize_id = #{prizeId,jdbcType=INTEGER},
prize_type = #{prizeType,jdbcType=INTEGER},
coupon_url = #{couponUrl,jdbcType=VARCHAR},
coupon_title = #{couponTitle,jdbcType=VARCHAR},
content = #{content,jdbcType=VARCHAR},
pic_url = #{picUrl,jdbcType=VARCHAR},
serve_id = #{serveId,jdbcType=INTEGER},
serve_type = #{serveType,jdbcType=VARCHAR},
link_url = #{linkUrl,jdbcType=VARCHAR},
description = #{description,jdbcType=VARCHAR},
certificate_title = #{certificateTitle,jdbcType=VARCHAR},
certificate_user = #{certificateUser,jdbcType=VARCHAR},
certificate_base_url = #{certificateBaseUrl,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlPrizeItem"
>
insert into time_control_task_prize_item (task_id, task_item_id,
prize_id, prize_type, coupon_url,
coupon_title, content, pic_url,
serve_id, serve_type, link_url,
description, certificate_title, certificate_user,
certificate_base_url, create_time)
values
<foreach
collection=
"prizeItemList"
separator=
","
item=
"item"
>
(#{item.taskId}, #{item.taskItemId}, #{item.prizeId}, #{item.prizeType}, #{item.couponUrl}, #{item.couponTitle},
#{item.content}, #{item.picUrl}, #{item.serveId}, #{item.serveType}, #{item.linkUrl}, #{item.description},
#{item.certificateTitle}, #{item.certificateUser}, #{item.certificateBaseUrl}, now())
</foreach>
</insert>
<select
id=
"listByPrizeId"
parameterType=
"int"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_prize_item where prize_id = #{prizeId}
</select>
<delete
id=
"deleteByTaskItemId"
parameterType=
"map"
>
delete from time_control_task_prize_item where task_item_id = #{taskItemId}
<if
test=
"deleteTypes != null and deleteTypes.size > 0"
>
and prize_type in
<foreach
collection=
"deleteTypes"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
</delete>
</mapper>
\ No newline at end of file
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 @@
...
@@ -57,7 +57,8 @@
</select>
</select>
<select
id=
"listTaskItemDay"
resultType=
"com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto"
>
<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}
from time_control_task_item where task_id = #{taskId}
order by startDay asc, send_hour asc
order by startDay asc, send_hour asc
</select>
</select>
...
...
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSendMapper.xml
View file @
6b699caa
...
@@ -11,10 +11,12 @@
...
@@ -11,10 +11,12 @@
<result
column=
"send_state"
property=
"sendState"
jdbcType=
"INTEGER"
/>
<result
column=
"send_state"
property=
"sendState"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"send_day"
property=
"sendDay"
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>
</resultMap>
<sql
id=
"Base_Column_List"
>
<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>
</sql>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
...
@@ -79,7 +81,7 @@
...
@@ -79,7 +81,7 @@
</update>
</update>
<select
id=
"getById"
resultMap=
"BaseResultMap"
>
<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
from time_control_task_send
where id = #{taskSendId}
where id = #{taskSendId}
</select>
</select>
...
@@ -229,4 +231,11 @@
...
@@ -229,4 +231,11 @@
WHERE subscribe_id =#{subscribeId}
WHERE subscribe_id =#{subscribeId}
and complete_state !=1 AND send_state !=2
and complete_state !=1 AND send_state !=2
</select>
</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>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSubscribeMapper.xml
View file @
6b699caa
...
@@ -23,12 +23,12 @@
...
@@ -23,12 +23,12 @@
</update>
</update>
<update
id=
"unSubscribeTask"
>
<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}
where id = #{id}
</update>
</update>
<update
id=
"unSubscribeTaskByTaskId"
>
<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}
where task_id = #{taskId}
</update>
</update>
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
</select>
</select>
<select
id=
"getById"
resultMap=
"BaseResultMap"
>
<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}
from time_control_task_subscribe WHERE id = #{subscribeId}
</select>
</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