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
228b3d96
Commit
228b3d96
authored
Dec 02, 2019
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
个人号群发
parent
16096287
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
1337 additions
and
2 deletions
+1337
-2
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+37
-1
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+9
-0
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+31
-1
BookGroupCipherUserDao.java
...ava/com/pcloud/book/group/dao/BookGroupCipherUserDao.java
+17
-0
BookGroupCipherUserDaoImpl.java
...cloud/book/group/dao/impl/BookGroupCipherUserDaoImpl.java
+15
-0
UserSelectParamDTO.java
...in/java/com/pcloud/book/group/dto/UserSelectParamDTO.java
+46
-0
BookGroupFacade.java
...in/java/com/pcloud/book/group/facade/BookGroupFacade.java
+6
-0
BookGroupFacadeImpl.java
...om/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
+18
-0
GroupSet.java
...ook/src/main/java/com/pcloud/book/group/set/GroupSet.java
+50
-0
UserBookInfoItemVO.java
...ain/java/com/pcloud/book/group/vo/UserBookInfoItemVO.java
+40
-0
UserBookInfoVO.java
...rc/main/java/com/pcloud/book/group/vo/UserBookInfoVO.java
+46
-0
SelfPushBiz.java
...k/src/main/java/com/pcloud/book/push/biz/SelfPushBiz.java
+38
-0
SelfPushBizImpl.java
...n/java/com/pcloud/book/push/biz/impl/SelfPushBizImpl.java
+200
-0
PushCheck.java
...k/src/main/java/com/pcloud/book/push/check/PushCheck.java
+48
-0
SelfPushDao.java
...k/src/main/java/com/pcloud/book/push/dao/SelfPushDao.java
+13
-0
SelfPushItemDao.java
...c/main/java/com/pcloud/book/push/dao/SelfPushItemDao.java
+20
-0
SelfPushUserDao.java
...c/main/java/com/pcloud/book/push/dao/SelfPushUserDao.java
+20
-0
SelfPushDaoImpl.java
...n/java/com/pcloud/book/push/dao/impl/SelfPushDaoImpl.java
+17
-0
SelfPushItemDaoImpl.java
...va/com/pcloud/book/push/dao/impl/SelfPushItemDaoImpl.java
+28
-0
SelfPushUserDaoImpl.java
...va/com/pcloud/book/push/dao/impl/SelfPushUserDaoImpl.java
+22
-0
SelfPushAddParamDTO.java
...in/java/com/pcloud/book/push/dto/SelfPushAddParamDTO.java
+33
-0
SelfPushRecordDTO.java
...main/java/com/pcloud/book/push/dto/SelfPushRecordDTO.java
+75
-0
SelfPush.java
...k/src/main/java/com/pcloud/book/push/entity/SelfPush.java
+35
-0
SelfPushItem.java
...c/main/java/com/pcloud/book/push/entity/SelfPushItem.java
+71
-0
SelfPushUser.java
...c/main/java/com/pcloud/book/push/entity/SelfPushUser.java
+30
-0
SelfPushFacade.java
...main/java/com/pcloud/book/push/facade/SelfPushFacade.java
+90
-0
BookGroupCipherUser.xml
...k/src/main/resources/mapper/group/BookGroupCipherUser.xml
+58
-0
SelfPushItemMapper.xml
...ook/src/main/resources/mapper/push/SelfPushItemMapper.xml
+133
-0
SelfPushMapper.xml
...ce-book/src/main/resources/mapper/push/SelfPushMapper.xml
+29
-0
SelfPushUserMapper.xml
...ook/src/main/resources/mapper/push/SelfPushUserMapper.xml
+62
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
228b3d96
...
@@ -32,8 +32,8 @@ import org.springframework.stereotype.Component;
...
@@ -32,8 +32,8 @@ import org.springframework.stereotype.Component;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
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
;
...
@@ -558,4 +558,40 @@ public class WechatGroupConsr {
...
@@ -558,4 +558,40 @@ public class WechatGroupConsr {
return
list
;
return
list
;
}
}
@ParamLog
(
"根据用户id或昵称模糊查询"
)
public
List
<
String
>
getByUserQuery
(
String
userQuery
)
{
List
<
String
>
list
=
new
ArrayList
<>();
try
{
list
=
ResponseHandleUtil
.
parseListResponse
(
groupMemberService
.
getByUserQuery
(
userQuery
),
String
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"根据用户id或昵称模糊查询.[getByUserQuery]失败"
+
e
.
getMessage
(),
e
);
}
return
list
;
}
@ParamLog
(
"批量获取用户信息"
)
public
Map
<
String
,
GroupUserDTO
>
mapWxUserInfoByWxIdList
(
List
<
String
>
wxUserIds
)
{
Map
<
String
,
GroupUserDTO
>
map
=
new
HashMap
<>();
try
{
map
=
ResponseHandleUtil
.
parseMapResponse
(
groupMemberService
.
mapWxUserInfoByWxIdList
(
wxUserIds
),
String
.
class
,
GroupUserDTO
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"批量获取用户信息.[mapWxUserInfoByWxIdList]失败"
+
e
.
getMessage
(),
e
);
}
return
map
;
}
@ParamLog
(
"批量获取小号信息"
)
public
Map
<
String
,
GroupUserDTO
>
mapRobotInfoByIdList
(
List
<
String
>
wxIdList
){
Map
<
String
,
GroupUserDTO
>
map
=
new
HashMap
<>();
try
{
map
=
ResponseHandleUtil
.
parseMapResponse
(
groupMemberService
.
mapRobotInfoByIdList
(
wxIdList
),
String
.
class
,
GroupUserDTO
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"批量获取小号信息.[]失败"
+
e
.
getMessage
(),
e
);
}
return
map
;
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
View file @
228b3d96
...
@@ -23,6 +23,7 @@ import com.pcloud.book.group.dto.SelfBookGroupStParamDTO;
...
@@ -23,6 +23,7 @@ import com.pcloud.book.group.dto.SelfBookGroupStParamDTO;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.dto.SelfRobtParamDTO
;
import
com.pcloud.book.group.dto.SelfRobtParamDTO
;
import
com.pcloud.book.group.dto.TopAgentBookGroupDTO
;
import
com.pcloud.book.group.dto.TopAgentBookGroupDTO
;
import
com.pcloud.book.group.dto.UserSelectParamDTO
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroupServe
;
import
com.pcloud.book.group.entity.BookGroupServe
;
import
com.pcloud.book.group.dto.AgentStatisticsInfoDTO
;
import
com.pcloud.book.group.dto.AgentStatisticsInfoDTO
;
...
@@ -37,6 +38,7 @@ import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
...
@@ -37,6 +38,7 @@ import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.book.group.vo.TotalRescourceDataVO
;
import
com.pcloud.book.group.vo.TotalRescourceDataVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.group.vo.WxGroupStatisticVO
;
import
com.pcloud.book.group.vo.WxGroupStatisticVO
;
import
com.pcloud.common.dto.StoreFlowInfoDto
;
import
com.pcloud.common.dto.StoreFlowInfoDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
...
@@ -616,4 +618,11 @@ public interface BookGroupBiz {
...
@@ -616,4 +618,11 @@ public interface BookGroupBiz {
* 出版社关联的个人号以及个人号的社群书数量
* 出版社关联的个人号以及个人号的社群书数量
*/
*/
List
<
AltAndCountDTO
>
getAltAndCountDTOListByAgentId
(
Long
agentId
);
List
<
AltAndCountDTO
>
getAltAndCountDTOListByAgentId
(
Long
agentId
);
/**
* 个人号群发用户查询
* @param userSelectParamDTO
* @return
*/
PageBeanNew
<
UserBookInfoVO
>
listUser4SelfPush
(
UserSelectParamDTO
userSelectParamDTO
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
228b3d96
...
@@ -75,6 +75,7 @@ import com.pcloud.book.group.dto.SelfBookGroupStParamDTO;
...
@@ -75,6 +75,7 @@ import com.pcloud.book.group.dto.SelfBookGroupStParamDTO;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.dto.SelfRobtParamDTO
;
import
com.pcloud.book.group.dto.SelfRobtParamDTO
;
import
com.pcloud.book.group.dto.StatisticsIncomeDto
;
import
com.pcloud.book.group.dto.StatisticsIncomeDto
;
import
com.pcloud.book.group.dto.UserSelectParamDTO
;
import
com.pcloud.book.group.dto.TopAgentBookGroupDTO
;
import
com.pcloud.book.group.dto.TopAgentBookGroupDTO
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroupAgentRecord
;
import
com.pcloud.book.group.entity.BookGroupAgentRecord
;
...
@@ -105,6 +106,7 @@ import com.pcloud.book.group.vo.ResourceClickVO;
...
@@ -105,6 +106,7 @@ import com.pcloud.book.group.vo.ResourceClickVO;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.book.group.vo.StatisticVO
;
import
com.pcloud.book.group.vo.TotalRescourceDataVO
;
import
com.pcloud.book.group.vo.TotalRescourceDataVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.group.vo.WxGroupStatisticVO
;
import
com.pcloud.book.group.vo.WxGroupStatisticVO
;
import
com.pcloud.book.keywords.biz.BookKeywordBiz
;
import
com.pcloud.book.keywords.biz.BookKeywordBiz
;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
...
@@ -307,7 +309,6 @@ public class BookGroupBizImpl implements BookGroupBiz {
...
@@ -307,7 +309,6 @@ public class BookGroupBizImpl implements BookGroupBiz {
0
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(),
0
,
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(),
new
BasicThreadFactory
.
Builder
().
namingPattern
(
"platform_statistics_export_thread-%d"
).
build
());
new
BasicThreadFactory
.
Builder
().
namingPattern
(
"platform_statistics_export_thread-%d"
).
build
());
@Override
@Override
public
BookGroupDTO
getDTOByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
public
BookGroupDTO
getDTOByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
)
{
return
bookGroupDao
.
getDTOByBookId
(
bookId
,
channelId
,
adviserId
);
return
bookGroupDao
.
getDTOByBookId
(
bookId
,
channelId
,
adviserId
);
...
@@ -3569,4 +3570,33 @@ public class BookGroupBizImpl implements BookGroupBiz {
...
@@ -3569,4 +3570,33 @@ public class BookGroupBizImpl implements BookGroupBiz {
}
}
}
}
@Override
public
PageBeanNew
<
UserBookInfoVO
>
listUser4SelfPush
(
UserSelectParamDTO
userSelectParamDTO
)
{
Integer
currentPage
=
userSelectParamDTO
.
getCurrentPage
();
Integer
numPerPage
=
userSelectParamDTO
.
getNumPerPage
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
//用户昵称id模糊查询
if
(!
StringUtil
.
isEmpty
(
userSelectParamDTO
.
getUserQuery
()))
{
List
<
String
>
wxUserIds
=
wechatGroupConsr
.
getByUserQuery
(
userSelectParamDTO
.
getUserQuery
());
if
(!
ListUtils
.
isEmpty
(
wxUserIds
))
{
map
.
put
(
"wxUserIds"
,
wxUserIds
);
}
else
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
}
}
map
.
put
(
"depLabelId"
,
userSelectParamDTO
.
getDepLabelId
());
map
.
put
(
"proLabelId"
,
userSelectParamDTO
.
getProLabelId
());
map
.
put
(
"altId"
,
userSelectParamDTO
.
getRobotId
());
map
.
put
(
"bookIds"
,
userSelectParamDTO
.
getBookIds
());
List
<
UserBookInfoVO
>
countlist
=
bookGroupCipherUserDao
.
listUser4SelfPush
(
map
);
if
(
ListUtils
.
isEmpty
(
countlist
))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
}
map
.
put
(
"pageNum"
,
currentPage
*
numPerPage
);
map
.
put
(
"numPerPage"
,
numPerPage
);
List
<
UserBookInfoVO
>
list
=
bookGroupCipherUserDao
.
listUser4SelfPush
(
map
);
//填充个人号群发用户信息、扫码书刊信息
groupSet
.
setUserBookInfo4SelfPush
(
list
);
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
countlist
.
size
(),
list
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/BookGroupCipherUserDao.java
View file @
228b3d96
...
@@ -8,6 +8,8 @@ import com.pcloud.book.group.dto.DayCountDTO;
...
@@ -8,6 +8,8 @@ import com.pcloud.book.group.dto.DayCountDTO;
import
com.pcloud.book.group.dto.LabelUserCountDTO
;
import
com.pcloud.book.group.dto.LabelUserCountDTO
;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.entity.BookGroupCipherUser
;
import
com.pcloud.book.group.entity.BookGroupCipherUser
;
import
com.pcloud.book.group.vo.UserBookInfoItemVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.common.core.dao.BaseDao
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
import
java.util.List
;
...
@@ -115,4 +117,19 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> {
...
@@ -115,4 +117,19 @@ public interface BookGroupCipherUserDao extends BaseDao<BookGroupCipherUser> {
* 根据出版社id获取小号id集合
* 根据出版社id获取小号id集合
*/
*/
List
<
String
>
getAltIdsByAgentId
(
Long
agentId
);
List
<
String
>
getAltIdsByAgentId
(
Long
agentId
);
/**
* 用户扫码的社群书信息
* @param wxUserId
* @param altId
* @return
*/
List
<
UserBookInfoItemVO
>
getScanBookInfoByUser
(
String
wxUserId
,
String
altId
);
/**
* 个人号推送好友查询
* @param map
* @return
*/
public
List
<
UserBookInfoVO
>
listUser4SelfPush
(
Map
<
String
,
Object
>
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/BookGroupCipherUserDaoImpl.java
View file @
228b3d96
...
@@ -9,6 +9,8 @@ import com.pcloud.book.group.dto.DayCountDTO;
...
@@ -9,6 +9,8 @@ import com.pcloud.book.group.dto.DayCountDTO;
import
com.pcloud.book.group.dto.LabelUserCountDTO
;
import
com.pcloud.book.group.dto.LabelUserCountDTO
;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.dto.SelfRobotUserDTO
;
import
com.pcloud.book.group.entity.BookGroupCipherUser
;
import
com.pcloud.book.group.entity.BookGroupCipherUser
;
import
com.pcloud.book.group.vo.UserBookInfoItemVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -135,4 +137,17 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser>
...
@@ -135,4 +137,17 @@ public class BookGroupCipherUserDaoImpl extends BaseDaoImpl<BookGroupCipherUser>
public
List
<
String
>
getAltIdsByAgentId
(
Long
agentId
)
{
public
List
<
String
>
getAltIdsByAgentId
(
Long
agentId
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getAltIdsByAgentId"
),
agentId
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"getAltIdsByAgentId"
),
agentId
);
}
}
@Override
public
List
<
UserBookInfoItemVO
>
getScanBookInfoByUser
(
String
wxUserId
,
String
altId
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxUserId"
,
wxUserId
);
map
.
put
(
"altId"
,
altId
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"getScanBookInfoByUser"
),
map
);
}
@Override
public
List
<
UserBookInfoVO
>
listUser4SelfPush
(
Map
<
String
,
Object
>
map
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"listUser4SelfPush"
),
map
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dto/UserSelectParamDTO.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
group
.
dto
;
import
java.util.List
;
import
lombok.Data
;
/**
* @描述:用户筛选入参
* @作者:zhuyajie
* @创建时间:14:51 2019/11/26
* @版本:1.0
*/
@Data
public
class
UserSelectParamDTO
{
/**
*当前页
*/
private
Integer
currentPage
;
/**
*每页数量
*/
private
Integer
numPerPage
;
/**
*小号id
*/
private
String
robotId
;
/**
*用户昵称或微信id查询
*/
private
String
userQuery
;
/**
*图书id
*/
private
List
<
Long
>
bookIds
;
/**
* 专业标签id
*/
private
Long
proLabelId
;
/**
* 深度标签id
*/
private
Long
depLabelId
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/BookGroupFacade.java
View file @
228b3d96
package
com
.
pcloud
.
book
.
group
.
facade
;
package
com
.
pcloud
.
book
.
group
.
facade
;
import
com.pcloud.book.group.dto.SelfBookGroupStParamDTO
;
import
com.pcloud.book.group.dto.SelfBookGroupStParamDTO
;
import
com.pcloud.book.group.dto.UserSelectParamDTO
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.entity.BookGroupServe
;
import
com.pcloud.book.group.entity.BookGroupServe
;
...
@@ -13,6 +14,7 @@ import com.pcloud.book.group.vo.GroupScanTrendVO;
...
@@ -13,6 +14,7 @@ import com.pcloud.book.group.vo.GroupScanTrendVO;
import
com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO
;
import
com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.UpdateRankTypeVO
;
import
com.pcloud.book.group.vo.UpdateRankTypeVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBean
;
import
com.pcloud.common.page.PageBean
;
...
@@ -571,4 +573,8 @@ public interface BookGroupFacade {
...
@@ -571,4 +573,8 @@ public interface BookGroupFacade {
@RequestBody
SelfBookGroupStParamDTO
selfBookGroupStParamDTO
@RequestBody
SelfBookGroupStParamDTO
selfBookGroupStParamDTO
)
throws
PermissionException
;
)
throws
PermissionException
;
@ApiOperation
(
value
=
"个人号群发-用户列表查询"
,
httpMethod
=
"POST"
)
@PostMapping
(
"listUser4SelfPush"
)
public
ResponseDto
<
PageBeanNew
<
UserBookInfoVO
>>
listUser4SelfPush
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
UserSelectParamDTO
userSelectParamDTO
)
throws
PermissionException
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/impl/BookGroupFacadeImpl.java
View file @
228b3d96
...
@@ -5,6 +5,7 @@ import com.pcloud.book.group.biz.BookGroupBiz;
...
@@ -5,6 +5,7 @@ import com.pcloud.book.group.biz.BookGroupBiz;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.dto.GroupStoreMyPayDto
;
import
com.pcloud.book.group.dto.GroupStoreMyPayDto
;
import
com.pcloud.book.group.dto.SelfBookGroupStParamDTO
;
import
com.pcloud.book.group.dto.SelfBookGroupStParamDTO
;
import
com.pcloud.book.group.dto.UserSelectParamDTO
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroup
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.entity.BookGroupClassify
;
import
com.pcloud.book.group.entity.BookGroupServe
;
import
com.pcloud.book.group.entity.BookGroupServe
;
...
@@ -20,6 +21,7 @@ import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
...
@@ -20,6 +21,7 @@ import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.ResourcesStatisticVO
;
import
com.pcloud.book.group.vo.TotalRescourceDataVO
;
import
com.pcloud.book.group.vo.TotalRescourceDataVO
;
import
com.pcloud.book.group.vo.UpdateRankTypeVO
;
import
com.pcloud.book.group.vo.UpdateRankTypeVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.group.vo.WxGroupStatisticVO
;
import
com.pcloud.book.group.vo.WxGroupStatisticVO
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.core.constant.SystemCode
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
...
@@ -31,6 +33,7 @@ import com.pcloud.common.permission.PermissionException;
...
@@ -31,6 +33,7 @@ import com.pcloud.common.permission.PermissionException;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.base.exception.WechatGroupBizException
;
import
com.pcloud.wechatgroup.message.enums.IsSystem
;
import
com.pcloud.wechatgroup.message.enums.IsSystem
;
import
org.codehaus.jackson.JsonParseException
;
import
org.codehaus.jackson.JsonParseException
;
...
@@ -883,4 +886,19 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
...
@@ -883,4 +886,19 @@ public class BookGroupFacadeImpl implements BookGroupFacade {
}
}
@ApiOperation
(
value
=
"个人号群发-用户列表查询"
,
httpMethod
=
"POST"
)
@PostMapping
(
"listUser4SelfPush"
)
@Override
public
ResponseDto
<
PageBeanNew
<
UserBookInfoVO
>>
listUser4SelfPush
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
UserSelectParamDTO
userSelectParamDTO
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
null
==
userSelectParamDTO
||
null
==
userSelectParamDTO
.
getCurrentPage
()
||
null
==
userSelectParamDTO
.
getNumPerPage
())
{
throw
new
WechatGroupBizException
(
WechatGroupBizException
.
PARAM_IS_NULL
,
"缺少参数"
);
}
if
(
StringUtil
.
isEmpty
(
userSelectParamDTO
.
getRobotId
())){
throw
new
WechatGroupBizException
(
WechatGroupBizException
.
PARAM_IS_NULL
,
"请选择个人号"
);
}
PageBeanNew
<
UserBookInfoVO
>
pageBeanNew
=
bookGroupBiz
.
listUser4SelfPush
(
userSelectParamDTO
);
return
new
ResponseDto
<>(
pageBeanNew
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/set/GroupSet.java
View file @
228b3d96
...
@@ -5,6 +5,7 @@ import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
...
@@ -5,6 +5,7 @@ import com.pcloud.appcenter.assist.dto.AssistTempletDTO;
import
com.pcloud.book.consumer.analysisengine.BrowseRecordConsr
;
import
com.pcloud.book.consumer.analysisengine.BrowseRecordConsr
;
import
com.pcloud.book.consumer.app.AssistTempletConsr
;
import
com.pcloud.book.consumer.app.AssistTempletConsr
;
import
com.pcloud.book.consumer.common.ExportConsr
;
import
com.pcloud.book.consumer.common.ExportConsr
;
import
com.pcloud.book.consumer.label.LabelConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.consumer.user.AgentConsr
;
import
com.pcloud.book.consumer.user.AgentConsr
;
...
@@ -18,6 +19,8 @@ import com.pcloud.book.group.dto.BookGroupStatisticDTO;
...
@@ -18,6 +19,8 @@ import com.pcloud.book.group.dto.BookGroupStatisticDTO;
import
com.pcloud.book.group.dto.CountAndTimeDTO
;
import
com.pcloud.book.group.dto.CountAndTimeDTO
;
import
com.pcloud.book.group.dto.GroupTopicDTO
;
import
com.pcloud.book.group.dto.GroupTopicDTO
;
import
com.pcloud.book.group.vo.BookGroupAnalysisVO
;
import
com.pcloud.book.group.vo.BookGroupAnalysisVO
;
import
com.pcloud.book.group.vo.UserBookInfoItemVO
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.dao.BookKeywordDao
;
import
com.pcloud.book.keywords.dto.KeywordResourceDTO
;
import
com.pcloud.book.keywords.dto.KeywordResourceDTO
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
...
@@ -28,6 +31,7 @@ import com.pcloud.common.utils.string.StringUtil;
...
@@ -28,6 +31,7 @@ import com.pcloud.common.utils.string.StringUtil;
import
com.pcloud.facade.tradecenter.dto.ProductSaleDetailDto
;
import
com.pcloud.facade.tradecenter.dto.ProductSaleDetailDto
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserCountDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
org.apache.commons.collections.MapUtils
;
import
org.apache.commons.collections.MapUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -84,6 +88,8 @@ public class GroupSet {
...
@@ -84,6 +88,8 @@ public class GroupSet {
private
AgentConsr
agentConsr
;
private
AgentConsr
agentConsr
;
@Autowired
@Autowired
private
BookGroupDao
bookGroupDao
;
private
BookGroupDao
bookGroupDao
;
@Autowired
private
LabelConsr
labelConsr
;
/**
/**
* 群分类删除topic
* 群分类删除topic
...
@@ -401,4 +407,48 @@ public class GroupSet {
...
@@ -401,4 +407,48 @@ public class GroupSet {
}
}
}
}
/**
* 填充个人号群发用户信息、扫码书刊信息
* @param list
*/
public
void
setUserBookInfo4SelfPush
(
List
<
UserBookInfoVO
>
list
)
{
List
<
String
>
wxUserIds
=
list
.
stream
().
filter
(
s
->
s
.
getWxUserId
()
!=
null
).
map
(
UserBookInfoVO:
:
getWxUserId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
String
,
GroupUserDTO
>
userDTOMap
=
wechatGroupConsr
.
mapWxUserInfoByWxIdList
(
wxUserIds
);
List
<
Long
>
labelIds
=
new
ArrayList
<>();
for
(
UserBookInfoVO
userBookInfoVO
:
list
)
{
//用户信息
if
(!
MapUtils
.
isEmpty
(
userDTOMap
)
&&
userDTOMap
.
containsKey
(
userBookInfoVO
.
getWxUserId
()))
{
GroupUserDTO
userDTO
=
userDTOMap
.
get
(
userBookInfoVO
.
getWxUserId
());
userBookInfoVO
.
setHeadPic
(
userDTO
.
getHeadPic
());
userBookInfoVO
.
setNickName
(
userDTO
.
getNickName
());
userBookInfoVO
.
setSex
(
userDTO
.
getSex
());
}
//扫码书刊
List
<
UserBookInfoItemVO
>
bookList
=
bookGroupCipherUserDao
.
getScanBookInfoByUser
(
userBookInfoVO
.
getWxUserId
(),
userBookInfoVO
.
getAltId
());
userBookInfoVO
.
setBookInfoItemVOS
(
bookList
);
List
<
Long
>
bookProLabelIds
=
bookList
.
stream
().
filter
(
s
->
s
.
getProLabelId
()
!=
null
).
map
(
UserBookInfoItemVO:
:
getProLabelId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
Long
>
bookDepLabelIds
=
bookList
.
stream
().
filter
(
s
->
s
.
getDepLabelId
()
!=
null
).
map
(
UserBookInfoItemVO:
:
getDepLabelId
).
distinct
().
collect
(
Collectors
.
toList
());
if
(!
ListUtils
.
isEmpty
(
bookProLabelIds
))
{
labelIds
.
addAll
(
bookProLabelIds
);
}
if
(!
ListUtils
.
isEmpty
(
bookDepLabelIds
))
{
labelIds
.
addAll
(
bookDepLabelIds
);
}
}
//标签
Map
<
Long
,
String
>
bookLabelMap
=
labelConsr
.
getLabelName
(
labelIds
);
if
(!
MapUtils
.
isEmpty
(
bookLabelMap
))
{
list
.
forEach
(
userBookInfoVO
->
{
for
(
UserBookInfoItemVO
bookInfoItemVO
:
userBookInfoVO
.
getBookInfoItemVOS
())
{
if
(
null
!=
bookInfoItemVO
.
getProLabelId
()
&&
bookLabelMap
.
containsKey
(
bookInfoItemVO
.
getProLabelId
()))
{
bookInfoItemVO
.
setProLabelName
(
bookLabelMap
.
get
(
bookInfoItemVO
.
getProLabelId
()));
}
if
(
null
!=
bookInfoItemVO
.
getDepLabelId
()
&&
bookLabelMap
.
containsKey
(
bookInfoItemVO
.
getDepLabelId
()))
{
bookInfoItemVO
.
setDepLabelName
(
bookLabelMap
.
get
(
bookInfoItemVO
.
getDepLabelId
()));
}
}
});
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/UserBookInfoItemVO.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.pcloud.common.dto.BaseDto
;
import
lombok.Data
;
/**
* @描述:书刊信息
* @作者:zhuyajie
* @创建时间:16:51 2019/11/26
* @版本:1.0
*/
@Data
public
class
UserBookInfoItemVO
extends
BaseDto
{
/**
* 书名
*/
private
String
bookName
;
/**
* 社群书id
*/
private
Long
bookGroupId
;
/**
* 专业标签id
*/
private
Long
proLabelId
;
/**
* 专业标签名
*/
private
String
proLabelName
;
/**
* 深度标签id
*/
private
Long
depLabelId
;
/**
* 深度标签名称
*/
private
String
depLabelName
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/UserBookInfoVO.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
group
.
vo
;
import
com.pcloud.common.dto.BaseDto
;
import
java.util.List
;
import
lombok.Data
;
/**
* @描述:个人号群发好友筛选信息
* @作者:zhuyajie
* @创建时间:15:09 2019/11/26
* @版本:1.0
*/
@Data
public
class
UserBookInfoVO
extends
BaseDto
{
/**
* 微信用户ID
*/
private
String
wxUserId
;
/**
* 昵称
*/
private
String
nickName
;
/**
* 头像
*/
private
String
headPic
;
/**
* 性别
*/
private
Integer
sex
;
/**
* 小号id
*/
private
String
altId
;
/**
/**
* 扫码书刊信息
*/
private
List
<
UserBookInfoItemVO
>
bookInfoItemVOS
;
}
pcloud-service-book/src/main/java/com/pcloud/book/push/biz/SelfPushBiz.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
biz
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.push.dto.SelfPushAddParamDTO
;
import
com.pcloud.book.push.dto.SelfPushRecordDTO
;
import
com.pcloud.common.page.PageBeanNew
;
/**
* @描述:个人号群发
* @作者:zhuyajie
* @创建时间:11:00 2019/11/27
* @版本:1.0
*/
public
interface
SelfPushBiz
{
/**
* 创建群发
* @param partyId
* @param addParamDTO
*/
void
createSelfPush
(
Long
partyId
,
SelfPushAddParamDTO
addParamDTO
);
/**
* 群发记录用户列表
* @param pushId
* @return
*/
PageBeanNew
<
UserBookInfoVO
>
listSelfPushUser
(
Long
pushId
,
Integer
currentPage
,
Integer
numPerPage
);
/**
* 个人号群发记录列表
* @param currentPage
* @param numPerPage
* @param startTime
* @param endTime
* @return
*/
PageBeanNew
<
SelfPushRecordDTO
>
listSelfPushRecord
(
Integer
currentPage
,
Integer
numPerPage
,
String
startTime
,
String
endTime
,
Integer
status
);
}
pcloud-service-book/src/main/java/com/pcloud/book/push/biz/impl/SelfPushBizImpl.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
biz
.
impl
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.dao.WeixinQrcodeGenerationDao
;
import
com.pcloud.book.group.entity.WeixinQrcodeGeneration
;
import
com.pcloud.book.group.set.GroupSet
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.push.biz.SelfPushBiz
;
import
com.pcloud.book.push.dao.SelfPushDao
;
import
com.pcloud.book.push.dao.SelfPushItemDao
;
import
com.pcloud.book.push.dao.SelfPushUserDao
;
import
com.pcloud.book.push.dto.SelfPushAddParamDTO
;
import
com.pcloud.book.push.dto.SelfPushRecordDTO
;
import
com.pcloud.book.push.entity.SelfPush
;
import
com.pcloud.book.push.entity.SelfPushItem
;
import
com.pcloud.book.push.entity.SelfPushUser
;
import
com.pcloud.book.push.enums.ItemTypeEnum
;
import
com.pcloud.book.push.enums.PushStatusEnum
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
com.sdk.wxgroup.SendArticleMessageVO
;
import
com.sdk.wxgroup.SendMessageTypeEnum
;
import
com.sdk.wxgroup.SendPicMessageVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
org.apache.commons.collections.MapUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @描述:个人号群发
* @作者:zhuyajie
* @创建时间:11:00 2019/11/27
* @版本:1.0
*/
@Component
(
"selfPushBiz"
)
public
class
SelfPushBizImpl
implements
SelfPushBiz
{
@Autowired
private
SelfPushDao
selfPushDao
;
@Autowired
private
SelfPushItemDao
selfPushItemDao
;
@Autowired
private
SelfPushUserDao
selfPushUserDao
;
@Autowired
private
GroupSet
groupSet
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
private
WeixinQrcodeGenerationDao
weixinQrcodeGenerationDao
;
@Override
public
void
createSelfPush
(
Long
partyId
,
SelfPushAddParamDTO
addParamDTO
)
{
//群发
SelfPush
selfPush
=
new
SelfPush
();
selfPush
.
setCreateUser
(
partyId
);
selfPush
.
setUpdateUser
(
partyId
);
selfPush
.
setAltId
(
addParamDTO
.
altId
);
selfPushDao
.
insert
(
selfPush
);
Long
pushId
=
selfPush
.
getId
();
//群发项
List
<
SelfPushItem
>
itemList
=
addParamDTO
.
getPushItemList
();
itemList
.
forEach
(
selfPushItem
->
{
selfPushItem
.
setCreateUser
(
partyId
);
selfPushItem
.
setUpdateUser
(
partyId
);
selfPushItem
.
setPushId
(
pushId
);
selfPushItem
.
setPushStatus
(
PushStatusEnum
.
PUSHING
.
value
);
});
selfPushItemDao
.
insert
(
itemList
);
//群发用户
List
<
SelfPushUser
>
userList
=
new
ArrayList
<>();
for
(
String
userId
:
addParamDTO
.
getUserIdList
())
{
SelfPushUser
user
=
new
SelfPushUser
();
user
.
setWxUserId
(
userId
);
userList
.
add
(
user
);
}
userList
.
forEach
(
selfPushUser
->
{
selfPushUser
.
setCreateUser
(
partyId
);
selfPushUser
.
setPushId
(
pushId
);
});
selfPushUserDao
.
insert
(
userList
);
//微信发送
ThreadPoolUtils
.
SEND_MESSAGE_THREAD_POOL
.
execute
(()
->
{
userList
.
forEach
(
selfPushUser
->
{
for
(
SelfPushItem
pushItem
:
itemList
)
{
sendSelfMsg
(
selfPushUser
.
getWxUserId
(),
selfPush
.
getAltId
(),
pushItem
);
}
});
selfPushItemDao
.
updatePushStatusByPushId
(
PushStatusEnum
.
SUCCESS
.
value
,
pushId
);
});
}
/**
* 消息群发
* @param userWxId
* @param altId
* @param selfPushItem
*/
public
void
sendSelfMsg
(
String
userWxId
,
String
altId
,
SelfPushItem
selfPushItem
)
{
Integer
code
=
SendMessageTypeEnum
.
SELF
.
getCode
();
Integer
itemType
=
selfPushItem
.
getItemType
();
if
(
ItemTypeEnum
.
TEXT
.
value
.
equals
(
itemType
))
{
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
selfPushItem
.
getTextContent
());
sendTextMessageVO
.
setCode
(
code
);
sendTextMessageVO
.
setWxId
(
altId
);
sendTextMessageVO
.
setAltId
(
altId
);
sendTextMessageVO
.
setWxGroupId
(
userWxId
);
sendTextMessageVO
.
setIp
(
getIpByRobot
(
altId
));
WxGroupSDK
.
sendTextMessage
(
sendTextMessageVO
);
}
if
(
ItemTypeEnum
.
LINK
.
value
.
equals
(
itemType
))
{
SendArticleMessageVO
sendArticleMessageVO
=
new
SendArticleMessageVO
();
sendArticleMessageVO
.
setCode
(
code
);
sendArticleMessageVO
.
setAltId
(
altId
);
sendArticleMessageVO
.
setDescription
(
selfPushItem
.
getLinkDescription
());
sendArticleMessageVO
.
setWxGroupId
(
userWxId
);
String
url
=
selfPushItem
.
getLinkUrl
();
sendArticleMessageVO
.
setLinkUrl
(
url
);
sendArticleMessageVO
.
setPicUrl
(
selfPushItem
.
getLinkImageUrl
());
sendArticleMessageVO
.
setTitle
(
selfPushItem
.
getLinkTitle
());
sendArticleMessageVO
.
setIp
(
getIpByRobot
(
altId
));
WxGroupSDK
.
sendArticleMessage
(
sendArticleMessageVO
);
}
if
(
ItemTypeEnum
.
APP
.
value
.
equals
(
itemType
))
{
return
;
//应用类型不参与群发C1002029
}
if
(
ItemTypeEnum
.
IMAGE
.
value
.
equals
(
itemType
))
{
SendPicMessageVO
sendPicMessageVO
=
new
SendPicMessageVO
();
sendPicMessageVO
.
setCode
(
code
);
sendPicMessageVO
.
setAltId
(
altId
);
sendPicMessageVO
.
setWxGroupId
(
userWxId
);
sendPicMessageVO
.
setPicUrl
(
selfPushItem
.
getImageUrl
());
sendPicMessageVO
.
setIp
(
getIpByRobot
(
altId
));
WxGroupSDK
.
sendPicMessage
(
sendPicMessageVO
);
}
}
/**
* 获取ip
* @param altId
* @return
*/
private
String
getIpByRobot
(
String
altId
)
{
String
ip
=
null
;
GroupRobotDTO
groupRobotDTO
=
wechatGroupConsr
.
getGroupRobotByWxId
(
altId
);
if
(
null
!=
groupRobotDTO
)
{
WeixinQrcodeGeneration
weixinQrcodeGeneration
=
weixinQrcodeGenerationDao
.
getByGeneration
(
groupRobotDTO
.
getVersion
());
if
(
null
!=
weixinQrcodeGeneration
)
{
ip
=
weixinQrcodeGeneration
.
getWechatGroupIp
();
}
}
return
ip
;
}
@Override
public
PageBeanNew
<
UserBookInfoVO
>
listSelfPushUser
(
Long
pushId
,
Integer
currentPage
,
Integer
numPerPage
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"pushId"
,
pushId
);
PageBeanNew
<
UserBookInfoVO
>
pageBeanNew
=
selfPushUserDao
.
listPageNew
(
new
PageParam
(
currentPage
,
numPerPage
),
map
,
"listByPushId"
);
if
(
null
==
pageBeanNew
||
ListUtils
.
isEmpty
(
pageBeanNew
.
getRecordList
()))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
}
groupSet
.
setUserBookInfo4SelfPush
(
pageBeanNew
.
getRecordList
());
return
pageBeanNew
;
}
@Override
public
PageBeanNew
<
SelfPushRecordDTO
>
listSelfPushRecord
(
Integer
currentPage
,
Integer
numPerPage
,
String
startTime
,
String
endTime
,
Integer
status
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"startTime"
,
startTime
);
map
.
put
(
"endTime"
,
endTime
);
map
.
put
(
"pushStatus"
,
status
);
PageBeanNew
<
SelfPushRecordDTO
>
pageBeanNew
=
selfPushItemDao
.
listPageNew
(
new
PageParam
(
currentPage
,
numPerPage
),
map
,
"listSelfPushRecord"
);
if
(
null
==
pageBeanNew
||
ListUtils
.
isEmpty
(
pageBeanNew
.
getRecordList
()))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
}
List
<
String
>
wxIds
=
pageBeanNew
.
getRecordList
().
stream
().
filter
(
s
->
s
!=
null
).
map
(
SelfPushRecordDTO:
:
getAltId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
String
,
GroupUserDTO
>
robotMap
=
wechatGroupConsr
.
mapRobotInfoByIdList
(
wxIds
);
for
(
SelfPushRecordDTO
dto
:
pageBeanNew
.
getRecordList
())
{
Integer
userCount
=
selfPushUserDao
.
getCountByPushId
(
dto
.
getPushId
());
dto
.
setUserCount
(
userCount
);
if
(!
MapUtils
.
isEmpty
(
robotMap
)
&&
robotMap
.
containsKey
(
dto
.
getAltId
()))
{
GroupUserDTO
userDTO
=
robotMap
.
get
(
dto
.
getAltId
());
dto
.
setRobotName
(
userDTO
.
getNickName
());
}
}
return
pageBeanNew
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/push/check/PushCheck.java
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
check
;
package
com
.
pcloud
.
book
.
push
.
check
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.push.dto.SelfPushAddParamDTO
;
import
com.pcloud.book.push.entity.MorningEveningNews
;
import
com.pcloud.book.push.entity.MorningEveningNews
;
import
com.pcloud.book.push.entity.Push
;
import
com.pcloud.book.push.entity.Push
;
import
com.pcloud.book.push.entity.PushGroup
;
import
com.pcloud.book.push.entity.PushGroup
;
import
com.pcloud.book.push.entity.PushItem
;
import
com.pcloud.book.push.entity.PushItem
;
import
com.pcloud.book.push.entity.SelfPushItem
;
import
com.pcloud.book.push.enums.ItemTypeEnum
;
import
com.pcloud.book.push.enums.ItemTypeEnum
;
import
com.pcloud.book.push.enums.PushTypeEnum
;
import
com.pcloud.book.push.enums.PushTypeEnum
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
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.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -281,4 +284,49 @@ public class PushCheck {
...
@@ -281,4 +284,49 @@ public class PushCheck {
}
}
@ParamLog
(
"个人号群发参数校验"
)
public
void
selfPushParamCheck
(
SelfPushAddParamDTO
addParamDTO
)
{
if
(
null
==
addParamDTO
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数为空"
);
}
if
(
StringUtil
.
isEmpty
(
addParamDTO
.
getAltId
())
||
ListUtils
.
isEmpty
(
addParamDTO
.
getUserIdList
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"个人号或群发好友为空"
);
}
if
(
ListUtils
.
isEmpty
(
addParamDTO
.
getPushItemList
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"发送消息为空"
);
}
if
(
addParamDTO
.
getPushItemList
().
size
()
>
4
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"发送消息数量不能超过4条"
);
}
if
(
addParamDTO
.
getUserIdList
().
size
()
>
100
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"好友数量不能超过100"
);
}
for
(
SelfPushItem
pushItem
:
addParamDTO
.
getPushItemList
())
{
if
(
pushItem
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项不能为空!"
);
}
if
(
pushItem
.
getItemType
()
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型不能为空!"
);
}
if
(
ItemTypeEnum
.
TEXT
.
value
.
equals
(
pushItem
.
getItemType
())
&&
StringUtil
.
isEmpty
(
pushItem
.
getTextContent
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型为文本时,文本不能为空!"
);
}
if
(
ItemTypeEnum
.
LINK
.
value
.
equals
(
pushItem
.
getItemType
())
&&
StringUtil
.
isEmpty
(
pushItem
.
getLinkUrl
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型为链接时,链接不能为空!"
);
}
if
(
ItemTypeEnum
.
APP
.
value
.
equals
(
pushItem
.
getItemType
())
&&
(
pushItem
.
getAppId
()
==
null
&&
pushItem
.
getProductId
()
==
null
))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型为应用或作品时,应用id或作品id不能为空!"
);
}
if
(
ItemTypeEnum
.
APP
.
value
.
equals
(
pushItem
.
getItemType
())
&&
pushItem
.
getAppId
()
!=
null
&&
StringUtil
.
isEmpty
(
pushItem
.
getAppUrl
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型为应用时,应用链接不能为空!"
);
}
if
(
ItemTypeEnum
.
APP
.
value
.
equals
(
pushItem
.
getItemType
())
&&
pushItem
.
getProductId
()
!=
null
&&
StringUtil
.
isEmpty
(
pushItem
.
getProductUrl
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型为作品时,作品链接不能为空!"
);
}
if
(
ItemTypeEnum
.
IMAGE
.
value
.
equals
(
pushItem
.
getItemType
())
&&
StringUtil
.
isEmpty
(
pushItem
.
getImageUrl
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"发送消息项内容类型为图片时,图片不能为空!"
);
}
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dao/SelfPushDao.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dao
;
import
com.pcloud.book.push.entity.SelfPush
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:个人号群发
* @作者:zhuyajie
* @创建时间:18:57 2019/11/26
* @版本:1.0
*/
public
interface
SelfPushDao
extends
BaseDao
<
SelfPush
>{
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dao/SelfPushItemDao.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dao
;
import
com.pcloud.book.push.entity.SelfPushItem
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:个人号群发项
* @作者:zhuyajie
* @创建时间:18:59 2019/11/26
* @版本:1.0
*/
public
interface
SelfPushItemDao
extends
BaseDao
<
SelfPushItem
>{
/**
* 更新群发状态
* @param pushStatus
* @param pushId
*/
public
void
updatePushStatusByPushId
(
Integer
pushStatus
,
Long
pushId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dao/SelfPushUserDao.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dao
;
import
com.pcloud.book.push.entity.SelfPushUser
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:
* @作者:zhuyajie
* @创建时间:19:01 2019/11/26
* @版本:1.0
*/
public
interface
SelfPushUserDao
extends
BaseDao
<
SelfPushUser
>{
/**
* 群发人数
* @param pushId
* @return
*/
Integer
getCountByPushId
(
Long
pushId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dao/impl/SelfPushDaoImpl.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dao
.
impl
;
import
com.pcloud.book.push.dao.SelfPushDao
;
import
com.pcloud.book.push.entity.SelfPush
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
/**
* @描述:个人号群发
* @作者:zhuyajie
* @创建时间:18:57 2019/11/26
* @版本:1.0
*/
@Component
(
"selfPushDao"
)
public
class
SelfPushDaoImpl
extends
BaseDaoImpl
<
SelfPush
>
implements
SelfPushDao
{
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dao/impl/SelfPushItemDaoImpl.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dao
.
impl
;
import
com.pcloud.book.push.dao.SelfPushItemDao
;
import
com.pcloud.book.push.entity.SelfPushItem
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @描述:个人号群发项
* @作者:zhuyajie
* @创建时间:19:00 2019/11/26
* @版本:1.0
*/
@Component
(
"selfPushItemDao"
)
public
class
SelfPushItemDaoImpl
extends
BaseDaoImpl
<
SelfPushItem
>
implements
SelfPushItemDao
{
@Override
public
void
updatePushStatusByPushId
(
Integer
pushStatus
,
Long
pushId
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"pushStatus"
,
pushStatus
);
map
.
put
(
"pushId"
,
pushId
);
getSessionTemplate
().
update
(
getStatement
(
"updatePushStatusByPushId"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dao/impl/SelfPushUserDaoImpl.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dao
.
impl
;
import
com.pcloud.book.push.dao.SelfPushUserDao
;
import
com.pcloud.book.push.entity.SelfPushUser
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
/**
* @描述:
* @作者:zhuyajie
* @创建时间:19:01 2019/11/26
* @版本:1.0
*/
@Component
(
"selfPushUserDao"
)
public
class
SelfPushUserDaoImpl
extends
BaseDaoImpl
<
SelfPushUser
>
implements
SelfPushUserDao
{
@Override
public
Integer
getCountByPushId
(
Long
pushId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCountByPushId"
),
pushId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dto/SelfPushAddParamDTO.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dto
;
import
com.pcloud.book.push.entity.SelfPushItem
;
import
java.util.List
;
import
lombok.Data
;
/**
* @描述:个人号群发新增
* @作者:zhuyajie
* @创建时间:9:49 2019/11/27
* @版本:1.0
*/
@Data
public
class
SelfPushAddParamDTO
{
/**
* 推送小号id
*/
public
String
altId
;
/**
* 推送用户id
*/
public
List
<
String
>
userIdList
;
/**
* 推送信息
*/
public
List
<
SelfPushItem
>
pushItemList
;
}
pcloud-service-book/src/main/java/com/pcloud/book/push/dto/SelfPushRecordDTO.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
dto
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.dto.BaseDto
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @描述:个人号群发记录
* @作者:zhuyajie
* @创建时间:16:50 2019/11/27
* @版本:1.0
*/
@Data
public
class
SelfPushRecordDTO
extends
BaseDto
{
@ApiModelProperty
(
"群发小号id"
)
private
String
altId
;
@ApiModelProperty
(
"小号名称"
)
private
String
robotName
;
@ApiModelProperty
(
"推送id"
)
private
Long
pushId
;
@ApiModelProperty
(
"推送项id"
)
private
Long
pushItemId
;
@ApiModelProperty
(
"推送内容项类型:1文本,2链接,3应用,4图片"
)
private
Integer
itemType
;
@ApiModelProperty
(
"文本内容"
)
private
String
textContent
;
@ApiModelProperty
(
"链接地址"
)
private
String
linkUrl
;
@ApiModelProperty
(
"链接标题"
)
private
String
linkTitle
;
@ApiModelProperty
(
"链接简介"
)
private
String
linkDescription
;
@ApiModelProperty
(
"链接图片地址"
)
private
String
linkImageUrl
;
@ApiModelProperty
(
"图片链接"
)
private
String
imageUrl
;
@ApiModelProperty
(
"应用id"
)
private
Long
appId
;
@ApiModelProperty
(
"作品id"
)
private
Long
productId
;
@ApiModelProperty
(
"应用链接"
)
private
String
appUrl
;
@ApiModelProperty
(
"作品链接"
)
private
String
productUrl
;
@ApiModelProperty
(
"发送状态(0发送中1发送成功2发送失败)"
)
private
Integer
pushStatus
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"发送好友数量"
)
private
Integer
userCount
;
}
pcloud-service-book/src/main/java/com/pcloud/book/push/entity/SelfPush.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"个人号群发"
)
@Data
public
class
SelfPush
extends
BaseEntity
{
@ApiModelProperty
(
"群发小号id"
)
private
String
altId
;
@ApiModelProperty
(
"创建人"
)
private
Long
createUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"修改人"
)
private
Long
updateUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"修改时间"
)
private
Date
updateTime
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/push/entity/SelfPushItem.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"个人号群发项"
)
@Data
public
class
SelfPushItem
extends
BaseEntity
{
@ApiModelProperty
(
"推送id"
)
private
Long
pushId
;
@ApiModelProperty
(
"推送内容项类型:1文本,2链接,3应用,4图片"
)
private
Integer
itemType
;
@ApiModelProperty
(
"文本内容"
)
private
String
textContent
;
@ApiModelProperty
(
"链接地址"
)
private
String
linkUrl
;
@ApiModelProperty
(
"链接标题"
)
private
String
linkTitle
;
@ApiModelProperty
(
"链接简介"
)
private
String
linkDescription
;
@ApiModelProperty
(
"链接图片地址"
)
private
String
linkImageUrl
;
@ApiModelProperty
(
"图片链接"
)
private
String
imageUrl
;
@ApiModelProperty
(
"应用id"
)
private
Long
appId
;
@ApiModelProperty
(
"作品id"
)
private
Long
productId
;
@ApiModelProperty
(
"应用链接"
)
private
String
appUrl
;
@ApiModelProperty
(
"作品链接"
)
private
String
productUrl
;
@ApiModelProperty
(
"发送状态(0发送中1发送成功2发送失败)"
)
private
Integer
pushStatus
;
@ApiModelProperty
(
"创建人"
)
private
Long
createUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"修改人"
)
private
Long
updateUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"修改时间"
)
private
Date
updateTime
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/push/entity/SelfPushUser.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@ApiModel
(
"个人号群发用户"
)
@Data
public
class
SelfPushUser
extends
BaseEntity
{
@ApiModelProperty
(
"群发id"
)
private
Long
pushId
;
@ApiModelProperty
(
"微信用户id"
)
private
String
wxUserId
;
@ApiModelProperty
(
"创建人"
)
private
Long
createUser
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/push/facade/SelfPushFacade.java
0 → 100644
View file @
228b3d96
package
com
.
pcloud
.
book
.
push
.
facade
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.group.vo.UserBookInfoVO
;
import
com.pcloud.book.push.biz.SelfPushBiz
;
import
com.pcloud.book.push.check.PushCheck
;
import
com.pcloud.book.push.dto.SelfPushAddParamDTO
;
import
com.pcloud.book.push.dto.SelfPushRecordDTO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
/**
* @描述:个人号群发
* @作者:zhuyajie
* @创建时间:9:46 2019/11/27
* @版本:1.0
*/
@Api
(
description
=
"个人号群发"
)
@RestController
(
"selfPush"
)
@RequestMapping
(
"selfPushFacade"
)
public
class
SelfPushFacade
{
@Autowired
private
PushCheck
pushCheck
;
@Autowired
private
SelfPushBiz
selfPushBiz
;
@ApiOperation
(
"创建个人号群发"
)
@PostMapping
(
"createSelfPush"
)
public
ResponseDto
<?>
createSelfPush
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
SelfPushAddParamDTO
addParamDTO
)
throws
PermissionException
{
pushCheck
.
selfPushParamCheck
(
addParamDTO
);
Map
<
String
,
Object
>
map
=
SessionUtil
.
getToken4Redis
(
token
);
Long
partyId
=
(
Long
)
map
.
get
(
SessionUtil
.
PARTY_ID
);
String
isSystem
=
(
String
)
map
.
get
(
SessionUtil
.
IS_SYSTEM
);
if
(
"0"
.
equals
(
isSystem
))
{
partyId
=
(
Long
)
map
.
get
(
SessionUtil
.
MEMBER_ID
);
}
selfPushBiz
.
createSelfPush
(
partyId
,
addParamDTO
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"个人号群发记录用户列表"
)
@GetMapping
(
"listSelfPushUser"
)
public
ResponseDto
<
PageBeanNew
<
UserBookInfoVO
>>
listSelfPushUser
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"pushId"
)
@ApiParam
(
"群发id"
)
Long
pushId
,
@RequestParam
(
"currentPage"
)
@ApiParam
(
"当前页"
)
Integer
currentPage
,
@RequestParam
(
"numPerPage"
)
@ApiParam
(
"每页数量"
)
Integer
numPerPage
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
null
==
pushId
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"缺少群发id"
);
}
if
(
null
==
currentPage
||
null
==
numPerPage
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"缺少分页参数"
);
}
PageBeanNew
<
UserBookInfoVO
>
pageBeanNew
=
selfPushBiz
.
listSelfPushUser
(
pushId
,
currentPage
,
numPerPage
);
return
new
ResponseDto
<>(
pageBeanNew
);
}
@ApiOperation
(
"个人号群发记录列表"
)
@GetMapping
(
"listSelfPushRecord"
)
public
ResponseDto
<
PageBeanNew
<
SelfPushRecordDTO
>>
listSelfPushRecord
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
"currentPage"
)
@ApiParam
(
"当前页"
)
Integer
currentPage
,
@RequestParam
(
"numPerPage"
)
@ApiParam
(
"每页数量"
)
Integer
numPerPage
,
@RequestParam
(
value
=
"startTime"
,
required
=
false
)
@ApiParam
(
"开始时间"
)
String
startTime
,
@RequestParam
(
value
=
"endTime"
,
required
=
false
)
@ApiParam
(
"结束时间"
)
String
endTime
,
@RequestParam
(
value
=
"status"
,
required
=
false
)
@ApiParam
(
"发送状态(1发送中2发送成功3发送失败)"
)
Integer
status
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
null
==
currentPage
||
null
==
numPerPage
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"缺少分页参数"
);
}
PageBeanNew
<
SelfPushRecordDTO
>
pageBeanNew
=
selfPushBiz
.
listSelfPushRecord
(
currentPage
,
numPerPage
,
startTime
,
endTime
,
status
);
return
new
ResponseDto
<>(
pageBeanNew
);
}
}
pcloud-service-book/src/main/resources/mapper/group/BookGroupCipherUser.xml
View file @
228b3d96
...
@@ -381,4 +381,61 @@
...
@@ -381,4 +381,61 @@
WHERE
WHERE
t1.agent_id = #{agentId}
t1.agent_id = #{agentId}
</select>
</select>
<select
id=
"listUser4SelfPush"
resultType=
"com.pcloud.book.group.vo.UserBookInfoVO"
parameterType=
"map"
>
SELECT
u.wx_user_id wxUserId,
u.alt_id altId
FROM
book_group_cipher_user u
LEFT JOIN book_group g ON u.book_group_id = g.id
WHERE
u.alt_id = #{altId}
<if
test=
"proLabelId != null"
>
AND g.pro_label_id = #{proLabelId}
</if>
<if
test=
"depLabelId != null"
>
AND g.dep_label_id = #{depLabelId}
</if>
<if
test=
"bookIds != null and bookIds.size>0"
>
AND g.book_id IN
<foreach
collection=
"bookIds"
open=
"("
close=
")"
item=
"item"
separator=
","
>
#{item}
</foreach>
</if>
<if
test=
"wxUserIds != null and wxUserIds.size>0"
>
AND u.wx_user_id IN
<foreach
collection=
"wxUserIds"
open=
"("
close=
")"
item=
"item"
separator=
","
>
#{item}
</foreach>
</if>
GROUP BY
u.wx_user_id
ORDER BY
u.create_time DESC,
u.id DESC
<if
test=
"pageNum>=0 and numPerPage>0"
>
LIMIT #{pageNum}, #{numPerPage}
</if>
</select>
<select
id=
"getScanBookInfoByUser"
parameterType=
"map"
resultType=
"com.pcloud.book.group.vo.UserBookInfoItemVO"
>
SELECT
u.book_group_id bookGroupId,
b.BOOK_NAME bookName,
g.pro_label_id proLabelId,
g.dep_label_id depLabelId
FROM
book_group_cipher_user u
LEFT JOIN book_group g ON u.book_group_id = g.id
LEFT JOIN book b ON g.book_id = b.BOOK_ID
WHERE
u.wx_user_id = #{wxUserId}
AND u.alt_id = #{altId}
GROUP BY
u.book_group_id
ORDER BY
g.id DESC
</select>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/push/SelfPushItemMapper.xml
0 → 100644
View file @
228b3d96
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.push.dao.impl.SelfPushItemDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.push.entity.SelfPushItem"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"push_id"
property=
"pushId"
jdbcType=
"BIGINT"
/>
<result
column=
"item_type"
property=
"itemType"
jdbcType=
"INTEGER"
/>
<result
column=
"text_content"
property=
"textContent"
jdbcType=
"VARCHAR"
/>
<result
column=
"link_url"
property=
"linkUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"link_title"
property=
"linkTitle"
jdbcType=
"VARCHAR"
/>
<result
column=
"link_description"
property=
"linkDescription"
jdbcType=
"VARCHAR"
/>
<result
column=
"link_image_url"
property=
"linkImageUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"image_url"
property=
"imageUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"app_id"
property=
"appId"
jdbcType=
"BIGINT"
/>
<result
column=
"app_url"
property=
"appUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"product_id"
property=
"productId"
jdbcType=
"BIGINT"
/>
<result
column=
"product_url"
property=
"productUrl"
jdbcType=
"VARCHAR"
/>
<result
column=
"push_status"
property=
"pushStatus"
jdbcType=
"INTEGER"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_user"
property=
"updateUser"
jdbcType=
"BIGINT"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, push_id, item_type, text_content, link_url, link_title, link_description,
link_image_url, image_url, app_id, app_url, product_id, product_url, push_status,
create_user, create_time, update_user, update_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.push.entity.SelfPushItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into self_push_item (push_id, item_type,
text_content, link_url, link_title,
link_description, link_image_url, image_url,
app_id, app_url, product_id,
product_url, push_status, create_user,
create_time, update_user, update_time
)
values (#{pushId,jdbcType=BIGINT}, #{itemType,jdbcType=INTEGER},
#{textContent,jdbcType=VARCHAR}, #{linkUrl,jdbcType=VARCHAR}, #{linkTitle,jdbcType=VARCHAR},
#{linkDescription,jdbcType=VARCHAR}, #{linkImageUrl,jdbcType=VARCHAR}, #{imageUrl,jdbcType=VARCHAR},
#{appId,jdbcType=BIGINT}, #{appUrl,jdbcType=VARCHAR}, #{productId,jdbcType=BIGINT},
#{productUrl,jdbcType=VARCHAR}, #{pushStatus,jdbcType=INTEGER}, #{createUser,jdbcType=BIGINT},
now(), #{updateUser,jdbcType=BIGINT}, now()
)
</insert>
<!--批量插入-->
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.push.entity.SelfPushItem"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into self_push_item (
push_id,
item_type,
text_content,
link_url,
link_title,
link_description,
link_image_url,
image_url,
app_id,
app_url,
product_id,
product_url,
push_status,
create_user,
create_time,
update_user,
update_time
) values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(
#{item.pushId,jdbcType=BIGINT},
#{item.itemType,jdbcType=INTEGER},
#{item.textContent,jdbcType=VARCHAR},
#{item.linkUrl,jdbcType=VARCHAR},
#{item.linkTitle,jdbcType=VARCHAR},
#{item.linkDescription,jdbcType=VARCHAR},
#{item.linkImageUrl,jdbcType=VARCHAR},
#{item.imageUrl,jdbcType=VARCHAR},
#{item.appId,jdbcType=BIGINT},
#{item.appUrl,jdbcType=VARCHAR},
#{item.productId,jdbcType=BIGINT},
#{item.productUrl,jdbcType=VARCHAR},
#{item.pushStatus,jdbcType=INTEGER},
#{item.createUser,jdbcType=BIGINT},
NOW(),
#{item.updateUser,jdbcType=BIGINT},
NOW()
)
</foreach>
</insert>
<select
id=
"listSelfPushRecord"
parameterType=
"map"
resultType=
"com.pcloud.book.push.dto.SelfPushRecordDTO"
>
SELECT
p.alt_id altId,
p.id pushId,
i.id pushItemId,
i.item_type itemType,
i.text_content textContent,
i.link_url linkUrl,
i.link_title linkTitle,
i.link_description linkDescription,
i.link_image_url linkImageUrl,
i.image_url imageUrl,
i.app_id appId,
i.app_url appUrl,
i.product_id productId,
i.product_url productUrl,
i.push_status pushStatus,
i.create_time createTime
FROM
self_push_item i
LEFT JOIN self_push p ON i.push_id = p.id
WHERE
1 = 1
<if
test=
"startTime != null and endTime != null"
>
AND i.create_time BETWEEN #{startTime} AND #{endTime}
</if>
<if
test=
"pushStatus != null"
>
AND i.push_status = #{pushStatus}
</if>
ORDER BY
i.create_time DESC, i.id DESC
</select>
<update
id=
"updatePushStatusByPushId"
parameterType=
"map"
>
UPDATE self_push_item
SET push_status = #{pushStatus}
WHERE push_id = #{pushId}
</update>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/push/SelfPushMapper.xml
0 → 100644
View file @
228b3d96
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.push.dao.impl.SelfPushDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.push.entity.SelfPush"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"alt_id"
property=
"altId"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_user"
property=
"updateUser"
jdbcType=
"BIGINT"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, alt_id, create_user, create_time, update_user, update_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.push.entity.SelfPush"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into self_push (id, alt_id, create_user,
create_time, update_user, update_time
)
values (#{id,jdbcType=BIGINT}, #{altId,jdbcType=VARCHAR}, #{createUser,jdbcType=BIGINT},
now(), #{updateUser,jdbcType=BIGINT}, now()
)
</insert>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/push/SelfPushUserMapper.xml
0 → 100644
View file @
228b3d96
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.push.dao.impl.SelfPushUserDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.push.entity.SelfPushUser"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"push_id"
property=
"pushId"
jdbcType=
"BIGINT"
/>
<result
column=
"wx_user_id"
property=
"wxUserId"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"create_user"
property=
"createUser"
jdbcType=
"BIGINT"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, push_id, wx_user_id, create_time, create_user
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.push.entity.SelfPushUser"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into self_push_user (push_id, wx_user_id,
create_time, create_user)
values (#{pushId,jdbcType=BIGINT}, #{wxUserId,jdbcType=VARCHAR},
now(), #{createUser,jdbcType=BIGINT})
</insert>
<insert
id=
"batchInsert"
parameterType=
"com.pcloud.book.push.entity.SelfPushUser"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into self_push_user
(push_id,
wx_user_id,
create_time,
create_user
) values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
(
#{item.pushId,jdbcType=BIGINT},
#{item.wxUserId,jdbcType=VARCHAR},
now(),
#{item.createUser,jdbcType=BIGINT}
)
</foreach>
</insert>
<select
id=
"listByPushId"
parameterType=
"map"
resultType=
"com.pcloud.book.group.vo.UserBookInfoVO"
>
SELECT
u.wx_user_id wxUserId,
p.alt_id altId
FROM
self_push_user u
LEFT JOIN self_push p ON u.push_id = p.id
WHERE
u.push_id = #{pushId}
</select>
<select
id=
"getCountByPushId"
resultType=
"integer"
parameterType=
"long"
>
SELECT
COUNT(1)
FROM
self_push_user
WHERE
push_id = #{pushId}
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment