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
a5bd8143
Commit
a5bd8143
authored
Apr 09, 2020
by
阮思源
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1002732 小睿1.1根据书刊名称展示权益页,确定权益与方案内容后自动订阅服务推送计划
parent
f4953546
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
405 additions
and
23 deletions
+405
-23
CustomTimeControlBiz.java
...java/com/pcloud/book/custom/biz/CustomTimeControlBiz.java
+4
-0
CustomPlanBizImpl.java
...va/com/pcloud/book/custom/biz/impl/CustomPlanBizImpl.java
+18
-0
CustomTimeControlBizImpl.java
...pcloud/book/custom/biz/impl/CustomTimeControlBizImpl.java
+190
-0
CustomPlan.java
...c/main/java/com/pcloud/book/custom/entity/CustomPlan.java
+7
-0
CustomTimeControlUser.java
.../com/pcloud/book/custom/entity/CustomTimeControlUser.java
+21
-0
CustomTimeControlFacade.java
...om/pcloud/book/custom/facade/CustomTimeControlFacade.java
+21
-0
CustomPlanMapper.java
.../java/com/pcloud/book/custom/mapper/CustomPlanMapper.java
+3
-0
CustomTimeControlReplyMapper.java
...loud/book/custom/mapper/CustomTimeControlReplyMapper.java
+3
-0
CustomTimeControlUserMapper.java
...cloud/book/custom/mapper/CustomTimeControlUserMapper.java
+19
-0
PersonalStageBizImpl.java
...oud/book/personalstage/biz/impl/PersonalStageBizImpl.java
+3
-15
TaskSubscribeBiz.java
...ava/com/pcloud/book/timecontrol/biz/TaskSubscribeBiz.java
+5
-0
TaskSubscribeBizImpl.java
...cloud/book/timecontrol/biz/impl/TaskSubscribeBizImpl.java
+48
-0
ThreadPoolUtils.java
...ain/java/com/pcloud/book/util/common/ThreadPoolUtils.java
+0
-5
CustomPlanMapper.xml
...ook/src/main/resources/mapper/custom/CustomPlanMapper.xml
+21
-3
CustomTimeControlUserMapper.xml
...n/resources/mapper/custom/CustomTimeControlUserMapper.xml
+42
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/custom/biz/CustomTimeControlBiz.java
View file @
a5bd8143
...
@@ -14,4 +14,8 @@ public interface CustomTimeControlBiz {
...
@@ -14,4 +14,8 @@ public interface CustomTimeControlBiz {
CustomTimeControlDTO
getCustomTimeControlById
(
Integer
id
);
CustomTimeControlDTO
getCustomTimeControlById
(
Integer
id
);
void
deleteCustomTimeControlById
(
Integer
id
);
void
deleteCustomTimeControlById
(
Integer
id
);
void
subCustomTimeControlById
(
Integer
id
,
String
wxUserId
,
String
robotWxId
);
Boolean
getUserSub
(
Integer
customTimeControlId
,
String
wxUserId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/custom/biz/impl/CustomPlanBizImpl.java
View file @
a5bd8143
...
@@ -14,6 +14,8 @@ import com.pcloud.book.consumer.feedback.FeedbackConsr;
...
@@ -14,6 +14,8 @@ import com.pcloud.book.consumer.feedback.FeedbackConsr;
import
com.pcloud.book.consumer.shareimage.ShareImageConsr
;
import
com.pcloud.book.consumer.shareimage.ShareImageConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.custom.biz.CustomPlanBiz
;
import
com.pcloud.book.custom.biz.CustomPlanBiz
;
import
com.pcloud.book.custom.dao.CustomTimeControlDao
;
import
com.pcloud.book.custom.dto.CustomTimeControlDTO
;
import
com.pcloud.book.custom.dto.PlanReadTypeDto
;
import
com.pcloud.book.custom.dto.PlanReadTypeDto
;
import
com.pcloud.book.custom.entity.CustomPlan
;
import
com.pcloud.book.custom.entity.CustomPlan
;
import
com.pcloud.book.custom.entity.CustomPlanModule
;
import
com.pcloud.book.custom.entity.CustomPlanModule
;
...
@@ -38,6 +40,8 @@ import com.pcloud.book.group.biz.WeixinQrcodeBiz;
...
@@ -38,6 +40,8 @@ import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import
com.pcloud.book.group.tools.Kit
;
import
com.pcloud.book.group.tools.Kit
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
import
com.pcloud.book.group.tools.SendWeixinRequestTools
;
import
com.pcloud.book.pcloudkeyword.enums.PcloudGroupRobotTypeEnum
;
import
com.pcloud.book.pcloudkeyword.enums.PcloudGroupRobotTypeEnum
;
import
com.pcloud.book.timecontrol.entity.TimeControlTask
;
import
com.pcloud.book.timecontrol.mapper.TimeControlTaskMapper
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
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
;
...
@@ -101,6 +105,10 @@ public class CustomPlanBizImpl implements CustomPlanBiz {
...
@@ -101,6 +105,10 @@ public class CustomPlanBizImpl implements CustomPlanBiz {
private
BookBiz
bookBiz
;
private
BookBiz
bookBiz
;
@Autowired
@Autowired
private
ErpConsr
erpConsr
;
private
ErpConsr
erpConsr
;
@Autowired
private
CustomTimeControlDao
customTimeControlDao
;
@Autowired
private
TimeControlTaskMapper
timeControlTaskMapper
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -149,6 +157,16 @@ public class CustomPlanBizImpl implements CustomPlanBiz {
...
@@ -149,6 +157,16 @@ public class CustomPlanBizImpl implements CustomPlanBiz {
if
(
MapUtils
.
isNotEmpty
(
bookNames
)
&&
bookNames
.
containsKey
(
customPlan
.
getBookId
()))
if
(
MapUtils
.
isNotEmpty
(
bookNames
)
&&
bookNames
.
containsKey
(
customPlan
.
getBookId
()))
customPlan
.
setBookName
(
bookNames
.
get
(
customPlan
.
getBookId
()));
customPlan
.
setBookName
(
bookNames
.
get
(
customPlan
.
getBookId
()));
}
}
if
(
null
!=
customPlan
.
getCustomTimeControlId
()){
CustomTimeControlDTO
control
=
customTimeControlDao
.
getCustomTimeControlById
(
customPlan
.
getCustomTimeControlId
());
if
(
control
!=
null
){
TimeControlTask
timeControlTask
=
timeControlTaskMapper
.
selectByPrimaryKey
(
control
.
getTimeControlTaskId
());
if
(
customPlan
!=
null
){
customPlan
.
setTaskName
(
timeControlTask
.
getTaskName
());
}
}
}
return
customPlan
;
return
customPlan
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/custom/biz/impl/CustomTimeControlBizImpl.java
View file @
a5bd8143
package
com
.
pcloud
.
book
.
custom
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
custom
.
biz
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
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.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.app.AppConsr
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.custom.biz.CustomTimeControlBiz
;
import
com.pcloud.book.custom.biz.CustomTimeControlBiz
;
import
com.pcloud.book.custom.check.CustomCheck
;
import
com.pcloud.book.custom.check.CustomCheck
;
import
com.pcloud.book.custom.dao.CustomTimeControlDao
;
import
com.pcloud.book.custom.dao.CustomTimeControlDao
;
...
@@ -13,31 +15,50 @@ import com.pcloud.book.custom.dto.CustomTimeControlPageDTO;
...
@@ -13,31 +15,50 @@ import com.pcloud.book.custom.dto.CustomTimeControlPageDTO;
import
com.pcloud.book.custom.entity.CustomTimeControl
;
import
com.pcloud.book.custom.entity.CustomTimeControl
;
import
com.pcloud.book.custom.entity.CustomTimeControlBook
;
import
com.pcloud.book.custom.entity.CustomTimeControlBook
;
import
com.pcloud.book.custom.entity.CustomTimeControlReply
;
import
com.pcloud.book.custom.entity.CustomTimeControlReply
;
import
com.pcloud.book.custom.entity.CustomTimeControlUser
;
import
com.pcloud.book.custom.mapper.CustomTimeControlBookMapper
;
import
com.pcloud.book.custom.mapper.CustomTimeControlBookMapper
;
import
com.pcloud.book.custom.mapper.CustomTimeControlReplyMapper
;
import
com.pcloud.book.custom.mapper.CustomTimeControlReplyMapper
;
import
com.pcloud.book.custom.mapper.CustomTimeControlUserMapper
;
import
com.pcloud.book.group.dao.WeixinQrcodeGenerationDao
;
import
com.pcloud.book.group.entity.WeixinQrcodeGeneration
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
import
com.pcloud.book.group.enums.AppAndProductTypeEnum
;
import
com.pcloud.book.keywords.enums.ReplyTypeEnum
;
import
com.pcloud.book.keywords.enums.ReplyTypeEnum
;
import
com.pcloud.book.pcloudkeyword.set.PcloudRobotSet
;
import
com.pcloud.book.skill.dto.AppOrProductReplyDTO
;
import
com.pcloud.book.skill.entity.PcloudSubReply
;
import
com.pcloud.book.skill.entity.PcloudSubReply
;
import
com.pcloud.book.timecontrol.biz.TaskSubscribeBiz
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.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.erp.project.dto.ProjectInfoDTO
;
import
com.pcloud.erp.project.dto.ProjectInfoDTO
;
import
com.pcloud.erp.project.service.ProjectService
;
import
com.pcloud.erp.project.service.ProjectService
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.sdk.wxgroup.RobotProcessTypeEnum
;
import
com.sdk.wxgroup.SendFileVO
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.im.mimc.BusinessConstant
;
import
com.sdk.wxgroup.im.mimc.dto.SendMomentsDTO
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
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
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -59,6 +80,16 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
...
@@ -59,6 +80,16 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
private
AppConsr
appConsr
;
private
AppConsr
appConsr
;
@Autowired
@Autowired
private
ResourceConsr
resourceConsr
;
private
ResourceConsr
resourceConsr
;
@Autowired
private
TaskSubscribeBiz
taskSubscribeBiz
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
private
PcloudRobotSet
pcloudRobotSet
;
@Autowired
private
WeixinQrcodeGenerationDao
weixinQrcodeGenerationDao
;
@Autowired
private
CustomTimeControlUserMapper
customTimeControlUserMapper
;
@Override
@Override
@Transactional
@Transactional
...
@@ -241,6 +272,165 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
...
@@ -241,6 +272,165 @@ public class CustomTimeControlBizImpl implements CustomTimeControlBiz {
customTimeControlBookMapper
.
deleteByCustomTimeControlId
(
id
);
customTimeControlBookMapper
.
deleteByCustomTimeControlId
(
id
);
}
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@ParamLog
(
"订阅读书计划"
)
@Override
public
void
subCustomTimeControlById
(
Integer
id
,
String
wxUserId
,
String
robotWxId
)
{
if
(
id
==
null
||
StringUtil
.
isEmpty
(
wxUserId
)||
StringUtil
.
isEmpty
(
robotWxId
)){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
CustomTimeControlDTO
customTimeControlDTO
=
customTimeControlMapper
.
getCustomTimeControlById
(
id
);
if
(
null
==
customTimeControlDTO
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_EXIST
,
"通过id获取定制服务读书推送计划为null"
);
}
if
(
customTimeControlDTO
.
getTimeControlTaskId
()==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"读书计划推送id为空!"
);
}
CustomTimeControlUser
controlUser
=
customTimeControlUserMapper
.
getByWxIdAndControlId
(
wxUserId
,
id
);
if
(
controlUser
!=
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"该用户已经订阅过!"
);
}
//发送订阅成功回复
List
<
CustomTimeControlReply
>
replyList
=
customTimeControlReplyMapper
.
getSubscribeReplyList
(
id
);
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(()
->
{
sendSubscribeReply
(
replyList
,
wxUserId
,
robotWxId
);
});
//订阅时间管理
taskSubscribeBiz
.
subscribeTimeControlTask
(
wxUserId
,
null
,
customTimeControlDTO
.
getTimeControlTaskId
(),
robotWxId
);
CustomTimeControlUser
customTimeControlUser
=
new
CustomTimeControlUser
();
customTimeControlUser
.
setCustomTimeControlId
(
id
);
customTimeControlUser
.
setRobotId
(
robotWxId
);
customTimeControlUser
.
setWxId
(
wxUserId
);
customTimeControlUserMapper
.
insert
(
customTimeControlUser
);
}
@ParamLog
(
"获取用户是否订阅过读书计划"
)
@Override
public
Boolean
getUserSub
(
Integer
customTimeControlId
,
String
wxUserId
)
{
if
(
customTimeControlId
==
null
||
StringUtil
.
isEmpty
(
wxUserId
)){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
CustomTimeControlUser
controlUser
=
customTimeControlUserMapper
.
getByWxIdAndControlId
(
wxUserId
,
customTimeControlId
);
if
(
controlUser
!=
null
){
return
true
;
}
return
false
;
}
@ParamLog
(
"发送订阅成功回复"
)
private
void
sendSubscribeReply
(
List
<
CustomTimeControlReply
>
replyList
,
String
userWxId
,
String
robotId
)
{
if
(
ListUtils
.
isEmpty
(
replyList
)){
return
;
}
String
uuid
=
UUID
.
randomUUID
().
toString
();
int
count
=
replyList
.
size
();
RobotProcessTypeEnum
robotProcessType
=
RobotProcessTypeEnum
.
CUSTOM_TIME_CONTROL_REPLY
;
String
ip
=
getIpByRobotId
(
robotId
);
for
(
CustomTimeControlReply
item:
replyList
){
Integer
type
=
item
.
getReplyType
();
int
index
=
replyList
.
indexOf
(
item
);
if
(
ReplyTypeEnum
.
TEXT
.
value
.
equals
(
type
))
{
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
item
.
getContent
());
sendTextMessageVO
.
setAltId
(
robotId
);
sendTextMessageVO
.
setWxGroupId
(
userWxId
);
sendTextMessageVO
.
setIp
(
ip
);
sendTextMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
sendTextMessageVO
.
setMessageGroupId
(
uuid
);
sendTextMessageVO
.
setRobotProcessType
(
robotProcessType
);
sendTextMessageVO
.
setIndex
(
index
);
sendTextMessageVO
.
setCounts
(
replyList
.
size
());
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));
}
if
(
ReplyTypeEnum
.
IMAGE
.
value
.
equals
(
type
))
{
SendPicMessageVO
sendPicMessageVO
=
new
SendPicMessageVO
();
sendPicMessageVO
.
setWxGroupId
(
userWxId
);
sendPicMessageVO
.
setAltId
(
robotId
);
sendPicMessageVO
.
setPicUrl
(
item
.
getPicUrl
());
sendPicMessageVO
.
setIp
(
ip
);
sendPicMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
sendPicMessageVO
.
setMessageGroupId
(
uuid
);
sendPicMessageVO
.
setRobotProcessType
(
robotProcessType
);
sendPicMessageVO
.
setIndex
(
index
);
sendPicMessageVO
.
setCounts
(
replyList
.
size
());
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendPicMessageVO
));
}
if
(
ReplyTypeEnum
.
APP
.
value
.
equals
(
type
))
{
AppOrProductReplyDTO
appOrProductReplyDTO
=
new
AppOrProductReplyDTO
();
appOrProductReplyDTO
.
setCounts
(
count
);
appOrProductReplyDTO
.
setIndex
(
index
);
appOrProductReplyDTO
.
setIp
(
ip
);
appOrProductReplyDTO
.
setLinkUrl
(
item
.
getLinkUrl
());
appOrProductReplyDTO
.
setMessageGroupId
(
uuid
);
appOrProductReplyDTO
.
setRobotWxId
(
robotId
);
appOrProductReplyDTO
.
setRobotProcessTypeEnum
(
robotProcessType
);
appOrProductReplyDTO
.
setServeId
(
item
.
getServeId
());
appOrProductReplyDTO
.
setServeType
(
item
.
getServeType
());
appOrProductReplyDTO
.
setUserWxId
(
userWxId
);
appOrProductReplyDTO
.
setSendMessageType
(
SendMessageTypeEnum
.
SELF
.
getCode
());
pcloudRobotSet
.
sendAppOrProductReply
(
appOrProductReplyDTO
);
}
if
(
ReplyTypeEnum
.
RESOURCE
.
value
.
equals
(
type
))
{
SendFileVO
sendFileVO
=
new
SendFileVO
();
Map
<
Long
,
ResourceDTO
>
map
=
resourceConsr
.
mapByIds
(
Arrays
.
asList
(
item
.
getResourceId
()));
ResourceDTO
resourceDTO
=
map
.
get
(
item
.
getResourceId
());
if
(
resourceDTO
!=
null
)
{
sendFileVO
.
setFileUrl
(
resourceDTO
.
getFileUrl
());
String
fileName
=
resourceDTO
.
getResourceName
();
String
fileType
=
resourceDTO
.
getFileType
();
if
(
fileName
.
contains
(
fileType
)){
//去掉后缀
fileName
=
fileName
.
substring
(
0
,
fileName
.
indexOf
(
fileType
)-
1
);
}
sendFileVO
.
setFileName
(
fileName
);
}
sendFileVO
.
setIp
(
ip
);
sendFileVO
.
setAltId
(
robotId
);
sendFileVO
.
setWxId
(
userWxId
);
sendFileVO
.
setMessageGroupId
(
uuid
);
sendFileVO
.
setRobotProcessType
(
robotProcessType
);
sendFileVO
.
setIndex
(
index
);
sendFileVO
.
setCounts
(
replyList
.
size
());
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendFileVO
));
}
if
(
ReplyTypeEnum
.
AUDIO
.
value
.
equals
(
type
))
{
SendMomentsDTO
sendMomentsDTO
=
new
SendMomentsDTO
();
Map
<
Long
,
ResourceDTO
>
map
=
resourceConsr
.
mapByIds
(
Arrays
.
asList
(
item
.
getResourceId
()));
ResourceDTO
resourceDTO
=
map
.
get
(
item
.
getResourceId
());
if
(
resourceDTO
!=
null
)
{
GroupRobotDTO
info
=
wechatGroupConsr
.
getGroupRobotByRobotId
(
robotId
);
if
(
info
!=
null
){
sendMomentsDTO
.
setIsMasterWx
(
info
.
getMasterWx
());
sendMomentsDTO
.
setReceiveAccount
(
info
.
getMac
());
}
sendMomentsDTO
.
setMomentType
(
BusinessConstant
.
MomentTypeEnum
.
SEND_WX_RECORD
);
sendMomentsDTO
.
setContent
(
userWxId
);
sendMomentsDTO
.
setLink
(
resourceDTO
.
getFileUrl
());
sendMomentsDTO
.
setIp
(
ip
);
sendMomentsDTO
.
setAltId
(
robotId
);
sendMomentsDTO
.
setWxId
(
userWxId
);
sendMomentsDTO
.
setMessageGroupId
(
uuid
);
sendMomentsDTO
.
setRobotProcessType
(
robotProcessType
);
sendMomentsDTO
.
setIndex
(
index
);
sendMomentsDTO
.
setCounts
(
replyList
.
size
());
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendMomentsDTO
));
}
}
}
}
@ParamLog
(
"获取ip"
)
private
String
getIpByRobotId
(
String
altId
)
{
String
ip
=
null
;
GroupRobotDTO
groupRobotDTO
=
wechatGroupConsr
.
getGroupRobotByWxId
(
altId
);
if
(
null
!=
groupRobotDTO
)
{
WeixinQrcodeGeneration
weixinQrcodeGeneration
=
weixinQrcodeGenerationDao
.
getByGeneration
(
groupRobotDTO
.
getVersion
());
if
(
null
!=
weixinQrcodeGeneration
)
{
ip
=
weixinQrcodeGeneration
.
getWechatGroupIp
();
}
}
return
ip
;
}
private
void
updateCustomTimeControl
(
Integer
id
,
Integer
timeControlTaskId
)
{
private
void
updateCustomTimeControl
(
Integer
id
,
Integer
timeControlTaskId
)
{
CustomTimeControl
customTimeControl
=
new
CustomTimeControl
();
CustomTimeControl
customTimeControl
=
new
CustomTimeControl
();
customTimeControl
.
setId
(
Long
.
valueOf
(
id
.
toString
()));
customTimeControl
.
setId
(
Long
.
valueOf
(
id
.
toString
()));
...
...
pcloud-service-book/src/main/java/com/pcloud/book/custom/entity/CustomPlan.java
View file @
a5bd8143
...
@@ -66,4 +66,10 @@ public class CustomPlan {
...
@@ -66,4 +66,10 @@ public class CustomPlan {
@ApiModelProperty
(
"书籍名称"
)
@ApiModelProperty
(
"书籍名称"
)
private
String
bookName
;
private
String
bookName
;
@ApiModelProperty
(
"读书计划id"
)
private
Integer
customTimeControlId
;
@ApiModelProperty
(
"计划名称"
)
private
String
taskName
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/custom/entity/CustomTimeControlUser.java
0 → 100644
View file @
a5bd8143
package
com
.
pcloud
.
book
.
custom
.
entity
;
import
com.pcloud.common.entity.BaseEntity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"读书计划用户订阅表"
)
@Data
public
class
CustomTimeControlUser
extends
BaseEntity
{
@ApiModelProperty
(
"读书计划id"
)
private
Integer
customTimeControlId
;
@ApiModelProperty
(
"机器人id"
)
private
String
robotId
;
@ApiModelProperty
(
"用户微信id"
)
private
String
wxId
;
}
pcloud-service-book/src/main/java/com/pcloud/book/custom/facade/CustomTimeControlFacade.java
View file @
a5bd8143
...
@@ -6,6 +6,7 @@ import com.pcloud.book.custom.dto.CustomTimeControlPageDTO;
...
@@ -6,6 +6,7 @@ import com.pcloud.book.custom.dto.CustomTimeControlPageDTO;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
...
@@ -53,4 +54,24 @@ public class CustomTimeControlFacade {
...
@@ -53,4 +54,24 @@ public class CustomTimeControlFacade {
return
new
ResponseDto
<>();
return
new
ResponseDto
<>();
}
}
@ApiOperation
(
"订阅读书计划"
)
@GetMapping
(
"subCustomTimeControlById"
)
ResponseDto
<?>
getCustomTimeControlById
(
@RequestParam
(
"id"
)
Integer
id
,
@RequestParam
(
"wxUserId"
)
String
wxUserId
,
@RequestParam
(
"robotWxId"
)
String
robotWxId
){
customTimeControlBiz
.
subCustomTimeControlById
(
id
,
wxUserId
,
robotWxId
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"获取用户是否订阅过读书计划"
)
@GetMapping
(
"getUserSub"
)
ResponseDto
<?>
getUserSub
(
@RequestParam
(
"customTimeControlId"
)
Integer
customTimeControlId
,
@RequestParam
(
"wxUserId"
)
String
wxUserId
){
return
new
ResponseDto
<>(
customTimeControlBiz
.
getUserSub
(
customTimeControlId
,
wxUserId
));
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/custom/mapper/CustomPlanMapper.java
View file @
a5bd8143
...
@@ -37,4 +37,6 @@ public interface CustomPlanMapper {
...
@@ -37,4 +37,6 @@ public interface CustomPlanMapper {
List
<
PlanReadTypeDto
>
getPlanReadTypesByBookId
(
@Param
(
"bookId"
)
Long
bookId
);
List
<
PlanReadTypeDto
>
getPlanReadTypesByBookId
(
@Param
(
"bookId"
)
Long
bookId
);
CustomPlan
getLastCustomPlan
(
@Param
(
"bookIds"
)
List
<
Long
>
bookIds
,
@Param
(
"readType"
)
Integer
readType
);
CustomPlan
getLastCustomPlan
(
@Param
(
"bookIds"
)
List
<
Long
>
bookIds
,
@Param
(
"readType"
)
Integer
readType
);
CustomPlan
getLastCustomPlanByBookIds
(
@Param
(
"bookIds"
)
List
<
Long
>
bookIds
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/custom/mapper/CustomTimeControlReplyMapper.java
View file @
a5bd8143
...
@@ -24,4 +24,6 @@ public interface CustomTimeControlReplyMapper {
...
@@ -24,4 +24,6 @@ public interface CustomTimeControlReplyMapper {
void
batchInsert
(
List
<
CustomTimeControlReply
>
customTimeControlReplies
);
void
batchInsert
(
List
<
CustomTimeControlReply
>
customTimeControlReplies
);
void
deleteByCustomTimeControlId
(
Integer
id
);
void
deleteByCustomTimeControlId
(
Integer
id
);
List
<
CustomTimeControlReply
>
getSubscribeReplyList
(
Integer
customTimeControlId
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/custom/mapper/CustomTimeControlUserMapper.java
0 → 100644
View file @
a5bd8143
package
com
.
pcloud
.
book
.
custom
.
mapper
;
import
com.pcloud.book.custom.entity.CustomTimeControlUser
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Component
;
@Component
public
interface
CustomTimeControlUserMapper
{
int
deleteByPrimaryKey
(
Long
id
);
int
insert
(
CustomTimeControlUser
record
);
CustomTimeControlUser
selectByPrimaryKey
(
Long
id
);
CustomTimeControlUser
getByWxIdAndControlId
(
@Param
(
"wxId"
)
String
wxId
,
@Param
(
"customTimeControlId"
)
Integer
customTimeControlId
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/impl/PersonalStageBizImpl.java
View file @
a5bd8143
...
@@ -934,9 +934,8 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
...
@@ -934,9 +934,8 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
if
(
content
.
indexOf
(
PersonalStageConstant
.
PLAN_RIGHTS
)
>
-
1
)
{
if
(
content
.
indexOf
(
PersonalStageConstant
.
PLAN_RIGHTS
)
>
-
1
)
{
// 查询用户最近搜索的书
// 查询用户最近搜索的书
UserReplaceCode
userReplaceCodeBookName
=
userReplaceCodeDao
.
getLastOneUserReplace
(
userWxId
,
robotId
,
1
);
UserReplaceCode
userReplaceCodeBookName
=
userReplaceCodeDao
.
getLastOneUserReplace
(
userWxId
,
robotId
,
1
);
UserReplaceCode
userReplaceCodeReadType
=
userReplaceCodeDao
.
getLastOneUserReplace
(
userWxId
,
robotId
,
2
);
if
(
userReplaceCodeBookName
==
null
)
{
if
(
userReplaceCodeBookName
==
null
||
userReplaceCodeReadType
==
null
)
{
LOGGER
.
info
(
"未找到用户输入的书名,无法进行跳转"
);
LOGGER
.
info
(
"未找到用户输入的书名或阅读类型,无法进行跳转"
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
}
}
String
bookName
=
userReplaceCodeBookName
.
getContent
();
String
bookName
=
userReplaceCodeBookName
.
getContent
();
...
@@ -944,24 +943,13 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
...
@@ -944,24 +943,13 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
LOGGER
.
info
(
"图书名称为空,无法替换链接"
);
LOGGER
.
info
(
"图书名称为空,无法替换链接"
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
}
}
// content 有可能是数字,也有可能是文字
Integer
readType
=
null
;
if
(
NumberUtil
.
isNumber
(
userReplaceCodeReadType
.
getContent
())){
readType
=
Integer
.
parseInt
(
userReplaceCodeReadType
.
getContent
());
}
else
{
readType
=
PlanReadTypeEnum
.
getIdByDesc
(
userReplaceCodeReadType
.
getContent
());
}
if
(
readType
==
null
)
{
LOGGER
.
info
(
"阅读类型不正确,无法替换链接; userReplaceCodeReadType.getContent: "
+
userReplaceCodeReadType
.
getContent
());
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
}
// 根据书名查询用户对应的权益(方案)
// 根据书名查询用户对应的权益(方案)
List
<
Long
>
bookIds
=
erpConsr
.
getIdByBookName
(
bookName
);
List
<
Long
>
bookIds
=
erpConsr
.
getIdByBookName
(
bookName
);
if
(
ListUtils
.
isEmpty
(
bookIds
)){
if
(
ListUtils
.
isEmpty
(
bookIds
)){
LOGGER
.
info
(
"在ERP中未找到对应的书,无法替换链接"
);
LOGGER
.
info
(
"在ERP中未找到对应的书,无法替换链接"
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
}
}
CustomPlan
customPlan
=
customPlanMapper
.
getLastCustomPlan
(
bookIds
,
readType
);
CustomPlan
customPlan
=
customPlanMapper
.
getLastCustomPlan
ByBookIds
(
bookIds
);
if
(
customPlan
==
null
)
{
if
(
customPlan
==
null
)
{
LOGGER
.
info
(
"未找到对应的权益,无法替换链接"
);
LOGGER
.
info
(
"未找到对应的权益,无法替换链接"
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
return
content
.
replace
(
PersonalStageConstant
.
PLAN_RIGHTS
,
""
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/TaskSubscribeBiz.java
View file @
a5bd8143
...
@@ -33,4 +33,9 @@ public interface TaskSubscribeBiz {
...
@@ -33,4 +33,9 @@ public interface TaskSubscribeBiz {
void
sendTimeTaskMessage
();
void
sendTimeTaskMessage
();
TimeControlTaskSubscribe
getSubscribeState
(
String
wxUserId
,
Integer
taskId
);
TimeControlTaskSubscribe
getSubscribeState
(
String
wxUserId
,
Integer
taskId
);
/**
* 时间管理订阅
*/
void
subscribeTimeControlTask
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
String
robotWxId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/timecontrol/biz/impl/TaskSubscribeBizImpl.java
View file @
a5bd8143
...
@@ -457,6 +457,54 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
...
@@ -457,6 +457,54 @@ public class TaskSubscribeBizImpl implements TaskSubscribeBiz {
return
timeControlTaskSubscribe
;
return
timeControlTaskSubscribe
;
}
}
@ParamLog
(
"时间管理订阅"
)
@Override
public
void
subscribeTimeControlTask
(
String
wxUserId
,
Long
bookId
,
Integer
taskId
,
String
robotWxId
)
{
TimeControlTask
timeControlTask
=
taskMapper
.
selectByPrimaryKey
(
taskId
);
if
(
null
==
timeControlTask
)
{
return
;
}
TimeControlTaskSubscribe
taskSubscribe
=
taskSubscribeMapper
.
getSubscribe
(
wxUserId
,
bookId
,
taskId
);
if
(
null
!=
taskSubscribe
)
{
if
(
TaskSubscribeStateEnum
.
FINISH
.
getState
().
equals
(
taskSubscribe
.
getState
()))
{
LOGGER
.
info
(
"任务已完成,直接返回"
);
return
;
}
else
if
(
TaskSubscribeStateEnum
.
SUBSCRIBE
.
getState
().
equals
(
taskSubscribe
.
getState
()))
{
LOGGER
.
info
(
"任务已订阅,直接返回"
);
return
;
}
else
{
//1.改状态
taskSubscribeMapper
.
subscribeTaskExist
(
taskSubscribe
);
}
}
else
{
taskSubscribe
=
new
TimeControlTaskSubscribe
();
taskSubscribe
.
setWxUserId
(
wxUserId
);
taskSubscribe
.
setBookId
(
bookId
);
taskSubscribe
.
setTaskId
(
taskId
);
taskSubscribe
.
setState
(
TaskSubscribeStateEnum
.
SUBSCRIBE
.
getState
());
taskSubscribe
.
setRobotWxId
(
robotWxId
);
taskSubscribeMapper
.
subscribeTask
(
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
);
}
timeControlTaskSendMapper
.
batchInsert
(
taskSendList
);
}
}
private
String
splitUrl
(
AccountSettingDto
accountSettingDto
,
String
url
)
{
private
String
splitUrl
(
AccountSettingDto
accountSettingDto
,
String
url
)
{
String
protocol
=
accountSettingDto
.
getProtocol
();
String
protocol
=
accountSettingDto
.
getProtocol
();
if
(
StringUtils
.
isEmpty
(
protocol
))
{
if
(
StringUtils
.
isEmpty
(
protocol
))
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/util/common/ThreadPoolUtils.java
View file @
a5bd8143
...
@@ -39,9 +39,4 @@ public class ThreadPoolUtils {
...
@@ -39,9 +39,4 @@ public class ThreadPoolUtils {
public
static
final
ExecutorService
SIGN_OUT_THREAD_POOL
=
new
ThreadPoolExecutor
(
5
,
5
,
0L
,
TimeUnit
.
SECONDS
,
public
static
final
ExecutorService
SIGN_OUT_THREAD_POOL
=
new
ThreadPoolExecutor
(
5
,
5
,
0L
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"sign-out-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"sign-out-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
/**
* 其他线程池
*/
public
static
final
ExecutorService
OTHER_POOL
=
new
ThreadPoolExecutor
(
8
,
8
,
0L
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"other-pool-%d"
).
build
(),
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
}
}
pcloud-service-book/src/main/resources/mapper/custom/CustomPlanMapper.xml
View file @
a5bd8143
...
@@ -24,12 +24,14 @@
...
@@ -24,12 +24,14 @@
<result
column=
"read_type"
jdbcType=
"INTEGER"
property=
"readType"
/>
<result
column=
"read_type"
jdbcType=
"INTEGER"
property=
"readType"
/>
<result
column=
"rights_pic"
jdbcType=
"VARCHAR"
property=
"rightsPic"
/>
<result
column=
"rights_pic"
jdbcType=
"VARCHAR"
property=
"rightsPic"
/>
<result
column=
"button_name"
jdbcType=
"VARCHAR"
property=
"buttonName"
/>
<result
column=
"button_name"
jdbcType=
"VARCHAR"
property=
"buttonName"
/>
<result
column=
"custom_time_control_id"
jdbcType=
"INTEGER"
property=
"customTimeControlId"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
id, plan_number, plan_name, create_user_name, description, open_feedback, paper_id,
id, plan_number, plan_name, create_user_name, description, open_feedback, paper_id,
paper_title, paper_desc, use_state, pdf_url, h5_url, preview_qrcode_url, create_time,
paper_title, paper_desc, use_state, pdf_url, h5_url, preview_qrcode_url, create_time,
update_time, confirm_feedback_reply,robot_type,book_id,read_type,rights_pic,button_name
update_time, confirm_feedback_reply,robot_type,book_id,read_type,rights_pic,button_name,
custom_time_control_id
</sql>
</sql>
<insert
id=
"insert"
parameterType=
"CustomPlan"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<insert
id=
"insert"
parameterType=
"CustomPlan"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
...
@@ -38,12 +40,12 @@
...
@@ -38,12 +40,12 @@
paper_title, paper_desc, use_state,
paper_title, paper_desc, use_state,
pdf_url, h5_url, preview_qrcode_url,
pdf_url, h5_url, preview_qrcode_url,
create_time, update_time, confirm_feedback_reply,robot_type,
create_time, update_time, confirm_feedback_reply,robot_type,
book_id,read_type,rights_pic,button_name)
book_id,read_type,rights_pic,button_name
,custom_time_control_id
)
values (#{planNumber,jdbcType=VARCHAR}, #{planName,jdbcType=VARCHAR}, #{createUserName,jdbcType=VARCHAR},
values (#{planNumber,jdbcType=VARCHAR}, #{planName,jdbcType=VARCHAR}, #{createUserName,jdbcType=VARCHAR},
#{description,jdbcType=VARCHAR}, #{openFeedback,jdbcType=INTEGER}, #{paperId,jdbcType=INTEGER},
#{description,jdbcType=VARCHAR}, #{openFeedback,jdbcType=INTEGER}, #{paperId,jdbcType=INTEGER},
#{paperTitle,jdbcType=VARCHAR}, #{paperDesc,jdbcType=VARCHAR}, #{useState,jdbcType=INTEGER},
#{paperTitle,jdbcType=VARCHAR}, #{paperDesc,jdbcType=VARCHAR}, #{useState,jdbcType=INTEGER},
#{pdfUrl,jdbcType=VARCHAR}, #{h5Url,jdbcType=VARCHAR}, #{previewQrcodeUrl,jdbcType=VARCHAR},
#{pdfUrl,jdbcType=VARCHAR}, #{h5Url,jdbcType=VARCHAR}, #{previewQrcodeUrl,jdbcType=VARCHAR},
NOW(), NOW(), #{confirmFeedbackReply},#{robotType},#{bookId},#{readType},#{rightsPic},#{buttonName})
NOW(), NOW(), #{confirmFeedbackReply},#{robotType},#{bookId},#{readType},#{rightsPic},#{buttonName}
,#{customTimeControlId}
)
</insert>
</insert>
<update
id=
"update"
parameterType=
"CustomPlan"
>
<update
id=
"update"
parameterType=
"CustomPlan"
>
...
@@ -100,6 +102,9 @@
...
@@ -100,6 +102,9 @@
<if
test=
"buttonName != null"
>
<if
test=
"buttonName != null"
>
button_name = #{buttonName},
button_name = #{buttonName},
</if>
</if>
<if
test=
"customTimeControlId != null"
>
custom_time_control_id = #{customTimeControlId},
</if>
update_time = NOW(),confirm_feedback_reply = #{confirmFeedbackReply}
update_time = NOW(),confirm_feedback_reply = #{confirmFeedbackReply}
</set>
</set>
where id = #{id,jdbcType=INTEGER}
where id = #{id,jdbcType=INTEGER}
...
@@ -241,4 +246,16 @@
...
@@ -241,4 +246,16 @@
ORDER BY id DESC
ORDER BY id DESC
LIMIT 1
LIMIT 1
</select>
</select>
<select
id=
"getLastCustomPlanByBookIds"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from custom_plan
where book_id IN
<foreach
collection=
"bookIds"
item=
"item"
separator=
","
open=
"("
close=
")"
>
${item}
</foreach>
ORDER BY id DESC
LIMIT 1
</select>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/custom/CustomTimeControlUserMapper.xml
0 → 100644
View file @
a5bd8143
<?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.custom.mapper.CustomTimeControlUserMapper"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.custom.entity.CustomTimeControlUser"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"custom_time_control_id"
property=
"customTimeControlId"
jdbcType=
"INTEGER"
/>
<result
column=
"robot_id"
property=
"robotId"
jdbcType=
"VARCHAR"
/>
<result
column=
"wx_id"
property=
"wxId"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, custom_time_control_id, robot_id, wx_id, create_time
</sql>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Long"
>
select
<include
refid=
"Base_Column_List"
/>
from custom_time_control_user
where id = #{id,jdbcType=BIGINT}
</select>
<delete
id=
"deleteByPrimaryKey"
parameterType=
"java.lang.Long"
>
delete from custom_time_control_user
where id = #{id,jdbcType=BIGINT}
</delete>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.custom.entity.CustomTimeControlUser"
>
insert into custom_time_control_user (
id, custom_time_control_id, robot_id, wx_id, create_time
)
values (#{id,jdbcType=BIGINT}, #{customTimeControlId,jdbcType=INTEGER}, #{robotId,jdbcType=VARCHAR},
#{wxId,jdbcType=VARCHAR}, now()
)
</insert>
<select
id=
"getByWxIdAndControlId"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from custom_time_control_user
where wx_id = #{wxId}
and custom_time_control_id = #{customTimeControlId}
limit 1
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment