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
088aa326
Commit
088aa326
authored
Apr 23, 2020
by
裴大威
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-1002761' into 'master'
1002761 按周设置 See merge request rays/pcloud-book!667
parents
3538ab8c
9fd84137
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
1370 additions
and
113 deletions
+1370
-113
BookConstant.java
...main/java/com/pcloud/book/book/constant/BookConstant.java
+6
-0
CreateTaskDto.java
...n/java/com/pcloud/book/timecontrol/dto/CreateTaskDto.java
+3
-0
CreateTaskItemDto.java
...va/com/pcloud/book/timecontrol/dto/CreateTaskItemDto.java
+13
-1
ReplyMessageBaseDto.java
.../com/pcloud/book/timecontrol/dto/ReplyMessageBaseDto.java
+18
-0
SubscribeTaskUserDTO.java
...com/pcloud/book/timecontrol/dto/SubscribeTaskUserDTO.java
+2
-0
TaskCompletedDto.java
...ava/com/pcloud/book/timecontrol/dto/TaskCompletedDto.java
+2
-1
TaskDto.java
...rc/main/java/com/pcloud/book/timecontrol/dto/TaskDto.java
+3
-0
TaskItemDto.java
...ain/java/com/pcloud/book/timecontrol/dto/TaskItemDto.java
+11
-0
TaskSendDto.java
...ain/java/com/pcloud/book/timecontrol/dto/TaskSendDto.java
+20
-0
UpdateTaskDto.java
...n/java/com/pcloud/book/timecontrol/dto/UpdateTaskDto.java
+4
-0
UpdateTaskItemDto.java
...va/com/pcloud/book/timecontrol/dto/UpdateTaskItemDto.java
+12
-1
TimeControlWeekDay.java
...om/pcloud/book/timecontrol/entity/TimeControlWeekDay.java
+16
-0
SendTypeEnum.java
.../java/com/pcloud/book/timecontrol/enums/SendTypeEnum.java
+26
-0
TimeControlPushTypeEnum.java
...cloud/book/timecontrol/enums/TimeControlPushTypeEnum.java
+25
-0
TimeControlTaskService.java
...loud/book/timecontrol/service/TimeControlTaskService.java
+11
-0
TaskBiz.java
...rc/main/java/com/pcloud/book/timecontrol/biz/TaskBiz.java
+7
-0
TaskSubscribeBiz.java
...ava/com/pcloud/book/timecontrol/biz/TaskSubscribeBiz.java
+2
-0
TaskBizImpl.java
...ava/com/pcloud/book/timecontrol/biz/impl/TaskBizImpl.java
+193
-20
TaskCompletedBizImpl.java
...cloud/book/timecontrol/biz/impl/TaskCompletedBizImpl.java
+65
-15
TaskSubscribeBizImpl.java
...cloud/book/timecontrol/biz/impl/TaskSubscribeBizImpl.java
+203
-53
TimeControlTask.java
...a/com/pcloud/book/timecontrol/entity/TimeControlTask.java
+4
-0
TimeControlTaskItem.java
...m/pcloud/book/timecontrol/entity/TimeControlTaskItem.java
+44
-0
TimeControlTaskSend.java
...m/pcloud/book/timecontrol/entity/TimeControlTaskSend.java
+4
-0
TimeControlPrizeFacadeImpl.java
...k/timecontrol/facade/impl/TimeControlPrizeFacadeImpl.java
+11
-1
TimeControlTaskFacadeImpl.java
...ok/timecontrol/facade/impl/TimeControlTaskFacadeImpl.java
+20
-0
TimeControlTaskItemMapper.java
...ud/book/timecontrol/mapper/TimeControlTaskItemMapper.java
+12
-0
TimeControlTaskItemWeekMapper.java
...ook/timecontrol/mapper/TimeControlTaskItemWeekMapper.java
+25
-0
TimeControlTaskMapper.java
...pcloud/book/timecontrol/mapper/TimeControlTaskMapper.java
+2
-0
TimeControlTaskSendDetailMapper.java
...k/timecontrol/mapper/TimeControlTaskSendDetailMapper.java
+55
-0
TimeControlTaskSendMapper.java
...ud/book/timecontrol/mapper/TimeControlTaskSendMapper.java
+5
-0
TimeControlTaskServiceImpl.java
.../timecontrol/service/impl/TimeControlTaskServiceImpl.java
+21
-0
TimeControlTaskItemVO.java
...ud/book/timecontrol/vo/request/TimeControlTaskItemVO.java
+29
-0
TimeControlTaskItemMapper.xml
...esources/mapper/timecontrol/TimeControlTaskItemMapper.xml
+80
-9
TimeControlTaskItemWeekMapper.xml
...rces/mapper/timecontrol/TimeControlTaskItemWeekMapper.xml
+58
-0
TimeControlTaskMapper.xml
...in/resources/mapper/timecontrol/TimeControlTaskMapper.xml
+25
-7
TimeControlTaskSendDetailMapper.xml
...es/mapper/timecontrol/TimeControlTaskSendDetailMapper.xml
+264
-0
TimeControlTaskSendMapper.xml
...esources/mapper/timecontrol/TimeControlTaskSendMapper.xml
+69
-5
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/constant/BookConstant.java
View file @
088aa326
...
@@ -324,4 +324,10 @@ public class BookConstant {
...
@@ -324,4 +324,10 @@ public class BookConstant {
"ⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸ"
+
"ⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸ"
+
"ⅹⅺⅻⅼⅽⅾⅿ┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋╌╍╎╏═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬◤◥◄►▶◀◣◢▲▼◥▸◂"
+
"ⅹⅺⅻⅼⅽⅾⅿ┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋╌╍╎╏═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬◤◥◄►▶◀◣◢▲▼◥▸◂"
+
"▴▾△▽▷◁⊿▻◅▵▿▹◃❏❐❑❒▀▁▂▃▄▅▆▇▉▊▋█▌▍▎▏▐░▒▓▔▕■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋]+$"
;
"▴▾△▽▷◁⊿▻◅▵▿▹◃❏❐❑❒▀▁▂▃▄▅▆▇▉▊▋█▌▍▎▏▐░▒▓▔▕■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋]+$"
;
public
static
final
String
TIME_CONTROL_KEY
=
"lgsc"
;
public
static
final
String
TIME_CONTROL_UPDATE_SEND
=
"TIME_CONTROL_UPDATE_SEND"
;
public
static
final
String
TIME_CONTROL_SEND
=
"TIME_CONTROL_SEND_"
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/CreateTaskDto.java
View file @
088aa326
...
@@ -28,6 +28,8 @@ public class CreateTaskDto implements Serializable {
...
@@ -28,6 +28,8 @@ public class CreateTaskDto implements Serializable {
private
Integer
advancedSetting
;
private
Integer
advancedSetting
;
private
Integer
sendType
;
private
Long
depLabelId
;
private
Long
depLabelId
;
private
Long
purLabelId
;
private
Long
purLabelId
;
...
@@ -35,4 +37,5 @@ public class CreateTaskDto implements Serializable {
...
@@ -35,4 +37,5 @@ public class CreateTaskDto implements Serializable {
private
Long
proLabelId
;
private
Long
proLabelId
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/CreateTaskItemDto.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -17,7 +19,6 @@ public class CreateTaskItemDto implements Serializable {
...
@@ -17,7 +19,6 @@ public class CreateTaskItemDto implements Serializable {
@NotNull
(
message
=
"任务ID不能为空"
)
@NotNull
(
message
=
"任务ID不能为空"
)
private
Integer
taskId
;
private
Integer
taskId
;
@NotNull
(
message
=
"请输入天数"
)
@Max
(
value
=
200
)
@Max
(
value
=
200
)
private
Integer
startDay
;
private
Integer
startDay
;
...
@@ -44,4 +45,15 @@ public class CreateTaskItemDto implements Serializable {
...
@@ -44,4 +45,15 @@ public class CreateTaskItemDto implements Serializable {
private
String
itemIntroduce
;
private
String
itemIntroduce
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
//发送方式 /1每天 2每周
private
Integer
pushType
;
private
List
<
Integer
>
weekdays
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/ReplyMessageBaseDto.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.book.timecontrol.entity.TimeControlWeekDay
;
import
java.util.Date
;
import
java.util.List
;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -25,4 +29,18 @@ public class ReplyMessageBaseDto implements Serializable {
...
@@ -25,4 +29,18 @@ public class ReplyMessageBaseDto implements Serializable {
* 0-不可配置,1-已配置,2-未配置
* 0-不可配置,1-已配置,2-未配置
*/
*/
private
Integer
configState
;
private
Integer
configState
;
//周次
private
List
<
TimeControlWeekDay
>
timeControlWeekDayList
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
java
.
util
.
Date
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
//发送方式 /1每天 2每周
private
Integer
pushType
;
private
List
<
Integer
>
weekdays
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/SubscribeTaskUserDTO.java
View file @
088aa326
...
@@ -43,4 +43,6 @@ public class SubscribeTaskUserDTO extends BaseDto {
...
@@ -43,4 +43,6 @@ public class SubscribeTaskUserDTO extends BaseDto {
* 订阅状态(0-取消订阅 1-订阅 2-完成)
* 订阅状态(0-取消订阅 1-订阅 2-完成)
*/
*/
private
Integer
subscribeState
;
private
Integer
subscribeState
;
private
Integer
sendCount
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskCompletedDto.java
View file @
088aa326
...
@@ -37,5 +37,6 @@ public class TaskCompletedDto implements Serializable {
...
@@ -37,5 +37,6 @@ public class TaskCompletedDto implements Serializable {
private
Integer
subscribePersonCount
;
private
Integer
subscribePersonCount
;
//1按天发送 2按周发送
private
Integer
sendType
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskDto.java
View file @
088aa326
...
@@ -51,4 +51,7 @@ public class TaskDto implements Serializable {
...
@@ -51,4 +51,7 @@ public class TaskDto implements Serializable {
private
String
purLabelName
;
private
String
purLabelName
;
//1按天发送 2按周发送
private
Integer
sendType
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskItemDto.java
View file @
088aa326
...
@@ -44,4 +44,15 @@ public class TaskItemDto implements Serializable {
...
@@ -44,4 +44,15 @@ public class TaskItemDto implements Serializable {
private
String
sendHour
;
private
String
sendHour
;
private
Integer
progressGuidance
;
private
Integer
progressGuidance
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
//发送方式 /1每天 2每周
private
Integer
pushType
;
private
List
<
Integer
>
weekdays
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/TaskSendDto.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -24,4 +25,23 @@ public class TaskSendDto implements Serializable {
...
@@ -24,4 +25,23 @@ public class TaskSendDto implements Serializable {
private
Integer
completeState
;
private
Integer
completeState
;
private
Long
bookId
;
private
Integer
subscribeId
;
private
String
sendDay
;
private
Date
createTime
;
private
Integer
sendState
;
private
String
sendHour
;
private
Integer
working
;
private
Integer
sendWeek
;
private
Integer
sendCount
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/UpdateTaskDto.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
io.swagger.annotations.ApiParam
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.NotNull
;
import
javax.validation.constraints.NotNull
;
...
@@ -35,4 +36,7 @@ public class UpdateTaskDto implements Serializable {
...
@@ -35,4 +36,7 @@ public class UpdateTaskDto implements Serializable {
private
Long
proLabelId
;
private
Long
proLabelId
;
//1按天发送 2按周发送
private
Integer
sendType
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/dto/UpdateTaskItemDto.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
package
com
.
pcloud
.
book
.
timecontrol
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.Data
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Max
;
...
@@ -18,7 +20,6 @@ public class UpdateTaskItemDto implements Serializable {
...
@@ -18,7 +20,6 @@ public class UpdateTaskItemDto implements Serializable {
@NotNull
(
message
=
"消息配置ID不能为空"
)
@NotNull
(
message
=
"消息配置ID不能为空"
)
private
Integer
id
;
private
Integer
id
;
@NotNull
(
message
=
"请输入天数"
)
@Max
(
value
=
200
)
@Max
(
value
=
200
)
private
Integer
startDay
;
private
Integer
startDay
;
...
@@ -45,4 +46,14 @@ public class UpdateTaskItemDto implements Serializable {
...
@@ -45,4 +46,14 @@ public class UpdateTaskItemDto implements Serializable {
private
String
itemIntroduce
;
private
String
itemIntroduce
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
private
Integer
pushType
;
private
List
<
Integer
>
weekdays
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlWeekDay.java
0 → 100644
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
entity
;
import
java.util.Date
;
import
lombok.Data
;
@Data
public
class
TimeControlWeekDay
{
private
Long
id
;
private
Integer
taskItemId
;
private
Integer
weekDay
;
private
Date
createTime
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/enums/SendTypeEnum.java
0 → 100644
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
enums
;
public
enum
SendTypeEnum
{
SEND_DAY
(
1
,
"按天发送"
),
SEND_WEEK
(
2
,
"按周发送"
);
public
Integer
state
;
public
String
desc
;
public
Integer
getState
()
{
return
state
;
}
public
void
setState
(
Integer
state
)
{
this
.
state
=
state
;
}
SendTypeEnum
(
Integer
state
,
String
desc
)
{
this
.
state
=
state
;
this
.
desc
=
desc
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/enums/TimeControlPushTypeEnum.java
0 → 100644
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
enums
;
public
enum
TimeControlPushTypeEnum
{
SEND_EVERY_DAY
(
1
,
"每天发送"
),
SEND_4_WEEK
(
2
,
"周几发送"
);
public
Integer
state
;
public
String
desc
;
public
Integer
getState
()
{
return
state
;
}
public
void
setState
(
Integer
state
)
{
this
.
state
=
state
;
}
TimeControlPushTypeEnum
(
Integer
state
,
String
desc
)
{
this
.
state
=
state
;
this
.
desc
=
desc
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/timecontrol/service/TimeControlTaskService.java
View file @
088aa326
...
@@ -61,4 +61,14 @@ public interface TimeControlTaskService {
...
@@ -61,4 +61,14 @@ public interface TimeControlTaskService {
@ApiOperation
(
value
=
"订阅任务"
)
@ApiOperation
(
value
=
"订阅任务"
)
@GetMapping
(
"unSubscribeTask"
)
@GetMapping
(
"unSubscribeTask"
)
void
unSubscribeTask
(
@RequestParam
(
"wxId"
)
String
wxId
,
@RequestParam
(
"taskId"
)
Integer
taskId
);
void
unSubscribeTask
(
@RequestParam
(
"wxId"
)
String
wxId
,
@RequestParam
(
"taskId"
)
Integer
taskId
);
@ApiOperation
(
value
=
"定时任务更新send表发送状态"
)
@GetMapping
(
"updateSendState4Week"
)
void
updateSendState4Week
();
@ApiOperation
(
value
=
"按周定时发送任务消息"
,
httpMethod
=
"POST"
)
@PostMapping
(
"sendTimeTaskMessage4Week"
)
void
sendTimeTaskMessage4Week
(
@RequestBody
Map
<
String
,
Object
>
map
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/TaskBiz.java
View file @
088aa326
...
@@ -10,6 +10,7 @@ import com.pcloud.book.timecontrol.dto.TaskItemDto;
...
@@ -10,6 +10,7 @@ import com.pcloud.book.timecontrol.dto.TaskItemDto;
import
com.pcloud.book.timecontrol.dto.UpdateTaskDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskItemDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskItemDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlReplyMessage
;
import
com.pcloud.book.timecontrol.entity.TimeControlReplyMessage
;
import
com.pcloud.book.timecontrol.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
...
@@ -64,4 +65,10 @@ public interface TaskBiz {
...
@@ -64,4 +65,10 @@ public interface TaskBiz {
void
sendReplyMessage
(
List
<
TimeControlReplyMessage
>
replyMessages
,
String
wxUserId
,
String
robotWxId
,
String
ip
);
void
sendReplyMessage
(
List
<
TimeControlReplyMessage
>
replyMessages
,
String
wxUserId
,
String
robotWxId
,
String
ip
);
Integer
copyTaskItem
(
Integer
taskItemId
);
Integer
copyTaskItem
(
Integer
taskItemId
);
void
addTask4TimeControl
();
void
updateSendState4Week
();
void
updateTaskSendType
(
TimeControlTask
taskDto
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/TaskSubscribeBiz.java
View file @
088aa326
...
@@ -38,4 +38,6 @@ public interface TaskSubscribeBiz {
...
@@ -38,4 +38,6 @@ public interface TaskSubscribeBiz {
* 时间管理订阅
* 时间管理订阅
*/
*/
void
subscribeTimeControlTask
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
String
robotWxId
);
void
subscribeTimeControlTask
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
String
robotWxId
);
void
sendTimeTaskMessage4Week
(
Integer
taskItemId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskBizImpl.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
timecontrol
.
biz
.
impl
;
import
static
com
.
pcloud
.
book
.
guide
.
constant
.
PcloudGuideRedisConstant
.
PCLOUD_WAKE_UP_CRON_JOB
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.pcloud.appcenter.app.dto.AppDto
;
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.book.constant.BookConstant
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
...
@@ -28,23 +31,12 @@ import com.pcloud.book.timecontrol.dto.TaskDto;
...
@@ -28,23 +31,12 @@ import com.pcloud.book.timecontrol.dto.TaskDto;
import
com.pcloud.book.timecontrol.dto.TaskItemDto
;
import
com.pcloud.book.timecontrol.dto.TaskItemDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskItemDto
;
import
com.pcloud.book.timecontrol.dto.UpdateTaskItemDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlPrizeItem
;
import
com.pcloud.book.timecontrol.entity.*
;
import
com.pcloud.book.timecontrol.entity.TimeControlReplyMessage
;
import
com.pcloud.book.timecontrol.enums.SendTypeEnum
;
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.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.enums.TimeControlPushTypeEnum
;
import
com.pcloud.book.timecontrol.mapper.TaskPrizeItemMapper
;
import
com.pcloud.book.timecontrol.mapper.*
;
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.book.util.common.YesOrNoEnums
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
...
@@ -59,6 +51,9 @@ import com.pcloud.common.utils.httpclient.UrlUtils;
...
@@ -59,6 +51,9 @@ 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.contentcenter.resource.dto.ResourceDTO
;
import
com.pcloud.contentcenter.resource.dto.ResourceDTO
;
import
com.pcloud.facade.quartz.entity.CallBackParam
;
import
com.pcloud.facade.quartz.entity.ScheduleJob
;
import
com.pcloud.facade.quartz.service.ScheduleService
;
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
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
...
@@ -68,7 +63,16 @@ import com.sdk.wxgroup.SendFileVO;
...
@@ -68,7 +63,16 @@ 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
io.swagger.models.auth.In
;
import
java.sql.Struct
;
import
java.util.HashMap
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.codehaus.jackson.JsonParseException
;
import
org.quartz.SchedulerException
;
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
;
...
@@ -97,6 +101,8 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -97,6 +101,8 @@ public class TaskBizImpl implements TaskBiz {
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
TaskBizImpl
.
class
);
private
final
static
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
TaskBizImpl
.
class
);
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
4
);
@Autowired
@Autowired
private
PcloudSkillDao
pcloudSkillDao
;
private
PcloudSkillDao
pcloudSkillDao
;
@Autowired
@Autowired
...
@@ -104,6 +110,8 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -104,6 +110,8 @@ public class TaskBizImpl implements TaskBiz {
@Autowired
@Autowired
private
TimeControlTaskItemMapper
taskItemMapper
;
private
TimeControlTaskItemMapper
taskItemMapper
;
@Autowired
@Autowired
private
TimeControlTaskItemWeekMapper
taskItemWeekMapper
;
@Autowired
private
TimeControlReplyMessageMapper
replyMessageMapper
;
private
TimeControlReplyMessageMapper
replyMessageMapper
;
@Autowired
@Autowired
private
BookTaskBindingMapper
bookTaskBindingMapper
;
private
BookTaskBindingMapper
bookTaskBindingMapper
;
...
@@ -135,6 +143,10 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -135,6 +143,10 @@ public class TaskBizImpl implements TaskBiz {
private
ResourceConsr
resourceConsr
;
private
ResourceConsr
resourceConsr
;
@Autowired
@Autowired
private
ProductConsr
productConsr
;
private
ProductConsr
productConsr
;
@Autowired
private
ScheduleService
scheduleService
;
@Autowired
private
TimeControlTaskItemWeekMapper
timeControlTaskItemWeekMapper
;
@Override
@Override
public
Integer
createTask
(
CreateTaskDto
createTaskDto
)
{
public
Integer
createTask
(
CreateTaskDto
createTaskDto
)
{
...
@@ -151,16 +163,20 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -151,16 +163,20 @@ public class TaskBizImpl implements TaskBiz {
if
(
Objects
.
nonNull
(
byRelId
))
{
if
(
Objects
.
nonNull
(
byRelId
))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_EXIST
,
"该计划已经关联技能,无法删除!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_EXIST
,
"该计划已经关联技能,无法删除!"
);
}
}
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
// 1删除任务模板
// 1删除任务模板
taskMapper
.
deleteByPrimaryKey
(
taskId
);
taskMapper
.
deleteByPrimaryKey
(
taskId
);
// 2删除书与任务之间的关联关系
// 2删除书与任务之间的关联关系
bookTaskBindingMapper
.
deleteByTask
(
taskId
);
bookTaskBindingMapper
.
deleteByTask
(
taskId
);
// 3删除用户对这个任务的订阅关系
// 3删除用户对这个任务的订阅关系
taskSubscribeMapper
.
unSubscribeTaskByTaskId
(
taskId
);
taskSubscribeMapper
.
unSubscribeTaskByTaskId
(
taskId
);
//4 取消待发送的任务
//4 取消待发送的任务
timeControlTaskSendMapper
.
cancelSendByTaskId
(
taskId
);
timeControlTaskSendMapper
.
cancelSendByTaskId
(
taskId
);
//取消定时任务
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
deleteQuartz4TaskId
(
taskId
);
}
taskItemMapper
.
deleteByTaskId
(
taskId
);
}
}
@Override
@Override
...
@@ -225,7 +241,7 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -225,7 +241,7 @@ public class TaskBizImpl implements TaskBiz {
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Integer
createTaskItem
(
CreateTaskItemDto
createTaskItemDto
)
{
public
Integer
createTaskItem
(
CreateTaskItemDto
createTaskItemDto
)
{
Integer
taskId
=
createTaskItemDto
.
getTaskId
();
Integer
taskId
=
createTaskItemDto
.
getTaskId
();
Integer
startDay
=
createTaskItemDto
.
getStartDay
();
Integer
startDay
=
createTaskItemDto
.
getStartDay
();
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
...
@@ -275,6 +291,16 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -275,6 +291,16 @@ public class TaskBizImpl implements TaskBiz {
}
}
taskItemMapper
.
insert
(
item
);
taskItemMapper
.
insert
(
item
);
Integer
taskItemId
=
item
.
getId
();
Integer
taskItemId
=
item
.
getId
();
List
<
TimeControlWeekDay
>
weekDayList
=
new
ArrayList
<>();
if
(!
ListUtils
.
isEmpty
(
createTaskItemDto
.
getWeekdays
())){
for
(
Integer
weekDay:
createTaskItemDto
.
getWeekdays
())
{
TimeControlWeekDay
timeControlWeekDay
=
new
TimeControlWeekDay
();
timeControlWeekDay
.
setTaskItemId
(
taskItemId
);
timeControlWeekDay
.
setWeekDay
(
weekDay
);
weekDayList
.
add
(
timeControlWeekDay
);
}
taskItemWeekMapper
.
batchInsert
(
weekDayList
);
}
List
<
TimeControlReplyMessage
>
list
=
new
ArrayList
<>();
List
<
TimeControlReplyMessage
>
list
=
new
ArrayList
<>();
replyMessageList
.
forEach
(
message
->
{
replyMessageList
.
forEach
(
message
->
{
TimeControlReplyMessage
replyMessage
=
new
TimeControlReplyMessage
();
TimeControlReplyMessage
replyMessage
=
new
TimeControlReplyMessage
();
...
@@ -297,16 +323,76 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -297,16 +323,76 @@ public class TaskBizImpl implements TaskBiz {
});
});
}
}
replyMessageMapper
.
batchInsert
(
list
);
replyMessageMapper
.
batchInsert
(
list
);
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
EXECUTOR_SERVICE
.
execute
(()->{
addTask4AddTimeControl
(
createTaskItemDto
,
taskItemId
);
});
}
return
taskItemId
;
return
taskItemId
;
}
}
private
void
addTask4AddTimeControl
(
CreateTaskItemDto
createTaskItemDto
,
Integer
taskItemId
)
{
log
.
info
(
"新增计划时新增定时任务createTaskItemDto:{},taskItemId:{}"
,
createTaskItemDto
,
taskItemId
);
try
{
int
hour
=
Integer
.
parseInt
(
createTaskItemDto
.
getSendHour
().
substring
(
0
,
2
));
String
weeks
=
""
;
if
(
TimeControlPushTypeEnum
.
SEND_EVERY_DAY
.
state
.
equals
(
createTaskItemDto
.
getPushType
())){
weeks
=
"1,2,3,4,5,6,7"
;
}
else
if
(
TimeControlPushTypeEnum
.
SEND_4_WEEK
.
state
.
equals
(
createTaskItemDto
.
getPushType
())){
List
<
Integer
>
weekdays
=
createTaskItemDto
.
getWeekdays
();
for
(
Integer
weekDay
:
weekdays
)
{
if
(
weekDay
==
7
)
{
weekDay
=
1
;
}
else
{
weekDay
=
weekDay
+
1
;
}
weeks
=
weeks
+
weekDay
+
","
;
}
weeks
=
weeks
.
substring
(
0
,
weeks
.
length
()-
1
);
}
String
cronStr
=
0
+
" "
+
0
+
" "
+
hour
+
" ? * "
+
weeks
;
String
jobName
=
BookConstant
.
TIME_CONTROL_SEND
+
taskItemId
;
ScheduleJob
job
=
new
ScheduleJob
();
//定时器任务
job
.
setJobName
(
jobName
);
//cron表达式
job
.
setCronExpression
(
cronStr
);
//定时器分组
job
.
setJobGroup
(
"book"
);
CallBackParam
param
=
new
CallBackParam
();
//service名称
param
.
setBeanName
(
"timeControlTaskService"
);
//回调内部接口方法名称
param
.
setMethodName
(
"sendTimeTaskMessage4Week"
);
//设置回调参数
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"jobName"
,
jobName
);
map
.
put
(
"taskItemId"
,
taskItemId
);
param
.
setParamMap
(
map
);
Map
<
String
,
Object
>
scheduleMap
=
new
HashMap
<>();
scheduleMap
.
put
(
"scheduleJob"
,
job
);
scheduleMap
.
put
(
"callBackParam"
,
param
);
scheduleService
.
addCronJob
(
scheduleMap
);
}
catch
(
SchedulerException
|
JsonParseException
e
)
{
log
.
info
(
"【TaskBizImpl.createCronJob】创建定时任务失败"
,
e
);
}
}
@Override
@Override
@Transactional
public
void
deleteTaskItem
(
Integer
taskItemId
)
{
public
void
deleteTaskItem
(
Integer
taskItemId
)
{
taskItemMapper
.
deleteByPrimaryKey
(
taskItemId
);
taskItemMapper
.
deleteByPrimaryKey
(
taskItemId
);
replyMessageMapper
.
deleteByItemId
(
taskItemId
);
replyMessageMapper
.
deleteByItemId
(
taskItemId
);
//删除待发送任务
//删除待发送任务
timeControlTaskSendMapper
.
cancelSendByItemId
(
taskItemId
);
timeControlTaskSendMapper
.
cancelSendByItemId
(
taskItemId
);
timeControlTaskItemWeekMapper
.
batchDelete
(
Stream
.
of
(
taskItemId
).
collect
(
Collectors
.
toList
()));
//删除定时任务
try
{
scheduleService
.
deleteJob
(
BookConstant
.
TIME_CONTROL_SEND
+
taskItemId
,
"book"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"删除定时任务失败,taskItemId+"
+
taskItemId
);
}
}
}
@Override
@Override
...
@@ -364,6 +450,18 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -364,6 +450,18 @@ public class TaskBizImpl implements TaskBiz {
timeControlTaskItem
.
setProgressGuidance
(
0
);
timeControlTaskItem
.
setProgressGuidance
(
0
);
}
}
taskItemMapper
.
updateTaskItem
(
timeControlTaskItem
);
taskItemMapper
.
updateTaskItem
(
timeControlTaskItem
);
//删除原week配置
timeControlTaskItemWeekMapper
.
batchDelete
(
Stream
.
of
(
timeControlTaskItem
.
getId
()).
collect
(
Collectors
.
toList
()));
List
<
TimeControlWeekDay
>
weekDayList
=
new
ArrayList
<>();
if
(!
ListUtils
.
isEmpty
(
updateTaskItemDto
.
getWeekdays
())){
for
(
Integer
weekDay:
updateTaskItemDto
.
getWeekdays
())
{
TimeControlWeekDay
timeControlWeekDay
=
new
TimeControlWeekDay
();
timeControlWeekDay
.
setTaskItemId
(
taskItemId
);
timeControlWeekDay
.
setWeekDay
(
weekDay
);
weekDayList
.
add
(
timeControlWeekDay
);
}
taskItemWeekMapper
.
batchInsert
(
weekDayList
);
}
//删除原item下的配置
//删除原item下的配置
replyMessageMapper
.
deleteByItemId
(
taskItemId
);
replyMessageMapper
.
deleteByItemId
(
taskItemId
);
//重新插入
//重新插入
...
@@ -395,10 +493,19 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -395,10 +493,19 @@ public class TaskBizImpl implements TaskBiz {
public
TaskItemDto
getTaskItem
(
Integer
id
)
{
public
TaskItemDto
getTaskItem
(
Integer
id
)
{
TaskItemDto
taskItemDto
=
new
TaskItemDto
();
TaskItemDto
taskItemDto
=
new
TaskItemDto
();
TimeControlTaskItem
timeControlTaskItem
=
taskItemMapper
.
selectByPrimaryKey
(
id
);
TimeControlTaskItem
timeControlTaskItem
=
taskItemMapper
.
selectByPrimaryKey
(
id
);
if
(
timeControlTaskItem
==
null
){
return
new
TaskItemDto
();
}
BeanUtils
.
copyProperties
(
timeControlTaskItem
,
taskItemDto
);
List
<
TimeControlWeekDay
>
weekDayList
=
taskItemWeekMapper
.
selectByItemId
(
id
);
List
<
Integer
>
weekdays
=
new
ArrayList
<>();
for
(
TimeControlWeekDay
weekDay:
weekDayList
)
{
weekdays
.
add
(
weekDay
.
getWeekDay
());
}
taskItemDto
.
setWeekdays
(
weekdays
);
if
(
null
==
timeControlTaskItem
)
{
if
(
null
==
timeControlTaskItem
)
{
return
taskItemDto
;
return
taskItemDto
;
}
}
BeanUtils
.
copyProperties
(
timeControlTaskItem
,
taskItemDto
);
List
<
TimeControlReplyMessage
>
list
=
replyMessageMapper
.
list4TaskItem
(
id
,
0
);
List
<
TimeControlReplyMessage
>
list
=
replyMessageMapper
.
list4TaskItem
(
id
,
0
);
List
<
TimeControlReplyMessage
>
completeReplyMessageList
=
replyMessageMapper
.
list4TaskItem
(
id
,
1
);
List
<
TimeControlReplyMessage
>
completeReplyMessageList
=
replyMessageMapper
.
list4TaskItem
(
id
,
1
);
List
<
ReplyMessageDto
>
messageDtos
=
new
ArrayList
<>();
List
<
ReplyMessageDto
>
messageDtos
=
new
ArrayList
<>();
...
@@ -814,4 +921,70 @@ public class TaskBizImpl implements TaskBiz {
...
@@ -814,4 +921,70 @@ public class TaskBizImpl implements TaskBiz {
return
null
;
return
null
;
}
}
@Override
public
void
addTask4TimeControl
()
{
try
{
String
cronStr
=
"0 0 0 * * ?"
;
String
jobName
=
BookConstant
.
TIME_CONTROL_UPDATE_SEND
;
ScheduleJob
job
=
new
ScheduleJob
();
//定时器任务
job
.
setJobName
(
jobName
);
//cron表达式
job
.
setCronExpression
(
cronStr
);
//定时器分组
job
.
setJobGroup
(
"book"
);
CallBackParam
param
=
new
CallBackParam
();
//service名称
param
.
setBeanName
(
"timeControlTaskService"
);
//回调内部接口方法名称
param
.
setMethodName
(
"updateSendState4Week"
);
//设置回调参数
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"jobName"
,
jobName
);
param
.
setParamMap
(
map
);
Map
<
String
,
Object
>
scheduleMap
=
new
HashMap
<>();
scheduleMap
.
put
(
"scheduleJob"
,
job
);
scheduleMap
.
put
(
"callBackParam"
,
param
);
scheduleService
.
addCronJob
(
scheduleMap
);
}
catch
(
SchedulerException
|
JsonParseException
e
)
{
log
.
info
(
"【TaskBizImpl.createCronJob】创建定时任务失败"
,
e
);
}
}
@Override
@ParamLog
(
"定时任务更新send表发送状态"
)
public
void
updateSendState4Week
()
{
timeControlTaskSendMapper
.
updateSendState4Week
();
}
@Override
@ParamLog
(
"修改任务模板的发送方式"
)
public
void
updateTaskSendType
(
TimeControlTask
taskDto
)
{
//由周转为天需将之前的周的定时任务删掉
if
(
SendTypeEnum
.
SEND_DAY
.
state
.
equals
(
taskDto
.
getSendType
())){
deleteQuartz4TaskId
(
taskDto
.
getTaskId
());
}
//删除之前的任务
taskItemMapper
.
deleteByTaskId
(
taskDto
.
getTaskId
());
taskMapper
.
updateTaskSendType
(
taskDto
);
}
private
void
deleteQuartz4TaskId
(
Integer
taskId
)
{
//同时删除定时任务
List
<
TimeControlTaskItem
>
timeControlTaskItems
=
taskItemMapper
.
listByTaskId
(
taskId
);
if
(
ListUtils
.
isEmpty
(
timeControlTaskItems
)){
return
;
}
List
<
Integer
>
taskItemIds
=
timeControlTaskItems
.
stream
().
map
(
TimeControlTaskItem:
:
getId
).
collect
(
Collectors
.
toList
());
//删除周任务
timeControlTaskItemWeekMapper
.
batchDelete
(
taskItemIds
);
taskItemIds
.
forEach
(
id
->{
try
{
scheduleService
.
deleteJob
(
BookConstant
.
TIME_CONTROL_SEND
+
id
,
"book"
);
}
catch
(
Exception
e
)
{
log
.
error
(
"删除定时任务失败,taskItemId+"
+
id
);
}
});
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskCompletedBizImpl.java
View file @
088aa326
...
@@ -20,11 +20,14 @@ import com.pcloud.book.timecontrol.mapper.TaskPrizeMapper;
...
@@ -20,11 +20,14 @@ import com.pcloud.book.timecontrol.mapper.TaskPrizeMapper;
import
com.pcloud.book.timecontrol.mapper.TimeControlReplyMessageMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlReplyMessageMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendDetailMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSubscribeMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSubscribeMapper
;
import
com.pcloud.book.timecontrol.vo.request.TimeControlTaskItemVO
;
import
com.pcloud.common.constant.CacheConstant
;
import
com.pcloud.common.constant.CacheConstant
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
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.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
...
@@ -38,11 +41,7 @@ import org.slf4j.LoggerFactory;
...
@@ -38,11 +41,7 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -80,6 +79,8 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -80,6 +79,8 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
//private PcloudKeywordService pcloudKeywordService;
//private PcloudKeywordService pcloudKeywordService;
@Autowired
@Autowired
private
ResourceConsr
resourceConsr
;
private
ResourceConsr
resourceConsr
;
@Autowired
private
TimeControlTaskSendDetailMapper
timeControlTaskSendDetailMapper
;
@Override
@Override
...
@@ -121,12 +122,12 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -121,12 +122,12 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
private
void
fillUserCompletedList
(
Integer
taskId
,
List
<
SubscribeTaskUserDTO
>
list
)
{
private
void
fillUserCompletedList
(
Integer
taskId
,
List
<
SubscribeTaskUserDTO
>
list
)
{
List
<
String
>
wxIdList
=
list
.
stream
().
map
(
a
->
a
.
getWxUserId
()).
distinct
().
collect
(
Collectors
.
toList
());
List
<
String
>
wxIdList
=
list
.
stream
().
map
(
a
->
a
.
getWxUserId
()).
distinct
().
collect
(
Collectors
.
toList
());
//未完成次数
//未完成次数
不需要展示未完成次数
List
<
SubscribeTaskUserDTO
>
taskUserSendList
=
timeControlTaskSendMapper
.
getTaskNoCompletedCount
(
wxIdList
,
taskId
);
//
List<SubscribeTaskUserDTO> taskUserSendList=timeControlTaskSendMapper.getTaskNoCompletedCount(wxIdList,taskId);
Map
<
String
,
Integer
>
noCompletedMap
=
new
HashMap
<>();
Map
<
String
,
Integer
>
noCompletedMap
=
new
HashMap
<>();
if
(!
ListUtils
.
isEmpty
(
taskUserSendList
)){
/*
if(!ListUtils.isEmpty(taskUserSendList)){
noCompletedMap= taskUserSendList.stream().collect(Collectors.toMap(a -> a.getWxUserId(), a -> a.getNoCompletedCount(), (k1, k2) -> k2));
noCompletedMap= taskUserSendList.stream().collect(Collectors.toMap(a -> a.getWxUserId(), a -> a.getNoCompletedCount(), (k1, k2) -> k2));
}
}
*/
Map
<
String
,
GroupUserDTO
>
userDTOMap
=
wechatGroupConsr
.
mapWxUserInfoByWxIdList
(
wxIdList
);
Map
<
String
,
GroupUserDTO
>
userDTOMap
=
wechatGroupConsr
.
mapWxUserInfoByWxIdList
(
wxIdList
);
for
(
SubscribeTaskUserDTO
subscribeTaskUserDTO
:
list
)
{
for
(
SubscribeTaskUserDTO
subscribeTaskUserDTO
:
list
)
{
//填充未完成次数
//填充未完成次数
...
@@ -152,11 +153,11 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -152,11 +153,11 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
public
PageBeanNew
<
TaskItemSendDto
>
listTaskItemSendRecord4Pcloud
(
Integer
currentPage
,
Integer
numPerPage
,
String
startTime
,
String
endTime
,
String
robotWxId
,
String
taskName
,
String
sendContent
,
String
search
)
{
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
<>();
List
<
TaskItemSendDto
>
list
=
new
ArrayList
<>();
Integer
count
=
timeControlTaskSendMapper
.
getTaskItemSendCount
(
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
);
Integer
count
=
timeControlTaskSend
Detail
Mapper
.
getTaskItemSendCount
(
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
);
if
(
count
<=
0
)
{
if
(
count
<=
0
)
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
}
list
=
timeControlTaskSendMapper
.
listTaskItemSendRecord4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
);
list
=
timeControlTaskSend
Detail
Mapper
.
listTaskItemSendRecord4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
startTime
,
endTime
,
robotWxId
,
taskName
,
sendContent
);
log
.
info
(
"发送记录查询条数="
+
list
.
size
());
log
.
info
(
"发送记录查询条数="
+
list
.
size
());
if
(
ListUtils
.
isEmpty
(
list
)){
if
(
ListUtils
.
isEmpty
(
list
)){
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
...
@@ -224,11 +225,11 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -224,11 +225,11 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
list
);
}
}
}
}
Integer
count
=
timeControlTaskSendMapper
.
getTaskItemSendUserCount
(
wxIds
,
taskItemId
,
robotWxId
,
startTime
,
endTime
);
Integer
count
=
timeControlTaskSend
Detail
Mapper
.
getTaskItemSendUserCount
(
wxIds
,
taskItemId
,
robotWxId
,
startTime
,
endTime
);
if
(
count
<=
0
)
{
if
(
count
<=
0
)
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
}
list
=
timeControlTaskSendMapper
.
listTaskItemSendUser4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
wxIds
,
taskItemId
,
robotWxId
,
startTime
,
endTime
);
list
=
timeControlTaskSend
Detail
Mapper
.
listTaskItemSendUser4Pcloud
(
currentPage
*
numPerPage
,
numPerPage
,
wxIds
,
taskItemId
,
robotWxId
,
startTime
,
endTime
);
if
(
ListUtils
.
isEmpty
(
list
))
{
if
(
ListUtils
.
isEmpty
(
list
))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
count
,
list
);
}
}
...
@@ -249,7 +250,7 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -249,7 +250,7 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
@Override
@Override
public
TodayTaskSendDto
getTodayTaskSend
()
{
public
TodayTaskSendDto
getTodayTaskSend
()
{
TodayTaskSendDto
todayTaskSendDto
=
new
TodayTaskSendDto
();
TodayTaskSendDto
todayTaskSendDto
=
new
TodayTaskSendDto
();
Integer
todayTaskSendCount
=
timeControlTaskSendMapper
.
todayTaskSendCount
();
Integer
todayTaskSendCount
=
timeControlTaskSend
Detail
Mapper
.
todayTaskSendCount
();
Integer
todayTaskNotSendCount
=
timeControlTaskSendMapper
.
todayTaskNotSendCount
();
Integer
todayTaskNotSendCount
=
timeControlTaskSendMapper
.
todayTaskNotSendCount
();
todayTaskSendDto
.
setTodaySendCount
(
todayTaskSendCount
);
todayTaskSendDto
.
setTodaySendCount
(
todayTaskSendCount
);
todayTaskSendDto
.
setTodayNotSendCount
(
todayTaskNotSendCount
);
todayTaskSendDto
.
setTodayNotSendCount
(
todayTaskNotSendCount
);
...
@@ -258,10 +259,59 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -258,10 +259,59 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
@Override
@Override
public
List
<
String
>
getTaskSendDateList
(
String
date
)
{
public
List
<
String
>
getTaskSendDateList
(
String
date
)
{
List
<
String
>
taskSendDateList
=
timeControlTaskSendDetailMapper
.
getTaskSendDateList
(
date
);
/* //获取sendType=1的时间集合
List<String> taskSendDateList = timeControlTaskSendMapper.getTaskSendDateList(date);
List<String> taskSendDateList = timeControlTaskSendMapper.getTaskSendDateList(date);
if(ListUtils.isEmpty(taskSendDateList)){
taskSendDateList=new ArrayList<>();
}
//获取sendType=2 pushType=1的时间集合
date=date+"-01";
TimeControlTaskItemVO monthDay = taskItemMapper.getMonthDay(date);
List<Date> betweenDates = getBetweenDates(monthDay.getStartDay(), monthDay.getEndDay());
for (Date dateStr:betweenDates) {
String str = DateUtils.formatDate(dateStr, "yyyy-MM-dd");
if(!ListUtils.isEmpty(taskSendDateList)&&!taskSendDateList.contains(str)){
taskSendDateList.add(str);
}
}
//获取sendType=2 pushType=2的时间集合
List<TimeControlTaskItemVO> monthSecondDay=taskItemMapper.getMonthSecondDay(date);
for (TimeControlTaskItemVO taskItemVO:monthSecondDay) {
List<Date> betdate = getBetweenDates(taskItemVO.getStartDay(), taskItemVO.getEndDay());
for(int d=0;d<betdate.size();d++) {
Calendar betrq = Calendar.getInstance();
betrq.setTime(betdate.get(d));
Integer day = betrq.get(Calendar.DAY_OF_WEEK)-1;
if(day==0){
day=7;
}
String str1 = DateUtils.formatDate(betrq.getTime(), "yyyy-MM-dd");
if(!ListUtils.isEmpty(taskSendDateList)&&taskItemVO.getWeekDays().contains(day.toString())&&!taskSendDateList.contains(str1)){
taskSendDateList.add(str1);
}
}
}*/
return
taskSendDateList
;
return
taskSendDateList
;
}
}
private
List
<
Date
>
getBetweenDates
(
Date
start
,
Date
end
)
{
List
<
Date
>
datelist
=
new
ArrayList
<
Date
>();
Calendar
tempStart
=
Calendar
.
getInstance
();
tempStart
.
setTime
(
start
);
//tempStart.add(Calendar.DAY_OF_YEAR, 1);//这里可以设置从第二天开始
Calendar
tempEnd
=
Calendar
.
getInstance
();
tempEnd
.
setTime
(
end
);
while
(
tempStart
.
before
(
tempEnd
))
{
datelist
.
add
(
tempStart
.
getTime
());
tempStart
.
add
(
Calendar
.
DAY_OF_YEAR
,
1
);
}
return
datelist
;
}
@Override
@Override
public
TaskProgressDTO
getUserTaskProgress
(
Integer
taskId
,
String
wxUserId
)
throws
BizException
{
public
TaskProgressDTO
getUserTaskProgress
(
Integer
taskId
,
String
wxUserId
)
throws
BizException
{
TaskProgressDTO
taskProgressDTO
=
new
TaskProgressDTO
();
TaskProgressDTO
taskProgressDTO
=
new
TaskProgressDTO
();
...
@@ -283,7 +333,7 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
...
@@ -283,7 +333,7 @@ public class TaskCompletedBizImpl implements TaskCompletedBiz {
taskProgressDTO
.
setFinishCount
(
progressDTO
.
getFinishCount
());
taskProgressDTO
.
setFinishCount
(
progressDTO
.
getFinishCount
());
}
}
taskProgressDTO
.
setTaskCount
(
taskItemMapper
.
getTaskItemCount
(
taskId
));
taskProgressDTO
.
setTaskCount
(
taskItemMapper
.
getTaskItemCount
(
taskId
));
List
<
TaskProgressItemDTO
>
itemList
=
timeControlTaskSendMapper
.
getUserTaskItemProgress
(
taskId
,
wxUserId
);
List
<
TaskProgressItemDTO
>
itemList
=
timeControlTaskSend
Detail
Mapper
.
getUserTaskItemProgress
(
taskId
,
wxUserId
);
taskProgressDTO
.
setItemList
(
itemList
);
taskProgressDTO
.
setItemList
(
itemList
);
Integer
finishTaskCount
=
0
;
Integer
finishTaskCount
=
0
;
if
(!
ListUtils
.
isEmpty
(
itemList
))
{
if
(!
ListUtils
.
isEmpty
(
itemList
))
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskSubscribeBizImpl.java
View file @
088aa326
...
@@ -2,6 +2,7 @@ package com.pcloud.book.timecontrol.biz.impl;
...
@@ -2,6 +2,7 @@ package com.pcloud.book.timecontrol.biz.impl;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.util.concurrent.ThreadFactoryBuilder
;
import
com.google.common.util.concurrent.ThreadFactoryBuilder
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
...
@@ -28,17 +29,23 @@ import com.pcloud.book.timecontrol.entity.TimeControlTask;
...
@@ -28,17 +29,23 @@ import com.pcloud.book.timecontrol.entity.TimeControlTask;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSend
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSend
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSubscribe
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSubscribe
;
import
com.pcloud.book.timecontrol.entity.TimeControlWeekDay
;
import
com.pcloud.book.timecontrol.enums.TimeControlPushTypeEnum
;
import
com.pcloud.book.timecontrol.enums.SendTypeEnum
;
import
com.pcloud.book.timecontrol.enums.TaskSendStateEnum
;
import
com.pcloud.book.timecontrol.enums.TaskSendStateEnum
;
import
com.pcloud.book.timecontrol.enums.TaskSubscribeStateEnum
;
import
com.pcloud.book.timecontrol.enums.TaskSubscribeStateEnum
;
import
com.pcloud.book.timecontrol.mapper.TimeControlReplyMessageMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlReplyMessageMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskItemWeekMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendDetailMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSendMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSubscribeMapper
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskSubscribeMapper
;
import
com.pcloud.book.util.common.YesOrNoEnums
;
import
com.pcloud.book.util.common.YesOrNoEnums
;
import
com.pcloud.channelcenter.base.constants.ChannelConstants
;
import
com.pcloud.channelcenter.base.constants.ChannelConstants
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
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.utils.BeanUtils
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
...
@@ -124,14 +131,18 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -124,14 +131,18 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
private
PcloudSkillRecordDao
pcloudSkillRecordDao
;
private
PcloudSkillRecordDao
pcloudSkillRecordDao
;
@Autowired
@Autowired
private
TaskBiz
taskBiz
;
private
TaskBiz
taskBiz
;
@Autowired
private
TimeControlTaskItemWeekMapper
timeControlTaskItemWeekMapper
;
@Autowired
private
TimeControlTaskSendDetailMapper
timeControlTaskSendDetailMapper
;
@Override
@Override
@ParamLog
(
"任务订阅"
)
@ParamLog
(
"任务订阅"
)
public
void
subscribeTask
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
String
robotWxId
)
{
public
void
subscribeTask
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
String
robotWxId
)
{
//更新技能记录列表状态
//更新技能记录列表状态
List
<
Long
>
skillIds
=
pcloudSkillDao
.
getListByRelId
(
taskId
);
List
<
Long
>
skillIds
=
pcloudSkillDao
.
getListByRelId
(
taskId
);
if
(!
ListUtils
.
isEmpty
(
skillIds
)){
if
(!
ListUtils
.
isEmpty
(
skillIds
))
{
pcloudSkillRecordDao
.
batchUpdateState4ResourceAndActivity
(
wxUserId
,
skillIds
,
1
);
pcloudSkillRecordDao
.
batchUpdateState4ResourceAndActivity
(
wxUserId
,
skillIds
,
1
);
}
}
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
if
(
null
==
timeControlTask
)
{
if
(
null
==
timeControlTask
)
{
...
@@ -158,25 +169,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -158,25 +169,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
taskSubscribe
.
setRobotWxId
(
robotWxId
);
taskSubscribe
.
setRobotWxId
(
robotWxId
);
taskSubscribeMapper
.
subscribeTask
(
taskSubscribe
);
taskSubscribeMapper
.
subscribeTask
(
taskSubscribe
);
}
}
//插入待发送记录
insertTaskSend
(
wxUserId
,
bookId
,
taskId
,
timeControlTask
,
taskSubscribe
);
List
<
ReplyMessageBaseDto
>
dayList
=
taskItemMapper
.
listTaskItemDay
(
taskId
);
List
<
TimeControlTaskSend
>
taskSendList
=
new
ArrayList
<>();
if
(!
ListUtils
.
isEmpty
(
dayList
))
{
for
(
ReplyMessageBaseDto
item
:
dayList
)
{
TimeControlTaskSend
taskSend
=
new
TimeControlTaskSend
();
taskSend
.
setWxUserId
(
wxUserId
);
taskSend
.
setBookId
(
bookId
);
taskSend
.
setTaskId
(
taskId
);
taskSend
.
setSubscribeId
(
taskSubscribe
.
getId
());
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"
);
timeControlTaskSendMapper
.
batchInsert
(
taskSendList
);
}
//订阅成功个人号回复消息
//订阅成功个人号回复消息
EXECUTOR_SERVICE
.
execute
(()
->
{
EXECUTOR_SERVICE
.
execute
(()
->
{
PcloudSkill
pcloudSkill
=
pcloudSkillDao
.
getByRelId
(
taskId
,
SkillTypeEnum
.
TIME_MANAGE
.
value
);
PcloudSkill
pcloudSkill
=
pcloudSkillDao
.
getByRelId
(
taskId
,
SkillTypeEnum
.
TIME_MANAGE
.
value
);
...
@@ -201,6 +194,51 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -201,6 +194,51 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
LOGGER
.
info
(
"222"
);
LOGGER
.
info
(
"222"
);
}
}
private
void
insertTaskSend
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
TimeControlTask
timeControlTask
,
TimeControlTaskSubscribe
taskSubscribe
)
{
List
<
ReplyMessageBaseDto
>
dayList
=
taskItemMapper
.
listTaskItemDay
(
taskId
);
List
<
TimeControlTaskSend
>
taskSendList
=
new
ArrayList
<>();
if
(!
ListUtils
.
isEmpty
(
dayList
))
{
if
(
SendTypeEnum
.
SEND_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
()))
{
for
(
ReplyMessageBaseDto
item
:
dayList
)
{
TimeControlTaskSend
taskSend
=
new
TimeControlTaskSend
();
taskSend
.
setWxUserId
(
wxUserId
);
taskSend
.
setBookId
(
bookId
);
taskSend
.
setTaskId
(
taskId
);
taskSend
.
setSubscribeId
(
taskSubscribe
.
getId
());
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
);
}
}
else
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
()))
{
for
(
ReplyMessageBaseDto
item
:
dayList
)
{
List
<
Integer
>
weekdays
=
item
.
getWeekdays
();
if
(!
ListUtils
.
isEmpty
(
weekdays
))
{
for
(
Integer
weekDay
:
weekdays
){
TimeControlTaskSend
taskSend
=
new
TimeControlTaskSend
();
taskSend
.
setWxUserId
(
wxUserId
);
taskSend
.
setBookId
(
bookId
);
taskSend
.
setTaskId
(
taskId
);
taskSend
.
setSubscribeId
(
taskSubscribe
.
getId
());
taskSend
.
setSendState
(
TaskSendStateEnum
.
WAIT_SEND
.
state
);
taskSend
.
setTaskItemId
(
item
.
getId
());
taskSend
.
setSendWeek
(
weekDay
);
taskSend
.
setSendCount
(
0
);
taskSend
.
setSendHour
(
item
.
getSendHour
());
taskSendList
.
add
(
taskSend
);
}
}
}
}
LOGGER
.
info
(
"111"
);
if
(!
ListUtils
.
isEmpty
(
taskSendList
)){
timeControlTaskSendMapper
.
batchInsert
(
taskSendList
);
}
}
}
@ParamLog
@ParamLog
private
void
sendReply
(
PcloudSubReply
pcloudSubReply
,
String
userWxId
,
String
robotWxId
,
String
ip
,
String
messageGroupId
,
Integer
count
,
Integer
index
)
{
private
void
sendReply
(
PcloudSubReply
pcloudSubReply
,
String
userWxId
,
String
robotWxId
,
String
ip
,
String
messageGroupId
,
Integer
count
,
Integer
index
)
{
Integer
type
=
pcloudSubReply
.
getType
();
Integer
type
=
pcloudSubReply
.
getType
();
...
@@ -337,6 +375,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -337,6 +375,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
if
(
ListUtils
.
isEmpty
(
taskSendList
)){
if
(
ListUtils
.
isEmpty
(
taskSendList
)){
return
;
return
;
}
}
addSendDetails
(
taskSendList
);
Map
<
String
,
List
<
TaskSendDto
>>
collect
=
taskSendList
.
stream
().
collect
(
Collectors
.
groupingBy
(
taskSendDto
->
taskSendDto
.
getWxUserId
()
+
"_"
+
taskSendDto
.
getTaskId
()));
Map
<
String
,
List
<
TaskSendDto
>>
collect
=
taskSendList
.
stream
().
collect
(
Collectors
.
groupingBy
(
taskSendDto
->
taskSendDto
.
getWxUserId
()
+
"_"
+
taskSendDto
.
getTaskId
()));
for
(
String
s
:
collect
.
keySet
())
{
for
(
String
s
:
collect
.
keySet
())
{
sendTaskMsg
(
collect
.
get
(
s
));
sendTaskMsg
(
collect
.
get
(
s
));
...
@@ -349,6 +388,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -349,6 +388,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
int
count
=
0
;
int
count
=
0
;
for
(
TaskSendDto
sendDto
:
taskSendList
)
{
for
(
TaskSendDto
sendDto
:
taskSendList
)
{
count
++;
count
++;
Integer
taskId
=
sendDto
.
getTaskId
();
Integer
taskItemId
=
sendDto
.
getTaskItemId
();
Integer
taskItemId
=
sendDto
.
getTaskItemId
();
TimeControlTaskItem
timeControlTaskItem
=
taskItemMapper
.
selectByPrimaryKey
(
taskItemId
);
TimeControlTaskItem
timeControlTaskItem
=
taskItemMapper
.
selectByPrimaryKey
(
taskItemId
);
if
(
null
==
timeControlTaskItem
)
{
if
(
null
==
timeControlTaskItem
)
{
...
@@ -378,7 +418,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -378,7 +418,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));
}
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
get
FinishConfirm
())
||
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
get
TdConfirm
())){
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getTdConfirm
())){
//封装退订提醒
//封装退订提醒
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
sendTextMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
...
@@ -387,15 +427,6 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -387,15 +427,6 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendTextMessageVO
.
setWxGroupId
(
wxUserId
);
sendTextMessageVO
.
setWxGroupId
(
wxUserId
);
sendTextMessageVO
.
setIp
(
ip
);
sendTextMessageVO
.
setIp
(
ip
);
String
content
=
""
;
String
content
=
""
;
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getFinishConfirm
()))
{
String
finishLinkUrl
=
timeControlTaskItem
.
getFinishLinkUrl
();
if
(
finishLinkUrl
!=
null
)
{
String
baseUrl
=
wechatGroupLinkPrefix
+
"/link?"
;
finishLinkUrl
=
baseUrl
+
"wxId="
+
wxUserId
+
"&taskSendId="
+
taskSendId
+
"&url="
+
URLEncoder
.
encode
(
finishLinkUrl
);
String
resultUrl
=
UrlUtils
.
getShortUrl4Own
(
finishLinkUrl
);
content
=
content
+
timeControlTaskItem
.
getFinishLinkIntroduce
()
+
"\n"
+
resultUrl
;
}
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getTdConfirm
()))
{
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getTdConfirm
()))
{
if
(
StringUtil
.
isEmpty
(
content
))
{
if
(
StringUtil
.
isEmpty
(
content
))
{
content
=
content
+
"如需退订,请回复 TD"
+
sendDto
.
getTaskId
();
content
=
content
+
"如需退订,请回复 TD"
+
sendDto
.
getTaskId
();
...
@@ -410,6 +441,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -410,6 +441,7 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));;
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));;
}
}
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getProgressGuidance
()))
{
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getProgressGuidance
()))
{
//封装任务进度
//封装任务进度
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
...
@@ -428,21 +460,117 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -428,21 +460,117 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));;
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));;
}
}
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
//更新发送状态
//更新发送状态
Integer
completeState
=
null
;
Integer
completeState
=
null
;
Integer
weekDay
=
DateUtils
.
getWeek
();
if
(
weekDay
==
1
){
weekDay
=
7
;
}
else
{
weekDay
=
--
weekDay
;
}
Integer
maxWeekDay
=
timeControlTaskItemWeekMapper
.
getMaxWeekDay
(
taskItemId
);
if
(!
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getFinishConfirm
()))
{
if
(!
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getFinishConfirm
()))
{
completeState
=
1
;
//根据日期来判断完成状态
if
(
SendTypeEnum
.
SEND_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
())){
completeState
=
1
;
}
else
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
Date
nextSendDate
=
DateUtils
.
addDay
(
new
Date
(),
7
);
Date
shortNextSendDate
=
DateUtils
.
dateFormat
(
nextSendDate
);
if
(
TimeControlPushTypeEnum
.
SEND_EVERY_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
())){
//如果每天发送今天等于结束时间则结束
if
(
DateUtils
.
dateFormat
(
new
Date
()).
equals
(
timeControlTaskItem
.
getEndTime
())){
completeState
=
1
;
}
}
else
if
(
maxWeekDay
!=
null
&&
maxWeekDay
.
equals
(
weekDay
)
&&
TimeControlPushTypeEnum
.
SEND_4_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
//如果下一次执行的时候大于最大时间则算完成了
if
(
shortNextSendDate
.
after
(
timeControlTaskItem
.
getEndTime
())){
completeState
=
1
;
}
}
}
}
else
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getFinishConfirm
())){
//根据日期来判断完成状态
if
(
SendTypeEnum
.
SEND_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
())){
send4Finish
(
timeControlTaskItem
,
robotWxId
,
wxUserId
,
ip
,
taskSendId
);
}
else
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
()))
{
Date
nextSendDate
=
DateUtils
.
addDay
(
new
Date
(),
7
);
Date
shortNextSendDate
=
DateUtils
.
dateFormat
(
nextSendDate
);
if
(
TimeControlPushTypeEnum
.
SEND_EVERY_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
()))
{
//如果每天发送今天等于结束时间则结束
if
(
DateUtils
.
dateFormat
(
new
Date
()).
equals
(
timeControlTaskItem
.
getEndTime
()))
{
send4Finish
(
timeControlTaskItem
,
robotWxId
,
wxUserId
,
ip
,
taskSendId
);
completeState
=
1
;
}
}
else
if
(
maxWeekDay
!=
null
&&
maxWeekDay
.
equals
(
weekDay
)
&&
TimeControlPushTypeEnum
.
SEND_4_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
()))
{
//如果下一次执行的时候大于最大时间则算完成了
if
(
shortNextSendDate
.
after
(
timeControlTaskItem
.
getEndTime
()))
{
send4Finish
(
timeControlTaskItem
,
robotWxId
,
wxUserId
,
ip
,
taskSendId
);
completeState
=
1
;
}
}
}
}
}
timeControlTaskSendMapper
.
updateSendState
(
sendDto
.
getId
(),
TaskSendStateEnum
.
FINISH_SEND
.
getState
(),
completeState
);
timeControlTaskSendMapper
.
updateSendState
(
sendDto
.
getId
(),
TaskSendStateEnum
.
FINISH_SEND
.
getState
(),
completeState
);
//如果是按周发送则增加发送次数
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
timeControlTaskSendMapper
.
addSendCount
(
sendDto
.
getId
());
}
//每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态
//每次都要判断一下是否所有单项任务都完成。完成之后需要同步修改关注表里面完成状态
if
(
count
==
taskSendList
.
size
())
{
if
(
SendTypeEnum
.
SEND_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
())){
Integer
noCompletedItem
=
timeControlTaskSendMapper
.
getNoCompletedCount
(
timeControlTaskSend
.
getSubscribeId
());
if
(
count
==
taskSendList
.
size
())
{
if
(
noCompletedItem
==
0
)
{
Integer
noCompletedItem
=
timeControlTaskSendMapper
.
getNoCompletedCount
(
timeControlTaskSend
.
getSubscribeId
());
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
if
(
noCompletedItem
==
0
)
{
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
}
}
}
else
if
(
SendTypeEnum
.
SEND_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
Date
nextSendDate
=
DateUtils
.
addDay
(
new
Date
(),
7
);
Date
shortNextSendDate
=
DateUtils
.
dateFormat
(
nextSendDate
);
Date
maxEndTime
=
taskItemMapper
.
getMaxEndTime
(
taskId
);
if
(
TimeControlPushTypeEnum
.
SEND_EVERY_DAY
.
state
.
equals
(
timeControlTask
.
getSendType
())){
//如果每天发送今天等于结束时间则结束
if
(
DateUtils
.
dateFormat
(
new
Date
()).
equals
(
maxEndTime
)){
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
}
}
else
if
(
maxWeekDay
!=
null
&&
maxWeekDay
.
equals
(
weekDay
)
&&
TimeControlPushTypeEnum
.
SEND_4_WEEK
.
state
.
equals
(
timeControlTask
.
getSendType
())){
//如果下一次执行的时候大于最大时间则算完成了
if
(
shortNextSendDate
.
after
(
maxEndTime
)){
taskSubscribeMapper
.
completedTaskById
(
timeControlTaskSend
.
getSubscribeId
());
}
}
}
}
}
}
private
void
send4Finish
(
TimeControlTaskItem
timeControlTaskItem
,
String
robotWxId
,
String
wxUserId
,
String
ip
,
Integer
taskSendId
)
{
//封装退订提醒
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
sendTextMessageVO
.
setWxId
(
robotWxId
);
sendTextMessageVO
.
setAltId
(
robotWxId
);
sendTextMessageVO
.
setWxGroupId
(
wxUserId
);
sendTextMessageVO
.
setIp
(
ip
);
String
content
=
""
;
if
(
YesOrNoEnums
.
YES
.
getValue
().
equals
(
timeControlTaskItem
.
getFinishConfirm
()))
{
String
finishLinkUrl
=
timeControlTaskItem
.
getFinishLinkUrl
();
if
(
finishLinkUrl
!=
null
)
{
String
baseUrl
=
wechatGroupLinkPrefix
+
"/link?"
;
finishLinkUrl
=
baseUrl
+
"wxId="
+
wxUserId
+
"&taskSendId="
+
taskSendId
+
"&url="
+
URLEncoder
.
encode
(
finishLinkUrl
);
String
resultUrl
=
UrlUtils
.
getShortUrl4Own
(
finishLinkUrl
);
content
=
content
+
timeControlTaskItem
.
getFinishLinkIntroduce
()
+
"\n"
+
resultUrl
;
}
}
}
}
sendTextMessageVO
.
setContent
(
content
);
sendTextMessageVO
.
setIndex
(
0
);
sendTextMessageVO
.
setCounts
(
1
);
sendTextMessageVO
.
setMessageGroupId
(
UUID
.
randomUUID
().
toString
());
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
TIME_CONTROL
);
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));
;
}
}
@Override
@Override
...
@@ -486,22 +614,44 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -486,22 +614,44 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
taskSubscribeMapper
.
subscribeTask
(
taskSubscribe
);
taskSubscribeMapper
.
subscribeTask
(
taskSubscribe
);
}
}
//插入待发送记录
//插入待发送记录
List
<
ReplyMessageBaseDto
>
dayList
=
taskItemMapper
.
listTaskItemDay
(
taskId
);
insertTaskSend
(
wxUserId
,
bookId
,
taskId
,
timeControlTask
,
taskSubscribe
);
List
<
TimeControlTaskSend
>
taskSendList
=
new
ArrayList
<>();
}
if
(!
ListUtils
.
isEmpty
(
dayList
))
{
for
(
ReplyMessageBaseDto
item
:
dayList
)
{
@Override
TimeControlTaskSend
taskSend
=
new
TimeControlTaskSend
();
@ParamLog
(
"按周定时发送任务消息"
)
taskSend
.
setWxUserId
(
wxUserId
);
public
void
sendTimeTaskMessage4Week
(
Integer
taskItemId
)
{
taskSend
.
setBookId
(
bookId
);
TimeControlTaskItem
timeControlTaskItem
=
taskItemMapper
.
selectByPrimaryKey
(
taskItemId
);
taskSend
.
setTaskId
(
taskId
);
if
(
null
==
timeControlTaskItem
){
taskSend
.
setSubscribeId
(
taskSubscribe
.
getId
());
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
taskItemId
+
"此任务不存在"
);
taskSend
.
setSendState
(
TaskSendStateEnum
.
WAIT_SEND
.
state
);
}
taskSend
.
setTaskItemId
(
item
.
getId
());
Integer
weekDay
=
DateUtils
.
getWeek
();
taskSend
.
setSendDay
(
DateUtils
.
getShortDateStr
(
DateUtils
.
addDay
(
new
Date
(),
item
.
getStartDay
())));
if
(
weekDay
==
1
){
taskSend
.
setSendHour
(
item
.
getSendHour
());
weekDay
=
7
;
taskSendList
.
add
(
taskSend
);
}
else
{
}
weekDay
=
--
weekDay
;
timeControlTaskSendMapper
.
batchInsert
(
taskSendList
);
}
List
<
TaskSendDto
>
taskSendList
=
timeControlTaskSendMapper
.
listTodayTask4Week
(
taskItemId
,
weekDay
);
if
(
ListUtils
.
isEmpty
(
taskSendList
)){
return
;
}
addSendDetails
(
taskSendList
);
Map
<
String
,
List
<
TaskSendDto
>>
collect
=
taskSendList
.
stream
().
collect
(
Collectors
.
groupingBy
(
taskSendDto
->
taskSendDto
.
getWxUserId
()
+
"_"
+
taskSendDto
.
getTaskId
()));
for
(
String
s
:
collect
.
keySet
())
{
sendTaskMsg
(
collect
.
get
(
s
));
}
}
private
void
addSendDetails
(
List
<
TaskSendDto
>
taskSendList
)
{
List
<
TimeControlTaskSend
>
taskSendDetailList
=
new
ArrayList
<>();
taskSendList
.
stream
().
forEach
(
e
->{
TimeControlTaskSend
timeControlTaskSend
=
new
TimeControlTaskSend
();
BeanUtils
.
copyProperties
(
e
,
timeControlTaskSend
);
taskSendDetailList
.
add
(
timeControlTaskSend
);
});
//新增发送记录表
if
(!
ListUtils
.
isEmpty
(
taskSendDetailList
)){
timeControlTaskSendDetailMapper
.
batchInsert
(
taskSendDetailList
);
}
}
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTask.java
View file @
088aa326
...
@@ -32,4 +32,7 @@ public class TimeControlTask {
...
@@ -32,4 +32,7 @@ public class TimeControlTask {
private
String
successUnSubscribeWord
;
private
String
successUnSubscribeWord
;
//1按天发送 2按周发送
private
Integer
sendType
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTaskItem.java
View file @
088aa326
...
@@ -3,6 +3,7 @@ package com.pcloud.book.timecontrol.entity;
...
@@ -3,6 +3,7 @@ package com.pcloud.book.timecontrol.entity;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
public
class
TimeControlTaskItem
{
public
class
TimeControlTaskItem
{
private
Integer
id
;
private
Integer
id
;
...
@@ -34,6 +35,49 @@ public class TimeControlTaskItem {
...
@@ -34,6 +35,49 @@ public class TimeControlTaskItem {
private
String
itemIntroduce
;
private
String
itemIntroduce
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
private
Integer
pushType
;
private
List
<
Integer
>
weekdays
;
public
List
<
Integer
>
getWeekdays
()
{
return
weekdays
;
}
public
void
setWeekdays
(
List
<
Integer
>
weekdays
)
{
this
.
weekdays
=
weekdays
;
}
public
Integer
getPushType
()
{
return
pushType
;
}
public
void
setPushType
(
Integer
pushType
)
{
this
.
pushType
=
pushType
;
}
public
Date
getStartTime
()
{
return
startTime
;
}
public
void
setStartTime
(
Date
startTime
)
{
this
.
startTime
=
startTime
;
}
public
Date
getEndTime
()
{
return
endTime
;
}
public
void
setEndTime
(
Date
endTime
)
{
this
.
endTime
=
endTime
;
}
public
Integer
getAddSendTime
()
{
public
Integer
getAddSendTime
()
{
return
addSendTime
;
return
addSendTime
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/entity/TimeControlTaskSend.java
View file @
088aa326
...
@@ -36,4 +36,8 @@ public class TimeControlTaskSend implements Serializable {
...
@@ -36,4 +36,8 @@ public class TimeControlTaskSend implements Serializable {
private
String
sendHour
;
private
String
sendHour
;
private
Integer
working
;
private
Integer
working
;
private
Integer
sendWeek
;
private
Integer
sendCount
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/facade/impl/TimeControlPrizeFacadeImpl.java
View file @
088aa326
...
@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.Optional
;
...
@@ -68,7 +70,15 @@ public class TimeControlPrizeFacadeImpl {
...
@@ -68,7 +70,15 @@ public class TimeControlPrizeFacadeImpl {
@GetMapping
(
"downloadCertificate"
)
@GetMapping
(
"downloadCertificate"
)
ResponseDto
<?>
downloadCertificate
(
@RequestHeader
String
token
,
@RequestParam
Integer
id
,
@RequestParam
Integer
type
)
{
ResponseDto
<?>
downloadCertificate
(
@RequestHeader
String
token
,
@RequestParam
Integer
id
,
@RequestParam
Integer
type
)
{
String
url
=
taskPrizeBiz
.
downloadCertificate
(
id
,
type
);
String
url
=
taskPrizeBiz
.
downloadCertificate
(
id
,
type
);
return
new
ResponseDto
<>(
url
);
String
filePath
=
""
;
try
{
URLEncoder
.
encode
(
url
,
"utf-8"
);
filePath
=
new
String
(
url
.
getBytes
(
"iso8859-1"
),
"UTF-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
return
new
ResponseDto
<>(
filePath
);
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/facade/impl/TimeControlTaskFacadeImpl.java
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
facade
.
impl
;
package
com
.
pcloud
.
book
.
timecontrol
.
facade
.
impl
;
import
com.pcloud.book.book.constant.BookConstant
;
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.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSubscribe
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSubscribe
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.book.timecontrol.vo.KeyWordTaskVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
...
@@ -168,4 +170,21 @@ public class TimeControlTaskFacadeImpl {
...
@@ -168,4 +170,21 @@ public class TimeControlTaskFacadeImpl {
Integer
id
=
taskBiz
.
copyTaskItem
(
taskItemId
);
Integer
id
=
taskBiz
.
copyTaskItem
(
taskItemId
);
return
new
ResponseDto
<>(
id
);
return
new
ResponseDto
<>(
id
);
}
}
@ApiOperation
(
value
=
"新增定时任务"
,
httpMethod
=
"GET"
)
@GetMapping
(
"addTask4TimeControl"
)
ResponseDto
<?>
addTask4TimeControl
(
@RequestHeader
String
token
,
@RequestParam
String
key
){
if
(
BookConstant
.
TIME_CONTROL_KEY
.
equalsIgnoreCase
(
key
)){
taskBiz
.
addTask4TimeControl
();
}
return
new
ResponseDto
<>();
}
@PostMapping
(
"updateTaskSendType"
)
@ApiOperation
(
value
=
"修改任务模板的发送方式"
,
httpMethod
=
"POST"
)
ResponseDto
<?>
updateTaskSendType
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
TimeControlTask
timeControlTask
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
taskBiz
.
updateTaskSendType
(
timeControlTask
);
return
new
ResponseDto
<>();
}
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskItemMapper.java
View file @
088aa326
...
@@ -3,6 +3,9 @@ package com.pcloud.book.timecontrol.mapper;
...
@@ -3,6 +3,9 @@ package com.pcloud.book.timecontrol.mapper;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto
;
import
java.util.Date
;
import
com.pcloud.book.timecontrol.vo.request.TimeControlTaskItemVO
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -28,4 +31,12 @@ public interface TimeControlTaskItemMapper {
...
@@ -28,4 +31,12 @@ public interface TimeControlTaskItemMapper {
Integer
getTaskItemCount
(
@Param
(
"taskId"
)
Integer
taskId
);
Integer
getTaskItemCount
(
@Param
(
"taskId"
)
Integer
taskId
);
List
<
TimeControlTaskItem
>
listByTaskId
(
Integer
taskId
);
List
<
TimeControlTaskItem
>
listByTaskId
(
Integer
taskId
);
Date
getMaxEndTime
(
Integer
taskId
);
void
deleteByTaskId
(
Integer
taskId
);
TimeControlTaskItemVO
getMonthDay
(
String
date
);
List
<
TimeControlTaskItemVO
>
getMonthSecondDay
(
String
date
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskItemWeekMapper.java
0 → 100644
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
mapper
;
import
com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskItem
;
import
com.pcloud.book.timecontrol.entity.TimeControlWeekDay
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
@Component
(
"taskItemWeekMapper"
)
public
interface
TimeControlTaskItemWeekMapper
{
int
batchInsert
(
List
<
TimeControlWeekDay
>
record
);
List
<
TimeControlWeekDay
>
selectByItemId
(
Integer
taskItemId
);
Integer
getMaxWeekDay
(
Integer
taskItemId
);
void
batchDelete
(
List
<
Integer
>
taskItemIds
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskMapper.java
View file @
088aa326
...
@@ -63,4 +63,5 @@ public interface TimeControlTaskMapper {
...
@@ -63,4 +63,5 @@ public interface TimeControlTaskMapper {
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
);
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
);
void
updateTaskSendType
(
TimeControlTask
taskDto
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskSendDetailMapper.java
0 → 100644
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
mapper
;
import
com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO
;
import
com.pcloud.book.timecontrol.dto.TaskItemSendDto
;
import
com.pcloud.book.timecontrol.dto.TaskProgressItemDTO
;
import
com.pcloud.book.timecontrol.dto.TaskSendDto
;
import
com.pcloud.book.timecontrol.dto.TaskSendUserDto
;
import
com.pcloud.book.timecontrol.entity.TimeControlTaskSend
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
/**
* @date: 2020年01月31日 20:05
* @Author: Zcy
* @Descprition
*/
@Component
public
interface
TimeControlTaskSendDetailMapper
{
void
batchInsert
(
List
<
TimeControlTaskSend
>
taskSendList
);
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
,
@Param
(
"startTime"
)
String
startTime
,
@Param
(
"endTime"
)
String
endTime
);
List
<
TaskSendUserDto
>
listTaskItemSendUser4Pcloud
(
@Param
(
"pageNum"
)
Integer
pageNum
,
@Param
(
"numPerPage"
)
Integer
numPerPage
,
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"robotWxId"
)
String
robotWxId
,
@Param
(
"startTime"
)
String
startTime
,
@Param
(
"endTime"
)
String
endTime
);
List
<
SubscribeTaskUserDTO
>
getTaskNoCompletedCount
(
@Param
(
"wxIds"
)
List
<
String
>
wxIds
,
@Param
(
"taskId"
)
Integer
taskId
);
Integer
getNoCompletedCount
(
@Param
(
"subscribeId"
)
Integer
subscribeId
);
Integer
getCompletedCount
(
Integer
subscribeId
);
List
<
TaskProgressItemDTO
>
getUserTaskItemProgress
(
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"wxUserId"
)
String
wxUserId
);
void
updateSendState4Week
();
List
<
TaskSendDto
>
listTodayTask4Week
(
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"weekDay"
)
Integer
weekDay
);
void
addSendCount
(
Integer
id
);
Integer
todayTaskSendCount
();
List
<
String
>
getTaskSendDateList
(
String
date
);
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/mapper/TimeControlTaskSendMapper.java
View file @
088aa326
...
@@ -65,4 +65,9 @@ public interface TimeControlTaskSendMapper {
...
@@ -65,4 +65,9 @@ public interface TimeControlTaskSendMapper {
List
<
TaskProgressItemDTO
>
getUserTaskItemProgress
(
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"wxUserId"
)
String
wxUserId
);
List
<
TaskProgressItemDTO
>
getUserTaskItemProgress
(
@Param
(
"taskId"
)
Integer
taskId
,
@Param
(
"wxUserId"
)
String
wxUserId
);
void
updateSendState4Week
();
List
<
TaskSendDto
>
listTodayTask4Week
(
@Param
(
"taskItemId"
)
Integer
taskItemId
,
@Param
(
"weekDay"
)
Integer
weekDay
);
void
addSendCount
(
Integer
id
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/service/impl/TimeControlTaskServiceImpl.java
View file @
088aa326
...
@@ -9,6 +9,8 @@ import com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper;
...
@@ -9,6 +9,8 @@ import com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper;
import
com.pcloud.book.timecontrol.service.TimeControlTaskService
;
import
com.pcloud.book.timecontrol.service.TimeControlTaskService
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
io.swagger.models.auth.In
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
@@ -24,6 +26,7 @@ import java.util.Map;
...
@@ -24,6 +26,7 @@ import java.util.Map;
@RestController
(
"timeControlTaskService"
)
@RestController
(
"timeControlTaskService"
)
@RequestMapping
(
"timeControlTaskService"
)
@RequestMapping
(
"timeControlTaskService"
)
@Slf4j
public
class
TimeControlTaskServiceImpl
implements
TimeControlTaskService
{
public
class
TimeControlTaskServiceImpl
implements
TimeControlTaskService
{
@Autowired
@Autowired
...
@@ -94,4 +97,22 @@ public class TimeControlTaskServiceImpl implements TimeControlTaskService {
...
@@ -94,4 +97,22 @@ public class TimeControlTaskServiceImpl implements TimeControlTaskService {
taskSubscribeBiz
.
unSubscribeTask
(
wxId
,
null
,
taskId
);
taskSubscribeBiz
.
unSubscribeTask
(
wxId
,
null
,
taskId
);
}
}
@Override
@GetMapping
(
"updateSendState4Week"
)
public
void
updateSendState4Week
()
{
new
Thread
(()
->
{
taskBiz
.
updateSendState4Week
();
}).
start
();
}
@Override
@PostMapping
(
"sendTimeTaskMessage4Week"
)
public
void
sendTimeTaskMessage4Week
(
@RequestBody
Map
<
String
,
Object
>
map
)
{
new
Thread
(()
->
{
log
.
info
(
"sendTimeTaskMessage4Week开始执行定时任务"
);
Integer
taskItemId
=
(
Integer
)
map
.
get
(
"taskItemId"
);
taskSubscribeBiz
.
sendTimeTaskMessage4Week
(
taskItemId
);
}).
start
();
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/vo/request/TimeControlTaskItemVO.java
0 → 100644
View file @
088aa326
package
com
.
pcloud
.
book
.
timecontrol
.
vo
.
request
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
TimeControlTaskItemVO
{
private
Integer
id
;
private
Integer
pushType
;
private
Integer
sendType
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
startDay
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd"
,
timezone
=
"GMT+8"
)
private
Date
endDay
;
private
String
weekDays
;
}
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskItemMapper.xml
View file @
088aa326
...
@@ -16,17 +16,34 @@
...
@@ -16,17 +16,34 @@
<result
column=
"send_hour"
property=
"sendHour"
jdbcType=
"VARCHAR"
/>
<result
column=
"send_hour"
property=
"sendHour"
jdbcType=
"VARCHAR"
/>
<result
column=
"progress_guidance"
property=
"progressGuidance"
jdbcType=
"INTEGER"
/>
<result
column=
"progress_guidance"
property=
"progressGuidance"
jdbcType=
"INTEGER"
/>
<result
column=
"item_introduce"
property=
"itemIntroduce"
jdbcType=
"VARCHAR"
/>
<result
column=
"item_introduce"
property=
"itemIntroduce"
jdbcType=
"VARCHAR"
/>
<result
column=
"start_time"
property=
"startTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"end_time"
property=
"endTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"push_type"
property=
"pushType"
jdbcType=
"INTEGER"
/>
</resultMap>
<resultMap
id=
"ReplyMessageBaseDtoMap"
type=
"com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto"
>
<id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"task_id"
property=
"taskId"
jdbcType=
"INTEGER"
/>
<result
column=
"start_day"
property=
"startDay"
jdbcType=
"INTEGER"
/>
<result
column=
"send_hour"
property=
"sendHour"
jdbcType=
"VARCHAR"
/>
<result
column=
"configState"
property=
"configState"
jdbcType=
"INTEGER"
/>
<result
column=
"start_time"
property=
"startTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"end_time"
property=
"endTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"push_type"
property=
"pushType"
jdbcType=
"INTEGER"
/>
<collection
property=
"weekdays"
ofType=
"integer"
>
<result
column=
"week_day"
jdbcType=
"INTEGER"
/>
</collection>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
id, task_id, start_day, finish_confirm, finish_key_word, create_time, update_time,td_confirm,finish_link_introduce,finish_link_url
id, task_id, start_day, finish_confirm, finish_key_word, create_time, update_time,td_confirm,finish_link_introduce,finish_link_url
,add_send_time,send_hour,progress_guidance, item_introduce
,add_send_time,send_hour,progress_guidance, item_introduce
,start_time,end_time,push_type
</sql>
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_item(task_id, start_day, finish_confirm, finish_key_word, create_time, update_time
insert into time_control_task_item(task_id, start_day, finish_confirm, finish_key_word, create_time, update_time
,td_confirm,finish_link_introduce,finish_link_url,add_send_time,send_hour,progress_guidance, item_introduce)
,td_confirm,finish_link_introduce,finish_link_url,add_send_time,send_hour,progress_guidance, item_introduce
,start_time,end_time,push_type
)
values (#{taskId}, #{startDay}, #{finishConfirm}, #{finishKeyWord}, now(), now(),#{tdConfirm},#{finishLinkIntroduce},#{finishLinkUrl}
values (#{taskId}, #{startDay}, #{finishConfirm}, #{finishKeyWord}, now(), now(),#{tdConfirm},#{finishLinkIntroduce},#{finishLinkUrl}
,#{addSendTime},#{sendHour},#{progressGuidance}, #{itemIntroduce})
,#{addSendTime},#{sendHour},#{progressGuidance}, #{itemIntroduce}
,#{startTime},#{endTime},#{pushType}
)
</insert>
</insert>
<update
id=
"updateTaskItem"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskItem"
>
<update
id=
"updateTaskItem"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskItem"
>
...
@@ -41,7 +58,10 @@
...
@@ -41,7 +58,10 @@
add_send_time=#{addSendTime},
add_send_time=#{addSendTime},
send_hour=#{sendHour},
send_hour=#{sendHour},
progress_guidance=#{progressGuidance},
progress_guidance=#{progressGuidance},
update_time = now(), item_introduce = #{itemIntroduce}
update_time = now(), item_introduce = #{itemIntroduce},
start_time = #{startTime},
end_time= #{endTime},
push_type = #{pushType}
where id = #{id}
where id = #{id}
</update>
</update>
...
@@ -59,11 +79,22 @@
...
@@ -59,11 +79,22 @@
where task_id = #{taskId} and start_day = #{startDay}
where task_id = #{taskId} and start_day = #{startDay}
</select>
</select>
<select
id=
"listTaskItemDay"
resultType=
"com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto"
>
<select
id=
"listTaskItemDay"
resultMap=
"ReplyMessageBaseDtoMap"
>
select id, task_id taskId, start_day startDay, send_hour sendHour,
select
if(finish_confirm=0,0,2) configState
item.id,
from time_control_task_item where task_id = #{taskId}
item.task_id ,
order by startDay asc, send_hour asc
item.start_day ,
item.send_hour ,
if(item.finish_confirm=0,0,2) configState,
week.task_item_id,
week.week_day,
item.start_time,
item.end_time,
item.push_type
from time_control_task_item item
left join time_control_task_item_week week on item.id = week.task_item_id
where task_id = #{taskId}
order by start_time asc,end_time asc,start_day asc, send_hour asc
</select>
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Integer"
>
...
@@ -71,6 +102,11 @@
...
@@ -71,6 +102,11 @@
where id = #{id,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
</delete>
</delete>
<delete
id=
"deleteByTaskId"
parameterType=
"integer"
>
delete from time_control_task_item
where task_id = #{taskId}
</delete>
<select
id=
"getByItemIdList"
resultMap=
"BaseResultMap"
>
<select
id=
"getByItemIdList"
resultMap=
"BaseResultMap"
>
select
select
<include
refid=
"Base_Column_List"
/>
<include
refid=
"Base_Column_List"
/>
...
@@ -98,4 +134,38 @@
...
@@ -98,4 +134,38 @@
WHERE
WHERE
task_id = #{taskId}
task_id = #{taskId}
</select>
</select>
<select
id=
"getMaxEndTime"
parameterType=
"Integer"
resultType=
"date"
>
select
max(end_time)
from
time_control_task_item
where
task_id = #{taskId}
</select>
<select
id=
"getMonthDay"
parameterType=
"String"
resultType=
"com.pcloud.book.timecontrol.vo.request.TimeControlTaskItemVO"
>
select a.id,if(min(a.start_time)
<![CDATA[ < ]]>
DATE_ADD(#{date},interval -day(#{date})+1 day),DATE_ADD(#{date},interval -day(#{date})+1 day),min(a.start_time)) startDay,
if(max(a.end_time)
<![CDATA[ > ]]>
last_day(#{date}),last_day(#{date}),max(a.end_time)) endDay
,a.push_type pushType,b.send_type sendType from time_control_task_item a
LEFT JOIN time_control_task b on b.task_id=a.task_id
where b.send_type=2
and end_time
<![CDATA[ >= ]]>
DATE_ADD(#{date},interval -day(#{date})+1 day)
AND start_time
<![CDATA[ <= ]]>
last_day(#{date})
and push_type=1
GROUP BY push_type;
</select>
<select
id=
"getMonthSecondDay"
parameterType=
"String"
resultType=
"com.pcloud.book.timecontrol.vo.request.TimeControlTaskItemVO"
>
select a.id,if(a.start_time
<![CDATA[ < ]]>
DATE_ADD(#{date},interval -day(#{date})+1 day) ,DATE_ADD(#{date},interval -day(#{date})+1 day),a.start_time)startDay,
if(a.end_time
<![CDATA[ > ]]>
last_day(#{date}),last_day(#{date}),a.end_time) endDay
,a.push_type pushType,b.send_type sendType ,GROUP_CONCAT(c.week_day) weekDays from time_control_task_item a
LEFT JOIN time_control_task b on b.task_id=a.task_id
LEFT JOIN time_control_task_item_week c on a.id=c.task_item_id
where b.send_type=2
and end_time
<![CDATA[ >= ]]>
DATE_ADD(#{date},interval -day(#{date})+1 day)
AND start_time
<![CDATA[ <= ]]>
last_day(#{date})
and push_type=2
GROUP BY a.id;
</select>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskItemWeekMapper.xml
0 → 100644
View file @
088aa326
<?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.TimeControlTaskItemWeekMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.timecontrol.entity.TimeControlWeekDay"
>
<id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"task_item_id"
property=
"taskItemId"
jdbcType=
"INTEGER"
/>
<result
column=
"week_day"
property=
"weekDay"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, task_item_id, week_day, create_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_item_week(task_item_id, week_day, create_time)
values (#{taskItemId}, #{weekDay}, now())
</insert>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_item_week(task_item_id, week_day, create_time)
values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(#{item.taskItemId}, #{item.weekDay}, now())
</foreach>
</insert>
<delete
id=
"batchDelete"
parameterType=
"list"
>
delete
from
time_control_task_item_week
where
task_item_id in
<foreach
collection=
"list"
index=
"index"
item=
"item"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</delete>
<select
id=
"selectByItemId"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
<include
refid=
"Base_Column_List"
/>
from time_control_task_item_week
where task_item_id = #{taskItemId}
</select>
<select
id=
"getMaxWeekDay"
parameterType=
"integer"
resultType=
"integer"
>
select
max(week_day)
from
time_control_task_item_week
where
task_item_id = #{taskItemId}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskMapper.xml
View file @
088aa326
...
@@ -15,6 +15,7 @@
...
@@ -15,6 +15,7 @@
<result
column=
"pur_label_id"
property=
"purLabelId"
jdbcType=
"INTEGER"
/>
<result
column=
"pur_label_id"
property=
"purLabelId"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"send_type"
property=
"sendType"
jdbcType=
"TINYINT"
/>
</resultMap>
</resultMap>
<resultMap
id=
"TaskDtoMap"
type=
"com.pcloud.book.timecontrol.dto.TaskDto"
>
<resultMap
id=
"TaskDtoMap"
type=
"com.pcloud.book.timecontrol.dto.TaskDto"
>
...
@@ -30,7 +31,7 @@
...
@@ -30,7 +31,7 @@
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
task_id, task_name, task_introduce, task_key_word, subscribe_word, advanced_setting,
task_id, task_name, task_introduce, task_key_word, subscribe_word, advanced_setting,
create_time, update_time, pro_label_id, dep_label_id, pur_label_id, success_subscribe_word, success_unsubscribe_word
create_time, update_time, pro_label_id, dep_label_id, pur_label_id, success_subscribe_word, success_unsubscribe_word
,send_type
</sql>
</sql>
<update
id=
"updateTask"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTask"
>
<update
id=
"updateTask"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTask"
>
...
@@ -41,6 +42,16 @@
...
@@ -41,6 +42,16 @@
where task_id = #{taskId}
where task_id = #{taskId}
</update>
</update>
<update
id=
"updateTaskSendType"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTask"
>
update time_control_task
<set>
<if
test=
"sendType != null"
>
send_type = #{sendType}
</if>
</set>
where task_id = #{taskId}
</update>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
select
<include
refid=
"Base_Column_List"
/>
<include
refid=
"Base_Column_List"
/>
...
@@ -63,7 +74,8 @@
...
@@ -63,7 +74,8 @@
COUNT(b.id) taskItemCount,
COUNT(b.id) taskItemCount,
a.pur_label_id purLabelId,
a.pur_label_id purLabelId,
a.pro_label_id proLabelId,
a.pro_label_id proLabelId,
a.dep_label_id depLabelId
a.dep_label_id depLabelId,
a.send_type sendType
FROM
FROM
time_control_task a
time_control_task a
LEFT JOIN time_control_task_item b ON a.task_id = b.task_id
LEFT JOIN time_control_task_item b ON a.task_id = b.task_id
...
@@ -73,9 +85,11 @@
...
@@ -73,9 +85,11 @@
</if>
</if>
GROUP BY
GROUP BY
a.task_id
a.task_id
order by a.create_time desc
<if
test=
"pageNum != null"
>
<if
test=
"pageNum != null"
>
limit #{pageNum}, #{numPerPage}
limit #{pageNum}, #{numPerPage}
</if>
</if>
</select>
</select>
<!--根据 专业/深度/目的 标签查询任务模板集合-->
<!--根据 专业/深度/目的 标签查询任务模板集合-->
...
@@ -224,10 +238,10 @@
...
@@ -224,10 +238,10 @@
insert into time_control_task (task_name, task_introduce,
insert into time_control_task (task_name, task_introduce,
task_key_word, subscribe_word, advanced_setting,
task_key_word, subscribe_word, advanced_setting,
create_time, update_time, pro_label_id, dep_label_id, pur_label_id, success_subscribe_word,
create_time, update_time, pro_label_id, dep_label_id, pur_label_id, success_subscribe_word,
success_unsubscribe_word)
success_unsubscribe_word
,send_type
)
values (#{taskName,jdbcType=VARCHAR}, #{taskIntroduce,jdbcType=VARCHAR},
values (#{taskName,jdbcType=VARCHAR}, #{taskIntroduce,jdbcType=VARCHAR},
#{taskKeyWord,jdbcType=VARCHAR}, #{subscribeWord,jdbcType=VARCHAR}, #{advancedSetting,jdbcType=INTEGER},
#{taskKeyWord,jdbcType=VARCHAR}, #{subscribeWord,jdbcType=VARCHAR}, #{advancedSetting,jdbcType=INTEGER},
now(), now(), #{proLabelId}, #{depLabelId}, #{purLabelId}, #{successSubscribeWord}, #{successUnSubscribeWord})
now(), now(), #{proLabelId}, #{depLabelId}, #{purLabelId}, #{successSubscribeWord}, #{successUnSubscribeWord}
, ifnull(#{sendType},2)
)
</insert>
</insert>
<select
id=
"getTaskCompletedCount"
resultType=
"java.lang.Integer"
>
<select
id=
"getTaskCompletedCount"
resultType=
"java.lang.Integer"
>
...
@@ -252,6 +266,7 @@
...
@@ -252,6 +266,7 @@
SELECT
SELECT
a.task_id taskId,
a.task_id taskId,
a.task_name taskName,
a.task_name taskName,
a.send_type sendType,
COUNT(distinct c.id) taskItemCount,
COUNT(distinct c.id) taskItemCount,
COUNT(DISTINCT d.wx_user_id) subscribePersonCount
COUNT(DISTINCT d.wx_user_id) subscribePersonCount
FROM time_control_task a
FROM time_control_task a
...
@@ -296,7 +311,9 @@
...
@@ -296,7 +311,9 @@
<select
id=
"listTaskSubscribeUser4Pcloud"
resultType=
"com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO"
>
<select
id=
"listTaskSubscribeUser4Pcloud"
resultType=
"com.pcloud.book.timecontrol.dto.SubscribeTaskUserDTO"
>
select t1.wxUserId wxUserId,
select t1.wxUserId wxUserId,
t1.subscribeState subscribeState,
t1.subscribeState subscribeState,
ifnull(t2.completedCount,0) completedCount from
ifnull(t2.completedCount,0) completedCount,
t2.sendCount
from
(select
(select
wx_user_id wxUserId,
wx_user_id wxUserId,
state subscribeState
state subscribeState
...
@@ -315,8 +332,9 @@
...
@@ -315,8 +332,9 @@
)t1
)t1
left join
left join
(
(
select wx_user_id wxId,count(1) completedCount
select wx_user_id wxId,count(1) completedCount,
from time_control_task_send a where
sum(send_count) sendCount
from time_control_task_send_detail a where
1=1
1=1
<if
test=
"wxIds != null and wxIds.size()>0"
>
<if
test=
"wxIds != null and wxIds.size()>0"
>
and a.wx_user_id IN
and a.wx_user_id IN
...
...
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSendDetailMapper.xml
0 → 100644
View file @
088aa326
<?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.TimeControlTaskSendDetailMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.timecontrol.entity.TimeControlTaskSend"
>
<id
column=
"id"
property=
"id"
jdbcType=
"INTEGER"
/>
<result
column=
"wx_user_id"
property=
"wxUserId"
jdbcType=
"VARCHAR"
/>
<result
column=
"book_id"
property=
"bookId"
jdbcType=
"INTEGER"
/>
<result
column=
"task_id"
property=
"taskId"
jdbcType=
"INTEGER"
/>
<result
column=
"task_item_id"
property=
"taskItemId"
jdbcType=
"INTEGER"
/>
<result
column=
"subscribe_id"
property=
"subscribeId"
jdbcType=
"INTEGER"
/>
<result
column=
"send_state"
property=
"sendState"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"send_day"
property=
"sendDay"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"working"
property=
"working"
jdbcType=
"INTEGER"
/>
<result
column=
"complete_state"
property=
"completeState"
jdbcType=
"INTEGER"
/>
<result
column=
"send_week"
property=
"sendWeek"
jdbcType=
"INTEGER"
/>
<result
column=
"send_count"
property=
"sendCount"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, complete_state,send_week,send_count
</sql>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.timecontrol.entity.TimeControlTaskSend"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into time_control_task_send_detail
(wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, send_hour,send_week)
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}, DATE_FORMAT(NOW(),'%Y-%m-%d'),
1, NOW(), #{item.sendHour},#{item.sendWeek}
)
</foreach>
</insert>
<select
id=
"getTaskItemSendCount"
resultType=
"java.lang.Integer"
>
select count(1) from (
select c.robot_wx_id
from
time_control_task_send_detail 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.content 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_detail 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.content 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_detail 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=
"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>
</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_detail 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=
"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=
"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>
<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>
<select
id=
"getUserTaskItemProgress"
resultType=
"com.pcloud.book.timecontrol.dto.TaskProgressItemDTO"
>
SELECT
s.id taskSendId,
s.task_id taskId,
s.task_item_id taskItemId,
CONCAT(s.send_day, ' ', s.send_hour) taskItemName,
s.complete_state completeState,
IF (i.id IS NULL, 0, 1) hasPrize
FROM
time_control_task_send_detail s
LEFT JOIN time_control_task_prize_item i ON s.task_id = i.task_id
AND s.task_item_id = i.task_item_id
WHERE
s.task_id = #{taskId}
AND s.wx_user_id = #{wxUserId}
AND working = 1
GROUP BY
s.id
ORDER BY
s.send_day,
s.send_hour
</select>
<update
id=
"updateSendState4Week"
>
update
time_control_task_send
set
send_state = 0
where
working = 1
and
complete_state = 0
and
send_state = 1
and
send_week is not null
</update>
<select
id=
"listTodayTask4Week"
parameterType=
"map"
resultType=
"com.pcloud.book.timecontrol.dto.TaskSendDto"
>
select
a.id id,
b.robot_wx_id robotWxId,
a.wx_user_id wxUserId,
a.task_id taskId,
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 t on a.task_item_id = t.id
where
a.send_state = 0
and
a.send_week is not null
and
DATE_FORMAT(NOW(), '%Y-%m-%d')
>
= t.start_time
and
DATE_FORMAT(NOW(), '%Y-%m-%d')
<
= t.end_time
and
a.send_week = #{weekDay}
and
a.task_item_id = #{taskItemId}
</select>
<select
id=
"todayTaskSendCount"
resultType=
"java.lang.Integer"
>
SELECT ifnull(COUNT(1),0) FROM time_control_task_send_detail WHERE send_state = 1
AND send_day =DATE_FORMAT(NOW(), '%Y-%m-%d')
</select>
<update
id=
"addSendCount"
parameterType=
"integer"
>
update
time_control_task_send
set
send_count = send_count + 1
where
id = #{id}
</update>
<select
id=
"getTaskSendDateList"
resultType=
"java.lang.String"
>
SELECT DISTINCT send_day from time_control_task_send_detail where SUBSTRING_INDEX(send_day,"-",2)=#{date}
ORDER BY send_day
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/timecontrol/TimeControlTaskSendMapper.xml
View file @
088aa326
...
@@ -13,21 +13,23 @@
...
@@ -13,21 +13,23 @@
<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=
"working"
property=
"working"
jdbcType=
"INTEGER"
/>
<result
column=
"complete_state"
property=
"completeState"
jdbcType=
"INTEGER"
/>
<result
column=
"complete_state"
property=
"completeState"
jdbcType=
"INTEGER"
/>
<result
column=
"send_week"
property=
"sendWeek"
jdbcType=
"INTEGER"
/>
<result
column=
"send_count"
property=
"sendCount"
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, complete_state
id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, complete_state
,send_week,send_count
</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"
>
insert into time_control_task_send
insert into time_control_task_send
(wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, send_hour)
(wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, send_hour
,send_week,send_count
)
values
values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(
(
#{item.wxUserId,jdbcType=VARCHAR}, #{item.bookId,jdbcType=INTEGER}, #{item.taskId,jdbcType=INTEGER},
#{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.taskItemId,jdbcType=INTEGER}, #{item.subscribeId,jdbcType=INTEGER}, #{item.sendDay,jdbcType=VARCHAR},
#{item.sendState,jdbcType=INTEGER}, NOW(), #{item.sendHour}
#{item.sendState,jdbcType=INTEGER}, NOW(), #{item.sendHour}
,#{item.sendWeek},#{item.sendCount}
)
)
</foreach>
</foreach>
</insert>
</insert>
...
@@ -38,11 +40,18 @@
...
@@ -38,11 +40,18 @@
b.robot_wx_id robotWxId,
b.robot_wx_id robotWxId,
a.wx_user_id wxUserId,
a.wx_user_id wxUserId,
a.task_id taskId,
a.task_id taskId,
a.task_item_id taskItemId
a.task_item_id taskItemId,
a.book_id bookId,
a.task_id taskId,
a.subscribe_id subscribeId,
a.send_day sendDay,
a.send_hour sendHour,
a.send_week sendWeek
from time_control_task_send a
from time_control_task_send a
left join time_control_task_subscribe b on a.subscribe_id = b.id
left join time_control_task_subscribe b on a.subscribe_id = b.id
where a.send_state = 0
where a.send_state = 0
and CONCAT_WS(" ",a.send_day,SUBSTRING_INDEX(a.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')
and send_week is null;
</select>
</select>
...
@@ -273,4 +282,58 @@
...
@@ -273,4 +282,58 @@
s.send_day,
s.send_day,
s.send_hour
s.send_hour
</select>
</select>
<update
id=
"updateSendState4Week"
>
update
time_control_task_send
set
send_state = 0
where
working = 1
and
complete_state = 0
and
send_state = 1
and
send_week is not null
</update>
<select
id=
"listTodayTask4Week"
parameterType=
"map"
resultType=
"com.pcloud.book.timecontrol.dto.TaskSendDto"
>
select
a.id id,
b.robot_wx_id robotWxId,
a.wx_user_id wxUserId,
a.task_id taskId,
a.task_item_id taskItemId,
a.book_id bookId,
a.task_id taskId,
a.subscribe_id subscribeId,
a.send_day sendDay,
a.send_hour sendHour,
a.send_week sendWeek
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 t on a.task_item_id = t.id
where
a.send_state = 0
and
a.send_week is not null
and
DATE_FORMAT(NOW(), '%Y-%m-%d')
>
= t.start_time
and
DATE_FORMAT(NOW(), '%Y-%m-%d')
<
= t.end_time
and
a.send_week = #{weekDay}
and
a.task_item_id = #{taskItemId}
</select>
<update
id=
"addSendCount"
parameterType=
"integer"
>
update
time_control_task_send
set
send_count = send_count + 1
where
id = #{id}
</update>
</mapper>
</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