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
bed02167
Commit
bed02167
authored
Apr 22, 2020
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1002789小睿个人号搜索书刊优化
parent
b31f40df
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
157 additions
and
12 deletions
+157
-12
BookDao.java
...-book/src/main/java/com/pcloud/book/book/dao/BookDao.java
+2
-0
BookDaoImpl.java
.../main/java/com/pcloud/book/book/dao/impl/BookDaoImpl.java
+7
-0
PersonalStageJumpBiz.java
...m/pcloud/book/personalstage/biz/PersonalStageJumpBiz.java
+8
-0
PersonalStageBizImpl.java
...oud/book/personalstage/biz/impl/PersonalStageBizImpl.java
+10
-1
PersonalStageJumpBizImpl.java
...book/personalstage/biz/impl/PersonalStageJumpBizImpl.java
+111
-10
JumpTypeEnum.java
...ava/com/pcloud/book/personalstage/enums/JumpTypeEnum.java
+5
-1
Book.Mapper.xml
...rvice-book/src/main/resources/mapper/book/Book.Mapper.xml
+14
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/BookDao.java
View file @
bed02167
...
...
@@ -346,4 +346,6 @@ public interface BookDao extends BaseDao<Book> {
List
<
ESBookAndAdviser
>
findBookAndAdviserByBookIds
(
List
<
Long
>
bookIds
);
Map
<
Long
,
BookDto
>
getMapByBookIds
(
List
<
Long
>
bookIds
);
BookDto
getBookByName
(
String
bookName
);
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/impl/BookDaoImpl.java
View file @
bed02167
...
...
@@ -371,4 +371,11 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
return
super
.
getSqlSession
().
selectMap
(
super
.
getStatement
(
"getMapByBookIds"
),
bookIds
,
"bookId"
);
}
@Override
public
BookDto
getBookByName
(
String
bookName
)
{
Map
<
String
,
Object
>
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"bookName"
,
bookName
);
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getBookByName"
),
paramMap
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/PersonalStageJumpBiz.java
View file @
bed02167
...
...
@@ -120,4 +120,12 @@ public interface PersonalStageJumpBiz {
* @param userWxId
*/
public
void
deletePaperRecord
(
String
robotId
,
String
userWxId
);
/**
* 无等级未收录图书,但book中有,处理阶段跳转
* @param userWxId
* @param robotId
* @param jumpTypeEnum
*/
Boolean
handleBookExistJump
(
String
userWxId
,
String
robotId
,
String
content
,
JumpTypeEnum
jumpTypeEnum
,
String
lastBookName
);
}
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/impl/PersonalStageBizImpl.java
View file @
bed02167
...
...
@@ -543,7 +543,16 @@ public class PersonalStageBizImpl implements PersonalStageBiz {
}
PersonalStageJumpKeywordDto
noAdviserBookDto
=
personalStageJumpKeywordDao
.
getByKeyword
(
personalStageId
,
content
,
JumpTypeEnum
.
NO_ADVISER_BOOK
.
key
);
if
(
noAdviserBookDto
!=
null
){
personalStageJumpBiz
.
handlePersonalStageJump
(
userWxId
,
robotId
,
content
,
JumpTypeEnum
.
NO_ADVISER_BOOK
,
null
,
null
);
//无等级未收录图书,但book中有
BookDto
bookDto
=
bookDao
.
getBookByName
(
lastBookName
);
if
(
null
!=
bookDto
){
//目前跟无收录图书跳转一致,平台端未配置该跳转类型
personalStageJumpBiz
.
handleBookExistJump
(
userWxId
,
robotId
,
content
,
JumpTypeEnum
.
NO_ADVISER_BOOK
,
lastBookName
);
}
else
{
personalStageJumpBiz
.
handlePersonalStageJump
(
userWxId
,
robotId
,
content
,
JumpTypeEnum
.
NO_ADVISER_BOOK
,
null
,
null
);
}
return
true
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/biz/impl/PersonalStageJumpBizImpl.java
View file @
bed02167
package
com
.
pcloud
.
book
.
personalstage
.
biz
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.alibaba.fastjson.JSON
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.content.ResourceConsr
;
import
com.pcloud.book.consumer.feedback.FeedbackConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.custom.biz.CustomPlanBiz
;
import
com.pcloud.book.custom.mapper.CustomPlanModuleSuggestionMapper
;
import
com.pcloud.book.custom.vo.UserBookServiceVO
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.guide.biz.PcloudGuideBiz
;
import
com.pcloud.book.keywords.enums.ReplyTypeEnum
;
...
...
@@ -22,9 +22,34 @@ import com.pcloud.book.personalstage.biz.PersonalStageBiz;
import
com.pcloud.book.personalstage.biz.PersonalStageJumpBiz
;
import
com.pcloud.book.personalstage.check.PersonalStageCheck
;
import
com.pcloud.book.personalstage.constant.PersonalStageConstant
;
import
com.pcloud.book.personalstage.dao.*
;
import
com.pcloud.book.personalstage.dto.*
;
import
com.pcloud.book.personalstage.entity.*
;
import
com.pcloud.book.personalstage.dao.PersonalStageDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageJumpDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageJumpEmailDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageJumpKeywordDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageJumpLinkupDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageProgressMessageDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageReplyDao
;
import
com.pcloud.book.personalstage.dao.PersonalStageUserDao
;
import
com.pcloud.book.personalstage.dao.UserReplaceCodeDao
;
import
com.pcloud.book.personalstage.dto.BaseDelayDTO
;
import
com.pcloud.book.personalstage.dto.EndServiceJumpNextDTO
;
import
com.pcloud.book.personalstage.dto.LinkClickRecordDTO
;
import
com.pcloud.book.personalstage.dto.LinkupDelayDTO
;
import
com.pcloud.book.personalstage.dto.PaperDelayDTO
;
import
com.pcloud.book.personalstage.dto.PersonalStageJumpDto
;
import
com.pcloud.book.personalstage.dto.PersonalStageJumpKeywordDto
;
import
com.pcloud.book.personalstage.dto.PlanJumpNextDTO
;
import
com.pcloud.book.personalstage.dto.ProgressDelayDTO
;
import
com.pcloud.book.personalstage.dto.TimeJumpDelayDTO
;
import
com.pcloud.book.personalstage.dto.TimeJumpNextDTO
;
import
com.pcloud.book.personalstage.entity.PersonalStage
;
import
com.pcloud.book.personalstage.entity.PersonalStageJump
;
import
com.pcloud.book.personalstage.entity.PersonalStageJumpEmail
;
import
com.pcloud.book.personalstage.entity.PersonalStageJumpKeyword
;
import
com.pcloud.book.personalstage.entity.PersonalStageJumpLinkup
;
import
com.pcloud.book.personalstage.entity.PersonalStageProgressMessage
;
import
com.pcloud.book.personalstage.entity.PersonalStageUser
;
import
com.pcloud.book.personalstage.entity.UserReplaceCode
;
import
com.pcloud.book.personalstage.enums.JumpTypeEnum
;
import
com.pcloud.book.personalstage.enums.PersonalStageUserStateEnum
;
import
com.pcloud.book.personalstage.vo.request.BaseStageJumpRequestVO
;
...
...
@@ -51,10 +76,14 @@ import com.pcloud.contentcenter.resource.dto.ResourceDTO;
import
com.pcloud.feedback.paper.dto.PaperAndQuestionDto
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
com.sdk.wxgroup.*
;
import
com.sdk.wxgroup.BaseVO
;
import
com.sdk.wxgroup.RobotProcessTypeEnum
;
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
lombok.extern.slf4j.Slf4j
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -63,9 +92,19 @@ import org.springframework.stereotype.Component;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.*
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URLEncoder
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.UUID
;
import
java.util.stream.Collectors
;
import
lombok.extern.slf4j.Slf4j
;
@Component
(
"personalStageJumpBiz"
)
@Slf4j
public
class
PersonalStageJumpBizImpl
implements
PersonalStageJumpBiz
{
...
...
@@ -121,7 +160,8 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
private
CustomPlanModuleSuggestionMapper
customPlanModuleSuggestionMapper
;
@Autowired
private
UserReplaceCodeDao
userReplaceCodeDao
;
@Value
(
"${wechat.group.link.prefix}"
)
private
String
wechatGroupLinkPrefix
;
@Value
(
"${wechat.group.link.prefix}"
)
...
...
@@ -1370,4 +1410,65 @@ public class PersonalStageJumpBizImpl implements PersonalStageJumpBiz {
}
}
@Override
@ParamLog
(
"无等级未收录图书,但book中有,处理阶段跳转"
)
@Transactional
(
rollbackFor
=
Exception
.
class
,
propagation
=
Propagation
.
REQUIRES_NEW
)
public
Boolean
handleBookExistJump
(
String
userWxId
,
String
robotWxId
,
String
content
,
JumpTypeEnum
jumpTypeEnum
,
String
lastBookName
)
{
// 查询用户的当前状态信息
PersonalStageUser
currentStageUser
=
personalStageUserDao
.
getLast
(
userWxId
,
robotWxId
,
null
);
// 如果用户没有阶段状态,则不处理
if
(
currentStageUser
==
null
||
currentStageUser
.
getId
()
<=
0
)
{
return
false
;
}
// 查询命中关键字跳转下一阶段的id
PersonalStageJumpKeywordDto
jumpKeywordDto
=
personalStageJumpKeywordDao
.
getByKeyword
(
currentStageUser
.
getPersonalStageId
(),
content
,
jumpTypeEnum
.
key
);
if
(
null
==
jumpKeywordDto
||
StringUtil
.
isEmpty
(
jumpKeywordDto
.
getKeyword
())){
// 未能命中关键词
return
false
;
}
// 如果下一个阶段是空,则已完成
if
(
null
==
jumpKeywordDto
.
getAfterPersonalStageId
()
||
jumpKeywordDto
.
getAfterPersonalStageId
()
<=
0
){
return
true
;
}
GroupRobotDTO
groupRobotDTO
=
wechatGroupConsr
.
getGroupRobotByWxId
(
robotWxId
);
String
ip
=
weixinQrcodeBiz
.
getRobotIpByGeneration
(
groupRobotDTO
.
getVersion
());
//处理需求单记录
dealPaperRecord
(
currentStageUser
.
getPersonalStageId
(),
jumpKeywordDto
.
getAfterPersonalStageId
(),
userWxId
,
robotWxId
);
// 发送邮件
sendEmail
(
userWxId
,
robotWxId
,
content
,
jumpKeywordDto
);
// 将用户置为下个阶段
PersonalStageUser
nextPersonalStageUser
=
personalStageBiz
.
nextStageAddStageUserAndWakeupDelay
(
robotWxId
,
userWxId
,
ip
,
jumpKeywordDto
.
getAfterPersonalStageId
());
// 发送内容衔接语
Boolean
revertSuccess
=
true
;
try
{
lastBookName
=
URLEncoder
.
encode
(
lastBookName
,
"utf-8"
);
}
catch
(
UnsupportedEncodingException
e
)
{
log
.
error
(
"书名编码失败:{}; {}"
,
lastBookName
,
e
.
getMessage
());
revertSuccess
=
false
;
}
String
h5link
=
wechatGroupLinkPrefix
+
"/dialog/search?wxId="
+
userWxId
+
"&robotWxId="
+
robotWxId
;
if
(
revertSuccess
)
{
//编码成功,拼参数
h5link
=
h5link
+
"&bookName="
+
lastBookName
;
}
String
linkUrl
=
UrlUtils
.
getShortUrl4Own
(
h5link
);
String
jumpLinkup
=
"小睿已经找到本书了,不过非常遗憾呢,小睿还在努力学习这本书,主人可以尝试搜索其他感兴趣的书名哦。你可以点击网址:"
+
linkUrl
+
"查看本书相关信息"
;
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
jumpLinkup
);
sendTextMessageVO
.
setAltId
(
robotWxId
);
sendTextMessageVO
.
setWxGroupId
(
userWxId
);
sendTextMessageVO
.
setIp
(
ip
);
sendTextMessageVO
.
setCode
(
SendMessageTypeEnum
.
SELF
.
getCode
());
sendTextMessageVO
.
setRobotProcessType
(
RobotProcessTypeEnum
.
PERSONAL_STAGE_JUMP
);
sendTextMessageVO
.
setMessageGroupId
(
UUID
.
randomUUID
().
toString
());
sendTextMessageVO
.
setIndex
(
0
);
sendTextMessageVO
.
setCounts
(
1
);
wechatGroupConsr
.
sendMessage
(
JSON
.
toJSONString
(
sendTextMessageVO
));
// 停止发送引导语
pcloudGuideBiz
.
stopPcloudGuidePush
(
robotWxId
,
userWxId
);
//存用户跳转之前的最后一次非关键词回复到表
personalStageBiz
.
addUserReplaceCodeBeforeJump
(
currentStageUser
.
getPersonalStageId
(),
userWxId
,
robotWxId
);
return
true
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/personalstage/enums/JumpTypeEnum.java
View file @
bed02167
...
...
@@ -12,7 +12,11 @@ public enum JumpTypeEnum {
ZERO_BOOK
(
8
,
"0级书跳转"
),
NO_ZERO_BOOK
(
9
,
"非0级书跳转"
),
ADVISER_BOOK
(
10
,
"无等级且已收录图书跳转"
),
NO_ADVISER_BOOK
(
11
,
"无等级且未收录图书跳转"
);
NO_ADVISER_BOOK
(
11
,
"无等级且未收录图书跳转"
),
/**
* 无等级,无编辑收录,系统中有书
*/
NO_ADVISER_BOOK_BOOK_EXIST
(
12
,
"无等级且未收录编辑图书跳转"
);
public
final
Integer
key
;
public
final
String
desc
;
...
...
pcloud-service-book/src/main/resources/mapper/book/Book.Mapper.xml
View file @
bed02167
...
...
@@ -2323,4 +2323,17 @@
${item}
</foreach>
</select>
<select
id=
"getBookByName"
resultMap=
"bookMap"
parameterType=
"map"
>
SELECT
ISBN, TYPE_CODE, BOOK_NAME, AUTHOR,
PUBLISH, PUBLISH_DATE, COVER_IMG,AD_IMG,REMARK,ORIGIN_NAME,BOOK_PRICE,ISSN,SERIAL_NUMBER,VERSION,
SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM, PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE
FROM
BOOK
WHERE
BOOK_NAME = #{bookName}
AND IS_DELETE = 0
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