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
a945c9ce
Commit
a945c9ce
authored
Jul 29, 2019
by
裴大威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat 1001264
parent
659f6111
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
249 additions
and
91 deletions
+249
-91
BookDto.java
...-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
+66
-0
BookAppealBizImpl.java
...va/com/pcloud/book/appeal/biz/impl/BookAppealBizImpl.java
+18
-19
BookAdviserBizImpl.java
...ava/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
+17
-8
BookBizImpl.java
.../main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
+29
-22
BookSet.java
...-book/src/main/java/com/pcloud/book/book/set/BookSet.java
+5
-0
MainLineConsr.java
...java/com/pcloud/book/consumer/raystask/MainLineConsr.java
+8
-8
BookAuthCodeBizImpl.java
...m/pcloud/book/copyright/biz/impl/BookAuthCodeBizImpl.java
+4
-1
BookAuthInfoBizImpl.java
...m/pcloud/book/copyright/biz/impl/BookAuthInfoBizImpl.java
+2
-2
BookAuthUserBizImpl.java
...m/pcloud/book/copyright/biz/impl/BookAuthUserBizImpl.java
+2
-2
SetAuthOpenParam.java
...n/java/com/pcloud/book/copyright/vo/SetAuthOpenParam.java
+1
-1
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+10
-0
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+38
-8
BookGroupClassifyBizImpl.java
.../pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
+17
-9
GroupQrcodeBizImpl.java
...va/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
+2
-1
BookGroupDTO.java
...src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
+13
-0
PushBizImpl.java
.../main/java/com/pcloud/book/push/biz/impl/PushBizImpl.java
+2
-4
PushServiceImpl.java
...va/com/pcloud/book/push/service/impl/PushServiceImpl.java
+2
-2
Book.Mapper.xml
...rvice-book/src/main/resources/mapper/book/Book.Mapper.xml
+1
-1
BookGroupMapper.xml
...-book/src/main/resources/mapper/group/BookGroupMapper.xml
+12
-3
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
View file @
a945c9ce
...
...
@@ -43,6 +43,8 @@ public class BookDto extends BaseDto {
*/
private
String
isbn
;
private
Integer
isDelete
;
/**
* 书籍名称
*/
...
...
@@ -736,6 +738,70 @@ public class BookDto extends BaseDto {
this
.
isbn
=
isbn
;
}
public
Integer
getIsDelete
()
{
return
isDelete
;
}
public
void
setIsDelete
(
Integer
isDelete
)
{
this
.
isDelete
=
isDelete
;
}
public
Boolean
getSelect
()
{
return
isSelect
;
}
public
void
setSelect
(
Boolean
select
)
{
isSelect
=
select
;
}
public
Boolean
getMainEditor
()
{
return
isMainEditor
;
}
public
void
setMainEditor
(
Boolean
mainEditor
)
{
isMainEditor
=
mainEditor
;
}
public
Boolean
getHaveAdviser
()
{
return
isHaveAdviser
;
}
public
void
setHaveAdviser
(
Boolean
haveAdviser
)
{
isHaveAdviser
=
haveAdviser
;
}
public
Boolean
getFundSupport
()
{
return
isFundSupport
;
}
public
void
setFundSupport
(
Boolean
fundSupport
)
{
isFundSupport
=
fundSupport
;
}
public
Boolean
getHaveFund
()
{
return
isHaveFund
;
}
public
void
setHaveFund
(
Boolean
haveFund
)
{
isHaveFund
=
haveFund
;
}
public
Boolean
getOpen
()
{
return
isOpen
;
}
public
void
setOpen
(
Boolean
open
)
{
isOpen
=
open
;
}
public
Boolean
getBookGroup
()
{
return
isBookGroup
;
}
public
void
setBookGroup
(
Boolean
bookGroup
)
{
isBookGroup
=
bookGroup
;
}
public
String
getBookName
()
{
return
bookName
;
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/appeal/biz/impl/BookAppealBizImpl.java
View file @
a945c9ce
...
...
@@ -39,6 +39,7 @@ import com.pcloud.book.consumer.user.AdviserConsr;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SystemCode
;
...
...
@@ -102,8 +103,6 @@ public class BookAppealBizImpl implements BookAppealBiz {
@Autowired
private
BookGroupBiz
bookGroupBiz
;
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
/**
* 书刊申诉
*/
...
...
@@ -131,8 +130,9 @@ public class BookAppealBizImpl implements BookAppealBiz {
paramMap
.
put
(
"bookName"
,
StringUtils
.
isEmpty
(
bookName
)
?
null
:
bookName
);
paramMap
.
put
(
"appealState"
,
appealState
);
PageBean
pageBean
=
bookAppealDao
.
listPage
(
pageParam
,
paramMap
,
"list"
);
if
(
pageBean
==
null
||
ListUtils
.
isEmpty
(
pageBean
.
getRecordList
()))
if
(
pageBean
==
null
||
ListUtils
.
isEmpty
(
pageBean
.
getRecordList
()))
{
return
new
PageBean
();
}
// 设置编辑名称
bookSet
.
setAdviserName
(
pageBean
.
getRecordList
());
return
pageBean
;
...
...
@@ -186,16 +186,14 @@ public class BookAppealBizImpl implements BookAppealBiz {
bookDefendantDao
.
insert
(
defendants
);
//新增申诉结果
insertBookAppealResult
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getBookAppealId
());
EXECUTOR_SERVICE
.
execute
(
new
Runnable
()
{
public
void
run
()
{
//发送模板消息
if
(
AppealStateEnum
.
APPEAL_STATE_REFUSE
.
value
.
equals
(
bookAppeal
.
getAppealState
()))
{
// 向申诉方发送模板消息(审核不通过)
sendAuditFailTemplate
(
bookDto
.
getBookName
(),
bookAppeal
.
getAuditReason
(),
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
}
else
{
//发送审核通过模板消息
sendAuditSuccessTemplate
(
bookDto
.
getBookName
(),
adviserBooks
,
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
}
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
((
Runnable
)
()
->
{
//发送模板消息
if
(
AppealStateEnum
.
APPEAL_STATE_REFUSE
.
value
.
equals
(
bookAppeal
.
getAppealState
()))
{
// 向申诉方发送模板消息(审核不通过)
sendAuditFailTemplate
(
bookDto
.
getBookName
(),
bookAppeal
.
getAuditReason
(),
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
}
else
{
//发送审核通过模板消息
sendAuditSuccessTemplate
(
bookDto
.
getBookName
(),
adviserBooks
,
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
}
});
}
...
...
@@ -302,7 +300,7 @@ public class BookAppealBizImpl implements BookAppealBiz {
bookAdviser
.
setCreatedUser
(
bookAdviser
.
getAdviserId
());
if
(
bookAdviser
.
getIsMainEditor
())
{
//删除书架上书籍
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(()
->
{
bookcaseConsr
.
changeBookAdviser
(
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
(),
bookAdviser
.
getBookId
());
});
mainAdviserId
=
bookAdviser
.
getAdviserId
();
...
...
@@ -316,7 +314,7 @@ public class BookAppealBizImpl implements BookAppealBiz {
// 批量修改图书编辑关联关系
bookAdviserDao
.
insert
(
bookMainAdviserDto
.
getBookAdviserList
());
// 新增申诉编辑图书与二维码关联关系
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(()
->
{
recoverBookQrcodeAssoc
(
bookId
,
bookAppealDto
.
getChannelId
(),
appealAdviserId
);
});
}
...
...
@@ -349,9 +347,9 @@ public class BookAppealBizImpl implements BookAppealBiz {
public
void
setOnlyOneAdviser
(
Long
bookId
,
Long
declarant
,
Long
channelId
,
Long
templetId
,
Long
secondTempletId
,
List
<
BookAdviserDto
>
adviserBooks
)
{
//删除其余编辑与图书关联关系
bookAdviserBiz
.
deleteByBook
(
bookId
);
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(()
->
{
//批量删除书架书籍
adviserBooks
.
stream
().
forEach
(
adviserBooks
.
forEach
(
adviserBook
->
{
bookcaseConsr
.
deleteBookForAdviser
(
bookId
,
channelId
,
adviserBook
.
getAdviserId
());
//删除与二维码关联关系
...
...
@@ -385,7 +383,7 @@ public class BookAppealBizImpl implements BookAppealBiz {
private
void
sendAppealTemplate
(
Boolean
isOnlyOneAdviser
,
Long
appealAdviserId
,
List
<
BookAdviserDto
>
bookAdviserList
,
Long
bookId
,
Long
channelId
,
Long
mainAdviserId
)
{
LOGGER
.
info
(
"发送申诉审核后的模板消息appealAdviserId="
+
appealAdviserId
+
"bookAdviserList="
+
bookAdviserList
+
"bookId="
+
bookId
+
"channelId="
+
channelId
+
"mainAdviserId="
+
mainAdviserId
);
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(()
->
{
// 获取图书详情
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookId
);
String
bookName
=
bookDto
.
getBookName
();
...
...
@@ -595,8 +593,9 @@ public class BookAppealBizImpl implements BookAppealBiz {
//获取申诉结果
List
<
BookAppealResultDto
>
appealResults
=
bookAppealResultDao
.
getAppealResult
(
bookAppealId
);
if
(
ListUtils
.
isEmpty
(
appealResults
))
if
(
ListUtils
.
isEmpty
(
appealResults
))
{
return
new
ArrayList
<>();
}
List
<
Long
>
adviserIds
=
new
ArrayList
<>();
List
<
Long
>
channelIds
=
new
ArrayList
<>();
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
View file @
a945c9ce
...
...
@@ -136,11 +136,12 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
}
if
(
bookAdviserDto
!=
null
&&
BookConstant
.
BOOK_ADVISER_DELETE
.
equals
(
bookAdviserDto
.
getIsDelete
()))
{
// 编辑之前设置过,但是已经删除,走恢复流程
// 20190723-刘娜【ID1001264】社群书删除后,再创建时不要自动恢复
recoverBook4Adviser
(
bookAdviser
.
getBookId
(),
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
(),
bookAdviser
.
getTempletId
(),
bookAdviser
.
getSecondTempletId
());
bookAdviser
.
getTempletId
(),
bookAdviser
.
getSecondTempletId
()
,
false
);
}
else
{
// 判断是否配置过该书籍推广信息
checkIsHaveOtherAdviser
(
bookAdviser
.
getBookId
(),
bookAdviser
.
getChannelId
());
checkIsHaveOtherAdviser
(
bookAdviser
.
getBookId
(),
bookAdviser
.
getChannelId
()
,
bookAdviser
.
getAdviserId
()
);
try
{
LOGGER
.
info
(
"【书籍-编辑】编辑设置书籍推广信息,<START>.[bookAdviser]="
+
bookAdviser
.
toString
());
// 默认是主编辑
...
...
@@ -165,7 +166,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
* @param bookId 图书标识
* @param channelId 运营标识
*/
void
checkIsHaveOtherAdviser
(
Long
bookId
,
Long
channelId
)
throws
BizException
{
void
checkIsHaveOtherAdviser
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
throws
BizException
{
LOGGER
.
info
(
"是否有其他编辑加过这本书bookId="
+
bookId
+
"channelId="
+
channelId
);
if
(
bookId
==
null
||
channelId
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"图书不存在!"
);
...
...
@@ -175,15 +176,21 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
return
;
}
Boolean
isHaveOtherChannel
=
false
;
Boolean
isMySelf
=
false
;
for
(
BookAdviserDto
bookAdviserDto
:
advisers
){
if
(!
channelId
.
equals
(
bookAdviserDto
.
getChannelId
())){
isHaveOtherChannel
=
true
;
}
if
(
bookAdviserDto
.
getAdviserId
().
equals
(
adviserId
))
{
isMySelf
=
true
;
}
}
if
(
isHaveOtherChannel
){
throw
new
BookBizException
(
BookBizException
.
DB_SELECT_MORE
,
"已在其它运营平台存在"
);
}
else
{
throw
new
BookBizException
(
BookBizException
.
DB_SELECT_MORE
,
"已被其它编辑增加成功"
);
if
(!
isMySelf
||
advisers
.
size
()
>
1
)
{
throw
new
BookBizException
(
BookBizException
.
DB_SELECT_MORE
,
"已被其它编辑增加成功"
);
}
}
}
...
...
@@ -668,13 +675,15 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
*/
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
recoverBook4Adviser
(
Long
bookId
,
Long
adviserId
,
Long
channelId
,
Long
templetId
,
Long
secondTempletId
)
{
public
void
recoverBook4Adviser
(
Long
bookId
,
Long
adviserId
,
Long
channelId
,
Long
templetId
,
Long
secondTempletId
,
Boolean
recoverScene
)
{
LOGGER
.
info
(
"恢复书籍-编辑 <START>.[bookId]="
+
bookId
+
",adviserId="
+
adviserId
+
",channelId="
+
channelId
+
" templetId= "
+
templetId
+
"secondTempletId="
+
secondTempletId
);
checkIsHaveOtherAdviser
(
bookId
,
channelId
);
checkIsHaveOtherAdviser
(
bookId
,
channelId
,
adviserId
);
// 恢复书籍编辑的状态
updateBookAdviserStatus
(
bookId
,
adviserId
,
channelId
,
templetId
,
secondTempletId
,
BookConstant
.
BOOK_ADVISER_NO_DELETE
,
BookConstant
.
MAIN_ADVISER
);
// 恢复图书关联的二维码
qrcodeSceneConsr
.
recoverByBook
(
bookId
,
channelId
,
adviserId
);
// 恢复图书关联的二维码 20190723-刘娜【ID1001264】社群书删除后,再创建时不要自动恢复
if
(
recoverScene
)
{
qrcodeSceneConsr
.
recoverByBook
(
bookId
,
channelId
,
adviserId
);
}
LOGGER
.
info
(
"恢复书籍-编辑 ,<END>"
);
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
View file @
a945c9ce
...
...
@@ -3,28 +3,9 @@
*/
package
com
.
pcloud
.
book
.
book
.
biz
.
impl
;
import
java.io.IOException
;
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.Objects
;
import
java.util.Optional
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto
;
import
com.pcloud.appcenter.base.exception.AppBizException
;
import
com.pcloud.book.base.enums.BookFreezeEnum
;
...
...
@@ -69,8 +50,9 @@ import com.pcloud.book.consumer.user.PartyConsr;
import
com.pcloud.book.copyright.biz.BookAuthInfoBiz
;
import
com.pcloud.book.copyright.vo.BookAuthInfoVO
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.
entity.BookGroup
;
import
com.pcloud.book.group.
dto.BookGroupDTO
;
import
com.pcloud.book.mq.producer.BookMQProducer
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.AgentTypeEnum
;
import
com.pcloud.common.core.constant.SystemCode
;
...
...
@@ -82,6 +64,28 @@ import com.pcloud.common.utils.DateUtils;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.io.IOException
;
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.Objects
;
import
java.util.Optional
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
/**
* @描述:书籍业务层接口实现类
* @作者:songx
...
...
@@ -1193,7 +1197,7 @@ public class BookBizImpl implements BookBiz {
if
(
ListUtils
.
isEmpty
(
adviserIds
))
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"您还没有图书!"
);
}
EXECUTOR_SERVICE
.
execute
(
new
Runnable
()
{
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(
new
Runnable
()
{
public
void
run
()
{
Date
sendDate
=
new
Date
();
try
{
...
...
@@ -1419,6 +1423,8 @@ public class BookBizImpl implements BookBiz {
book
.
setLastModifiedUser
(
book
.
getCreatedUser
());
book
.
setBookId
(
bookDto
.
getBookId
());
}
// 查看现代纸书是否存在
final
BookGroupDTO
dtoByBookId
=
bookGroupBiz
.
getDTOByBookId
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
());
// 新增图书与编辑关联关系
createBookAdviserRelation
(
book
);
/*BookGroup bookGroup = null;
...
...
@@ -1450,6 +1456,7 @@ public class BookBizImpl implements BookBiz {
bookGroupBiz
.
linkBookGroup
(
book
.
getBookId
(),
book
.
getBookGroupId
(),
book
.
getCreatedUser
());
}
LOGGER
.
info
(
"【书籍基础】创建书籍基础信息,<END>"
);
bookDto
.
setIsDelete
(
null
==
dtoByBookId
?
1
:
dtoByBookId
.
getIsDelete
()
?
1
:
0
);
return
bookDto
;
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/set/BookSet.java
View file @
a945c9ce
...
...
@@ -21,6 +21,8 @@ import org.slf4j.LoggerFactory;
import
org.springframework.amqp.core.AmqpTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
...
...
@@ -1318,6 +1320,9 @@ public class BookSet {
bookIdsMap
.
put
(
bookDto
.
getBookId
(),
bookDto
.
getBookId
());
}
List
<
Long
>
bookIds
=
Lists
.
newArrayList
(
bookIdsMap
.
values
());
if
(
CollectionUtils
.
isEmpty
(
bookIds
))
{
return
;
}
// 设置基金冻结状态
Map
<
Long
,
BookFreezeDto
>
freezeStatus
=
bookFreezeDao
.
getFreezeStatus
(
bookIds
);
for
(
Object
object
:
bookList
)
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/consumer/raystask/MainLineConsr.java
View file @
a945c9ce
...
...
@@ -3,19 +3,20 @@
*/
package
com
.
pcloud
.
book
.
consumer
.
raystask
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.biz.WeektaskQueueBiz
;
import
com.pcloud.common.core.constant.WeektaskBehaviorCode
;
import
com.pcloud.common.core.constant.WeektaskCode
;
import
com.pcloud.common.core.dto.WeektaskMessageDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.raystask.entity.AdviserDefault
;
import
com.pcloud.raystask.task.service.MainLineService
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.raystask.entity.AdviserDefault
;
import
com.pcloud.raystask.task.service.MainLineService
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
...
...
@@ -33,8 +34,7 @@ public class MainLineConsr {
*/
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
MainLineConsr
.
class
);
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
@Autowired
private
MainLineService
mainLineService
;
@Autowired
...
...
@@ -61,7 +61,7 @@ public class MainLineConsr {
* 编辑标识
*/
public
void
sendAddBookTask
(
Long
bookId
,
Long
adviserId
)
{
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
(()
->
{
// 一本书刊
WeektaskMessageDto
weektaskMessageDto
=
new
WeektaskMessageDto
();
weektaskMessageDto
.
setWeektaskCode
(
WeektaskCode
.
W_ADD_ONE_BOOK
);
...
...
@@ -81,7 +81,7 @@ public class MainLineConsr {
* 编辑标识
*/
public
void
sendAddBookGroupTask
(
Long
bookId
,
Long
adviserId
)
{
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
(()
->
{
// 一本书刊
WeektaskMessageDto
weektaskMessageDto
=
new
WeektaskMessageDto
();
weektaskMessageDto
.
setWeektaskCode
(
WeektaskCode
.
W6_CREATE_BOOK_GROUP
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/copyright/biz/impl/BookAuthCodeBizImpl.java
View file @
a945c9ce
...
...
@@ -26,6 +26,7 @@ import com.pcloud.book.copyright.vo.CheckCodeParam;
import
com.pcloud.book.copyright.vo.CheckIsAuthServeParam
;
import
com.pcloud.book.copyright.vo.FileVO
;
import
com.pcloud.book.copyright.vo.ImportRecordVO
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.biz.MessageBiz
;
import
com.pcloud.common.core.constant.SystemCode
;
...
...
@@ -43,6 +44,8 @@ import com.pcloud.common.utils.json.JSONUtils;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.readercenter.wechat.entity.WechatUser
;
import
com.pcloud.resourcecenter.base.exceptions.ResBizException
;
import
com.pcloud.resourcecenter.product.dto.ProductFreeCodeDto
;
import
com.pcloud.resourcecenter.product.entity.ProductFreeCode
;
import
com.pcloud.settlementcenter.record.exceptions.RecordException
;
import
org.apache.commons.lang3.StringUtils
;
...
...
@@ -208,7 +211,7 @@ public class BookAuthCodeBizImpl implements BookAuthCodeBiz {
bookAuthCodeImportRecord
.
setFileName
(
fileVO
.
getFileName
());
bookAuthCodeImportRecord
.
setFileUrl
(
fileVO
.
getFileUrl
());
bookAuthCodeImportRecordDao
.
insert
(
bookAuthCodeImportRecord
);
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
EXPORT_THREAD_POOL
.
execute
(()
->
{
Integer
isFinish
=
1
;
try
{
String
[][]
data
=
ExcelUtil
.
getData
(
fileVO
.
getFileUrl
(),
3
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/copyright/biz/impl/BookAuthInfoBizImpl.java
View file @
a945c9ce
...
...
@@ -34,6 +34,7 @@ import com.pcloud.book.copyright.vo.ServeVO;
import
com.pcloud.book.copyright.vo.SetAuthOpenParam
;
import
com.pcloud.book.copyright.vo.SetAuthStatusParam
;
import
com.pcloud.book.copyright.vo.SetLocationDescVO
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeSceneDto
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.biz.MessageBiz
;
...
...
@@ -102,7 +103,6 @@ public class BookAuthInfoBizImpl implements BookAuthInfoBiz {
@Autowired
private
PartyConsr
partyConsr
;
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
2
);
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
setBookAuthOpen
(
SetAuthOpenParam
setAuthOpenParam
,
Long
adviserId
)
{
...
...
@@ -148,7 +148,7 @@ public class BookAuthInfoBizImpl implements BookAuthInfoBiz {
@ParamLog
(
"异步导出"
)
private
void
asynExport
(
Long
bookId
,
Long
channelId
,
Long
adviserId
,
Integer
codeCount
,
Integer
isHaveBarCode
)
{
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
EXPORT_THREAD_POOL
.
execute
(()
->
{
String
commitTime
=
DateUtils
.
formatDate
(
new
Date
());
String
num
=
""
;
try
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/copyright/biz/impl/BookAuthUserBizImpl.java
View file @
a945c9ce
...
...
@@ -13,6 +13,7 @@ import com.pcloud.book.copyright.vo.BookClickBuyRecordParam;
import
com.pcloud.book.copyright.vo.ProvinceTop10VO
;
import
com.pcloud.book.copyright.vo.SixMonthCountVO
;
import
com.pcloud.book.copyright.vo.ThirtyDayCountVO
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
...
...
@@ -43,7 +44,6 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
@Autowired
private
BookClickBuyRecordDao
bookClickBuyRecordDao
;
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
4
);
@ParamLog
(
value
=
"获取授权用户数量"
)
@Override
...
...
@@ -155,7 +155,7 @@ public class BookAuthUserBizImpl implements BookAuthUserBiz {
@Override
@ParamLog
(
"新增点击购买链接记录"
)
public
void
insertClickBuyRecord
(
BookClickBuyRecordParam
bookClickBuyRecordParam
,
Long
channelId
,
Long
wechatUserId
)
{
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
OTHER_THREAD_POOL
.
execute
(()
->
{
try
{
BookClickBuyRecord
bookClickBuyRecord
=
new
BookClickBuyRecord
();
bookClickBuyRecord
.
setChannelId
(
channelId
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/copyright/vo/SetAuthOpenParam.java
View file @
a945c9ce
...
...
@@ -43,7 +43,7 @@ public class SetAuthOpenParam implements Serializable {
@ApiModelProperty
(
"服务"
)
private
List
<
ServeVO
>
serves
;
@ApiModelProperty
(
"是否包含条形码"
)
@ApiModelProperty
(
"是否包含条形码
C1001121 添加二维码,故该字段2为二维码
"
)
private
Integer
isHaveBarCode
;
public
List
<
ServeVO
>
getServes
()
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
View file @
a945c9ce
...
...
@@ -6,6 +6,7 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import
com.pcloud.book.group.dto.ClassifyKeywordDTO
;
import
com.pcloud.book.group.dto.QrcodeNameAndProIdDTO
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBean
;
...
...
@@ -21,6 +22,15 @@ import java.util.Map;
*/
public
interface
BookGroupBiz
{
/**
* 查询编辑是否有此社群书
* @param bookId
* @param channelId
* @param adviserId
* @return
*/
BookGroupDTO
getDTOByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
);
/**
* 创建社群书时生成群二维码
* @param bookId 书刊ID
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
a945c9ce
...
...
@@ -33,6 +33,7 @@ import com.pcloud.book.group.vo.StatisticVO;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.enums.ReplyTypeEnum
;
import
com.pcloud.book.keywords.vo.ListKeywordVO
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.channelcenter.qrcode.dto.GroupQrcodeVO
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.biz.MessageBiz
;
...
...
@@ -99,7 +100,6 @@ public class BookGroupBizImpl implements BookGroupBiz {
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BookGroupBizImpl
.
class
);
private
final
static
String
DEFAULT_PRODUCT_COVER_IMG
=
"https://oss.5rs.me/oss/uploadfe/png/1c5da08d2c9598a5f0b0252acb84d8b8.png"
;
private
static
final
ExecutorService
EXECUTOR_SINGLE_SERVICE
=
Executors
.
newSingleThreadExecutor
();
@Value
(
"${book.group.qrcode.domain}"
)
private
String
bookGroupQrcodeDomain
;
...
...
@@ -156,6 +156,11 @@ public class BookGroupBizImpl implements BookGroupBiz {
private
AppPriceCacheService
appPriceCacheService
;
@Override
public
BookGroupDTO
getDTOByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
return
bookGroupDao
.
getDTOByBookId
(
bookId
,
channelId
,
adviserId
);
}
/**
* 创建社群书时生成群二维码
*/
...
...
@@ -172,7 +177,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookGroup
.
setIsShowBookName
(
isShowBookName
);
}
if
(
addType
!=
null
&&
addType
==
1
)
{
GroupQrcodeVO
groupQrcodeVO
=
null
;
GroupQrcodeVO
groupQrcodeVO
;
if
(
sceneId
!=
null
)
{
//将图书下某个二维码替换成社群码
groupQrcodeVO
=
qrcodeSceneConsr
.
setQrcodeToGroup
(
sceneId
);
...
...
@@ -287,6 +292,35 @@ public class BookGroupBizImpl implements BookGroupBiz {
bookGroupDTO
.
setChannelId
(
channelId
);
bookGroupDTO
.
setGroupQrcodeUrl
(
bookGroup
.
getGroupQrcodeUrl
());
bookGroupDTO
.
setCreateUser
(
adviserId
);
}
else
{
// 当书籍存在时根据前端传的addType来决定用什么码替换addType=1公众号码,其他为自建码
BookGroup
group
=
new
BookGroup
();
group
.
setId
(
bookGroupDTO
.
getId
());
// 更新为微信码
if
(
addType
!=
null
&&
addType
==
1
)
{
//创建公众号二维码
GroupQrcodeVO
groupQrcodeVO
=
qrcodeSceneConsr
.
createWxGroupQrcode
(
bookId
,
channelId
,
adviserId
);
if
(
groupQrcodeVO
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
ERROR
,
"二维码生成失败!"
);
}
group
.
setSceneId
(
groupQrcodeVO
.
getSceneId
());
group
.
setGroupQrcodeUrl
(
groupQrcodeVO
.
getQrcodeUrl
());
bookGroupDao
.
update
(
group
);
}
// 更新为自建码
if
(
addType
!=
null
&&
addType
==
2
)
{
// 如果是恢复书籍,且选择自建码则清空sceneId
if
(
null
!=
bookGroupDTO
.
getSceneId
()
&&
bookGroupDTO
.
getSceneId
()
>
0
)
{
group
.
setSceneId
(
0L
);
final
Boolean
haveQrcode
=
this
.
isHaveQrcode
(
bookId
,
channelId
,
adviserId
);
// 如果之前是公众号二维码则要重新生成自有码
if
(!
haveQrcode
)
{
String
groupQrcodeUrl
=
QrcodeUtils
.
createWithMargin
(
bookGroupQrcodeDomain
+
"/"
+
bookGroupDTO
.
getId
(),
1
);
group
.
setGroupQrcodeUrl
(
groupQrcodeUrl
);
}
bookGroupDao
.
update
(
group
);
}
}
}
List
<
Long
>
labelIds
=
new
ArrayList
<>();
if
(
null
!=
bookGroupDTO
.
getProLabelId
())
{
...
...
@@ -554,11 +588,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
@Override
public
Boolean
isHaveQrcode
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
BookGroupDTO
bookGroupDTO
=
bookGroupDao
.
getDTOByBookId
(
bookId
,
channelId
,
adviserId
);
if
(
bookGroupDTO
==
null
)
{
return
false
;
}
else
{
return
true
;
}
return
bookGroupDTO
!=
null
&&
null
==
bookGroupDTO
.
getSceneId
();
}
@ParamLog
(
"获取应用统计"
)
...
...
@@ -860,7 +890,7 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
@Override
public
void
exportGroupQrcode4Adviser
(
Map
<
String
,
Object
>
paramMap
,
Long
adviserId
)
{
EXECUTOR_SINGLE_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
EXPORT_THREAD_POOL
.
execute
(()
->
{
// 生成文件名
String
fileName
=
"社群码导出_"
+
DateUtils
.
getShortDateStr
();
Boolean
isSuccess
=
true
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
View file @
a945c9ce
...
...
@@ -28,6 +28,7 @@ import com.pcloud.book.group.tools.SendWeixinRequestTools;
import
com.pcloud.book.group.vo.*
;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.entity.BookKeyword
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.core.enums.NotifyOriginTypeEnum
;
...
...
@@ -63,8 +64,6 @@ import java.util.Date;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
import
lombok.extern.slf4j.Slf4j
;
...
...
@@ -78,7 +77,6 @@ import lombok.extern.slf4j.Slf4j;
public
class
BookGroupClassifyBizImpl
implements
BookGroupClassifyBiz
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BookGroupClassifyBizImpl
.
class
);
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
@Autowired
private
WeixinQrcodeBiz
weixinQrcodeBiz
;
...
...
@@ -608,7 +606,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@Override
@ParamLog
(
"单个群统计导出"
)
public
void
bookGroupQrcodeStatisticExport
(
List
<
Long
>
classifyIds
,
Long
bookGroupId
,
Long
adviserId
)
{
EXECUTOR_SERVICE
.
execute
(()
->
{
ThreadPoolUtils
.
EXPORT_THREAD_POOL
.
execute
(()
->
{
try
{
BookGroupDTO
bookGroupInfo
=
bookGroupBiz
.
getBookGroupInfo
(
bookGroupId
);
if
(
bookGroupInfo
==
null
)
{
...
...
@@ -642,7 +640,9 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@Override
public
Map
<
String
,
GroupQrcodeBaseDTO
>
listGroupQrcodeBaseInfo
(
List
<
String
>
weixinGroupIds
)
{
if
(
ListUtils
.
isEmpty
(
weixinGroupIds
))
return
null
;
if
(
ListUtils
.
isEmpty
(
weixinGroupIds
))
{
return
null
;
}
return
bookGroupClassifyDao
.
listGroupQrcodeBaseInfo
(
weixinGroupIds
);
}
...
...
@@ -683,7 +683,9 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@ParamLog
(
value
=
"导出数据"
)
private
void
exportData
(
List
<
BookGroupQrcodeStatisticVO
>
groupQrcodeStatistics
,
Date
sendDate
,
Long
adviserId
,
String
bookGroupName
)
{
if
(
ListUtils
.
isEmpty
(
groupQrcodeStatistics
))
return
;
if
(
ListUtils
.
isEmpty
(
groupQrcodeStatistics
))
{
return
;
}
List
<
Object
[]>
dataList
=
new
ArrayList
<
Object
[]>();
for
(
int
i
=
0
,
size
=
groupQrcodeStatistics
.
size
();
i
<
size
;
i
++)
{
BookGroupQrcodeStatisticVO
bookGroupQrcodeStatisticVO
=
groupQrcodeStatistics
.
get
(
i
);
...
...
@@ -783,7 +785,9 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@ParamLog
(
"设置用户头像"
)
private
void
setUserHeader
(
List
<
ListClassify4WechatVO
>
listClassify4WechatVOS
)
{
if
(
ListUtils
.
isEmpty
(
listClassify4WechatVOS
))
return
;
if
(
ListUtils
.
isEmpty
(
listClassify4WechatVOS
))
{
return
;
}
List
<
WechatUserRobotDto
>
wechatUserRand
=
readerConsr
.
selectRobotsRandom
(
listClassify4WechatVOS
.
size
()
*
9
);
if
(
ListUtils
.
isEmpty
(
wechatUserRand
))
{
return
;
...
...
@@ -807,14 +811,18 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
* @Date:2019/4/29 14:37
*/
private
void
setGroupQrcodeInfo
(
List
<
ListClassify4WechatVO
>
listClassify4Wechats
)
{
if
(
ListUtils
.
isEmpty
(
listClassify4Wechats
))
return
;
if
(
ListUtils
.
isEmpty
(
listClassify4Wechats
))
{
return
;
}
List
<
Long
>
groupQrcodeIds
=
new
ArrayList
<>();
for
(
ListClassify4WechatVO
listClassify4WechatVO
:
listClassify4Wechats
)
{
groupQrcodeIds
.
add
(
listClassify4WechatVO
.
getGroupQrcodeId
());
}
//根据二维码获取二维码基本信息
Map
<
Long
,
GroupQrcodeInfoDTO
>
groupQrcodeMap
=
groupQrcodeBiz
.
listQrcodeInfoByIds
(
groupQrcodeIds
);
if
(
MapUtils
.
isEmpty
(
groupQrcodeMap
))
return
;
if
(
MapUtils
.
isEmpty
(
groupQrcodeMap
))
{
return
;
}
for
(
ListClassify4WechatVO
listClassify4WechatVO
:
listClassify4Wechats
)
{
GroupQrcodeInfoDTO
groupQrcodeInfoDTO
=
groupQrcodeMap
.
get
(
listClassify4WechatVO
.
getGroupQrcodeId
());
if
(
groupQrcodeInfoDTO
!=
null
)
{
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
View file @
a945c9ce
...
...
@@ -37,6 +37,7 @@ import com.pcloud.book.keywords.dto.KeywordUserCountDTO;
import
com.pcloud.book.mq.producer.BookMQProducer
;
import
com.pcloud.book.push.dao.PushGroupDao
;
import
com.pcloud.book.push.entity.PushGroup
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
...
...
@@ -419,7 +420,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
groupQrcode
.
setGroupName
(
groupName
);
groupQrcode
.
setClassifyId
(
classifyId
);
this
.
insert
(
groupQrcode
);
EXECUTOR_SERVICE
.
execute
(()->{
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
(()->{
//获取该社群书下是否有群公告
ClassifyVO
classifyVO
=
bookGroupClassifyBiz
.
getClassify
(
classifyId
);
groupAnnouncementBiz
.
setAnForGroup
(
classifyVO
.
getBookGroupId
(),
classifyId
,
oneQrcode
.
getWeixinGroupId
());
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/BookGroupDTO.java
View file @
a945c9ce
...
...
@@ -30,6 +30,11 @@ public class BookGroupDTO extends BaseDto {
private
Long
channelId
;
/**
* book_group.channel_id (运营ID)
*/
private
Long
sceneId
;
/**
* book_group.group_qrcode_url (群二维码图片)
*/
private
String
groupQrcodeUrl
;
...
...
@@ -185,6 +190,13 @@ public class BookGroupDTO extends BaseDto {
this
.
groupQrcodeName
=
groupQrcodeName
;
}
public
Long
getSceneId
()
{
return
sceneId
;
}
public
void
setSceneId
(
Long
sceneId
)
{
this
.
sceneId
=
sceneId
;
}
public
Long
getProLabelId
()
{
return
proLabelId
;
}
...
...
@@ -353,6 +365,7 @@ public class BookGroupDTO extends BaseDto {
"id="
+
id
+
", bookId="
+
bookId
+
", channelId="
+
channelId
+
", sceneId="
+
sceneId
+
", groupQrcodeUrl='"
+
groupQrcodeUrl
+
'\''
+
", groupQrcodeName='"
+
groupQrcodeName
+
'\''
+
", proLabelId="
+
proLabelId
+
...
...
pcloud-service-book/src/main/java/com/pcloud/book/push/biz/impl/PushBizImpl.java
View file @
a945c9ce
...
...
@@ -29,6 +29,7 @@ import com.pcloud.book.push.entity.*;
import
com.pcloud.book.push.enums.ItemTypeEnum
;
import
com.pcloud.book.push.enums.PushStatusEnum
;
import
com.pcloud.book.push.enums.PushTypeEnum
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.page.PageBeanNew
;
...
...
@@ -112,9 +113,6 @@ public class PushBizImpl implements PushBiz {
private
static
final
String
EVENING_NEWS_SCHEDULE
=
"EVENING_NEWS_SCHEDULE"
;
private
static
final
ThreadFactory
NAMED_THREAD_FACTORY
=
new
ThreadFactoryBuilder
().
setNameFormat
(
"pushBizImpl-pool-%d"
).
build
();
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
new
ThreadPoolExecutor
(
5
,
20
,
0L
,
TimeUnit
.
MILLISECONDS
,
new
LinkedBlockingQueue
<>(
1024
),
NAMED_THREAD_FACTORY
,
new
ThreadPoolExecutor
.
CallerRunsPolicy
());
@Transactional
(
rollbackFor
=
Exception
.
class
)
@ParamLog
(
"创建群发"
)
...
...
@@ -134,7 +132,7 @@ public class PushBizImpl implements PushBiz {
//插入群发消息项
pushItemDao
.
batchInsert
(
push
.
getPushItems
());
//遍历,如果含有超级作者作品,自动上架
EXECUTOR_SERVICE
.
execute
(()
->
itemProductAutoOnShelves
(
push
.
getPushGroups
(),
push
.
getPushItems
()));
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
(()
->
itemProductAutoOnShelves
(
push
.
getPushGroups
(),
push
.
getPushItems
()));
//设置定时任务
pushQuartz
(
push
);
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/push/service/impl/PushServiceImpl.java
View file @
a945c9ce
...
...
@@ -2,6 +2,7 @@ package com.pcloud.book.push.service.impl;
import
com.pcloud.book.push.biz.PushBiz
;
import
com.pcloud.book.push.service.PushService
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.exceptions.BizException
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
...
...
@@ -24,7 +25,6 @@ public class PushServiceImpl implements PushService {
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
PushServiceImpl
.
class
);
private
static
final
ExecutorService
EXECUTOR_SINGLE_SERVICE
=
Executors
.
newSingleThreadExecutor
();
@Autowired
private
PushBiz
pushBiz
;
...
...
@@ -44,6 +44,6 @@ public class PushServiceImpl implements PushService {
public
void
sendMorningEveningNews
(
@RequestBody
Map
<
String
,
Object
>
map
)
throws
BizException
{
LOGGER
.
info
(
"内部接口发送早晚报被调用"
+
map
.
toString
());
//开线程跑,及时给定时任务返回,避免超时重复调用
EXECUTOR_SINGLE_SERVICE
.
execute
(()
->
pushBiz
.
sendMorningEveningNews
(
new
Long
(
map
.
get
(
"partyId"
).
toString
())));
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
(()
->
pushBiz
.
sendMorningEveningNews
(
new
Long
(
map
.
get
(
"partyId"
).
toString
())));
}
}
pcloud-service-book/src/main/resources/mapper/book/Book.Mapper.xml
View file @
a945c9ce
...
...
@@ -258,7 +258,7 @@
ORIGIN_NAME,BOOK_PRICE,ISSN,SERIAL_NUMBER,
SPONSOR, ORGANIZER, CN, RELEASE_CYCLE, BOOK_NUM,
PROGRAMA, MAIL_CODE, ADDRESS, TELEPHONE, MAIL, PURPOSE,
VERSION
VERSION
, IS_DELETE
FROM
BOOK
WHERE
...
...
pcloud-service-book/src/main/resources/mapper/group/BookGroupMapper.xml
View file @
a945c9ce
...
...
@@ -14,6 +14,7 @@
<result
column=
"join_slogan"
property=
"joinSlogan"
jdbcType=
"VARCHAR"
/>
<result
column=
"personal_qrcode_url"
property=
"personalQrcodeUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"product_id"
property=
"productId"
jdbcType=
"BIGINT"
/>
<result
column=
"scene_id"
property=
"sceneId"
jdbcType=
"BIGINT"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
...
...
@@ -34,6 +35,7 @@
<result
column=
"join_slogan"
property=
"joinSlogan"
jdbcType=
"VARCHAR"
/>
<result
column=
"personal_qrcode_url"
property=
"personalQrcodeUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"product_id"
property=
"productId"
jdbcType=
"BIGINT"
/>
<result
column=
"scene_id"
property=
"sceneId"
jdbcType=
"BIGINT"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
...
...
@@ -46,8 +48,9 @@
</resultMap>
<sql
id=
"Base_Column_List"
>
id, book_id, channel_id, group_qrcode_url, group_qrcode_name, pro_label_id, dep_label_id,
pur_label_id, join_title, join_slogan, personal_qrcode_url, product_id, create_user, create_time,
id, book_id, channel_id, scene_id, group_qrcode_url, group_qrcode_name, pro_label_id, dep_label_id,
pur_label_id, join_title, join_slogan, personal_qrcode_url, product_id, create_user,
create_time,
update_time, is_delete, is_show_book_name
</sql>
...
...
@@ -214,7 +217,13 @@
<if
test=
"productId != null"
>
product_id = #{productId,jdbcType=BIGINT},
</if>
update_time = NOW(),
<if
test=
"sceneId != null and sceneId == 0"
>
scene_id = null,
</if>
<if
test=
"sceneId != null and sceneId != 0"
>
scene_id = #{sceneId},
</if>
update_time = NOW(),
</set>
where id = #{id,jdbcType=BIGINT}
</update>
...
...
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