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
1f8b34a8
Commit
1f8b34a8
authored
Feb 13, 2020
by
章春雨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-1002334' into 'master'
1002334 时间管理的发送记录与完成情况功能 See merge request rays/pcloud-book!401
parents
6287c76d
c79874b8
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
920 additions
and
12 deletions
+920
-12
ReplyMessageBaseDto.java
.../com/pcloud/book/timecontrol/dto/ReplyMessageBaseDto.java
+2
-0
ReplyMessageDto.java
...java/com/pcloud/book/timecontrol/dto/ReplyMessageDto.java
+2
-0
SubscribeTaskUserDTO.java
...com/pcloud/book/timecontrol/dto/SubscribeTaskUserDTO.java
+46
-0
TaskCompletedDto.java
...ava/com/pcloud/book/timecontrol/dto/TaskCompletedDto.java
+41
-0
TaskItemSendDto.java
...java/com/pcloud/book/timecontrol/dto/TaskItemSendDto.java
+54
-0
TaskSendUserDto.java
...java/com/pcloud/book/timecontrol/dto/TaskSendUserDto.java
+62
-0
TodayTaskSendDto.java
...ava/com/pcloud/book/timecontrol/dto/TodayTaskSendDto.java
+25
-0
TaskCompletedBiz.java
...ava/com/pcloud/book/timecontrol/biz/TaskCompletedBiz.java
+28
-0
TaskBizImpl.java
...ava/com/pcloud/book/timecontrol/biz/impl/TaskBizImpl.java
+1
-1
TaskCompletedBizImpl.java
...cloud/book/timecontrol/biz/impl/TaskCompletedBizImpl.java
+219
-0
TaskSubscribeBizImpl.java
...cloud/book/timecontrol/biz/impl/TaskSubscribeBizImpl.java
+2
-1
TimeControlTaskItem.java
...m/pcloud/book/timecontrol/entity/TimeControlTaskItem.java
+3
-0
TimeControlTaskSend.java
...m/pcloud/book/timecontrol/entity/TimeControlTaskSend.java
+2
-0
TimeControlStatisFacadeImpl.java
.../timecontrol/facade/impl/TimeControlStatisFacadeImpl.java
+109
-0
TimeControlReplyMessageMapper.java
...ook/timecontrol/mapper/TimeControlReplyMessageMapper.java
+4
-0
TimeControlTaskItemMapper.java
...ud/book/timecontrol/mapper/TimeControlTaskItemMapper.java
+3
-0
TimeControlTaskMapper.java
...pcloud/book/timecontrol/mapper/TimeControlTaskMapper.java
+14
-2
TimeControlTaskSendMapper.java
...ud/book/timecontrol/mapper/TimeControlTaskSendMapper.java
+22
-1
TimeControlTaskSubscribeMapper.java
...ok/timecontrol/mapper/TimeControlTaskSubscribeMapper.java
+0
-1
PcloudRobotClassify.Mapper.xml
...urces/mapper/pcloudkeyword/PcloudRobotClassify.Mapper.xml
+1
-1
TimeControlReplyMessageMapper.xml
...rces/mapper/timecontrol/TimeControlReplyMessageMapper.xml
+22
-0
TimeControlTaskItemMapper.xml
...esources/mapper/timecontrol/TimeControlTaskItemMapper.xml
+12
-1
TimeControlTaskMapper.xml
...in/resources/mapper/timecontrol/TimeControlTaskMapper.xml
+103
-0
TimeControlTaskSendMapper.xml
...esources/mapper/timecontrol/TimeControlTaskSendMapper.xml
+143
-4
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/ReplyMessageBaseDto.java
View file @
1f8b34a8
...
...
@@ -19,4 +19,6 @@ public class ReplyMessageBaseDto implements Serializable {
private
Integer
startDay
;
private
String
sendHour
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/ReplyMessageDto.java
View file @
1f8b34a8
...
...
@@ -34,4 +34,6 @@ public class ReplyMessageDto implements Serializable {
private
String
fileType
;
private
BigDecimal
size
;
private
Integer
taskItemId
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/SubscribeTaskUserDTO.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
com.pcloud.common.dto.BaseDto
;
import
lombok.Data
;
@Data
public
class
SubscribeTaskUserDTO
extends
BaseDto
{
/**
* 微信用户ID
*/
private
String
wxUserId
;
/**
* 昵称
*/
private
String
nickName
;
/**
* 头像
*/
private
String
headPic
;
/**
* 性别
*/
private
Integer
sex
;
private
Integer
taskItemCount
;
/**
* 任务已完成次数
*/
private
Integer
completedCount
;
/**
* 未完成次数
*/
private
Integer
noCompletedCount
;
/**
* 订阅状态(0-取消订阅 1-订阅 2-完成)
*/
private
Integer
subscribeState
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskCompletedDto.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* @date: 2020年01月30日 15:20
* @Author: Zcy
* @Descprition
*/
@Data
public
class
TaskCompletedDto
implements
Serializable
{
private
Integer
taskId
;
private
String
taskName
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
Integer
taskItemCount
;
private
Long
depLabelId
;
private
Long
purLabelId
;
private
Long
proLabelId
;
private
String
proLabelName
;
private
String
depLabelName
;
private
String
purLabelName
;
private
Integer
subscribePersonCount
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskItemSendDto.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
/**
* @Description:TODO
* @Author:zcy
* @Date:2020-01-31
* @Version:1.0
*/
@Data
public
class
TaskItemSendDto
implements
Serializable
{
private
Integer
id
;
private
Integer
taskId
;
private
String
taskName
;
private
Integer
taskItemId
;
private
String
robotWxId
;
private
String
robotName
;
private
Integer
startDay
;
private
Integer
finishConfirm
;
private
String
finishKeyWord
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
List
<
ReplyMessageDto
>
replyMessageList
;
private
Integer
sendState
;
private
Integer
sendPersonCount
;
private
Integer
bookId
;
private
String
bookName
;
private
String
isbn
;
private
String
serialNumber
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskSendUserDto.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @date: 2020年02月01日 21:04
* @Author: lihao
* @Descprition
*/
@Data
public
class
TaskSendUserDto
implements
Serializable
{
private
Integer
id
;
private
String
robotWxId
;
private
Integer
taskId
;
private
Integer
taskItemId
;
/**
* 微信用户ID
*/
private
String
wxUserId
;
/**
* 昵称
*/
private
String
nickName
;
/**
* 头像
*/
private
String
headPic
;
/**
* 性别
*/
private
Integer
sex
;
private
Long
depLabelId
;
private
Long
purLabelId
;
private
Long
proLabelId
;
private
String
proLabelName
;
private
String
depLabelName
;
private
String
purLabelName
;
private
Integer
hasCompleted
;
private
Integer
sendState
;
private
String
sendDay
;
private
String
sendHour
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TodayTaskSendDto.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @date: 2020年01月30日 15:20
* @Author: Zcy
* @Descprition
*/
@Data
public
class
TodayTaskSendDto
implements
Serializable
{
/**
* 今日消息已发条数
*/
private
Integer
todaySendCount
;
/**
* 今日消息待发条数
*/
private
Integer
todayNotSendCount
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/TaskCompletedBiz.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
biz
;
import
com.pcloud.book.timecontrol.dto.*
;
import
com.pcloud.common.page.PageBeanNew
;
import
java.util.List
;
/**
* @Description:TODO
* @Author:zcy
* @Date:2020-01-30
* @Version:1.0
*/
public
interface
TaskCompletedBiz
{
PageBeanNew
<
TaskCompletedDto
>
listTaskCompleted4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
taskName
,
Integer
proLabelId
,
Integer
depLabelId
,
Integer
purLabelId
);
PageBeanNew
<
SubscribeTaskUserDTO
>
listTaskSubscribeUser4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
search
,
Integer
taskId
,
Integer
subscribeType
);
PageBeanNew
<
TaskItemSendDto
>
listTaskItemSendRecord4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
startTime
,
String
endTime
,
String
robotWxId
,
String
taskName
,
String
sendContent
,
String
search
);
PageBeanNew
<
TaskSendUserDto
>
listTaskItemSendUser4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
Integer
taskItemId
,
String
search
,
String
robotWxId
);
TodayTaskSendDto
getTodayTaskSend
();
List
<
String
>
getTaskSendDateList
(
String
date
);
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskBizImpl.java
View file @
1f8b34a8
...
...
@@ -510,7 +510,7 @@ public class TaskBizImpl implements TaskBiz {
timeControlTaskSendMapper
.
updateSendState
(
taskSendId
,
TaskSendStateEnum
.
FINISH_SEND
.
getState
(),
1
);
//每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态
Integer
noCompletedItem
=
timeControlTaskSendMapper
.
getNoCompleted
Item
(
timeControlTaskSend
.
getTask
Id
());
Integer
noCompletedItem
=
timeControlTaskSendMapper
.
getNoCompleted
Count
(
timeControlTaskSend
.
getSubscribe
Id
());
if
(
noCompletedItem
==
0
){
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskCompletedBizImpl.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
biz
.
impl
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.timecontrol.biz.TaskBiz
;
import
com.pcloud.book.timecontrol.biz.TaskCompletedBiz
;
import
com.pcloud.book.timecontrol.biz.TaskSubscribeBiz
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageDto
;
import
com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO
;
import
com.pcloud.book.timecontrol.dto.TaskCompletedDto
;
import
com.pcloud.book.timecontrol.dto.TaskItemSendDto
;
import
com.pcloud.book.timecontrol.dto.TaskSendUserDto
;
import
com.pcloud.book.timecontrol.dto.TodayTaskSendDto
;
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.common.page.PageBeanNew
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.labelcenter.label.service.LabelService
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @date: 2020年01月30日 14:20
* @Author: Zcy
* @Descprition
*/
@Component
(
"taskCompletedBiz"
)
@Slf4j
public
class
TaskCompletedBizImpl
implements
TaskCompletedBiz
{
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
TaskCompletedBizImpl
.
class
);
@Autowired
private
TimeControlTaskMapper
taskMapper
;
@Autowired
private
TimeControlTaskItemMapper
taskItemMapper
;
@Autowired
private
TimeControlReplyMessageMapper
replyMessageMapper
;
@Autowired
private
TimeControlTaskSubscribeMapper
taskSubscribeMapper
;
@Autowired
private
TimeControlTaskSendMapper
timeControlTaskSendMapper
;
@Autowired
private
LabelService
labelService
;
@Autowired
private
TaskSubscribeBiz
taskSubscribeBiz
;
@Autowired
private
TaskBiz
taskBiz
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
//@Autowired
//private PcloudKeywordService pcloudKeywordService;
@Override
public
PageBeanNew
<
TaskCompletedDto
>
listTaskCompleted4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
taskName
,
Integer
proLabelId
,
Integer
depLabelId
,
Integer
purLabelId
)
{
List
<
TaskCompletedDto
>
list
=
new
ArrayList
<>();
Integer
count
=
taskMapper
.
getTaskCompletedCount
(
taskName
,
proLabelId
,
depLabelId
,
purLabelId
);
if
(
count
<=
0
)
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
list
=
taskMapper
.
listTaskCompleted4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
taskName
,
proLabelId
,
depLabelId
,
purLabelId
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
@Override
public
PageBeanNew
<
SubscribeTaskUserDTO
>
listTaskSubscribeUser4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
search
,
Integer
taskId
,
Integer
subscribeType
)
{
List
<
SubscribeTaskUserDTO
>
list
=
new
ArrayList
<>();
List
<
String
>
wxIds
=
new
ArrayList
<>();
if
(
StringUtil
.
isNotBlank
(
search
)){
wxIds
=
wechatGroupConsr
.
getByUserQuery
(
search
);
}
Integer
count
=
taskMapper
.
getSubscribeCount
(
search
,
taskId
,
subscribeType
,
wxIds
);
if
(
count
<=
0
)
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
//按照完成次数降序
list
=
taskMapper
.
listTaskSubscribeUser4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
search
,
taskId
,
subscribeType
,
wxIds
);
if
(
ListUtils
.
isEmpty
(
list
)){
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
fillUserCompletedList
(
taskId
,
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
private
void
fillUserCompletedList
(
Integer
taskId
,
List
<
SubscribeTaskUserDTO
>
list
)
{
List
<
String
>
wxIdList
=
list
.
stream
().
map
(
a
->
a
.
getWxUserId
()).
distinct
().
collect
(
Collectors
.
toList
());
//未完成次数
List
<
SubscribeTaskUserDTO
>
taskUserSendList
=
timeControlTaskSendMapper
.
getTaskNoCompletedCount
(
wxIdList
,
taskId
);
Map
<
String
,
Integer
>
noCompletedMap
=
new
HashMap
<>();
if
(!
ListUtils
.
isEmpty
(
taskUserSendList
)){
noCompletedMap
=
taskUserSendList
.
stream
().
collect
(
Collectors
.
toMap
(
a
->
a
.
getWxUserId
(),
a
->
a
.
getNoCompletedCount
(),
(
k1
,
k2
)
->
k2
));
}
Map
<
String
,
GroupUserDTO
>
userDTOMap
=
wechatGroupConsr
.
mapWxUserInfoByWxIdList
(
wxIdList
);
for
(
SubscribeTaskUserDTO
subscribeTaskUserDTO
:
list
)
{
//填充未完成次数
if
(
MapUtils
.
isNotEmpty
(
noCompletedMap
)
&&
noCompletedMap
.
containsKey
(
subscribeTaskUserDTO
.
getWxUserId
())){
Integer
noCompletedCount
=
noCompletedMap
.
get
(
subscribeTaskUserDTO
.
getWxUserId
());
subscribeTaskUserDTO
.
setNoCompletedCount
(
noCompletedCount
);
}
else
{
subscribeTaskUserDTO
.
setNoCompletedCount
(
0
);
}
//填充用户信息
if
(
MapUtils
.
isNotEmpty
(
userDTOMap
)
&&
userDTOMap
.
containsKey
(
subscribeTaskUserDTO
.
getWxUserId
())){
GroupUserDTO
groupUserDTO
=
userDTOMap
.
get
(
subscribeTaskUserDTO
.
getWxUserId
());
if
(
null
!=
groupUserDTO
){
subscribeTaskUserDTO
.
setNickName
(
groupUserDTO
.
getNickName
());
subscribeTaskUserDTO
.
setHeadPic
(
groupUserDTO
.
getHeadPic
());
subscribeTaskUserDTO
.
setSex
(
groupUserDTO
.
getSex
());
}
}
}
}
@Override
public
PageBeanNew
<
TaskItemSendDto
>
listTaskItemSendRecord4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
startTime
,
String
endTime
,
String
robotWxId
,
String
taskName
,
String
sendContent
,
String
search
)
{
List
<
TaskItemSendDto
>
list
=
new
ArrayList
<>();
Integer
count
=
timeControlTaskSendMapper
.
getTaskItemSendCount
(
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
);
if
(
count
<=
0
)
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
list
=
timeControlTaskSendMapper
.
listTaskItemSendRecord4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
);
log
.
info
(
"发送记录查询条数="
+
list
.
size
());
if
(
ListUtils
.
isEmpty
(
list
)){
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
fillSendRecordList
(
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
private
void
fillSendRecordList
(
List
<
TaskItemSendDto
>
list
)
{
//批量查询机器人信息
List
<
String
>
robotIdlist
=
list
.
stream
().
map
(
TaskItemSendDto:
:
getRobotWxId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
String
,
GroupUserDTO
>
robotMap
=
wechatGroupConsr
.
mapRobotInfoByIdList
(
robotIdlist
);
//批量查询发送内容
List
<
Integer
>
taskItemIdList
=
list
.
stream
().
map
(
TaskItemSendDto:
:
getTaskItemId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
ReplyMessageDto
>
replyMessageDtos
=
replyMessageMapper
.
list4TaskItemList
(
taskItemIdList
,
0
);
Map
<
Integer
,
List
<
ReplyMessageDto
>>
replyMap
=
new
HashMap
<>();
if
(!
ListUtils
.
isEmpty
(
replyMessageDtos
))
{
replyMap
=
replyMessageDtos
.
stream
().
collect
(
Collectors
.
groupingBy
(
ReplyMessageDto:
:
getTaskItemId
));
}
for
(
TaskItemSendDto
taskItemSendDto
:
list
)
{
if
(
MapUtils
.
isNotEmpty
(
robotMap
)
&&
robotMap
.
containsKey
(
taskItemSendDto
.
getRobotWxId
()))
{
GroupUserDTO
groupUserDTO
=
robotMap
.
get
(
taskItemSendDto
.
getRobotWxId
());
if
(
null
!=
groupUserDTO
)
{
taskItemSendDto
.
setRobotName
(
groupUserDTO
.
getNickName
());
}
}
if
(
MapUtils
.
isNotEmpty
(
replyMap
)
&&
replyMap
.
containsKey
(
taskItemSendDto
.
getTaskItemId
()))
{
List
<
ReplyMessageDto
>
replyMessageDtoList
=
replyMap
.
get
(
taskItemSendDto
.
getTaskItemId
());
taskItemSendDto
.
setReplyMessageList
(
replyMessageDtoList
);
}
}
}
@Override
public
PageBeanNew
<
TaskSendUserDto
>
listTaskItemSendUser4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
Integer
taskItemId
,
String
search
,
String
robotWxId
)
{
List
<
TaskSendUserDto
>
list
=
new
ArrayList
<>();
List
<
String
>
wxIds
=
new
ArrayList
<>();
if
(
StringUtil
.
isNotBlank
(
search
))
{
wxIds
=
wechatGroupConsr
.
getByUserQuery
(
search
);
}
Integer
count
=
timeControlTaskSendMapper
.
getTaskItemSendUserCount
(
wxIds
,
taskItemId
,
robotWxId
);
if
(
count
<=
0
)
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
list
=
timeControlTaskSendMapper
.
listTaskItemSendUser4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
wxIds
,
taskItemId
,
robotWxId
);
if
(
ListUtils
.
isEmpty
(
list
))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
List
<
String
>
wxIdList
=
list
.
stream
().
map
(
TaskSendUserDto:
:
getWxUserId
).
collect
(
Collectors
.
toList
());
Map
<
String
,
GroupUserDTO
>
userDTOMap
=
wechatGroupConsr
.
mapWxUserInfoByWxIdList
(
wxIdList
);
list
.
forEach
(
item
->
{
String
wxUserId
=
item
.
getWxUserId
();
if
(
userDTOMap
!=
null
&&
userDTOMap
.
get
(
wxUserId
)
!=
null
)
{
GroupUserDTO
groupUserDTO
=
userDTOMap
.
get
(
wxUserId
);
item
.
setNickName
(
groupUserDTO
.
getNickName
());
item
.
setHeadPic
(
groupUserDTO
.
getHeadPic
());
item
.
setSex
(
groupUserDTO
.
getSex
());
}
});
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
@Override
public
TodayTaskSendDto
getTodayTaskSend
()
{
TodayTaskSendDto
todayTaskSendDto
=
new
TodayTaskSendDto
();
Integer
todayTaskSendCount
=
timeControlTaskSendMapper
.
todayTaskSendCount
();
Integer
todayTaskNotSendCount
=
timeControlTaskSendMapper
.
todayTaskNotSendCount
();
todayTaskSendDto
.
setTodaySendCount
(
todayTaskSendCount
);
todayTaskSendDto
.
setTodayNotSendCount
(
todayTaskNotSendCount
);
return
todayTaskSendDto
;
}
@Override
public
List
<
String
>
getTaskSendDateList
(
String
date
)
{
List
<
String
>
taskSendDateList
=
timeControlTaskSendMapper
.
getTaskSendDateList
(
date
);
return
taskSendDateList
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskSubscribeBizImpl.java
View file @
1f8b34a8
...
...
@@ -153,6 +153,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
taskSend
.
setSendState
(
TaskSendStateEnum
.
WAIT_SEND
.
state
);
taskSend
.
setTaskItemId
(
item
.
getId
());
taskSend
.
setSendDay
(
DateUtils
.
getShortDateStr
(
DateUtils
.
addDay
(
new
Date
(),
item
.
getStartDay
())));
taskSend
.
setSendHour
(
item
.
getSendHour
());
taskSendList
.
add
(
taskSend
);
}
LOGGER
.
info
(
"111"
);
...
...
@@ -427,7 +428,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
//每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态
if
(
count
==
taskSendList
.
size
())
{
Integer
noCompletedItem
=
timeControlTaskSendMapper
.
getNoCompleted
Item
(
timeControlTaskSend
.
getTask
Id
());
Integer
noCompletedItem
=
timeControlTaskSendMapper
.
getNoCompleted
Count
(
timeControlTaskSend
.
getSubscribe
Id
());
if
(
noCompletedItem
==
0
)
{
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTaskItem.java
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.util.Date
;
public
class
TimeControlTaskItem
{
...
...
@@ -13,6 +15,7 @@ public class TimeControlTaskItem {
private
String
finishKeyWord
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
Date
updateTime
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTaskSend.java
View file @
1f8b34a8
...
...
@@ -32,4 +32,6 @@ public class TimeControlTaskSend implements Serializable {
private
Integer
sendState
;
private
Integer
completeState
;
private
String
sendHour
;
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/facade/impl/TimeControlStatisFacadeImpl.java
0 → 100644
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
facade
.
impl
;
import
com.pcloud.book.timecontrol.biz.TaskBiz
;
import
com.pcloud.book.timecontrol.biz.TaskCompletedBiz
;
import
com.pcloud.book.timecontrol.biz.TaskSubscribeBiz
;
import
com.pcloud.book.timecontrol.dto.*
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* @date: 2020年02月07日 12:52
* @Author: zy
* @Descprition
*/
@Api
(
value
=
"时间管理完成情况"
)
@RequestMapping
(
value
=
"/statis"
)
@RestController
(
"statisFacade"
)
public
class
TimeControlStatisFacadeImpl
{
@Autowired
private
TaskBiz
taskBiz
;
@Autowired
private
TaskSubscribeBiz
taskSubscribeBiz
;
@Autowired
private
TaskCompletedBiz
taskCompletedBiz
;
@GetMapping
(
"listTaskCompleted4Pcloud"
)
@ApiOperation
(
value
=
"平台端查询任务完成情况列表"
,
httpMethod
=
"GET"
)
ResponseDto
<
PageBeanNew
<
TaskCompletedDto
>>
listTaskCompleted4Pcloud
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
Integer
currentPage
,
@RequestParam
Integer
numPerPage
,
@RequestParam
(
value
=
"search"
,
required
=
false
)
String
search
,
@RequestParam
(
value
=
"taskName"
,
required
=
false
)
String
taskName
,
@RequestParam
(
value
=
"proLabelId"
,
required
=
false
)
Integer
proLabelId
,
@RequestParam
(
value
=
"depLabelId"
,
required
=
false
)
Integer
depLabelId
,
@RequestParam
(
value
=
"purLabelId"
,
required
=
false
)
Integer
purLabelId
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
PageBeanNew
<
TaskCompletedDto
>
pageResult
=
taskCompletedBiz
.
listTaskCompleted4Pcloud
(
currentPage
,
numPerPage
,
taskName
,
proLabelId
,
depLabelId
,
purLabelId
);
return
new
ResponseDto
<>(
pageResult
);
}
@GetMapping
(
"listTaskSubscribeUser4Pcloud"
)
@ApiOperation
(
value
=
"平台端查询任务参与用户列表"
,
httpMethod
=
"GET"
)
ResponseDto
<
PageBeanNew
<
SubscribeTaskUserDTO
>>
listTaskSubscribeUser4Pcloud
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
Integer
currentPage
,
@RequestParam
Integer
numPerPage
,
@RequestParam
(
value
=
"taskId"
)
Integer
taskId
,
@RequestParam
(
value
=
"search"
,
required
=
false
)
String
search
,
@RequestParam
(
value
=
"subscribeType"
,
required
=
false
)
Integer
subscribeType
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
PageBeanNew
<
SubscribeTaskUserDTO
>
pageResult
=
taskCompletedBiz
.
listTaskSubscribeUser4Pcloud
(
currentPage
,
numPerPage
,
search
,
taskId
,
subscribeType
);
return
new
ResponseDto
<>(
pageResult
);
}
@GetMapping
(
"getTodayTaskSend"
)
@ApiOperation
(
value
=
"获取今日消息发送信息"
,
httpMethod
=
"GET"
)
ResponseDto
<
TodayTaskSendDto
>
getTodayTaskSend
(
@RequestHeader
(
"token"
)
String
token
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
TodayTaskSendDto
todayTaskSendDto
=
taskCompletedBiz
.
getTodayTaskSend
();
return
new
ResponseDto
<>(
todayTaskSendDto
);
}
@GetMapping
(
"getTaskSendDateList"
)
@ApiOperation
(
value
=
"获取有发送任务的日期集合"
,
httpMethod
=
"GET"
)
ResponseDto
<
List
<
String
>>
getTaskSendDateList
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"date"
)
String
date
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
List
<
String
>
taskSendDateList
=
taskCompletedBiz
.
getTaskSendDateList
(
date
);
return
new
ResponseDto
<>(
taskSendDateList
);
}
@GetMapping
(
"listTaskItemSendRecord4Pcloud"
)
@ApiOperation
(
value
=
"平台端查询任务发送记录列表"
,
httpMethod
=
"GET"
)
ResponseDto
<
PageBeanNew
<
TaskItemSendDto
>>
listTaskItemSendRecord4Pcloud
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
Integer
currentPage
,
@RequestParam
Integer
numPerPage
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
String
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
String
endTime
,
@RequestParam
(
value
=
"robotWxId"
,
required
=
false
)
String
robotWxId
,
@RequestParam
(
value
=
"taskName"
,
required
=
false
)
String
taskName
,
@RequestParam
(
value
=
"sendContent"
,
required
=
false
)
String
sendContent
,
@RequestParam
(
value
=
"search"
,
required
=
false
)
String
search
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
PageBeanNew
<
TaskItemSendDto
>
pageResult
=
taskCompletedBiz
.
listTaskItemSendRecord4Pcloud
(
currentPage
,
numPerPage
,
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
,
search
);
return
new
ResponseDto
<>(
pageResult
);
}
@GetMapping
(
"listTaskItemSendUser4Pcloud"
)
@ApiOperation
(
value
=
"平台端查询任务发送读者详情列表"
,
httpMethod
=
"GET"
)
ResponseDto
<
PageBeanNew
<
TaskSendUserDto
>>
listTaskItemSendUser4Pcloud
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
Integer
currentPage
,
@RequestParam
Integer
numPerPage
,
@RequestParam
(
value
=
"taskItemId"
)
Integer
taskItemId
,
@RequestParam
(
value
=
"search"
,
required
=
false
)
String
search
,
@RequestParam
String
robotWxId
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
PageBeanNew
<
TaskSendUserDto
>
pageResult
=
taskCompletedBiz
.
listTaskItemSendUser4Pcloud
(
currentPage
,
numPerPage
,
taskItemId
,
search
,
robotWxId
);
return
new
ResponseDto
<>(
pageResult
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlReplyMessageMapper.java
View file @
1f8b34a8
...
...
@@ -2,6 +2,7 @@ package com.pcloud.book.timecontrol.mapper;
import
com.pcloud.book.timecontrol.entity.TimeControlReplyMessage
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageDto
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
...
...
@@ -28,4 +29,6 @@ public interface TimeControlReplyMessageMapper {
List
<
TimeControlReplyMessage
>
list4TaskItem
(
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"replyType"
)
Integer
replyType
);
List
<
TimeControlReplyMessage
>
getByTaskItemId
(
Integer
taskItemId
);
List
<
ReplyMessageDto
>
list4TaskItemList
(
@Param
(
"taskItemIds"
)
List
<
Integer
>
taskItemIds
,
@Param
(
"replyType"
)
Integer
replyType
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskItemMapper.java
View file @
1f8b34a8
...
...
@@ -22,4 +22,6 @@ public interface TimeControlTaskItemMapper {
void
updateTtaskItem
(
TimeControlTaskItem
timeControlTaskItem
);
List
<
ReplyMessageBaseDto
>
listTaskItemDay
(
Integer
taskId
);
List
<
TimeControlTaskItem
>
getByItemIdList
(
@Param
(
"taskItemIds"
)
List
<
Integer
>
taskItemIds
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskMapper.java
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
mapper
;
import
com.pcloud.book.timecontrol.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.book.timecontrol.dto.BookTaskBindingDto
;
import
com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO
;
import
com.pcloud.book.timecontrol.dto.TaskCompletedDto
;
import
com.pcloud.book.timecontrol.dto.TaskDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
org.apache.ibatis.annotations.MapKey
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
...
...
@@ -52,4 +54,13 @@ public interface TimeControlTaskMapper {
TaskDto
getTaskByIdAndWxUserId
(
@Param
(
"relSkillId"
)
Integer
relSkillId
,
@Param
(
"wxUserId"
)
String
wxUserId
);
Integer
getSubscribeState
(
@Param
(
"relSkillId"
)
Integer
relSkillId
,
@Param
(
"wxUserId"
)
String
wxUserId
);
Integer
getTaskCompletedCount
(
@Param
(
"taskName"
)
String
taskName
,
@Param
(
"proLabelId"
)
Integer
proLabelId
,
@Param
(
"depLabelId"
)
Integer
depLabelId
,
@Param
(
"purLabelId"
)
Integer
purLabelId
);
List
<
TaskCompletedDto
>
listTaskCompleted4Pcloud
(
@Param
(
"pageNum"
)
Integer
pageNum
,
@Param
(
"numPerPage"
)
Integer
numPerPage
,
@Param
(
"taskName"
)
String
taskName
,
@Param
(
"proLabelId"
)
Integer
proLabelId
,
@Param
(
"depLabelId"
)
Integer
depLabelId
,
@Param
(
"purLabelId"
)
Integer
purLabelId
);
Integer
getSubscribeCount
(
@Param
(
"search"
)
String
search
,
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"subscribeType"
)
Integer
subscribeType
,
@Param
(
"wxIds"
)
List
<
String
>
wxIds
);
List
<
SubscribeTaskUserDTO
>
listTaskSubscribeUser4Pcloud
(
@Param
(
"pageNum"
)
Integer
pageNum
,
@Param
(
"numPerPage"
)
Integer
numPerPage
,
@Param
(
"search"
)
String
search
,
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"subscribeType"
)
Integer
subscribeType
,
@Param
(
"wxIds"
)
List
<
String
>
wxIds
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskSendMapper.java
View file @
1f8b34a8
package
com
.
pcloud
.
book
.
timecontrol
.
mapper
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSend
;
import
com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO
;
import
com.pcloud.book.timecontrol.dto.TaskItemSendDto
;
import
com.pcloud.book.timecontrol.dto.TaskSendDto
;
import
com.pcloud.book.timecontrol.dto.TaskSendUserDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSend
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
...
...
@@ -40,4 +43,22 @@ public interface TimeControlTaskSendMapper {
TimeControlTaskSend
getById
(
Integer
taskSendId
);
Integer
getNoCompletedItem
(
Integer
taskId
);
Integer
todayTaskSendCount
();
Integer
todayTaskNotSendCount
();
List
<
String
>
getTaskSendDateList
(
@Param
(
"date"
)
String
date
);
Integer
getTaskItemSendCount
(
@Param
(
"startTime"
)
String
startTime
,
@Param
(
"endTime"
)
String
endTime
,
@Param
(
"robotWxId"
)
String
robotWxId
,
@Param
(
"taskName"
)
String
taskName
,
@Param
(
"sendContent"
)
String
sendContent
);
List
<
TaskItemSendDto
>
listTaskItemSendRecord4Pcloud
(
@Param
(
"pageNum"
)
Integer
pageNum
,
@Param
(
"numPerPage"
)
Integer
numPerPage
,
@Param
(
"startTime"
)
String
startTime
,
@Param
(
"endTime"
)
String
endTime
,
@Param
(
"robotWxId"
)
String
robotWxId
,
@Param
(
"taskName"
)
String
taskName
,
@Param
(
"sendContent"
)
String
sendContent
);
Integer
getTaskItemSendUserCount
(
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"robotWxId"
)
String
robotWxId
);
List
<
TaskSendUserDto
>
listTaskItemSendUser4Pcloud
(
@Param
(
"pageNum"
)
Integer
pageNum
,
@Param
(
"numPerPage"
)
Integer
numPerPage
,
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"robotWxId"
)
String
robotWxId
);
List
<
SubscribeTaskUserDTO
>
getTaskNoCompletedCount
(
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskId"
)
Integer
taskId
);
Integer
getNoCompletedCount
(
@Param
(
"subscribeId"
)
Integer
subscribeId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskSubscribeMapper.java
View file @
1f8b34a8
...
...
@@ -31,5 +31,4 @@ public interface TimeControlTaskSubscribeMapper {
void
completedTaskById
(
Integer
subscribeId
);
}
pcloud-service-book/src/main/resources/mapper/pcloudkeyword/PcloudRobotClassify.Mapper.xml
View file @
1f8b34a8
...
...
@@ -24,7 +24,7 @@
<update
id=
"update"
parameterType=
"com.pcloud.book.pcloudkeyword.entity.PcloudRobotClassify"
>
update pcloud_robot set
classify_name = #{classifyName}
classify_name = #{classifyName}
,
is_delete = #{isDelete}
where id=#{id}
</update>
...
...
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlReplyMessageMapper.xml
View file @
1f8b34a8
...
...
@@ -76,4 +76,25 @@
where task_item_id = #{taskItemId,jdbcType=INTEGER}
</select>
<select
id=
"list4TaskItemList"
resultType=
"com.pcloud.book.timecontrol.dto.ReplyMessageDto"
>
select
task_item_id taskItemId,
app_id appId,
product_id productId,
img_url imgUrl,
file_name fileName,
file_url fileUrl,
text text,
link_url linkUrl,
message_type messageType, file_type fileType, size
from time_control_reply_message
where reply_type = #{replyType}
<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>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskItemMapper.xml
View file @
1f8b34a8
...
...
@@ -57,7 +57,7 @@
</select>
<select
id=
"listTaskItemDay"
resultType=
"com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto"
>
select id, task_id taskId, start_day startDay
select id, task_id taskId, start_day startDay
, send_hour sendHour
from time_control_task_item where task_id = #{taskId}
order by startDay asc, send_hour asc
</select>
...
...
@@ -67,4 +67,14 @@
where id = #{id,jdbcType=INTEGER}
</delete>
<select
id=
"getByItemIdList"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_item
where id IN
<foreach
collection=
"taskItemIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskMapper.xml
View file @
1f8b34a8
...
...
@@ -233,4 +233,106 @@
now(), now(), #{proLabelId}, #{depLabelId}, #{purLabelId}, #{successSubscribeWord}, #{successUnSubscribeWord})
</insert>
<select
id=
"getTaskCompletedCount"
resultType=
"java.lang.Integer"
>
SELECT ifnull(COUNT(1),0)
FROM time_control_task a
where 1=1
<if
test=
"taskName != null"
>
and a.task_name like concat('%', #{taskName}, '%')
</if>
<if
test=
"proLabelId != null"
>
AND a.pro_label_id = #{proLabelId}
</if>
<if
test=
"depLabelId != null"
>
AND a.dep_label_id = #{depLabelId}
</if>
<if
test=
"purLabelId != null"
>
AND a.pur_label_id = #{purLabelId}
</if>
</select>
<select
id=
"listTaskCompleted4Pcloud"
resultType=
"com.pcloud.book.timecontrol.dto.TaskCompletedDto"
>
SELECT
a.task_id taskId,
a.task_name taskName,
COUNT(distinct c.id) taskItemCount,
COUNT(DISTINCT d.wx_user_id) subscribePersonCount
FROM time_control_task a
LEFT JOIN time_control_task_item c ON a.task_id = c.task_id
LEFT JOIN time_control_task_subscribe d on a.task_id=d.task_id
WHERE 1=1
<if
test=
"taskName != null"
>
and a.task_name like concat('%', #{taskName}, '%')
</if>
<if
test=
"proLabelId != null"
>
AND a.pro_label_id = #{proLabelId}
</if>
<if
test=
"depLabelId != null"
>
AND a.dep_label_id = #{depLabelId}
</if>
<if
test=
"purLabelId != null"
>
AND a.pur_label_id = #{purLabelId}
</if>
GROUP BY
a.task_id
<if
test=
"pageNum != null"
>
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select
id=
"getSubscribeCount"
resultType=
"java.lang.Integer"
>
SELECT ifnull(COUNT(1),0)
FROM time_control_task_subscribe a
where 1=1
<if
test=
"wxIds != null and wxIds.size()>0"
>
and a.wx_user_id IN
<foreach
collection=
"wxIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
<if
test=
"subscribeType !=null"
>
and a.state=#{subscribeType}
</if>
and a.task_id=#{taskId}
</select>
<select
id=
"listTaskSubscribeUser4Pcloud"
resultType=
"com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO"
>
select t1.wxUserId wxUserId,
t1.subscribeState subscribeState,
ifnull(t2.completedCount,0) completedCount from
(select
wx_user_id wxUserId,
state subscribeState
FROM time_control_task_subscribe a
where 1=1
<if
test=
"wxIds != null and wxIds.size()>0"
>
and a.wx_user_id IN
<foreach
collection=
"wxIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
<if
test=
"subscribeType !=null"
>
and a.state=#{subscribeType}
</if>
and a.task_id=#{taskId}
)t1
left join
(
select wx_user_id wxId,count(1) completedCount
from time_control_task_send a where
1=1
<if
test=
"wxIds != null and wxIds.size()>0"
>
and a.wx_user_id IN
<foreach
collection=
"wxIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
and a.task_id=#{taskId} and complete_state=1
GROUP BY wxId
)t2 on t1.wxUserId=t2.wxId
ORDER BY completedCount desc,wxUserId asc
<if
test=
"pageNum != null"
>
limit #{pageNum}, #{numPerPage}
</if>
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSendMapper.xml
View file @
1f8b34a8
...
...
@@ -19,13 +19,13 @@
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_send
(wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time)
(wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time
, send_hour
)
values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(
#{item.wxUserId,jdbcType=VARCHAR}, #{item.bookId,jdbcType=INTEGER}, #{item.taskId,jdbcType=INTEGER},
#{item.taskItemId,jdbcType=INTEGER}, #{item.subscribeId,jdbcType=INTEGER}, #{item.sendDay,jdbcType=VARCHAR},
#{item.sendState,jdbcType=INTEGER}, NOW()
#{item.sendState,jdbcType=INTEGER}, NOW()
, #{item.sendHour}
)
</foreach>
</insert>
...
...
@@ -39,9 +39,8 @@
a.task_item_id taskItemId
from time_control_task_send a
left join time_control_task_subscribe b on a.subscribe_id = b.id
LEFT JOIN time_control_task_item c on a.task_item_id=c.id
where a.send_state = 0
and CONCAT_WS(" ",a.send_day,SUBSTRING_INDEX(
c
.send_hour,":",1)) = DATE_FORMAT(NOW(), '%Y-%m-%d %H');
and CONCAT_WS(" ",a.send_day,SUBSTRING_INDEX(
a
.send_hour,":",1)) = DATE_FORMAT(NOW(), '%Y-%m-%d %H');
</select>
...
...
@@ -91,4 +90,143 @@
WHERE task_id =#{taskId}
and complete_state !=1 AND send_state !=2
</select>
<select
id=
"todayTaskSendCount"
resultType=
"java.lang.Integer"
>
SELECT ifnull(COUNT(1),0) FROM time_control_task_send WHERE send_state = 1
AND send_day =DATE_FORMAT(NOW(), '%Y-%m-%d')
</select>
<select
id=
"todayTaskNotSendCount"
resultType=
"java.lang.Integer"
>
SELECT ifnull(COUNT(1),0) FROM time_control_task_send WHERE send_state = 0
AND send_day =DATE_FORMAT(NOW(), '%Y-%m-%d')
</select>
<select
id=
"getTaskSendDateList"
resultType=
"java.lang.String"
>
SELECT DISTINCT send_day from time_control_task_send where SUBSTRING_INDEX(send_day,"-",2)=#{date}
ORDER BY send_day
</select>
<select
id=
"getTaskItemSendCount"
resultType=
"java.lang.Integer"
>
select count(1) from (
select c.robot_wx_id
from
time_control_task_send a LEFT JOIN
time_control_task b on a.task_id=b.task_id
LEFT JOIN time_control_task_subscribe c on a.subscribe_id=c.id
LEFT JOIN time_control_reply_message d on a.task_item_id=d.task_item_id
where 1=1
<if
test=
"startTime !=null"
>
and a.send_day
<![CDATA[ >= ]]>
STR_TO_DATE(#{startTime},'%Y-%m-%d')
</if>
<if
test=
"endTime !=null"
>
and a.send_day
<![CDATA[ <= ]]>
STR_TO_DATE(#{endTime},'%Y-%m-%d')
</if>
<if
test=
"robotWxId !=null"
>
and c.robot_wx_id=#{robotWxId}
</if>
<if
test=
"taskName !=null"
>
and b.task_name like concat('%', #{taskName}, '%')
</if>
<if
test=
"sendContent !=null"
>
and d.text like concat('%', #{sendContent}, '%')
</if>
group by
a.task_item_id,c.robot_wx_id
)s
</select>
<select
id=
"listTaskItemSendRecord4Pcloud"
resultType=
"com.pcloud.book.timecontrol.dto.TaskItemSendDto"
>
select
a.task_id taskId,
b.task_name taskName,
a.task_item_id taskItemId,
c.robot_wx_id robotWxId,
ifnull(count(DISTINCT a.wx_user_id),0) sendPersonCount,
e.create_time createTime
from
time_control_task_send a LEFT JOIN
time_control_task b on a.task_id=b.task_id
LEFT JOIN time_control_task_subscribe c on a.subscribe_id=c.id
LEFT JOIN time_control_reply_message d on a.task_item_id=d.task_item_id
LEFT JOIN time_control_task_item e on a.task_item_id = e.id
where 1=1
<if
test=
"startTime !=null"
>
and a.send_day
<![CDATA[ >= ]]>
STR_TO_DATE(#{startTime},'%Y-%m-%d')
</if>
<if
test=
"endTime !=null"
>
and a.send_day
<![CDATA[ <= ]]>
STR_TO_DATE(#{endTime},'%Y-%m-%d')
</if>
<if
test=
"robotWxId !=null"
>
and c.robot_wx_id=#{robotWxId}
</if>
<if
test=
"taskName !=null"
>
and b.task_name like concat('%', #{taskName}, '%')
</if>
<if
test=
"sendContent !=null"
>
and d.text like concat('%', #{sendContent}, '%')
</if>
GROUP BY
a.task_item_id,c.robot_wx_id
<if
test=
"pageNum != null"
>
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select
id=
"getTaskItemSendUserCount"
resultType=
"java.lang.Integer"
>
SELECT ifnull(COUNT(DISTINCT a.wx_user_id),0) FROM time_control_task_send a
LEFT JOIN time_control_task_subscribe b ON a.subscribe_id = b.id
where 1=1
<if
test=
"wxIds != null and wxIds.size()>0"
>
and a.wx_user_id IN
<foreach
collection=
"wxIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
and a.task_item_id=#{taskItemId} AND b.robot_Wx_id = #{robotWxId}
</select>
<select
id=
"listTaskItemSendUser4Pcloud"
resultType=
"com.pcloud.book.timecontrol.dto.TaskSendUserDto"
>
SELECT
a.task_id taskId,
a.task_item_id taskItemId,
a.wx_user_id wxUserId,
a.send_state sendState, a.send_day sendDay, a.send_hour sendHour
FROM time_control_task_send a
LEFT JOIN time_control_task_subscribe b on a.subscribe_id = b.id
where 1=1
<if
test=
"wxIds != null and wxIds.size()>0"
>
and a.wx_user_id IN
<foreach
collection=
"wxIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
and a.task_item_id=#{taskItemId} AND b.robot_wx_id = #{robotWxId}
<if
test=
"pageNum != null"
>
limit #{pageNum}, #{numPerPage}
</if>
</select>
<select
id=
"getTaskNoCompletedCount"
resultType=
"com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO"
>
select
wx_user_id wxUserId,
ifnull(count(1),0) noCompletedCount
from time_control_task_send
where task_id=#{taskId}
and complete_state=0
and send_state !=2
<if
test=
"wxIds !=null and wxIds.size()>0"
>
and wx_user_id IN
<foreach
collection=
"wxIds"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
</if>
group by wx_user_id
</select>
<select
id=
"getNoCompletedCount"
resultType=
"java.lang.Integer"
>
select ifnull(count(1),0)
from time_control_task_send
WHERE subscribe_id =#{subscribeId}
and complete_state !=1 AND send_state !=2
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment