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
a92ab2d2
Commit
a92ab2d2
authored
May 16, 2019
by
lili
Browse files
Options
Browse Files
Download
Plain Diff
合并
parents
edc82ff7
3b668d13
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
942 additions
and
702 deletions
+942
-702
BookAppealDto.java
...c/main/java/com/pcloud/book/appeal/dto/BookAppealDto.java
+15
-0
BookAppeal.java
...c/main/java/com/pcloud/book/appeal/entity/BookAppeal.java
+15
-2
CountDto.java
...book/src/main/java/com/pcloud/book/base/dto/CountDto.java
+19
-4
BookDto.java
...-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
+13
-0
BookAppealBizImpl.java
...va/com/pcloud/book/appeal/biz/impl/BookAppealBizImpl.java
+566
-595
BookBiz.java
...-book/src/main/java/com/pcloud/book/book/biz/BookBiz.java
+14
-1
BookAdviserBizImpl.java
...ava/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
+15
-9
BookBizImpl.java
.../main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
+118
-58
BookDao.java
...-book/src/main/java/com/pcloud/book/book/dao/BookDao.java
+7
-0
BookDaoImpl.java
.../main/java/com/pcloud/book/book/dao/impl/BookDaoImpl.java
+8
-0
BookFacade.java
...src/main/java/com/pcloud/book/book/facade/BookFacade.java
+15
-0
BookFacadeImpl.java
...java/com/pcloud/book/book/facade/impl/BookFacadeImpl.java
+13
-0
BookSet.java
...-book/src/main/java/com/pcloud/book/book/set/BookSet.java
+79
-23
BookMQProducer.java
...main/java/com/pcloud/book/mq/producer/BookMQProducer.java
+0
-1
BookAppeal.Mapper.xml
...ok/src/main/resources/mapper/appeal/BookAppeal.Mapper.xml
+5
-4
Book.Mapper.xml
...rvice-book/src/main/resources/mapper/book/Book.Mapper.xml
+40
-5
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/appeal/dto/BookAppealDto.java
View file @
a92ab2d2
...
@@ -130,6 +130,12 @@ public class BookAppealDto extends BaseEntity{
...
@@ -130,6 +130,12 @@ public class BookAppealDto extends BaseEntity{
* 运营名称
* 运营名称
*/
*/
private
String
channelName
;
private
String
channelName
;
/**
* 是否社群书
*/
private
Boolean
isBookGroup
;
public
Long
getBookAppealId
()
{
public
Long
getBookAppealId
()
{
return
bookAppealId
;
return
bookAppealId
;
}
}
...
@@ -307,6 +313,14 @@ public class BookAppealDto extends BaseEntity{
...
@@ -307,6 +313,14 @@ public class BookAppealDto extends BaseEntity{
this
.
channelName
=
channelName
;
this
.
channelName
=
channelName
;
}
}
public
Boolean
getIsBookGroup
()
{
return
isBookGroup
;
}
public
void
setIsBookGroup
(
Boolean
isBookGroup
)
{
this
.
isBookGroup
=
isBookGroup
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"BookAppealDto{"
+
return
"BookAppealDto{"
+
...
@@ -332,6 +346,7 @@ public class BookAppealDto extends BaseEntity{
...
@@ -332,6 +346,7 @@ public class BookAppealDto extends BaseEntity{
", templetId="
+
templetId
+
", templetId="
+
templetId
+
", haveDiffChannel="
+
haveDiffChannel
+
", haveDiffChannel="
+
haveDiffChannel
+
", channelName='"
+
channelName
+
'\''
+
", channelName='"
+
channelName
+
'\''
+
", isBookGroup="
+
isBookGroup
+
'}'
;
'}'
;
}
}
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/appeal/entity/BookAppeal.java
View file @
a92ab2d2
...
@@ -100,6 +100,11 @@ public class BookAppeal extends BaseEntity{
...
@@ -100,6 +100,11 @@ public class BookAppeal extends BaseEntity{
* 被诉方
* 被诉方
*/
*/
private
List
<
BookDefendant
>
defendant
;
private
List
<
BookDefendant
>
defendant
;
/**
* 是否社群书
*/
private
Boolean
isBookGroup
;
public
Long
getBookAppealId
()
{
public
Long
getBookAppealId
()
{
return
bookAppealId
;
return
bookAppealId
;
...
@@ -230,14 +235,22 @@ public class BookAppeal extends BaseEntity{
...
@@ -230,14 +235,22 @@ public class BookAppeal extends BaseEntity{
this
.
templetId
=
templetId
;
this
.
templetId
=
templetId
;
}
}
@Override
public
Boolean
getIsBookGroup
()
{
return
isBookGroup
;
}
public
void
setIsBookGroup
(
Boolean
isBookGroup
)
{
this
.
isBookGroup
=
isBookGroup
;
}
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"BookAppeal [bookAppealId="
+
bookAppealId
+
", bookId="
+
bookId
+
", channelId="
+
channelId
return
"BookAppeal [bookAppealId="
+
bookAppealId
+
", bookId="
+
bookId
+
", channelId="
+
channelId
+
", templetId="
+
templetId
+
", reason="
+
reason
+
", declarant="
+
declarant
+
", phone="
+
phone
+
", templetId="
+
templetId
+
", reason="
+
reason
+
", declarant="
+
declarant
+
", phone="
+
phone
+
", appealSubmitDate="
+
appealSubmitDate
+
", appealState="
+
appealState
+
", auditReason="
+
", appealSubmitDate="
+
appealSubmitDate
+
", appealState="
+
appealState
+
", auditReason="
+
auditReason
+
", auditUser="
+
auditUser
+
", createdUser="
+
createdUser
+
", createdDate="
+
auditReason
+
", auditUser="
+
auditUser
+
", createdUser="
+
createdUser
+
", createdDate="
+
createdDate
+
", lastModifiedUser="
+
lastModifiedUser
+
", lastModifiedDate="
+
lastModifiedDate
+
createdDate
+
", lastModifiedUser="
+
lastModifiedUser
+
", lastModifiedDate="
+
lastModifiedDate
+
", defendant="
+
defendant
+
"]"
;
+
", defendant="
+
defendant
+
"
, isBookGroup="
+
isBookGroup
+
"
]"
;
}
}
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/base/dto/CountDto.java
View file @
a92ab2d2
...
@@ -24,6 +24,11 @@ public class CountDto extends BaseDto {
...
@@ -24,6 +24,11 @@ public class CountDto extends BaseDto {
*/
*/
private
Integer
count
=
0
;
private
Integer
count
=
0
;
/**
* 社群书数量
*/
private
Integer
bookGroupCount
=
0
;
public
Integer
getCount
()
{
public
Integer
getCount
()
{
return
count
;
return
count
;
}
}
...
@@ -32,9 +37,19 @@ public class CountDto extends BaseDto {
...
@@ -32,9 +37,19 @@ public class CountDto extends BaseDto {
this
.
count
=
count
;
this
.
count
=
count
;
}
}
@Override
public
Integer
getBookGroupCount
()
{
public
String
toString
()
{
return
bookGroupCount
;
return
"CountDto [count="
+
count
+
"]"
;
}
}
public
void
setBookGroupCount
(
Integer
bookGroupCount
)
{
this
.
bookGroupCount
=
bookGroupCount
;
}
@Override
public
String
toString
()
{
return
"CountDto{"
+
"count="
+
count
+
", bookGroupCount="
+
bookGroupCount
+
"} "
;
}
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/book/dto/BookDto.java
View file @
a92ab2d2
...
@@ -446,6 +446,11 @@ public class BookDto extends BaseDto {
...
@@ -446,6 +446,11 @@ public class BookDto extends BaseDto {
* 社群码数据
* 社群码数据
*/
*/
/**
/**
* 是否是社群书
*/
private
Boolean
isBookGroup
;
/**
* 社群码ID
* 社群码ID
*/
*/
private
Long
bookGroupId
;
private
Long
bookGroupId
;
...
@@ -1259,6 +1264,13 @@ public class BookDto extends BaseDto {
...
@@ -1259,6 +1264,13 @@ public class BookDto extends BaseDto {
this
.
secondTypeCode
=
secondTypeCode
;
this
.
secondTypeCode
=
secondTypeCode
;
}
}
public
Boolean
getIsBookGroup
()
{
return
isBookGroup
;
}
public
void
setIsBookGroup
(
Boolean
isBookGroup
)
{
this
.
isBookGroup
=
isBookGroup
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"BookDto{"
+
return
"BookDto{"
+
...
@@ -1354,6 +1366,7 @@ public class BookDto extends BaseDto {
...
@@ -1354,6 +1366,7 @@ public class BookDto extends BaseDto {
", groupPersonCount="
+
groupPersonCount
+
", groupPersonCount="
+
groupPersonCount
+
", groupCount="
+
groupCount
+
", groupCount="
+
groupCount
+
", totalIncome="
+
totalIncome
+
", totalIncome="
+
totalIncome
+
", isBookGroup="
+
isBookGroup
+
", groupQrcodeLink='"
+
groupQrcodeLink
+
'\''
+
", groupQrcodeLink='"
+
groupQrcodeLink
+
'\''
+
", secondTempletId="
+
secondTempletId
+
", secondTempletId="
+
secondTempletId
+
", secondTypeCode='"
+
secondTypeCode
+
'\''
+
", secondTypeCode='"
+
secondTypeCode
+
'\''
+
...
...
pcloud-service-book/src/main/java/com/pcloud/book/appeal/biz/impl/BookAppealBizImpl.java
View file @
a92ab2d2
...
@@ -5,31 +5,27 @@ import java.util.Date;
...
@@ -5,31 +5,27 @@ 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.concurrent.ExecutorService
;
import
com.pcloud.book.appeal.dao.BookAppealResultDao
;
import
java.util.concurrent.Executors
;
import
com.pcloud.book.appeal.entity.BookAppealResult
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.common.utils.DateUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
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
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
com.alibaba.druid.util.StringUtils
;
import
com.alibaba.druid.util.StringUtils
;
import
com.pcloud.book.appeal.biz.BookAppealBiz
;
import
com.pcloud.book.appeal.biz.BookAppealBiz
;
import
com.pcloud.book.appeal.dao.BookAppealDao
;
import
com.pcloud.book.appeal.dao.BookAppealDao
;
import
com.pcloud.book.appeal.dao.BookAppealResultDao
;
import
com.pcloud.book.appeal.dao.BookDefendantDao
;
import
com.pcloud.book.appeal.dao.BookDefendantDao
;
import
com.pcloud.book.appeal.dto.AppealAdviserDto
;
import
com.pcloud.book.appeal.dto.AppealAdviserDto
;
import
com.pcloud.book.appeal.dto.BookAppealResultDto
;
import
com.pcloud.book.appeal.dto.BookAppealDto
;
import
com.pcloud.book.appeal.dto.BookAppealDto
;
import
com.pcloud.book.appeal.dto.BookAppealResultDto
;
import
com.pcloud.book.appeal.entity.BookAppeal
;
import
com.pcloud.book.appeal.entity.BookAppeal
;
import
com.pcloud.book.appeal.entity.BookAppealResult
;
import
com.pcloud.book.base.enums.AppealStateEnum
;
import
com.pcloud.book.base.enums.AppealStateEnum
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookDto
;
...
@@ -41,632 +37,607 @@ import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
...
@@ -41,632 +37,607 @@ import com.pcloud.book.consumer.channel.QrcodeSceneConsr;
import
com.pcloud.book.consumer.message.TemplateConsr
;
import
com.pcloud.book.consumer.message.TemplateConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.page.PageBean
;
import
com.pcloud.common.page.PageBean
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
/**
/**
* 书刊申诉业务处理实现类
* 书刊申诉业务处理实现类
*
*
@version 1.0
* @author:lili
* @author:lili
* @date 创建时间:2017年3月30日 下午3:51:19
* @date 创建时间:2017年3月30日 下午3:51:19
* @version 1.0
* @return
* @return
*/
*/
@Component
(
"bookAppealBiz"
)
@Component
(
"bookAppealBiz"
)
public
class
BookAppealBizImpl
implements
BookAppealBiz
{
public
class
BookAppealBizImpl
implements
BookAppealBiz
{
/**
/**
*
*
*/
*/
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BookAppealBizImpl
.
class
);
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BookAppealBizImpl
.
class
);
@Autowired
@Autowired
private
BookAppealDao
bookAppealDao
;
private
BookAppealDao
bookAppealDao
;
@Autowired
@Autowired
private
BookSet
bookSet
;
private
BookSet
bookSet
;
@Autowired
@Autowired
private
TemplateConsr
templateConsr
;
private
TemplateConsr
templateConsr
;
@Autowired
@Autowired
private
BookAdviserBiz
bookAdviserBiz
;
private
BookAdviserBiz
bookAdviserBiz
;
@Autowired
@Autowired
private
BookcaseConsr
bookcaseConsr
;
private
BookcaseConsr
bookcaseConsr
;
@Autowired
@Autowired
private
BookBiz
bookBiz
;
private
BookBiz
bookBiz
;
@Autowired
@Autowired
private
AdviserConsr
adviserConsr
;
private
AdviserConsr
adviserConsr
;
@Autowired
@Autowired
private
BookAdviserDao
bookAdviserDao
;
private
BookAdviserDao
bookAdviserDao
;
@Autowired
@Autowired
private
QrcodeSceneConsr
qrcodeSceneConsr
;
private
QrcodeSceneConsr
qrcodeSceneConsr
;
@Autowired
@Autowired
private
BookDefendantDao
bookDefendantDao
;
private
BookDefendantDao
bookDefendantDao
;
@Autowired
@Autowired
private
BookAppealResultDao
bookAppealResultDao
;
private
BookAppealResultDao
bookAppealResultDao
;
@Autowired
@Autowired
private
ChannelConsr
channelConsr
;
private
ChannelConsr
channelConsr
;
@Autowired
@Autowired
private
BookGroupBiz
bookGroupBiz
;
private
BookGroupBiz
bookGroupBiz
;
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
/**
* 书刊申诉
/**
*/
* 书刊申诉
@Override
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
create
(
BookAppeal
bookAppeal
)
{
@Transactional
(
rollbackFor
=
Exception
.
class
)
LOGGER
.
info
(
"【书籍申诉-编辑】创建书籍申诉信息,<START>."
);
public
void
create
(
BookAppeal
bookAppeal
)
{
this
.
checkParam
(
bookAppeal
);
LOGGER
.
info
(
"【书籍申诉-编辑】创建书籍申诉信息,<START>."
);
// 设置申诉时间
this
.
checkParam
(
bookAppeal
);
bookAppeal
.
setAppealSubmitDate
(
new
Date
());
// 设置申诉时间
bookAppeal
.
setAppealState
(
AppealStateEnum
.
APPEAL_STATE_WAIT
.
value
);
bookAppeal
.
setAppealSubmitDate
(
new
Date
());
bookAppealDao
.
insert
(
bookAppeal
);
bookAppeal
.
setAppealState
(
AppealStateEnum
.
APPEAL_STATE_WAIT
.
value
);
}
if
(
null
==
bookAppeal
.
getIsBookGroup
())
{
bookAppeal
.
setIsBookGroup
(
false
);
/**
}
* 书刊列表
bookAppealDao
.
insert
(
bookAppeal
);
*/
}
@Override
public
PageBean
list
(
PageParam
pageParam
,
String
bookName
,
Integer
appealState
)
{
/**
LOGGER
.
info
(
"【书籍申诉-平台】获取书籍申诉列表,<START>."
);
* 书刊列表
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
*/
paramMap
.
put
(
"bookName"
,
StringUtils
.
isEmpty
(
bookName
)
?
null
:
bookName
);
@Override
paramMap
.
put
(
"appealState"
,
appealState
);
public
PageBean
list
(
PageParam
pageParam
,
String
bookName
,
Integer
appealState
)
{
PageBean
pageBean
=
bookAppealDao
.
listPage
(
pageParam
,
paramMap
,
"list"
);
LOGGER
.
info
(
"【书籍申诉-平台】获取书籍申诉列表,<START>."
);
if
(
pageBean
==
null
||
ListUtils
.
isEmpty
(
pageBean
.
getRecordList
()))
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
return
new
PageBean
();
paramMap
.
put
(
"bookName"
,
StringUtils
.
isEmpty
(
bookName
)
?
null
:
bookName
);
// 设置编辑名称
paramMap
.
put
(
"appealState"
,
appealState
);
bookSet
.
setAdviserName
(
pageBean
.
getRecordList
());
PageBean
pageBean
=
bookAppealDao
.
listPage
(
pageParam
,
paramMap
,
"list"
);
return
pageBean
;
if
(
pageBean
==
null
||
ListUtils
.
isEmpty
(
pageBean
.
getRecordList
()))
}
return
new
PageBean
();
// 设置编辑名称
/**
bookSet
.
setAdviserName
(
pageBean
.
getRecordList
());
* 获取书刊详情
return
pageBean
;
*/
}
@Override
public
BookAppealDto
getById
(
Long
bookAppealId
)
{
/**
LOGGER
.
info
(
"【书籍申诉-平台】获取书籍申诉详情,<START>.[bookAppealId]"
+
bookAppealId
);
* 获取书刊详情
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppealId
);
*/
if
(
bookAppealDto
!=
null
)
{
@Override
// 获取书籍信息
public
BookAppealDto
getById
(
Long
bookAppealId
)
{
BookDto
book
=
bookBiz
.
getBaseById
(
bookAppealDto
.
getBookId
());
LOGGER
.
info
(
"【书籍申诉-平台】获取书籍申诉详情,<START>.[bookAppealId]"
+
bookAppealId
);
bookAppealDto
.
setBook
(
book
);
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppealId
);
// 设置申诉方以及被诉方基本信息
if
(
bookAppealDto
!=
null
)
{
bookSet
.
setAdviserInfo
(
bookAppealDto
);
// 获取书籍信息
}
BookDto
book
=
bookBiz
.
getBaseById
(
bookAppealDto
.
getBookId
());
return
bookAppealDto
;
bookAppealDto
.
setBook
(
book
);
// 设置申诉方以及被诉方基本信息
}
bookSet
.
setAdviserInfo
(
bookAppealDto
);
}
/**
return
bookAppealDto
;
* 书刊申诉审核
*/
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
/**
public
void
setupAudit
(
BookAppeal
bookAppeal
)
{
* 书刊申诉审核
LOGGER
.
info
(
"【书籍申诉-审核-平台】审核书籍申诉,<START>.参数:[bookAppeal]"
+
bookAppeal
.
toString
());
*/
if
(
bookAppeal
.
getAppealState
()
==
null
)
{
@Override
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"审核状态为空"
);
@Transactional
(
rollbackFor
=
Exception
.
class
)
}
public
void
setupAudit
(
BookAppeal
bookAppeal
)
{
// 获取申诉基本信息
LOGGER
.
info
(
"【书籍申诉-审核-平台】审核书籍申诉,<START>.参数:[bookAppeal]"
+
bookAppeal
.
toString
());
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppeal
.
getBookAppealId
());
if
(
bookAppeal
.
getAppealState
()
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"审核状态为空"
);
// 获取图书详情
}
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookAppealDto
.
getBookId
());
// 获取申诉基本信息
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppeal
.
getBookAppealId
());
bookAppealDao
.
update
(
bookAppeal
);
// 获取图书详情
//获取所有被诉编辑
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookAppealDto
.
getBookId
());
List
<
BookAdviserDto
>
adviserBooks
=
bookAdviserDao
.
getAdvisers
(
bookAppealDto
.
getBookId
());
//审核通过
bookAppealDao
.
update
(
bookAppeal
);
if
(
AppealStateEnum
.
APPEAL_STATE_PASS
.
value
.
equals
(
bookAppeal
.
getAppealState
()))
{
setOnlyOneAdviser
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
(),
bookAppealDto
.
getTempletId
(),
adviserBooks
);
//获取所有被诉编辑
}
List
<
BookAdviserDto
>
adviserBooks
=
bookAdviserDao
.
getAdvisers
(
bookAppealDto
.
getBookId
());
// 设置被诉方
//审核通过
List
<
BookDefendant
>
defendants
=
bookSet
.
setDefendant
(
adviserBooks
,
bookAppeal
.
getBookAppealId
());
if
(
AppealStateEnum
.
APPEAL_STATE_PASS
.
value
.
equals
(
bookAppeal
.
getAppealState
()))
{
// 添加被诉方
setOnlyOneAdviser
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
(),
bookAppealDto
.
getTempletId
(),
adviserBooks
);
bookDefendantDao
.
insert
(
defendants
);
}
//新增申诉结果
// 设置被诉方
insertBookAppealResult
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getBookAppealId
());
List
<
BookDefendant
>
defendants
=
bookSet
.
setDefendant
(
adviserBooks
,
bookAppeal
.
getBookAppealId
());
EXECUTOR_SERVICE
.
execute
(
new
Runnable
()
{
// 添加被诉方
public
void
run
()
{
bookDefendantDao
.
insert
(
defendants
);
//发送模板消息
//新增申诉结果
if
(
AppealStateEnum
.
APPEAL_STATE_REFUSE
.
value
.
equals
(
bookAppeal
.
getAppealState
()))
{
insertBookAppealResult
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getBookAppealId
());
// 向申诉方发送模板消息(审核不通过)
EXECUTOR_SERVICE
.
execute
(
new
Runnable
()
{
sendAuditFailTemplate
(
bookDto
.
getBookName
(),
bookAppeal
.
getAuditReason
(),
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
public
void
run
()
{
}
else
{
//发送模板消息
//发送审核通过模板消息
if
(
AppealStateEnum
.
APPEAL_STATE_REFUSE
.
value
.
equals
(
bookAppeal
.
getAppealState
()))
{
sendAuditSuccessTemplate
(
bookDto
.
getBookName
(),
adviserBooks
,
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
// 向申诉方发送模板消息(审核不通过)
}
sendAuditFailTemplate
(
bookDto
.
getBookName
(),
bookAppeal
.
getAuditReason
(),
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
}
}
else
{
});
//发送审核通过模板消息
}
sendAuditSuccessTemplate
(
bookDto
.
getBookName
(),
adviserBooks
,
bookAppealDto
.
getDeclarant
(),
bookAppealDto
.
getChannelId
());
}
/**
}
* 设置申诉结果
});
* @param bookId 图书标识
}
* @param bookApprealId 图书申诉标识
*/
/**
@Transactional
(
rollbackFor
=
Exception
.
class
)
* 设置申诉结果
void
insertBookAppealResult
(
Long
bookId
,
Long
bookApprealId
){
* @param bookId 图书标识
LOGGER
.
info
(
"设置申诉结果bookId="
+
bookId
+
"bookApprealId="
+
bookApprealId
);
* @param bookApprealId 图书申诉标识
List
<
BookAdviserDto
>
adviserBooks
=
bookAdviserDao
.
getAdvisers
(
bookId
);
*/
if
(
ListUtils
.
isEmpty
(
adviserBooks
)){
@Transactional
(
rollbackFor
=
Exception
.
class
)
return
;
void
insertBookAppealResult
(
Long
bookId
,
Long
bookApprealId
)
{
}
LOGGER
.
info
(
"设置申诉结果bookId="
+
bookId
+
"bookApprealId="
+
bookApprealId
);
List
<
BookAppealResult
>
bookAppealResults
=
new
ArrayList
<>();
List
<
BookAdviserDto
>
adviserBooks
=
bookAdviserDao
.
getAdvisers
(
bookId
);
for
(
BookAdviserDto
bookAdviserDto
:
adviserBooks
){
if
(
ListUtils
.
isEmpty
(
adviserBooks
))
{
BookAppealResult
bookAppealResult
=
new
BookAppealResult
();
return
;
bookAppealResult
.
setAdviserId
(
bookAdviserDto
.
getAdviserId
());
}
bookAppealResult
.
setChannelId
(
bookAdviserDto
.
getChannelId
());
List
<
BookAppealResult
>
bookAppealResults
=
new
ArrayList
<>();
bookAppealResult
.
setBookId
(
bookAdviserDto
.
getBookId
());
for
(
BookAdviserDto
bookAdviserDto
:
adviserBooks
)
{
bookAppealResult
.
setIsMainEditor
(
bookAdviserDto
.
getIsMainEditor
());
BookAppealResult
bookAppealResult
=
new
BookAppealResult
();
bookAppealResult
.
setBookCreatedDate
(
bookAdviserDto
.
getCreatedDate
());
bookAppealResult
.
setAdviserId
(
bookAdviserDto
.
getAdviserId
());
bookAppealResult
.
setBookAppealId
(
bookApprealId
);
bookAppealResult
.
setChannelId
(
bookAdviserDto
.
getChannelId
());
bookAppealResults
.
add
(
bookAppealResult
);
bookAppealResult
.
setBookId
(
bookAdviserDto
.
getBookId
());
}
bookAppealResult
.
setIsMainEditor
(
bookAdviserDto
.
getIsMainEditor
());
bookAppealResultDao
.
insert
(
bookAppealResults
);
bookAppealResult
.
setBookCreatedDate
(
bookAdviserDto
.
getCreatedDate
());
LOGGER
.
info
(
"设置申诉结果【END】"
);
bookAppealResult
.
setBookAppealId
(
bookApprealId
);
}
bookAppealResults
.
add
(
bookAppealResult
);
}
/**
bookAppealResultDao
.
insert
(
bookAppealResults
);
* 发送申诉审核通过的模板消息
LOGGER
.
info
(
"设置申诉结果【END】"
);
*
}
* @param bookName 图书名称
* @param adviserBooks 被诉方
/**
* @param declarant 申诉方
* 发送申诉审核通过的模板消息
*/
* @param bookName 图书名称
void
sendAuditSuccessTemplate
(
String
bookName
,
List
<
BookAdviserDto
>
adviserBooks
,
Long
declarant
,
Long
channelId
)
{
* @param adviserBooks 被诉方
if
(!
ListUtils
.
isEmpty
(
adviserBooks
))
{
* @param declarant 申诉方
//给被诉方发送图书被移除的通知
*/
for
(
BookAdviserDto
bookAdviserDto
:
adviserBooks
)
{
void
sendAuditSuccessTemplate
(
String
bookName
,
List
<
BookAdviserDto
>
adviserBooks
,
Long
declarant
,
Long
channelId
)
{
removeBookTemplate
(
bookName
,
bookAdviserDto
.
getAdviserId
(),
bookAdviserDto
.
getChannelId
());
if
(!
ListUtils
.
isEmpty
(
adviserBooks
))
{
}
//给被诉方发送图书被移除的通知
//给申诉方发送申诉成功的通知
for
(
BookAdviserDto
bookAdviserDto
:
adviserBooks
)
{
sendAppealSuccessToMainTemplate
(
bookName
,
declarant
,
channelId
);
removeBookTemplate
(
bookName
,
bookAdviserDto
.
getAdviserId
(),
bookAdviserDto
.
getChannelId
());
}
}
//给申诉方发送申诉成功的通知
}
sendAppealSuccessToMainTemplate
(
bookName
,
declarant
,
channelId
);
}
/**
* 参数验证
}
*
* @param bookAppeal
/**
*/
* 参数验证
private
void
checkParam
(
BookAppeal
bookAppeal
)
{
* @param bookAppeal
if
(
null
==
bookAppeal
.
getBookId
())
{
*/
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"申诉书籍为空"
);
private
void
checkParam
(
BookAppeal
bookAppeal
)
{
}
if
(
null
==
bookAppeal
.
getBookId
())
{
if
(
StringUtil
.
isEmpty
(
bookAppeal
.
getReason
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"申诉书籍为空"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"申诉理由为空"
);
}
}
if
(
StringUtil
.
isEmpty
(
bookAppeal
.
getReason
()))
{
if
(
StringUtil
.
isEmpty
(
bookAppeal
.
getPhone
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"申诉理由为空"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"联系方式为空"
);
}
}
if
(
StringUtil
.
isEmpty
(
bookAppeal
.
getPhone
()))
{
}
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"联系方式为空"
);
}
/**
}
* 获取申诉+被诉编辑
*/
/**
@Override
* 获取申诉+被诉编辑
public
List
<
AppealAdviserDto
>
getAppealAdvisers
(
Long
bookAppealId
)
{
*/
LOGGER
.
info
(
"【书籍申诉-平台】获取申诉+被诉编辑,<START>.[bookAppealId]"
+
bookAppealId
);
@Override
// 获取申诉方信息
public
List
<
AppealAdviserDto
>
getAppealAdvisers
(
Long
bookAppealId
)
{
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppealId
);
LOGGER
.
info
(
"【书籍申诉-平台】获取申诉+被诉编辑,<START>.[bookAppealId]"
+
bookAppealId
);
List
<
AppealAdviserDto
>
appealAdviserList
=
new
ArrayList
<
AppealAdviserDto
>();
// 获取申诉方信息
// 获取被诉方信息(即与该书关联的所有编辑)
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppealId
);
List
<
BookAdviserDto
>
defendantAdvisers
=
bookAdviserDao
.
getAdvisers
(
bookAppealDto
.
getBookId
());
List
<
AppealAdviserDto
>
appealAdviserList
=
new
ArrayList
<
AppealAdviserDto
>();
// 设置申诉和被诉方列表信息
// 获取被诉方信息(即与该书关联的所有编辑)
bookSet
.
setAppealAdviserList
(
appealAdviserList
,
bookAppealDto
,
defendantAdvisers
);
List
<
BookAdviserDto
>
defendantAdvisers
=
bookAdviserDao
.
getAdvisers
(
bookAppealDto
.
getBookId
());
return
appealAdviserList
;
// 设置申诉和被诉方列表信息
}
bookSet
.
setAppealAdviserList
(
appealAdviserList
,
bookAppealDto
,
defendantAdvisers
);
return
appealAdviserList
;
/**
}
* 设置主编辑(共同拥有)
*/
/**
@Override
* 设置主编辑(共同拥有)
@Transactional
(
rollbackFor
=
Exception
.
class
)
*/
public
void
setMainAdviser
(
Long
auditUser
,
BookMainAdviserDto
bookMainAdviserDto
)
{
@Override
LOGGER
.
info
(
"【书籍申诉-平台】设置主编辑,<START>.[bookMainAdviserDto]"
+
bookMainAdviserDto
.
toString
());
@Transactional
(
rollbackFor
=
Exception
.
class
)
// 获取申诉基本信息
public
void
setMainAdviser
(
Long
auditUser
,
BookMainAdviserDto
bookMainAdviserDto
)
{
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookMainAdviserDto
.
getBookAppealId
());
LOGGER
.
info
(
"【书籍申诉-平台】设置主编辑,<START>.[bookMainAdviserDto]"
+
bookMainAdviserDto
.
toString
());
Long
bookId
=
bookMainAdviserDto
.
getBookId
();
// 获取申诉基本信息
Long
channelId
=
bookAppealDto
.
getChannelId
();
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookMainAdviserDto
.
getBookAppealId
());
Long
appealAdviserId
=
bookAppealDto
.
getDeclarant
();
Long
bookId
=
bookMainAdviserDto
.
getBookId
();
//获取加入过该书的所有编辑
Long
channelId
=
bookAppealDto
.
getChannelId
();
List
<
BookAdviserDto
>
adviserBooks
=
bookAdviserDao
.
getAdvisers
(
bookId
);
Long
appealAdviserId
=
bookAppealDto
.
getDeclarant
();
//申诉后的主编辑
//获取加入过该书的所有编辑
Long
mainAdviserId
=
null
;
List
<
BookAdviserDto
>
adviserBooks
=
bookAdviserDao
.
getAdvisers
(
bookId
);
Boolean
isOnlyOneAdviser
=
bookMainAdviserDto
.
getBookAdviserList
().
size
()==
1
;
//申诉后的主编辑
if
(
isOnlyOneAdviser
){
//唯一拥有
Long
mainAdviserId
=
null
;
setOnlyOneAdviser
(
bookId
,
appealAdviserId
,
bookAppealDto
.
getChannelId
(),
bookAppealDto
.
getTempletId
(),
adviserBooks
);
Boolean
isOnlyOneAdviser
=
bookMainAdviserDto
.
getBookAdviserList
().
size
()
==
1
;
mainAdviserId
=
bookMainAdviserDto
.
getBookAdviserList
().
get
(
0
).
getAdviserId
();
if
(
isOnlyOneAdviser
)
{
//唯一拥有
}
else
{
setOnlyOneAdviser
(
bookId
,
appealAdviserId
,
bookAppealDto
.
getChannelId
(),
bookAppealDto
.
getTempletId
(),
adviserBooks
);
for
(
BookAdviser
bookAdviser
:
bookMainAdviserDto
.
getBookAdviserList
())
{
mainAdviserId
=
bookMainAdviserDto
.
getBookAdviserList
().
get
(
0
).
getAdviserId
();
bookAdviser
.
setCreatedUser
(
bookAdviser
.
getAdviserId
());
}
else
{
if
(
bookAdviser
.
getIsMainEditor
()){
for
(
BookAdviser
bookAdviser
:
bookMainAdviserDto
.
getBookAdviserList
())
{
//删除书架上书籍
bookAdviser
.
setCreatedUser
(
bookAdviser
.
getAdviserId
());
EXECUTOR_SERVICE
.
execute
(()->{
if
(
bookAdviser
.
getIsMainEditor
())
{
bookcaseConsr
.
changeBookAdviser
(
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
(),
bookAdviser
.
getBookId
());
//删除书架上书籍
});
EXECUTOR_SERVICE
.
execute
(()
->
{
mainAdviserId
=
bookAdviser
.
getAdviserId
();
bookcaseConsr
.
changeBookAdviser
(
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
(),
bookAdviser
.
getBookId
());
}
});
// 若为申诉编辑,设置申诉编辑图书类型
mainAdviserId
=
bookAdviser
.
getAdviserId
();
if
(
bookAdviser
.
getAdviserId
().
equals
(
appealAdviserId
)
&&
channelId
.
equals
(
bookAdviser
.
getChannelId
()))
{
}
bookAdviser
.
setTempletId
(
bookAppealDto
.
getTempletId
());
// 若为申诉编辑,设置申诉编辑图书类型
}
if
(
bookAdviser
.
getAdviserId
().
equals
(
appealAdviserId
)
&&
channelId
.
equals
(
bookAdviser
.
getChannelId
()))
{
}
bookAdviser
.
setTempletId
(
bookAppealDto
.
getTempletId
());
// 批量修改图书编辑关联关系
}
bookAdviserDao
.
insert
(
bookMainAdviserDto
.
getBookAdviserList
());
}
// 新增申诉编辑图书与二维码关联关系
// 批量修改图书编辑关联关系
EXECUTOR_SERVICE
.
execute
(()->
{
bookAdviserDao
.
insert
(
bookMainAdviserDto
.
getBookAdviserList
());
recoverBookQrcodeAssoc
(
bookId
,
bookAppealDto
.
getChannelId
(),
appealAdviserId
);
// 新增申诉编辑图书与二维码关联关系
});
EXECUTOR_SERVICE
.
execute
(()
->
{
}
recoverBookQrcodeAssoc
(
bookId
,
bookAppealDto
.
getChannelId
(),
appealAdviserId
);
});
// 修改申诉状态
}
this
.
updateAppealState
(
auditUser
,
bookMainAdviserDto
.
getAppealState
(),
bookMainAdviserDto
.
getVersion
(),
// 社群书申诉创建社群码
bookMainAdviserDto
.
getBookAppealId
());
if
(
null
!=
bookAppealDto
&&
bookAppealDto
.
getIsBookGroup
())
{
// 设置被诉方
bookGroupBiz
.
getBookGroupInfoByBookId
(
bookId
,
channelId
,
appealAdviserId
);
List
<
BookDefendant
>
defendants
=
bookSet
.
setDefendant
(
adviserBooks
,
bookMainAdviserDto
.
getBookAppealId
());
}
// 添加被诉方
// 修改申诉状态
bookDefendantDao
.
insert
(
defendants
);
this
.
updateAppealState
(
auditUser
,
bookMainAdviserDto
.
getAppealState
(),
bookMainAdviserDto
.
getVersion
(),
//新增申诉结果
bookMainAdviserDto
.
getBookAppealId
());
insertBookAppealResult
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getBookAppealId
());
// 设置被诉方
// 发送模板消息
List
<
BookDefendant
>
defendants
=
bookSet
.
setDefendant
(
adviserBooks
,
bookMainAdviserDto
.
getBookAppealId
());
sendAppealTemplate
(
isOnlyOneAdviser
,
appealAdviserId
,
adviserBooks
,
bookId
,
bookAppealDto
.
getChannelId
(),
mainAdviserId
);
// 添加被诉方
LOGGER
.
info
(
"【书籍申诉-平台】设置主编辑,<END>."
);
bookDefendantDao
.
insert
(
defendants
);
}
//新增申诉结果
insertBookAppealResult
(
bookAppealDto
.
getBookId
(),
bookAppealDto
.
getBookAppealId
());
/**
// 发送模板消息
* 设置申诉编辑唯一拥有
sendAppealTemplate
(
isOnlyOneAdviser
,
appealAdviserId
,
adviserBooks
,
bookId
,
bookAppealDto
.
getChannelId
(),
mainAdviserId
);
* @param bookId 图书标识
LOGGER
.
info
(
"【书籍申诉-平台】设置主编辑,<END>."
);
* @param declarant 申诉方
}
* @param channelId 运营标识
* @param templetId 模板标识
/**
*/
* 设置申诉编辑唯一拥有
public
void
setOnlyOneAdviser
(
Long
bookId
,
Long
declarant
,
Long
channelId
,
Long
templetId
,
List
<
BookAdviserDto
>
adviserBooks
)
{
* @param bookId 图书标识
//删除其余编辑与图书关联关系
* @param declarant 申诉方
bookAdviserBiz
.
deleteByBook
(
bookId
);
* @param channelId 运营标识
EXECUTOR_SERVICE
.
execute
(()->{
* @param templetId 模板标识
//批量删除书架书籍
*/
adviserBooks
.
stream
().
forEach
(
public
void
setOnlyOneAdviser
(
Long
bookId
,
Long
declarant
,
Long
channelId
,
Long
templetId
,
List
<
BookAdviserDto
>
adviserBooks
)
{
adviserBook
->{
//删除其余编辑与图书关联关系
bookcaseConsr
.
deleteBookForAdviser
(
bookId
,
channelId
,
adviserBook
.
getAdviserId
());
bookAdviserBiz
.
deleteByBook
(
bookId
);
//删除与二维码关联关系
EXECUTOR_SERVICE
.
execute
(()
->
{
qrcodeSceneConsr
.
deleteBook
(
bookId
,
adviserBook
.
getChannelId
(),
adviserBook
.
getAdviserId
());
//批量删除书架书籍
// 删除社群码
adviserBooks
.
stream
().
forEach
(
bookGroupBiz
.
deleteByBookId
(
bookId
,
adviserBook
.
getChannelId
(),
adviserBook
.
getAdviserId
());
adviserBook
->
{
}
bookcaseConsr
.
deleteBookForAdviser
(
bookId
,
channelId
,
adviserBook
.
getAdviserId
());
);
//删除与二维码关联关系
});
qrcodeSceneConsr
.
deleteBook
(
bookId
,
adviserBook
.
getChannelId
(),
adviserBook
.
getAdviserId
());
//加上申诉编辑与图书关联关系
// 删除社群码
BookAdviser
bookAdviser
=
new
BookAdviser
();
bookGroupBiz
.
deleteByBookId
(
bookId
,
adviserBook
.
getChannelId
(),
adviserBook
.
getAdviserId
());
bookAdviser
.
setAdviserId
(
declarant
);
}
bookAdviser
.
setChannelId
(
channelId
);
);
bookAdviser
.
setBookId
(
bookId
);
});
bookAdviser
.
setTempletId
(
templetId
);
//加上申诉编辑与图书关联关系
BookAdviser
bookAdviser
=
new
BookAdviser
();
bookAdviser
.
setAdviserId
(
declarant
);
bookAdviser
.
setChannelId
(
channelId
);
bookAdviser
.
setBookId
(
bookId
);
bookAdviser
.
setTempletId
(
templetId
);
bookAdviser
.
setIsMainEditor
(
true
);
bookAdviser
.
setIsMainEditor
(
true
);
bookAdviserDao
.
insert
(
bookAdviser
);
bookAdviserDao
.
insert
(
bookAdviser
);
// 恢复申诉编辑图书与二维码关联关系
// 恢复申诉编辑图书与二维码关联关系
recoverBookQrcodeAssoc
(
bookId
,
channelId
,
declarant
);
recoverBookQrcodeAssoc
(
bookId
,
channelId
,
declarant
);
}
}
/**
/**
* 发送申诉审核通过的模板消息
* 发送申诉审核通过的模板消息
*
* @param isOnlyOneAdviser 是否唯一拥有
* @param isOnlyOneAdviser
* @param appealAdviserId 申诉编辑
* 是否唯一拥有
* @param bookAdviserList 审核后编辑与书的关系
* @param appealAdviserId
* @param bookId 图书标识
* 申诉编辑
* @param channelId 运营标识
* @param bookAdviserList
*/
* 审核后编辑与书的关系
* @param bookId
* 图书标识
* @param channelId
* 运营标识
*/
private
void
sendAppealTemplate
(
Boolean
isOnlyOneAdviser
,
Long
appealAdviserId
,
List
<
BookAdviserDto
>
bookAdviserList
,
Long
bookId
,
Long
channelId
,
Long
mainAdviserId
)
{
private
void
sendAppealTemplate
(
Boolean
isOnlyOneAdviser
,
Long
appealAdviserId
,
List
<
BookAdviserDto
>
bookAdviserList
,
Long
bookId
,
Long
channelId
,
Long
mainAdviserId
)
{
LOGGER
.
info
(
"发送申诉审核后的模板消息appealAdviserId="
+
appealAdviserId
+
"bookAdviserList="
+
bookAdviserList
+
LOGGER
.
info
(
"发送申诉审核后的模板消息appealAdviserId="
+
appealAdviserId
+
"bookAdviserList="
+
bookAdviserList
+
"bookId="
+
bookId
+
"channelId="
+
channelId
+
"mainAdviserId="
+
mainAdviserId
);
"bookId="
+
bookId
+
"channelId="
+
channelId
+
"mainAdviserId="
+
mainAdviserId
);
EXECUTOR_SERVICE
.
execute
(()->{
EXECUTOR_SERVICE
.
execute
(()
->
{
// 获取图书详情
// 获取图书详情
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookId
);
BookDto
bookDto
=
bookBiz
.
getBaseById
(
bookId
);
String
bookName
=
bookDto
.
getBookName
();
String
bookName
=
bookDto
.
getBookName
();
for
(
BookAdviserDto
bookAdviser
:
bookAdviserList
)
{
for
(
BookAdviserDto
bookAdviser
:
bookAdviserList
)
{
if
(
isOnlyOneAdviser
){
if
(
isOnlyOneAdviser
)
{
removeBookTemplate
(
bookName
,
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
());
removeBookTemplate
(
bookName
,
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
());
}
else
{
}
else
{
//主编辑变为副编辑
//主编辑变为副编辑
if
(
bookAdviser
.
getIsMainEditor
()
&&
!
mainAdviserId
.
equals
(
bookAdviser
.
getAdviserId
()))
{
if
(
bookAdviser
.
getIsMainEditor
()
&&
!
mainAdviserId
.
equals
(
bookAdviser
.
getAdviserId
()))
{
adviserChangeToSubTemplate
(
bookName
,
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
());
adviserChangeToSubTemplate
(
bookName
,
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
());
}
}
//副编辑变为主编辑
//副编辑变为主编辑
if
(!
bookAdviser
.
getIsMainEditor
()
&&
mainAdviserId
.
equals
(
bookAdviser
.
getAdviserId
()))
{
if
(!
bookAdviser
.
getIsMainEditor
()
&&
mainAdviserId
.
equals
(
bookAdviser
.
getAdviserId
()))
{
adviserChangeToMainTemplate
(
bookName
,
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
());
adviserChangeToMainTemplate
(
bookName
,
bookAdviser
.
getAdviserId
(),
bookAdviser
.
getChannelId
());
}
}
}
}
}
}
//给申诉编辑发送模板消息
//给申诉编辑发送模板消息
if
(
appealAdviserId
.
equals
(
mainAdviserId
))
{
if
(
appealAdviserId
.
equals
(
mainAdviserId
))
{
sendAppealSuccessToMainTemplate
(
bookName
,
appealAdviserId
,
channelId
);
sendAppealSuccessToMainTemplate
(
bookName
,
appealAdviserId
,
channelId
);
}
else
{
}
else
{
sendAppealSuccessToSubTemplate
(
bookName
,
appealAdviserId
,
channelId
);
sendAppealSuccessToSubTemplate
(
bookName
,
appealAdviserId
,
channelId
);
}
LOGGER
.
info
(
"发送申诉审核后的模板消息【END】"
);
});
}
/**
* 主编辑发生改变,给新主编辑发送模板消息(给新主编辑发消息不包括申诉编辑)
* @param bookName 图书名称
* @param adviserId 编辑标识
*/
void
adviserChangeToMainTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"主编辑发生改变,给新主编辑发送模板消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
);
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"编辑变更"
);
temParam
.
put
(
"keyword2"
,
"RAYS编辑"
);
temParam
.
put
(
"keyword1"
,
"您在"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"已将您设置为主编辑,请尽快去PC端配置书刊的相关资源等信息"
);
temParam
.
put
(
"keyword3"
,
"通知"
);
temParam
.
put
(
"remark"
,
"请抽空处理"
);
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
" 主编辑发生改变,给新主编辑发送模板消息[END]"
);
}
/**
* 书籍被移除模板消息
* @param bookName 图书名称
* @param adviserId 编辑标识
*/
void
removeBookTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"书籍被移除模板消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"编辑变更"
);
temParam
.
put
(
"keyword2"
,
"RAYS编辑"
);
temParam
.
put
(
"keyword1"
,
"您在"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"被申诉成功,已被移除,请知悉"
);
temParam
.
put
(
"keyword3"
,
"通知"
);
temParam
.
put
(
"remark"
,
"请抽空处理"
);
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
"书籍被移除模板消息[END]"
);
}
/**
* 主编辑发生改变,由主编辑变为副编辑模板消息
* @param bookName 图书名称
* @param adviserId 编辑标识
*/
void
adviserChangeToSubTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"主编辑发生改变,由主编辑变为副编辑模板消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"编辑变更"
);
temParam
.
put
(
"keyword2"
,
"RAYS编辑"
);
temParam
.
put
(
"keyword1"
,
"您在"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"被申诉成功,已将您设置为副编辑,请知悉"
);
temParam
.
put
(
"keyword3"
,
"通知"
);
temParam
.
put
(
"remark"
,
"请抽空处理"
);
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
" 主编辑发生改变,给新主编辑发送模板消息[END]"
);
}
/**
* 申诉成功为主编辑
* @param bookName 图书名称
* @param adviserId 编辑标识
*/
void
sendAppealSuccessToMainTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"申诉成功为主编辑,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
// 发送模板消息---申诉编辑变为主编辑(给申诉编辑编辑发消息)
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"恭喜您,您申请的"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"申诉成功"
);
temParam
.
put
(
"keyword2"
,
"书刊申诉审核"
);
temParam
.
put
(
"keyword1"
,
"书刊申诉"
);
temParam
.
put
(
"keyword3"
,
"申诉通过"
);
temParam
.
put
(
"keyword4"
,
DateUtils
.
formatDate
(
new
Date
()));
temParam
.
put
(
"remark"
,
"书刊已加入您的书刊列表,您是主编辑,请去PC端配置书刊的相关资源"
);
templateConsr
.
sendManage
(
SceneCode
.
TASK_HANDLE_RESULT_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
"申诉成功为主编辑[END]"
);
}
/**
* 申诉成功为副编辑
* @param bookName 图书名称
* @param adviserId 编辑标识
*/
void
sendAppealSuccessToSubTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"申诉成功为副编辑,给申诉编辑发消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
// 发送模板消息---提交申诉的编辑,申诉成功之后是副编辑(给申诉编辑发消息)
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"恭喜您,您申请的"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"申诉成功"
);
temParam
.
put
(
"keyword2"
,
"书刊申诉审核"
);
temParam
.
put
(
"keyword1"
,
"书刊申诉"
);
temParam
.
put
(
"keyword3"
,
"申诉通过"
);
temParam
.
put
(
"keyword4"
,
DateUtils
.
formatDate
(
new
Date
()));
temParam
.
put
(
"remark"
,
"书刊已加入您的书刊列表,您是副编辑,可直接共享书刊配套资源"
);
templateConsr
.
sendManage
(
SceneCode
.
TASK_HANDLE_RESULT_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
"申诉成功为副编辑,给申诉编辑发消息【END】"
);
}
/**
* 发送申诉审核未通过的模板消息
* @param bookName 图书名称
* @param auditReason 审核不通过原因
* @param declarant 申诉方
*/
void
sendAuditFailTemplate
(
String
bookName
,
String
auditReason
,
Long
declarant
,
Long
channelId
)
{
try
{
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
// 获取申诉人所属代理
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
declarant
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"很抱歉,您申请的"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"申诉未通过审核"
);
temParam
.
put
(
"keyword2"
,
"书刊申诉审核"
);
temParam
.
put
(
"keyword1"
,
"书刊申诉"
);
temParam
.
put
(
"keyword3"
,
"申诉不通过"
);
temParam
.
put
(
"keyword4"
,
DateUtils
.
formatDate
(
new
Date
()));
temParam
.
put
(
"remark"
,
"申诉不通过,原因:"
+
auditReason
);
templateConsr
.
sendManage
(
SceneCode
.
TASK_HANDLE_RESULT_SCENE
.
value
,
agentId
,
declarant
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"【书籍申诉-审核-平台】书刊申诉审核:发送模板消息,<ERROR>:"
+
e
.
getMessage
(),
e
);
}
}
LOGGER
.
info
(
"发送申诉审核后的模板消息【END】"
);
}
});
/**
* 修改申诉状态
* @param auditUser 审核人
* @param appealState 申诉状态
* @param version 版本号
* @param bookAppealId 申诉标识
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
updateAppealState
(
Long
auditUser
,
Integer
appealState
,
Integer
version
,
Long
bookAppealId
)
{
LOGGER
.
info
(
"修改申诉状态auditUser="
+
auditUser
+
"appealState="
+
appealState
+
"version="
+
version
+
"bookAppealId="
+
bookAppealId
);
BookAppeal
bookAppeal
=
new
BookAppeal
();
bookAppeal
.
setAuditUser
(
auditUser
);
bookAppeal
.
setLastModifiedUser
(
auditUser
);
bookAppeal
.
setAppealState
(
appealState
);
bookAppeal
.
setVersion
(
version
);
bookAppeal
.
setBookAppealId
(
bookAppealId
);
// 更新申诉状态信息
bookAppealDao
.
update
(
bookAppeal
);
LOGGER
.
info
(
"修改申诉状态【END】"
);
}
/**
* 恢复主编辑图书与二维码关联关系
* @param bookId 图书标识
* @param channelId 运营标识
* @param adviserId 编辑标识
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
recoverBookQrcodeAssoc
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
LOGGER
.
info
(
"恢复主编辑图书与二维码关联关系,bookId="
+
bookId
+
",channelId="
+
channelId
+
"adviserId="
+
adviserId
);
qrcodeSceneConsr
.
recoverByBook
(
bookId
,
channelId
,
adviserId
);
LOGGER
.
info
(
"恢复主编辑图书与二维码关联关系结束"
);
}
}
/**
/**
* 主编辑发生改变,给新主编辑发送模板消息(给新主编辑发消息不包括申诉编辑)
* 获取申诉结果
*
*/
* @param bookName
@Override
* 图书名称
public
List
<
BookAppealResultDto
>
getAppealResult
(
Long
bookAppealId
)
{
* @param adviserId
LOGGER
.
info
(
"获取申诉结果bookAppealId="
+
bookAppealId
);
* 编辑标识
//获取申诉基本信息
*/
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppealId
);
void
adviserChangeToMainTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
if
(
bookAppealDto
==
null
||
bookAppealDto
.
getCreatedUser
()
==
null
)
{
LOGGER
.
info
(
"主编辑发生改变,给新主编辑发送模板消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"申诉信息不存在"
);
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
}
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Long
appealAdviserId
=
bookAppealDto
.
getCreatedUser
();
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
//获取申诉结果
temParam
.
put
(
"first"
,
"编辑变更"
);
List
<
BookAppealResultDto
>
appealResults
=
bookAppealResultDao
.
getAppealResult
(
bookAppealId
);
temParam
.
put
(
"keyword2"
,
"RAYS编辑"
);
temParam
.
put
(
"keyword1"
,
"您在"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"已将您设置为主编辑,请尽快去PC端配置书刊的相关资源等信息"
);
if
(
ListUtils
.
isEmpty
(
appealResults
))
temParam
.
put
(
"keyword3"
,
"通知"
);
return
new
ArrayList
<>();
temParam
.
put
(
"remark"
,
"请抽空处理"
);
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
List
<
Long
>
adviserIds
=
new
ArrayList
<>();
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
List
<
Long
>
channelIds
=
new
ArrayList
<>();
LOGGER
.
info
(
" 主编辑发生改变,给新主编辑发送模板消息[END]"
);
appealResults
.
stream
().
forEach
(
}
appealResult
->
{
if
(
appealAdviserId
.
equals
(
appealResult
.
getAdviserId
()))
{
/**
appealResult
.
setAppealAdviser
(
true
);
* 书籍被移除模板消息
}
else
{
*
appealResult
.
setAppealAdviser
(
false
);
* @param bookName
}
* 图书名称
if
(!
adviserIds
.
contains
(
appealResult
.
getAdviserId
()))
{
* @param adviserId
adviserIds
.
add
(
appealResult
.
getAdviserId
());
* 编辑标识
}
*/
if
(!
channelIds
.
contains
(
appealResult
.
getChannelId
()))
{
void
removeBookTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
channelIds
.
add
(
appealResult
.
getChannelId
());
LOGGER
.
info
(
"书籍被移除模板消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
}
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
}
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"编辑变更"
);
// 获取基本信息
temParam
.
put
(
"keyword2"
,
"RAYS编辑"
);
Map
<
Long
,
AdviserBaseInfoDto
>
adviserMap
=
adviserConsr
.
getAdviserId2AdviserInfoDtoMap
(
adviserIds
);
temParam
.
put
(
"keyword1"
,
"您在"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"被申诉成功,已被移除,请知悉"
);
Map
<
Long
,
String
>
channelNameMap
=
channelConsr
.
getNamesByIdList
(
channelIds
);
temParam
.
put
(
"keyword3"
,
"通知"
);
temParam
.
put
(
"remark"
,
"请抽空处理"
);
appealResults
.
stream
().
forEach
(
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
appealResult
->
{
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
if
(
adviserMap
!=
null
)
{
LOGGER
.
info
(
"书籍被移除模板消息[END]"
);
AdviserBaseInfoDto
adviserBaseInfoDto
=
adviserMap
.
get
(
appealResult
.
getAdviserId
());
}
if
(
adviserBaseInfoDto
!=
null
)
{
appealResult
.
setAdviserName
(
adviserBaseInfoDto
.
getPartyName
());
/**
appealResult
.
setAgentName
(
adviserBaseInfoDto
.
getAgentName
());
* 主编辑发生改变,由主编辑变为副编辑模板消息
appealResult
.
setPhone
(
adviserBaseInfoDto
.
getPhoneNum
());
*
appealResult
.
setHeadUrl
(
adviserBaseInfoDto
.
getHeadUrl
());
* @param bookName
}
* 图书名称
}
* @param adviserId
if
(
channelNameMap
!=
null
)
{
* 编辑标识
appealResult
.
setChannelName
(
channelNameMap
.
get
(
appealResult
.
getChannelId
()));
*/
}
void
adviserChangeToSubTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
if
(
appealAdviserId
.
equals
(
appealResult
.
getAdviserId
()))
{
LOGGER
.
info
(
"主编辑发生改变,由主编辑变为副编辑模板消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
appealResult
.
setPhone
(
bookAppealDto
.
getPhone
());
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
}
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
}
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
);
temParam
.
put
(
"first"
,
"编辑变更"
);
LOGGER
.
info
(
"获取申诉结果[END]"
);
temParam
.
put
(
"keyword2"
,
"RAYS编辑"
);
return
appealResults
;
temParam
.
put
(
"keyword1"
,
"您在"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"被申诉成功,已将您设置为副编辑,请知悉"
);
}
temParam
.
put
(
"keyword3"
,
"通知"
);
temParam
.
put
(
"remark"
,
"请抽空处理"
);
templateConsr
.
sendManage
(
SceneCode
.
PROJECT_TASK_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
" 主编辑发生改变,给新主编辑发送模板消息[END]"
);
}
/**
* 申诉成功为主编辑
*
* @param bookName
* 图书名称
* @param adviserId
* 编辑标识
*/
void
sendAppealSuccessToMainTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"申诉成功为主编辑,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
// 发送模板消息---申诉编辑变为主编辑(给申诉编辑编辑发消息)
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"恭喜您,您申请的"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"申诉成功"
);
temParam
.
put
(
"keyword2"
,
"书刊申诉审核"
);
temParam
.
put
(
"keyword1"
,
"书刊申诉"
);
temParam
.
put
(
"keyword3"
,
"申诉通过"
);
temParam
.
put
(
"keyword4"
,
DateUtils
.
formatDate
(
new
Date
()));
temParam
.
put
(
"remark"
,
"书刊已加入您的书刊列表,您是主编辑,请去PC端配置书刊的相关资源"
);
templateConsr
.
sendManage
(
SceneCode
.
TASK_HANDLE_RESULT_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
"申诉成功为主编辑[END]"
);
}
/**
* 申诉成功为副编辑
*
* @param bookName
* 图书名称
* @param adviserId
* 编辑标识
*/
void
sendAppealSuccessToSubTemplate
(
String
bookName
,
Long
adviserId
,
Long
channelId
)
{
LOGGER
.
info
(
"申诉成功为副编辑,给申诉编辑发消息,bookName="
+
bookName
+
"adviserId="
+
adviserId
+
"channelId="
+
channelId
);
// 发送模板消息---提交申诉的编辑,申诉成功之后是副编辑(给申诉编辑发消息)
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"恭喜您,您申请的"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)+
"申诉成功"
);
temParam
.
put
(
"keyword2"
,
"书刊申诉审核"
);
temParam
.
put
(
"keyword1"
,
"书刊申诉"
);
temParam
.
put
(
"keyword3"
,
"申诉通过"
);
temParam
.
put
(
"keyword4"
,
DateUtils
.
formatDate
(
new
Date
()));
temParam
.
put
(
"remark"
,
"书刊已加入您的书刊列表,您是副编辑,可直接共享书刊配套资源"
);
templateConsr
.
sendManage
(
SceneCode
.
TASK_HANDLE_RESULT_SCENE
.
value
,
agentId
,
adviserId
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
LOGGER
.
info
(
"申诉成功为副编辑,给申诉编辑发消息【END】"
);
}
/**
* 发送申诉审核未通过的模板消息
* @param bookName 图书名称
* @param auditReason 审核不通过原因
* @param declarant 申诉方
*/
void
sendAuditFailTemplate
(
String
bookName
,
String
auditReason
,
Long
declarant
,
Long
channelId
){
try
{
String
channelName
=
channelConsr
.
getNameById
(
channelId
);
// 获取申诉人所属代理
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
declarant
);
Map
<
String
,
String
>
temParam
=
new
HashMap
<>();
temParam
.
put
(
"first"
,
"很抱歉,您申请的"
+
channelName
+
"运营的书刊"
+
StringUtil
.
addBracket
(
bookName
)
+
"申诉未通过审核"
);
temParam
.
put
(
"keyword2"
,
"书刊申诉审核"
);
temParam
.
put
(
"keyword1"
,
"书刊申诉"
);
temParam
.
put
(
"keyword3"
,
"申诉不通过"
);
temParam
.
put
(
"keyword4"
,
DateUtils
.
formatDate
(
new
Date
()));
temParam
.
put
(
"remark"
,
"申诉不通过,原因:"
+
auditReason
);
templateConsr
.
sendManage
(
SceneCode
.
TASK_HANDLE_RESULT_SCENE
.
value
,
agentId
,
declarant
,
SystemCode
.
adviser
.
code
,
""
,
temParam
,
SendType
.
SEND_BY_PARTY_ID
.
value
,
false
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"【书籍申诉-审核-平台】书刊申诉审核:发送模板消息,<ERROR>:"
+
e
.
getMessage
(),
e
);
}
}
/**
* 修改申诉状态
*
* @param auditUser
* 审核人
* @param appealState
* 申诉状态
* @param version
* 版本号
* @param bookAppealId
* 申诉标识
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
updateAppealState
(
Long
auditUser
,
Integer
appealState
,
Integer
version
,
Long
bookAppealId
)
{
LOGGER
.
info
(
"修改申诉状态auditUser="
+
auditUser
+
"appealState="
+
appealState
+
"version="
+
version
+
"bookAppealId="
+
bookAppealId
);
BookAppeal
bookAppeal
=
new
BookAppeal
();
bookAppeal
.
setAuditUser
(
auditUser
);
bookAppeal
.
setLastModifiedUser
(
auditUser
);
bookAppeal
.
setAppealState
(
appealState
);
bookAppeal
.
setVersion
(
version
);
bookAppeal
.
setBookAppealId
(
bookAppealId
);
// 更新申诉状态信息
bookAppealDao
.
update
(
bookAppeal
);
LOGGER
.
info
(
"修改申诉状态【END】"
);
}
/**
* 恢复主编辑图书与二维码关联关系
*
* @param bookId
* 图书标识
* @param channelId
* 运营标识
* @param adviserId
* 编辑标识
*/
@Transactional
(
rollbackFor
=
Exception
.
class
)
void
recoverBookQrcodeAssoc
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
LOGGER
.
info
(
"恢复主编辑图书与二维码关联关系,bookId="
+
bookId
+
",channelId="
+
channelId
+
"adviserId="
+
adviserId
);
qrcodeSceneConsr
.
recoverByBook
(
bookId
,
channelId
,
adviserId
);
LOGGER
.
info
(
"恢复主编辑图书与二维码关联关系结束"
);
}
/**
* 获取申诉结果
*/
@Override
public
List
<
BookAppealResultDto
>
getAppealResult
(
Long
bookAppealId
)
{
LOGGER
.
info
(
"获取申诉结果bookAppealId="
+
bookAppealId
);
//获取申诉基本信息
BookAppealDto
bookAppealDto
=
bookAppealDao
.
getById
(
bookAppealId
);
if
(
bookAppealDto
==
null
||
bookAppealDto
.
getCreatedUser
()
==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"申诉信息不存在"
);
}
Long
appealAdviserId
=
bookAppealDto
.
getCreatedUser
();
//获取申诉结果
List
<
BookAppealResultDto
>
appealResults
=
bookAppealResultDao
.
getAppealResult
(
bookAppealId
);
if
(
ListUtils
.
isEmpty
(
appealResults
))
return
new
ArrayList
<>();
List
<
Long
>
adviserIds
=
new
ArrayList
<>();
List
<
Long
>
channelIds
=
new
ArrayList
<>();
appealResults
.
stream
().
forEach
(
appealResult
->
{
if
(
appealAdviserId
.
equals
(
appealResult
.
getAdviserId
())){
appealResult
.
setAppealAdviser
(
true
);
}
else
{
appealResult
.
setAppealAdviser
(
false
);
}
if
(!
adviserIds
.
contains
(
appealResult
.
getAdviserId
()))
{
adviserIds
.
add
(
appealResult
.
getAdviserId
());
}
if
(!
channelIds
.
contains
(
appealResult
.
getChannelId
()))
{
channelIds
.
add
(
appealResult
.
getChannelId
());
}
}
);
// 获取基本信息
Map
<
Long
,
AdviserBaseInfoDto
>
adviserMap
=
adviserConsr
.
getAdviserId2AdviserInfoDtoMap
(
adviserIds
);
Map
<
Long
,
String
>
channelNameMap
=
channelConsr
.
getNamesByIdList
(
channelIds
);
appealResults
.
stream
().
forEach
(
appealResult
->
{
if
(
adviserMap
!=
null
){
AdviserBaseInfoDto
adviserBaseInfoDto
=
adviserMap
.
get
(
appealResult
.
getAdviserId
());
if
(
adviserBaseInfoDto
!=
null
){
appealResult
.
setAdviserName
(
adviserBaseInfoDto
.
getPartyName
());
appealResult
.
setAgentName
(
adviserBaseInfoDto
.
getAgentName
());
appealResult
.
setPhone
(
adviserBaseInfoDto
.
getPhoneNum
());
appealResult
.
setHeadUrl
(
adviserBaseInfoDto
.
getHeadUrl
());
}
}
if
(
channelNameMap
!=
null
){
appealResult
.
setChannelName
(
channelNameMap
.
get
(
appealResult
.
getChannelId
()));
}
if
(
appealAdviserId
.
equals
(
appealResult
.
getAdviserId
())){
appealResult
.
setPhone
(
bookAppealDto
.
getPhone
());
}
}
);
LOGGER
.
info
(
"获取申诉结果[END]"
);
return
appealResults
;
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/BookBiz.java
View file @
a92ab2d2
...
@@ -123,7 +123,20 @@ public interface BookBiz {
...
@@ -123,7 +123,20 @@ public interface BookBiz {
*/
*/
BookDto
getById
(
Long
bookId
,
Long
adviserId
,
Long
channelId
)
throws
BizException
;
BookDto
getById
(
Long
bookId
,
Long
adviserId
,
Long
channelId
)
throws
BizException
;
/**
/**
* 获取单个书籍基础信息(包含统计信息)
*
* @param bookId
* 图书标识
* @param adviserId
* 编辑标识
* @param channelId
* 渠道标识
* @return
*/
BookDto
getById4Platform
(
Long
bookId
,
Long
adviserId
,
Long
channelId
)
throws
BizException
;
/**
* 批量获取书籍信息
* 批量获取书籍信息
*
*
* @param bookIds
* @param bookIds
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookAdviserBizImpl.java
View file @
a92ab2d2
...
@@ -18,6 +18,7 @@ import com.pcloud.book.consumer.user.AdviserConsr;
...
@@ -18,6 +18,7 @@ import com.pcloud.book.consumer.user.AdviserConsr;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SceneCode
;
import
com.pcloud.common.core.constant.SendType
;
import
com.pcloud.common.core.constant.SendType
;
...
@@ -52,7 +53,7 @@ import java.util.concurrent.Executors;
...
@@ -52,7 +53,7 @@ import java.util.concurrent.Executors;
public
class
BookAdviserBizImpl
implements
BookAdviserBiz
{
public
class
BookAdviserBizImpl
implements
BookAdviserBiz
{
/**
/**
*
*
*/
*/
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BookAdviserBizImpl
.
class
);
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
BookAdviserBizImpl
.
class
);
...
@@ -79,16 +80,19 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -79,16 +80,19 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
@Autowired
@Autowired
private
BookcaseConsr
bookcaseConsr
;
private
BookcaseConsr
bookcaseConsr
;
@Autowired
@Autowired
private
BookConsr
bookConsr
;
private
BookConsr
bookConsr
;
@Autowired
@Autowired
private
ChannelConsr
channelConsr
;
private
ChannelConsr
channelConsr
;
@Autowired
@Autowired
private
BookGroupBiz
bookGroupBiz
;
private
BookGroupBiz
bookGroupBiz
;
@Autowired
private
BookGroupDao
bookGroupDao
;
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newFixedThreadPool
(
5
);
/**
/**
...
@@ -162,7 +166,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -162,7 +166,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
/**
/**
* 校验是否同一出版社
* 校验是否同一出版社
*
*
* @param channelId
* @param channelId
* 运营标识
* 运营标识
* @param adviserId
* @param adviserId
...
@@ -253,7 +257,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -253,7 +257,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
private
BookAdviserDto
getByAdviserContainsDelete
(
BookAdviser
bookAdviser
)
throws
BizException
{
private
BookAdviserDto
getByAdviserContainsDelete
(
BookAdviser
bookAdviser
)
throws
BizException
{
return
bookAdviserDao
.
getByAdviserContainsDelete
(
bookAdviser
);
return
bookAdviserDao
.
getByAdviserContainsDelete
(
bookAdviser
);
}
}
/**
/**
* 统计编辑推广的图书总数
* 统计编辑推广的图书总数
*/
*/
...
@@ -538,7 +542,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -538,7 +542,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
/**
/**
* 填充不存在的日期中的值为0
* 填充不存在的日期中的值为0
*
*
* @param bookCounts
* @param bookCounts
* @param startTime
* @param startTime
* @param endTime
* @param endTime
...
@@ -588,7 +592,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -588,7 +592,7 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
LOGGER
.
info
(
"删除书籍(编辑端)<END>"
);
LOGGER
.
info
(
"删除书籍(编辑端)<END>"
);
}
}
/**
/**
* 删除主编辑书籍
* 删除主编辑书籍
* @param bookId 图书标识
* @param bookId 图书标识
...
@@ -613,10 +617,10 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -613,10 +617,10 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
}
}
LOGGER
.
info
(
"删除主编辑书籍<END>."
);
LOGGER
.
info
(
"删除主编辑书籍<END>."
);
}
}
/**
/**
* 删除副编辑书籍(编辑端)
* 删除副编辑书籍(编辑端)
*
*
* @param bookId
* @param bookId
* 图书标识
* 图书标识
* @param adviserId
* @param adviserId
...
@@ -690,6 +694,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
...
@@ -690,6 +694,8 @@ public class BookAdviserBizImpl implements BookAdviserBiz {
CountDto
countDto
=
new
CountDto
();
CountDto
countDto
=
new
CountDto
();
Integer
count
=
bookAdviserDao
.
getAdviserBookCount
(
adviserId
);
Integer
count
=
bookAdviserDao
.
getAdviserBookCount
(
adviserId
);
countDto
.
setCount
(
count
);
countDto
.
setCount
(
count
);
Integer
bookGroupCount
=
bookGroupDao
.
getBookGroupCount
(
adviserId
);
countDto
.
setBookGroupCount
(
bookGroupCount
);
LOGGER
.
info
(
"获取编辑的图书总数 ,<END>"
);
LOGGER
.
info
(
"获取编辑的图书总数 ,<END>"
);
return
countDto
;
return
countDto
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
View file @
a92ab2d2
...
@@ -3,6 +3,26 @@
...
@@ -3,6 +3,26 @@
*/
*/
package
com
.
pcloud
.
book
.
book
.
biz
.
impl
;
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.Lists
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto
;
import
com.pcloud.analysisengine.qrcode.dto.BookTimeSourceDto
;
...
@@ -11,11 +31,28 @@ import com.pcloud.book.base.enums.BookFreezeEnum;
...
@@ -11,11 +31,28 @@ import com.pcloud.book.base.enums.BookFreezeEnum;
import
com.pcloud.book.base.enums.BookStatusEnum
;
import
com.pcloud.book.base.enums.BookStatusEnum
;
import
com.pcloud.book.base.enums.BookTypeEnum
;
import
com.pcloud.book.base.enums.BookTypeEnum
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.book.biz.*
;
import
com.pcloud.book.book.biz.BookAdviserBiz
;
import
com.pcloud.book.book.biz.BookAppBiz
;
import
com.pcloud.book.book.biz.BookBiz
;
import
com.pcloud.book.book.biz.BookFreezeBiz
;
import
com.pcloud.book.book.biz.BookFundBiz
;
import
com.pcloud.book.book.biz.BookProductBiz
;
import
com.pcloud.book.book.biz.BookResourceBiz
;
import
com.pcloud.book.book.cache.BookCache
;
import
com.pcloud.book.book.cache.BookCache
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.book.dao.BookDao
;
import
com.pcloud.book.book.dao.BookDao
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookAdviserUpdateTimeDTO
;
import
com.pcloud.book.book.dto.BookAssocCount
;
import
com.pcloud.book.book.dto.BookCoverImgUpdateDTO
;
import
com.pcloud.book.book.dto.BookDetialDTO
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookFreezeDto
;
import
com.pcloud.book.book.dto.BookFundDto
;
import
com.pcloud.book.book.dto.BookInfo4AnlysicsDTO
;
import
com.pcloud.book.book.dto.BookInfoAnalysicsDTO
;
import
com.pcloud.book.book.dto.BookInfoAndAuthStatusDTO
;
import
com.pcloud.book.book.dto.BookNameUpdateDTO
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.Book
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.entity.BookAdviser
;
import
com.pcloud.book.book.set.BookSet
;
import
com.pcloud.book.book.set.BookSet
;
...
@@ -44,19 +81,6 @@ import com.pcloud.common.page.PageParam;
...
@@ -44,19 +81,6 @@ import com.pcloud.common.page.PageParam;
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.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
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.*
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.stream.Collectors
;
/**
/**
* @描述:书籍业务层接口实现类
* @描述:书籍业务层接口实现类
...
@@ -128,8 +152,8 @@ public class BookBizImpl implements BookBiz {
...
@@ -128,8 +152,8 @@ public class BookBizImpl implements BookBiz {
throw
new
BookBizException
(
BookBizException
.
DB_SELECT_MORE
,
"书刊已存在"
);
throw
new
BookBizException
(
BookBizException
.
DB_SELECT_MORE
,
"书刊已存在"
);
}
}
if
(
SystemCode
.
adviser
.
code
.
equalsIgnoreCase
(
systemCode
)
&&
if
(
SystemCode
.
adviser
.
code
.
equalsIgnoreCase
(
systemCode
)
&&
(
Objects
.
isNull
(
book
.
getTempletId
())
||
Objects
.
isNull
(
book
.
getSecondTempletId
()))){
(
Objects
.
isNull
(
book
.
getTempletId
())
||
Objects
.
isNull
(
book
.
getSecondTempletId
())))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择书刊分类"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择书刊分类"
);
}
}
...
@@ -287,7 +311,7 @@ public class BookBizImpl implements BookBiz {
...
@@ -287,7 +311,7 @@ public class BookBizImpl implements BookBiz {
if
(
BookConstant
.
DEFAULT_BOOK_ISBN
.
equals
(
book
.
getIsbn
())
&&
StringUtils
.
isEmpty
(
book
.
getSerialNumber
()))
{
if
(
BookConstant
.
DEFAULT_BOOK_ISBN
.
equals
(
book
.
getIsbn
())
&&
StringUtils
.
isEmpty
(
book
.
getSerialNumber
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"默认图书不能修改!"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"默认图书不能修改!"
);
}
}
if
(
Objects
.
isNull
(
book
.
getTempletId
())
||
Objects
.
isNull
(
book
.
getSecondTempletId
()))
{
if
(
Objects
.
isNull
(
book
.
getTempletId
())
||
Objects
.
isNull
(
book
.
getSecondTempletId
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择书刊分类"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择书刊分类"
);
}
}
}
}
...
@@ -452,14 +476,14 @@ public class BookBizImpl implements BookBiz {
...
@@ -452,14 +476,14 @@ public class BookBizImpl implements BookBiz {
serialNumber
=
null
;
serialNumber
=
null
;
}
}
// 校验书号
// 校验书号
bookSet
.
checkISBN
(
typeCode
,
isbn
);
bookSet
.
checkISBN
(
typeCode
,
isbn
);
BookDto
bookDto
=
bookDao
.
getByIsbnAndSnum
(
isbn
,
serialNumber
);
BookDto
bookDto
=
bookDao
.
getByIsbnAndSnum
(
isbn
,
serialNumber
);
if
(
bookDto
==
null
)
{
if
(
bookDto
==
null
)
{
return
false
;
return
false
;
}
}
return
true
;
return
true
;
}
}
/**
/**
* 获取单个书籍基础信息(包含统计信息)
* 获取单个书籍基础信息(包含统计信息)
...
@@ -502,6 +526,38 @@ public class BookBizImpl implements BookBiz {
...
@@ -502,6 +526,38 @@ public class BookBizImpl implements BookBiz {
}
}
/**
/**
* 获取单个书籍基础信息(包含统计信息)
*/
@Override
public
BookDto
getById4Platform
(
Long
bookId
,
Long
adviserId
,
Long
channelId
)
throws
BizException
{
LOGGER
.
info
(
"【书籍基础】获取单个书籍基础信息,<START>.[bookId]="
+
bookId
+
",[adviserId]="
+
adviserId
+
",[channelId]="
+
channelId
);
if
(
bookId
==
null
||
channelId
==
null
||
adviserId
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数有误!"
);
}
BookDto
bookDto
=
null
;
Map
<
String
,
Object
>
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"bookId"
,
bookId
);
paramMap
.
put
(
"adviserId"
,
adviserId
);
paramMap
.
put
(
"channelId"
,
channelId
);
bookDto
=
bookDao
.
getById
(
paramMap
);
if
(
bookDto
==
null
)
{
return
new
BookDto
();
}
bookDto
.
setAdviserId
(
adviserId
);
bookDto
.
setChannelId
(
channelId
);
String
adviserName
=
adviserConsr
.
getNameById
(
adviserId
);
bookDto
.
setAdviserName
(
adviserName
);
Long
agentId
=
adviserConsr
.
getAgentIdByAdviser
(
adviserId
);
Map
<
Long
,
String
>
agentNameMap
=
agentConsr
.
getNames
(
Arrays
.
asList
(
agentId
));
if
(!
MapUtils
.
isEmpty
(
agentNameMap
)
&&
agentNameMap
.
containsKey
(
agentId
))
{
bookDto
.
setAgentName
(
agentNameMap
.
get
(
agentId
));
}
LOGGER
.
info
(
"【书籍基础】获取单个书籍基础信息(包含统计信息),<END>"
);
return
bookDto
;
}
/**
* 批量获取书籍信息
* 批量获取书籍信息
*/
*/
@Override
@Override
...
@@ -710,6 +766,8 @@ public class BookBizImpl implements BookBiz {
...
@@ -710,6 +766,8 @@ public class BookBizImpl implements BookBiz {
bookSet
.
setBookIncome
(
Lists
.
newArrayList
(
bookDtos
));
bookSet
.
setBookIncome
(
Lists
.
newArrayList
(
bookDtos
));
// 设置二维码相关信息
// 设置二维码相关信息
bookSet
.
setQrInfo
(
Lists
.
newArrayList
(
bookDtos
));
bookSet
.
setQrInfo
(
Lists
.
newArrayList
(
bookDtos
));
// 填充社群码相关信息
bookSet
.
seBookGroupInfo
(
Lists
.
newArrayList
(
bookDtos
));
}
}
return
bookDtos
;
return
bookDtos
;
}
}
...
@@ -849,32 +907,31 @@ public class BookBizImpl implements BookBiz {
...
@@ -849,32 +907,31 @@ public class BookBizImpl implements BookBiz {
return
bookDto
;
return
bookDto
;
}
}
/**
/**
* 判断isbn是否存在,存在返回书籍信息
* 判断isbn是否存在,存在返回书籍信息
*
* @throws IOException
* @throws IOException
*/
*/
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
BookDto
isbnExistsOrGetInfo
(
Book
book
)
{
public
BookDto
isbnExistsOrGetInfo
(
Book
book
)
{
LOGGER
.
info
(
"【书籍基础】判断ISBN是否存在,<PARAM>.[isbn]="
+
book
.
getIsbn
());
LOGGER
.
info
(
"【书籍基础】判断ISBN是否存在,<PARAM>.[isbn]="
+
book
.
getIsbn
());
// 校验书号合法性
// 校验书号合法性
bookSet
.
checkISBN
(
book
.
getTypeCode
(),
book
.
getIsbn
());
bookSet
.
checkISBN
(
book
.
getTypeCode
(),
book
.
getIsbn
());
if
(
StringUtils
.
isEmpty
(
book
.
getSerialNumber
()))
{
if
(
StringUtils
.
isEmpty
(
book
.
getSerialNumber
()))
{
book
.
setSerialNumber
(
null
);
book
.
setSerialNumber
(
null
);
}
}
// 获取最近书刊信息
// 获取最近书刊信息
BookDto
journalDto
=
bookDao
.
getByIsbn
(
book
.
getIsbn
());
BookDto
journalDto
=
bookDao
.
getByIsbn
(
book
.
getIsbn
());
if
(
BookTypeEnum
.
BOOK
.
value
.
equals
(
book
.
getTypeCode
())
&&
journalDto
==
null
)
{
if
(
BookTypeEnum
.
BOOK
.
value
.
equals
(
book
.
getTypeCode
())
&&
journalDto
==
null
)
{
try
{
try
{
// 调用外部接口查询书籍信息
// 调用外部接口查询书籍信息
insertBook
(
book
.
getIsbn
());
insertBook
(
book
.
getIsbn
());
journalDto
=
bookDao
.
getByIsbn
(
book
.
getIsbn
());
journalDto
=
bookDao
.
getByIsbn
(
book
.
getIsbn
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"【书刊基础】根据ISBN获取书刊信息,<ERROR>.[getByJournIsbn]:"
+
e
.
getMessage
(),
e
);
LOGGER
.
error
(
"【书刊基础】根据ISBN获取书刊信息,<ERROR>.[getByJournIsbn]:"
+
e
.
getMessage
(),
e
);
throw
BizException
.
DB_SELECT_IS_FAIL
;
throw
BizException
.
DB_SELECT_IS_FAIL
;
}
}
}
}
if
(
null
!=
journalDto
)
{
if
(
null
!=
journalDto
)
{
BookDto
journal
=
bookDao
.
getByIsbnAndSnum
(
book
.
getIsbn
(),
book
.
getSerialNumber
());
BookDto
journal
=
bookDao
.
getByIsbnAndSnum
(
book
.
getIsbn
(),
book
.
getSerialNumber
());
...
@@ -1345,7 +1402,7 @@ public class BookBizImpl implements BookBiz {
...
@@ -1345,7 +1402,7 @@ public class BookBizImpl implements BookBiz {
if
(
book
.
getChannelId
()
==
null
)
{
if
(
book
.
getChannelId
()
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择运营平台"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择运营平台"
);
}
}
if
(
Objects
.
isNull
(
book
.
getTempletId
())
||
Objects
.
isNull
(
book
.
getSecondTempletId
()))
{
if
(
Objects
.
isNull
(
book
.
getTempletId
())
||
Objects
.
isNull
(
book
.
getSecondTempletId
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择书刊分类"
);
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请选择书刊分类"
);
}
}
// 校验书号
// 校验书号
...
@@ -1361,11 +1418,10 @@ public class BookBizImpl implements BookBiz {
...
@@ -1361,11 +1418,10 @@ public class BookBizImpl implements BookBiz {
}
}
// 新增图书与编辑关联关系
// 新增图书与编辑关联关系
createBookAdviserRelation
(
book
);
createBookAdviserRelation
(
book
);
/*BookGroup bookGroup = null;
if (null != book.getIsBookGroup() && book.getIsBookGroup()) {
if (null != book.getIsBookGroup() && book.getIsBookGroup()) {
BookGroup
bookGroup
=
bookGroupBiz
.
createBookGroupAfterCreateBook
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getCreatedUser
());
bookGroup = bookGroupBiz.createBookGroupAfterCreateBook(book.getBookId(), book.getChannelId(), book.getCreatedUser());
bookDto
.
setBookGroupId
(
bookGroup
.
getId
());
}*/
bookDto
.
setGroupQrcodeUrl
(
bookGroup
.
getGroupQrcodeUrl
());
}
// 图书不存在,新增图书,图书数量加1
// 图书不存在,新增图书,图书数量加1
if
(
bookDto
==
null
)
{
if
(
bookDto
==
null
)
{
// 书籍总数缓存加1
// 书籍总数缓存加1
...
@@ -1382,6 +1438,10 @@ public class BookBizImpl implements BookBiz {
...
@@ -1382,6 +1438,10 @@ public class BookBizImpl implements BookBiz {
}
}
bookDto
=
bookDao
.
getByIsbnAndSnum
(
book
.
getIsbn
(),
book
.
getSerialNumber
());
bookDto
=
bookDao
.
getByIsbnAndSnum
(
book
.
getIsbn
(),
book
.
getSerialNumber
());
bookDto
.
setChannelId
(
book
.
getChannelId
());
bookDto
.
setChannelId
(
book
.
getChannelId
());
/*if (null != bookGroup) {
bookDto.setBookGroupId(bookGroup.getId());
bookDto.setGroupQrcodeUrl(bookGroup.getGroupQrcodeUrl());
}*/
LOGGER
.
info
(
"【书籍基础】创建书籍基础信息,<END>"
);
LOGGER
.
info
(
"【书籍基础】创建书籍基础信息,<END>"
);
return
bookDto
;
return
bookDto
;
}
}
...
@@ -1405,7 +1465,7 @@ public class BookBizImpl implements BookBiz {
...
@@ -1405,7 +1465,7 @@ public class BookBizImpl implements BookBiz {
// 清除redis中数据
// 清除redis中数据
bookCache
.
clearRedisByBook
(
book
.
getBookId
(),
book
.
getIsbn
(),
book
.
getSerialNumber
());
bookCache
.
clearRedisByBook
(
book
.
getBookId
(),
book
.
getIsbn
(),
book
.
getSerialNumber
());
//修改图书类型
//修改图书类型
bookAdviserBiz
.
updateBookTemplet
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getLastModifiedUser
(),
book
.
getTempletId
(),
book
.
getSecondTempletId
());
bookAdviserBiz
.
updateBookTemplet
(
book
.
getBookId
(),
book
.
getChannelId
(),
book
.
getLastModifiedUser
(),
book
.
getTempletId
(),
book
.
getSecondTempletId
());
LOGGER
.
info
(
"修改图书基本信息与类型[END]"
);
LOGGER
.
info
(
"修改图书基本信息与类型[END]"
);
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/BookDao.java
View file @
a92ab2d2
...
@@ -291,4 +291,11 @@ public interface BookDao extends BaseDao<Book> {
...
@@ -291,4 +291,11 @@ public interface BookDao extends BaseDao<Book> {
* @return
* @return
*/
*/
List
<
BookDto
>
listBookIdAndChannelId4Adviser
(
Map
<
String
,
Object
>
paramMap
);
List
<
BookDto
>
listBookIdAndChannelId4Adviser
(
Map
<
String
,
Object
>
paramMap
);
/**
* 获取社群书列表
* @param paramMap 参数Map
* @return
*/
List
<
BookDto
>
listSimpleBookGroup4Adviser
(
Map
<
String
,
Object
>
paramMap
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/dao/impl/BookDaoImpl.java
View file @
a92ab2d2
...
@@ -277,4 +277,12 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
...
@@ -277,4 +277,12 @@ public class BookDaoImpl extends BaseDaoImpl<Book> implements BookDao {
public
List
<
BookDto
>
listBookIdAndChannelId4Adviser
(
Map
<
String
,
Object
>
paramMap
)
{
public
List
<
BookDto
>
listBookIdAndChannelId4Adviser
(
Map
<
String
,
Object
>
paramMap
)
{
return
super
.
getSqlSession
().
selectList
(
getStatement
(
"listBookIdAndChannelId4Adviser"
),
paramMap
);
return
super
.
getSqlSession
().
selectList
(
getStatement
(
"listBookIdAndChannelId4Adviser"
),
paramMap
);
}
}
/**
* 获取社群书列表
*/
@Override
public
List
<
BookDto
>
listSimpleBookGroup4Adviser
(
Map
<
String
,
Object
>
paramMap
)
{
return
super
.
getSqlSession
().
selectList
(
getStatement
(
"listSimpleBookGroup4Adviser"
),
paramMap
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/BookFacade.java
View file @
a92ab2d2
...
@@ -400,6 +400,21 @@ public interface BookFacade {
...
@@ -400,6 +400,21 @@ public interface BookFacade {
throws
BizException
,
PermissionException
,
JsonParseException
;
throws
BizException
,
PermissionException
,
JsonParseException
;
/**
/**
* 获取书籍基础信息(平台端)
*/
@ApiOperation
(
value
=
"获取书籍基础信息(平台端)"
,
httpMethod
=
"GET"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"token"
,
value
=
"token"
,
dataType
=
"string"
,
paramType
=
"header"
),
@ApiImplicitParam
(
name
=
"bookId"
,
value
=
"图书标识"
,
dataType
=
"long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"channelId"
,
value
=
"渠道标识"
,
dataType
=
"long"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"adviserId"
,
value
=
"编辑标识"
,
dataType
=
"long"
,
paramType
=
"query"
)})
@RequestMapping
(
value
=
"getById4Platform"
,
method
=
RequestMethod
.
GET
)
ResponseDto
<
BookDto
>
getById4Platform
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookId"
)
Long
bookId
,
@RequestParam
(
value
=
"channelId"
,
required
=
false
)
Long
channelId
,
@RequestParam
(
value
=
"adviserId"
,
required
=
false
)
Long
adviserId
)
throws
BizException
;
/**
* 书刊回收站列表(30天内删除的书刊列表)
* 书刊回收站列表(30天内删除的书刊列表)
*/
*/
@ApiOperation
(
value
=
"书刊回收站列表"
,
httpMethod
=
"GET"
)
@ApiOperation
(
value
=
"书刊回收站列表"
,
httpMethod
=
"GET"
)
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/facade/impl/BookFacadeImpl.java
View file @
a92ab2d2
...
@@ -547,6 +547,19 @@ public class BookFacadeImpl implements BookFacade {
...
@@ -547,6 +547,19 @@ public class BookFacadeImpl implements BookFacade {
}
}
/**
/**
* 获取书籍基础信息(平台端)
*/
@Override
@RequestMapping
(
value
=
"getById4Platform"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<
BookDto
>
getById4Platform
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"bookId"
)
Long
bookId
,
@RequestParam
(
value
=
"channelId"
,
required
=
false
)
Long
channelId
,
@RequestParam
(
value
=
"adviserId"
,
required
=
false
)
Long
adviserId
)
throws
BizException
{
return
new
ResponseDto
<>(
bookBiz
.
getById4Platform
(
bookId
,
adviserId
,
channelId
));
}
/**
* 书刊回收站列表(30天内删除的书刊列表)
* 书刊回收站列表(30天内删除的书刊列表)
*/
*/
@Override
@Override
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/set/BookSet.java
View file @
a92ab2d2
...
@@ -3,6 +3,24 @@
...
@@ -3,6 +3,24 @@
*/
*/
package
com
.
pcloud
.
book
.
book
.
set
;
package
com
.
pcloud
.
book
.
book
.
set
;
import
java.math.BigDecimal
;
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.stream.Collectors
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.amqp.core.AmqpTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Lists
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
import
com.pcloud.analysisengine.browse.dto.BrowseCacheRecordDto
;
...
@@ -18,7 +36,15 @@ import com.pcloud.book.book.biz.BookFundBiz;
...
@@ -18,7 +36,15 @@ import com.pcloud.book.book.biz.BookFundBiz;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dao.BookAdviserDao
;
import
com.pcloud.book.book.dao.BookFreezeDao
;
import
com.pcloud.book.book.dao.BookFreezeDao
;
import
com.pcloud.book.book.dao.BookTypeDao
;
import
com.pcloud.book.book.dao.BookTypeDao
;
import
com.pcloud.book.book.dto.*
;
import
com.pcloud.book.book.dto.AdviserManageDto
;
import
com.pcloud.book.book.dto.BookAdviserDto
;
import
com.pcloud.book.book.dto.BookAppDto
;
import
com.pcloud.book.book.dto.BookDeleteDto
;
import
com.pcloud.book.book.dto.BookDto
;
import
com.pcloud.book.book.dto.BookFreezeDto
;
import
com.pcloud.book.book.dto.BookProductDto
;
import
com.pcloud.book.book.dto.BookResourceDto
;
import
com.pcloud.book.book.dto.BookTypeDto
;
import
com.pcloud.book.book.entity.BookDefendant
;
import
com.pcloud.book.book.entity.BookDefendant
;
import
com.pcloud.book.book.tools.BookTools
;
import
com.pcloud.book.book.tools.BookTools
;
import
com.pcloud.book.book.vo.NoAuthBookVO
;
import
com.pcloud.book.book.vo.NoAuthBookVO
;
...
@@ -32,8 +58,16 @@ import com.pcloud.book.consumer.content.ResourceConsr;
...
@@ -32,8 +58,16 @@ import com.pcloud.book.consumer.content.ResourceConsr;
import
com.pcloud.book.consumer.message.MessageConsr
;
import
com.pcloud.book.consumer.message.MessageConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.resource.ProductConsr
;
import
com.pcloud.book.consumer.settlement.BookConsr
;
import
com.pcloud.book.consumer.settlement.BookConsr
;
import
com.pcloud.book.consumer.user.*
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AgentConsr
;
import
com.pcloud.book.consumer.user.BookcaseConsr
;
import
com.pcloud.book.consumer.user.ChannelConsr
;
import
com.pcloud.book.consumer.user.PartyConsr
;
import
com.pcloud.book.consumer.voicemessage.MerchantVideoConsr
;
import
com.pcloud.book.consumer.voicemessage.MerchantVideoConsr
;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dto.BookGroupDTO
;
import
com.pcloud.book.group.dto.BookGroupStatisticDTO
;
import
com.pcloud.channelcenter.base.constants.MessageFromTypeEnum
;
import
com.pcloud.channelcenter.base.constants.MessageFromTypeEnum
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto
;
import
com.pcloud.channelcenter.qrcode.dto.QrcodeLocationDto
;
import
com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO
;
import
com.pcloud.channelcenter.qrcode.vo.BookAssocLastQrAskVO
;
...
@@ -61,18 +95,6 @@ import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
...
@@ -61,18 +95,6 @@ import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import
com.pcloud.usercenter.party.adviser.entity.Adviser
;
import
com.pcloud.usercenter.party.adviser.entity.Adviser
;
import
com.pcloud.usercenter.party.agent.entity.Agent
;
import
com.pcloud.usercenter.party.agent.entity.Agent
;
import
com.pcloud.voicemessage.party.merchant.entity.MerchantVideo
;
import
com.pcloud.voicemessage.party.merchant.entity.MerchantVideo
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.math.NumberUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.amqp.core.AmqpTemplate
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
/**
* @描述:图书信息填充
* @描述:图书信息填充
...
@@ -131,6 +153,10 @@ public class BookSet {
...
@@ -131,6 +153,10 @@ public class BookSet {
private
AgentConsr
agentConsr
;
private
AgentConsr
agentConsr
;
@Autowired
@Autowired
private
AccountSettingService
accountSettingService
;
private
AccountSettingService
accountSettingService
;
@Autowired
private
BookGroupDao
bookGroupDao
;
@Autowired
private
BookGroupClassifyBiz
bookGroupClassifyBiz
;
/**
/**
* 检验书号是否合法,包括ISSN,ISBN,CSSN
* 检验书号是否合法,包括ISSN,ISBN,CSSN
...
@@ -978,7 +1004,7 @@ public class BookSet {
...
@@ -978,7 +1004,7 @@ public class BookSet {
// 有二级列表优先展示二级列表,无则展示一级列表
// 有二级列表优先展示二级列表,无则展示一级列表
List
<
Long
>
templetIds
=
recordList
.
stream
()
List
<
Long
>
templetIds
=
recordList
.
stream
()
.
map
(
bookDto
->
{
.
map
(
bookDto
->
{
BookDto
book
=
(
BookDto
)
bookDto
;
BookDto
book
=
(
BookDto
)
bookDto
;
if
(
Objects
.
nonNull
(
book
.
getSecondTempletId
()))
{
if
(
Objects
.
nonNull
(
book
.
getSecondTempletId
()))
{
return
book
.
getSecondTempletId
();
return
book
.
getSecondTempletId
();
}
}
...
@@ -989,13 +1015,13 @@ public class BookSet {
...
@@ -989,13 +1015,13 @@ public class BookSet {
final
Map
<
Long
,
AssistTempletDTO
>
assistTempletIds
=
assistTempletConsr
.
mapByIds
(
templetIds
);
final
Map
<
Long
,
AssistTempletDTO
>
assistTempletIds
=
assistTempletConsr
.
mapByIds
(
templetIds
);
if
(
MapUtils
.
isEmpty
(
assistTempletIds
))
{
if
(
MapUtils
.
isEmpty
(
assistTempletIds
))
{
LOGGER
.
info
(
"设置模板名称【END】"
);
LOGGER
.
info
(
"设置模板名称【END】"
);
return
;
return
;
}
}
recordList
.
forEach
(
bookDto
->
{
recordList
.
forEach
(
bookDto
->
{
BookDto
book
=
(
BookDto
)
bookDto
;
BookDto
book
=
(
BookDto
)
bookDto
;
Long
secondTempletId
=
book
.
getSecondTempletId
();
Long
secondTempletId
=
book
.
getSecondTempletId
();
Long
templetId
=
book
.
getTempletId
();
Long
templetId
=
book
.
getTempletId
();
if
(
Objects
.
nonNull
(
secondTempletId
))
{
if
(
Objects
.
nonNull
(
secondTempletId
))
{
...
@@ -1057,9 +1083,9 @@ public class BookSet {
...
@@ -1057,9 +1083,9 @@ public class BookSet {
}
}
List
<
Long
>
templetIds
=
new
ArrayList
<>();
List
<
Long
>
templetIds
=
new
ArrayList
<>();
if
(
Objects
.
nonNull
(
bookDto
.
getSecondTempletId
()))
{
if
(
Objects
.
nonNull
(
bookDto
.
getSecondTempletId
()))
{
templetIds
.
add
(
bookDto
.
getSecondTempletId
());
templetIds
.
add
(
bookDto
.
getSecondTempletId
());
}
else
if
(
Objects
.
nonNull
(
bookDto
.
getTempletId
()))
{
}
else
if
(
Objects
.
nonNull
(
bookDto
.
getTempletId
()))
{
templetIds
.
add
(
bookDto
.
getTempletId
());
templetIds
.
add
(
bookDto
.
getTempletId
());
}
}
...
@@ -1068,10 +1094,10 @@ public class BookSet {
...
@@ -1068,10 +1094,10 @@ public class BookSet {
return
;
return
;
}
}
if
(
Objects
.
nonNull
(
bookDto
.
getSecondTempletId
()))
{
if
(
Objects
.
nonNull
(
bookDto
.
getSecondTempletId
()))
{
setBookDtoTempletInfo
(
assistTempletMap
,
bookDto
,
bookDto
.
getSecondTempletId
());
setBookDtoTempletInfo
(
assistTempletMap
,
bookDto
,
bookDto
.
getSecondTempletId
());
}
else
if
(
Objects
.
nonNull
(
bookDto
.
getTempletId
()))
{
}
else
if
(
Objects
.
nonNull
(
bookDto
.
getTempletId
()))
{
setBookDtoTempletInfo
(
assistTempletMap
,
bookDto
,
bookDto
.
getTempletId
());
setBookDtoTempletInfo
(
assistTempletMap
,
bookDto
,
bookDto
.
getTempletId
());
}
}
LOGGER
.
info
(
"设置模板名称【END】"
);
LOGGER
.
info
(
"设置模板名称【END】"
);
...
@@ -1306,6 +1332,36 @@ public class BookSet {
...
@@ -1306,6 +1332,36 @@ public class BookSet {
* 设置二维码相关信息
* 设置二维码相关信息
* @param recordList
* @param recordList
*/
*/
public
void
seBookGroupInfo
(
List
<
Object
>
recordList
)
{
if
(
ListUtils
.
isEmpty
(
recordList
))
{
return
;
}
for
(
Object
object
:
recordList
)
{
BookDto
bookDto
=
(
BookDto
)
object
;
if
(
null
!=
bookDto
.
getIsBookGroup
()
&&
bookDto
.
getIsBookGroup
())
{
BookGroupDTO
bookGroupDTO
=
bookGroupDao
.
getDTOByBookId
(
bookDto
.
getBookId
(),
bookDto
.
getChannelId
(),
bookDto
.
getAdviserId
());
if
(
null
!=
bookGroupDTO
)
{
bookDto
.
setBookGroupId
(
bookGroupDTO
.
getId
());
bookDto
.
setGroupQrcodeUrl
(
bookGroupDTO
.
getGroupQrcodeUrl
());
bookDto
.
setGroupQrcodeName
(
bookGroupDTO
.
getGroupQrcodeName
());
Map
<
Long
,
BookGroupStatisticDTO
>
statisMap
=
bookGroupClassifyBiz
.
getBookGroupStatistic
(
Arrays
.
asList
(
bookGroupDTO
.
getId
()));
if
(!
MapUtils
.
isEmpty
(
statisMap
)
&&
statisMap
.
containsKey
(
bookGroupDTO
.
getId
()))
{
BookGroupStatisticDTO
statisticDTO
=
statisMap
.
get
(
bookGroupDTO
.
getId
());
bookDto
.
setClassifyCount
(
null
!=
statisticDTO
.
getClassifyCount
()
?
statisticDTO
.
getClassifyCount
().
longValue
()
:
0L
);
bookDto
.
setGroupCount
(
null
!=
statisticDTO
.
getGroupNumber
()
?
statisticDTO
.
getGroupNumber
().
longValue
()
:
0L
);
}
else
{
bookDto
.
setClassifyCount
(
0L
);
bookDto
.
setGroupCount
(
0L
);
}
}
}
}
}
/**
* 设置社群书社群码相关信息
* @param recordList
*/
public
void
setQrInfo
(
List
<
Object
>
recordList
)
{
public
void
setQrInfo
(
List
<
Object
>
recordList
)
{
if
(
ListUtils
.
isEmpty
(
recordList
))
{
if
(
ListUtils
.
isEmpty
(
recordList
))
{
return
;
return
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/producer/BookMQProducer.java
View file @
a92ab2d2
...
@@ -2,7 +2,6 @@ package com.pcloud.book.mq.producer;
...
@@ -2,7 +2,6 @@ package com.pcloud.book.mq.producer;
import
com.pcloud.book.book.dto.BookCoverImgUpdateDTO
;
import
com.pcloud.book.book.dto.BookCoverImgUpdateDTO
;
import
com.pcloud.book.book.dto.BookNameUpdateDTO
;
import
com.pcloud.book.book.dto.BookNameUpdateDTO
;
import
com.pcloud.book.book.dto.BookTypeUpdateDTO
;
import
com.pcloud.book.group.dto.PushAddUserMessageDTO
;
import
com.pcloud.book.group.dto.PushAddUserMessageDTO
;
public
interface
BookMQProducer
{
public
interface
BookMQProducer
{
...
...
pcloud-service-book/src/main/resources/mapper/appeal/BookAppeal.Mapper.xml
View file @
a92ab2d2
...
@@ -23,7 +23,8 @@
...
@@ -23,7 +23,8 @@
<result
column=
"BOOK_NAME"
property=
"bookName"
jdbcType=
"VARCHAR"
/>
<result
column=
"BOOK_NAME"
property=
"bookName"
jdbcType=
"VARCHAR"
/>
<result
column=
"ISBN"
property=
"isbn"
jdbcType=
"VARCHAR"
/>
<result
column=
"ISBN"
property=
"isbn"
jdbcType=
"VARCHAR"
/>
<result
column=
"SERIAL_NUMBER"
property=
"serialNumber"
jdbcType=
"VARCHAR"
/>
<result
column=
"SERIAL_NUMBER"
property=
"serialNumber"
jdbcType=
"VARCHAR"
/>
<collection
property=
"defendants"
column=
"BOOK_APPEAL_ID"
ofType=
"bookDefendant"
<result
column=
"IS_BOOK_GROUP"
property=
"isBookGroup"
jdbcType=
"BIT"
/>
<collection
property=
"defendants"
column=
"BOOK_APPEAL_ID"
ofType=
"bookDefendant"
select=
"com.pcloud.book.appeal.dao.impl.BookDefendantDaoImpl.list"
/>
select=
"com.pcloud.book.appeal.dao.impl.BookDefendantDaoImpl.list"
/>
</resultMap>
</resultMap>
...
@@ -31,13 +32,13 @@
...
@@ -31,13 +32,13 @@
<insert
id=
"insert"
parameterType=
"bookAppeal"
useGeneratedKeys=
"true"
keyProperty=
"bookAppealId"
flushCache=
"true"
>
<insert
id=
"insert"
parameterType=
"bookAppeal"
useGeneratedKeys=
"true"
keyProperty=
"bookAppealId"
flushCache=
"true"
>
INSERT INTO `BOOK_APPEAL` (
INSERT INTO `BOOK_APPEAL` (
BOOK_ID, CHANNEL_ID, TEMPLET_ID,REASON,DECLARANT, PHONE, APPEAL_SUBMIT_DATE, APPEAL_STATE, AUDIT_REASON, AUDIT_USER,
BOOK_ID, CHANNEL_ID, TEMPLET_ID,REASON,DECLARANT, PHONE, APPEAL_SUBMIT_DATE, APPEAL_STATE, AUDIT_REASON, AUDIT_USER,
CREATED_USER,CREATED_DATE,LAST_MODIFIED_USER, LAST_MODIFIED_DATE
CREATED_USER,CREATED_DATE,LAST_MODIFIED_USER, LAST_MODIFIED_DATE
, IS_BOOK_GROUP
)
)
VALUES (
VALUES (
#{bookId, jdbcType=BIGINT}, #{channelId, jdbcType=BIGINT}, #{templetId, jdbcType=BIGINT}, #{reason, jdbcType=VARCHAR}, #{declarant, jdbcType=BIGINT},
#{bookId, jdbcType=BIGINT}, #{channelId, jdbcType=BIGINT}, #{templetId, jdbcType=BIGINT}, #{reason, jdbcType=VARCHAR}, #{declarant, jdbcType=BIGINT},
#{phone, jdbcType=VARCHAR}, #{appealSubmitDate, jdbcType=TIMESTAMP}, #{appealState, jdbcType=BIGINT}, #{auditReason, jdbcType=VARCHAR},
#{phone, jdbcType=VARCHAR}, #{appealSubmitDate, jdbcType=TIMESTAMP}, #{appealState, jdbcType=BIGINT}, #{auditReason, jdbcType=VARCHAR},
#{auditUser, jdbcType=BIGINT}, #{createdUser, jdbcType=BIGINT}, NOW(),
#{auditUser, jdbcType=BIGINT}, #{createdUser, jdbcType=BIGINT}, NOW(),
#{lastModifiedUser, jdbcType=BIGINT}, NOW()
#{lastModifiedUser, jdbcType=BIGINT}, NOW()
, #{isBookGroup, jdbcType=BIT}
)
)
</insert>
</insert>
...
@@ -82,7 +83,7 @@
...
@@ -82,7 +83,7 @@
<!-- 获取申诉详情 -->
<!-- 获取申诉详情 -->
<select
id=
"getById"
resultMap=
"bookAppealMap"
parameterType=
"long"
>
<select
id=
"getById"
resultMap=
"bookAppealMap"
parameterType=
"long"
>
SELECT
SELECT
BOOK_APPEAL_ID, PHONE,CHANNEL_ID, DECLARANT,REASON,BOOK_ID,VERSION,APPEAL_STATE,AUDIT_REASON,TEMPLET_ID,CREATED_USER
BOOK_APPEAL_ID, PHONE,CHANNEL_ID, DECLARANT,REASON,BOOK_ID,VERSION,APPEAL_STATE,AUDIT_REASON,TEMPLET_ID,CREATED_USER
,IS_BOOK_GROUP
FROM
FROM
BOOK_APPEAL A
BOOK_APPEAL A
WHERE
WHERE
...
...
pcloud-service-book/src/main/resources/mapper/book/Book.Mapper.xml
View file @
a92ab2d2
...
@@ -448,14 +448,15 @@
...
@@ -448,14 +448,15 @@
SELECT
SELECT
A.BOOK_ID, A.CHANNEL_ID, A.ADVISER_ID, A.IS_MAIN_EDITOR, T.TYPE_CODE, T.TYPE_NAME, B.ISBN, B.BOOK_NAME, B.REMARK,
A.BOOK_ID, A.CHANNEL_ID, A.ADVISER_ID, A.IS_MAIN_EDITOR, T.TYPE_CODE, T.TYPE_NAME, B.ISBN, B.BOOK_NAME, B.REMARK,
B.AUTHOR, B.PUBLISH, B.PUBLISH_DATE, B.COVER_IMG, B.ORIGIN_NAME, B.BOOK_PRICE, B.ISSN, B.BOOK_NUM, B.SERIAL_NUMBER,
B.AUTHOR, B.PUBLISH, B.PUBLISH_DATE, B.COVER_IMG, B.ORIGIN_NAME, B.BOOK_PRICE, B.ISSN, B.BOOK_NUM, B.SERIAL_NUMBER,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID,
A.LAST_MODIFIED_DATE, A.BOOK_ADVISER_ID,I.BOOK_STATUS
,
IF(ISNULL(BF.BOOK_FUND_ID),0,1) IS_FUND_SUPPORT,A.TEMPLET_ID,
if(G.ID IS NULL, A.LAST_MODIFIED_DATE, G.UPDATE_TIME) LAST_MODIFIED_DATE
,
CONCAT('BK',A.BOOK_ID) uniqueNumber
A.BOOK_ADVISER_ID,I.BOOK_STATUS, CONCAT('BK',A.BOOK_ID) uniqueNumber, if(G.ID IS NULL, 0, 1) isBookGroup
FROM
FROM
BOOK_ADVISER A
BOOK_ADVISER A
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
LEFT JOIN BOOK_TYPE T ON B.TYPE_CODE = T.TYPE_CODE
LEFT JOIN BOOK_TYPE T ON B.TYPE_CODE = T.TYPE_CODE
LEFT JOIN BOOK_FUND BF ON BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME
<![CDATA[ > ]]>
NOW() AND BF.START_TIME
<![CDATA[ < ]]>
NOW()
LEFT JOIN BOOK_FUND BF ON BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME
<![CDATA[ > ]]>
NOW() AND BF.START_TIME
<![CDATA[ < ]]>
NOW()
LEFT JOIN book_auth_info I ON I.BOOK_ID = A.BOOK_ID AND I.ADVISER_ID = #{adviserId}
LEFT JOIN book_auth_info I ON I.BOOK_ID = A.BOOK_ID AND I.ADVISER_ID = #{adviserId}
LEFT JOIN book_group G on G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID AND G.IS_DELETE = 0
WHERE
WHERE
1=1
1=1
<if
test=
"bookId!=null"
>
<if
test=
"bookId!=null"
>
...
@@ -511,7 +512,7 @@
...
@@ -511,7 +512,7 @@
</if>
</if>
GROUP BY A.BOOK_ID, A.CHANNEL_ID
GROUP BY A.BOOK_ID, A.CHANNEL_ID
ORDER BY
ORDER BY
A.
LAST_MODIFIED_DATE DESC
LAST_MODIFIED_DATE DESC
<if
test=
"num != null"
>
<if
test=
"num != null"
>
LIMIT ${num}
LIMIT ${num}
</if>
</if>
...
@@ -526,7 +527,7 @@
...
@@ -526,7 +527,7 @@
FROM
FROM
BOOK_ADVISER A
BOOK_ADVISER A
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND B.IS_DELETE = 0
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND B.IS_DELETE = 0
LEFT JOIN book_group G on G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
LEFT JOIN book_group G on G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
AND G.IS_DELETE = 0
WHERE
WHERE
A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND G.ID IS NULL
A.ADVISER_ID = #{adviserId} AND A.IS_DELETE = 0 AND G.ID IS NULL
<if
test=
"name != null"
>
<if
test=
"name != null"
>
...
@@ -548,7 +549,7 @@
...
@@ -548,7 +549,7 @@
G.group_qrcode_name groupQrcodeName
G.group_qrcode_name groupQrcodeName
FROM
FROM
BOOK_ADVISER A
BOOK_ADVISER A
INNER JOIN book_group G on G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
INNER JOIN book_group G on G.BOOK_ID = A.BOOK_ID AND G.CHANNEL_ID = A.CHANNEL_ID AND G.CREATE_USER = A.ADVISER_ID
AND G.IS_DELETE = 0
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND B.IS_DELETE = 0
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID AND B.IS_DELETE = 0
LEFT JOIN BOOK_TYPE T ON B.TYPE_CODE = T.TYPE_CODE
LEFT JOIN BOOK_TYPE T ON B.TYPE_CODE = T.TYPE_CODE
LEFT JOIN BOOK_FUND BF ON BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME
<![CDATA[ > ]]>
NOW() AND BF.START_TIME
<![CDATA[ < ]]>
NOW()
LEFT JOIN BOOK_FUND BF ON BF.BOOK_ID = A.BOOK_ID AND BF.END_TIME
<![CDATA[ > ]]>
NOW() AND BF.START_TIME
<![CDATA[ < ]]>
NOW()
...
@@ -586,11 +587,45 @@
...
@@ -586,11 +587,45 @@
AND
AND
BF.BOOK_FUND_ID IS NOT NULL
BF.BOOK_FUND_ID IS NOT NULL
</if>
</if>
<if
test=
"startDate != null and endDate != null"
>
AND G.create_time BETWEEN #{startDate} AND #{endDate}
</if>
GROUP BY A.BOOK_ID, A.CHANNEL_ID
GROUP BY A.BOOK_ID, A.CHANNEL_ID
ORDER BY
ORDER BY
G.UPDATE_TIME DESC
G.UPDATE_TIME DESC
</select>
</select>
<!-- 获取社群书列表(编辑) -->
<select
id=
"listSimpleBookGroup4Adviser"
resultMap=
"bookMap"
parameterType=
"map"
>
SELECT
A.BOOK_ID,
A.CHANNEL_ID,
A.ADVISER_ID,
B.ISBN,
B.BOOK_NAME,
CONCAT('BK', A.BOOK_ID) uniqueNumber
FROM
BOOK_ADVISER A
INNER JOIN book_group G ON G.BOOK_ID = A.BOOK_ID
AND G.CHANNEL_ID = A.CHANNEL_ID
AND G.CREATE_USER = A.ADVISER_ID
AND G.IS_DELETE = 0
INNER JOIN BOOK B ON A.BOOK_ID = B.BOOK_ID
AND B.IS_DELETE = 0
WHERE
A.ADVISER_ID = #{adviserId}
AND A.IS_DELETE = 0
<if
test=
"name != null"
>
AND
(B.BOOK_NAME LIKE CONCAT('%', #{name}, '%') OR G.group_qrcode_name LIKE CONCAT('%', #{name}, '%') OR B.ISBN LIKE CONCAT(#{name},'%') OR CONCAT('BK',A.BOOK_ID) = #{name})
</if>
GROUP BY
A.BOOK_ID,
A.CHANNEL_ID
ORDER BY
G.UPDATE_TIME DESC
</select>
<!-- 获取书籍列表(编辑) -->
<!-- 获取书籍列表(编辑) -->
<select
id=
"listBook4Adviser"
resultMap=
"bookMap"
parameterType=
"map"
>
<select
id=
"listBook4Adviser"
resultMap=
"bookMap"
parameterType=
"map"
>
SELECT
SELECT
...
...
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