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
db50015f
Commit
db50015f
authored
Oct 10, 2019
by
阮思源
Browse files
Options
Browse Files
Download
Plain Diff
解决冲突
parents
4959831b
2d7d5307
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
472 additions
and
67 deletions
+472
-67
QueryByBookAdviserDTO.java
...java/com/pcloud/book/group/dto/QueryByBookAdviserDTO.java
+14
-0
UpdateGroupNameDTO.java
...in/java/com/pcloud/book/group/dto/UpdateGroupNameDTO.java
+46
-0
BookGroupService.java
.../java/com/pcloud/book/group/service/BookGroupService.java
+5
-0
WeixinQrcodeService.java
...va/com/pcloud/book/group/service/WeixinQrcodeService.java
+11
-5
AdNewsBizImpl.java
...n/java/com/pcloud/book/adnews/biz/impl/AdNewsBizImpl.java
+6
-2
AdvertisingSpaceBiz.java
.../com/pcloud/book/advertising/biz/AdvertisingSpaceBiz.java
+1
-1
AdvertisingSpaceBizImpl.java
...ud/book/advertising/biz/impl/AdvertisingSpaceBizImpl.java
+6
-2
GroupTagBizImpl.java
...com/pcloud/book/advertising/biz/impl/GroupTagBizImpl.java
+49
-9
GroupTagDTO.java
...ain/java/com/pcloud/book/advertising/dto/GroupTagDTO.java
+58
-0
AdvertisingSpaceFacadeImpl.java
...k/advertising/facade/impl/AdvertisingSpaceFacadeImpl.java
+1
-1
BookBizImpl.java
.../main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
+4
-2
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+14
-0
BookGroupBiz.java
...src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
+5
-0
GroupQrcodeBiz.java
...c/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
+14
-0
WeixinQrcodeBiz.java
.../main/java/com/pcloud/book/group/biz/WeixinQrcodeBiz.java
+2
-0
BookGroupBizImpl.java
...java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
+9
-0
BookGroupClassifyBizImpl.java
.../pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
+11
-1
GroupQrcodeBizImpl.java
...va/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
+35
-1
WeixinQrcodeBizImpl.java
...a/com/pcloud/book/group/biz/impl/WeixinQrcodeBizImpl.java
+17
-3
BookGroupDao.java
...src/main/java/com/pcloud/book/group/dao/BookGroupDao.java
+7
-0
GroupQrcodeDao.java
...c/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
+9
-0
WeixinQrcodeDao.java
.../main/java/com/pcloud/book/group/dao/WeixinQrcodeDao.java
+2
-0
BookGroupDaoImpl.java
...java/com/pcloud/book/group/dao/impl/BookGroupDaoImpl.java
+8
-0
GroupQrcodeDaoImpl.java
...va/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
+10
-0
WeixinQrcodeDaoImpl.java
...a/com/pcloud/book/group/dao/impl/WeixinQrcodeDaoImpl.java
+8
-0
BookGroupServiceImpl.java
.../pcloud/book/group/service/impl/BookGroupServiceImpl.java
+11
-0
WeixinQrcodeServiceImpl.java
...loud/book/group/service/impl/WeixinQrcodeServiceImpl.java
+21
-5
ClassifyVO.java
...ok/src/main/java/com/pcloud/book/group/vo/ClassifyVO.java
+12
-0
WxLiveBroadcastReminderListener.java
...pcloud/book/mq/topic/WxLiveBroadcastReminderListener.java
+37
-35
Book.Mapper.xml
...rvice-book/src/main/resources/mapper/book/Book.Mapper.xml
+5
-0
BookGroupMapper.xml
...-book/src/main/resources/mapper/group/BookGroupMapper.xml
+15
-0
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+14
-0
WeixinQrcode.Mapper.xml
...k/src/main/resources/mapper/group/WeixinQrcode.Mapper.xml
+5
-0
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/QueryByBookAdviserDTO.java
0 → 100644
View file @
db50015f
package
com
.
pcloud
.
book
.
group
.
dto
;
import
java.util.List
;
import
lombok.Data
;
/**
* 用于根据bookId和adviserId查询BookGroup相关信息
*/
@Data
public
class
QueryByBookAdviserDTO
{
List
<
Long
>
bookIds
;
List
<
Long
>
adviserIds
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/group/dto/UpdateGroupNameDTO.java
0 → 100644
View file @
db50015f
package
com
.
pcloud
.
book
.
group
.
dto
;
import
java.io.Serializable
;
/**
* @author 戴兴
* @description TODO
* @date 2019/9/20 17:43
*/
public
class
UpdateGroupNameDTO
implements
Serializable
{
/**
* 二维码标识
*/
private
Long
id
;
/**
* 微信群id
*/
private
String
groupName
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getGroupName
()
{
return
groupName
;
}
public
void
setGroupName
(
String
groupName
)
{
this
.
groupName
=
groupName
;
}
@Override
public
String
toString
()
{
return
"UpdateGroupNameDTO{"
+
"id="
+
id
+
", groupName='"
+
groupName
+
'\''
+
'}'
;
}
}
\ No newline at end of file
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/BookGroupService.java
View file @
db50015f
...
...
@@ -4,6 +4,7 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import
com.pcloud.book.group.dto.GroupCipherDTO
;
import
com.pcloud.book.group.dto.GroupUseDTO
;
import
com.pcloud.book.group.dto.PersonalQrcodeDTO
;
import
com.pcloud.book.group.dto.QueryByBookAdviserDTO
;
import
com.pcloud.book.group.dto.ResourceBrowseParamDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.StoreFlowInfoDto
;
...
...
@@ -43,6 +44,10 @@ public interface BookGroupService {
@RequestMapping
(
value
=
"getBookGroupInfoByIds"
,
method
=
RequestMethod
.
POST
)
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
BookGroupDTO
>>>
getBookGroupInfoByIds
(
@RequestBody
List
<
Long
>
bookGroupIds
)
throws
BizException
;
@ApiOperation
(
"根据bookId和AdviserId批量获取社群书基本信息"
)
@PostMapping
(
value
=
"getBookGroupInfoByBookIdAndAdviserId"
)
ResponseEntity
<
ResponseDto
<
List
<
BookGroupDTO
>>>
getBookGroupInfoByBookIdAndAdviserId
(
@RequestBody
QueryByBookAdviserDTO
queryByBookAdviserDTO
)
throws
BizException
;
@ApiOperation
(
"为信息流批量获取社群书基本信息"
)
@RequestMapping
(
value
=
"getFlowInfoByBookGroupIds"
,
method
=
RequestMethod
.
POST
)
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
StoreFlowInfoDto
>>>
getFlowInfoByBookGroupIds
(
@RequestBody
List
<
Long
>
bookGroupIds
)
throws
BizException
;
...
...
pcloud-facade-book/src/main/java/com/pcloud/book/group/service/WeixinQrcodeService.java
View file @
db50015f
package
com
.
pcloud
.
book
.
group
.
service
;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.SyncWeixinGroupIdDTO
;
import
com.pcloud.book.group.dto.UpdateQrDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeCountDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
...
...
@@ -87,6 +83,16 @@ public interface WeixinQrcodeService {
@RequestMapping
(
value
=
"getWxGroupId"
,
method
=
RequestMethod
.
GET
)
ResponseEntity
<
ResponseDto
<
String
>>
getWxGroupId
(
@RequestParam
(
"classifyId"
)
Long
classifyId
);
@ApiOperation
(
value
=
"通过qrcodeId获取微信群信息"
,
httpMethod
=
"GET"
)
@RequestMapping
(
value
=
"getWxGroupInfoById"
,
method
=
RequestMethod
.
GET
)
ResponseEntity
<
ResponseDto
<
GroupQrcodeInfo4Advertising
>>
getWxGroupInfoById
(
@RequestParam
(
"qrcodeId"
)
Long
qrcodeId
);
@ApiOperation
(
value
=
"通过qrcodeIds获取微信群信息"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"getWxGroupInfoByIds"
,
method
=
RequestMethod
.
POST
)
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
GroupQrcodeInfo4Advertising
>>>
getWxGroupInfoByIds
(
@RequestBody
List
<
Long
>
qrcodeIds
);
@ApiOperation
(
value
=
"修改模拟器IP地址"
,
httpMethod
=
"GET"
)
@RequestMapping
(
value
=
"updateGenerationMachineIp"
,
method
=
RequestMethod
.
GET
)
void
updateGenerationMachineIp
(
@RequestParam
(
"generation"
)
Integer
generation
,
@RequestParam
(
"machineIp"
)
String
machineIp
);
}
pcloud-service-book/src/main/java/com/pcloud/book/adnews/biz/impl/AdNewsBizImpl.java
View file @
db50015f
...
...
@@ -105,8 +105,12 @@ public class AdNewsBizImpl implements AdNewsBiz {
adNewsSetDao
.
insert
(
adNewsSet
);
buildAdNewsGroups
(
adNewsSet
,
adNewsSet
.
getCreateUser
());
adNewsGroupDao
.
batchInsert
(
adNewsSet
.
getAdNewsGroups
());
buildAdNewsWechats
(
adNewsSet
);
adNewsWechatDao
.
batchInsert
(
adNewsSet
.
getAdNewsWechats
());
// 判断是否增加自有过公众号,如果没有则将当前数据入库
if
(!
ListUtils
.
isEmpty
(
adNewsSet
.
getAdNewsWechats
())
&&
!
adNewsWechatDao
.
existsAdNewsWechat
(
adNewsSet
.
getUpdateUser
()))
{
buildAdNewsWechats
(
adNewsSet
);
adNewsWechatDao
.
batchInsert
(
adNewsSet
.
getAdNewsWechats
());
}
//创建定时任务
buildAdNewsSh
(
adNewsSet
);
return
adNewsSet
.
getId
();
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/AdvertisingSpaceBiz.java
View file @
db50015f
...
...
@@ -100,7 +100,7 @@ public interface AdvertisingSpaceBiz {
* @param adviserPermission 广告位编辑权限实体
* @throws BizException
*/
void
setAdviserPermission
(
AdvertisingAdviserPermission
adviserPermission
)
throws
BizException
;
void
setAdviserPermission
(
AdvertisingAdviserPermission
adviserPermission
,
Long
adviserId
)
throws
BizException
;
/**
* 编辑端获取书刊列表
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/impl/AdvertisingSpaceBizImpl.java
View file @
db50015f
...
...
@@ -832,13 +832,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@ParamLog
(
value
=
"设置编辑书刊权限"
,
isAfterReturn
=
false
)
public
void
setAdviserPermission
(
AdvertisingAdviserPermission
adviserPermission
)
throws
BizException
{
public
void
setAdviserPermission
(
AdvertisingAdviserPermission
adviserPermission
,
Long
adviserId
)
throws
BizException
{
if
(
null
==
adviserPermission
.
getAdviserId
()
||
null
==
adviserPermission
.
getIsOpen
()
||
(!
adviserPermission
.
getIsBatchOperation
()
&&
(
null
==
adviserPermission
.
getBookId
()
||
null
==
adviserPermission
.
getChannelId
())))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数有误!"
);
}
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"adviserId"
,
adviser
Permission
.
getAdviserId
()
);
paramMap
.
put
(
"adviserId"
,
adviser
Id
);
if
(!
adviserPermission
.
getIsBatchOperation
())
{
paramMap
.
put
(
"bookId"
,
adviserPermission
.
getBookId
());
paramMap
.
put
(
"channelId"
,
adviserPermission
.
getChannelId
());
...
...
@@ -860,9 +860,13 @@ public class AdvertisingSpaceBizImpl implements AdvertisingSpaceBiz {
if
(
null
==
permission
)
{
adviserPermission
.
setBookId
(
bookAndChannelDTO
.
getBookId
());
adviserPermission
.
setChannelId
(
bookAndChannelDTO
.
getChannelId
());
adviserPermission
.
setAdviserId
(
adviserId
);
advertisingAdviserPermissionDao
.
insert
(
adviserPermission
);
}
else
{
adviserPermission
.
setId
(
permission
.
getId
());
adviserPermission
.
setChannelId
(
null
);
adviserPermission
.
setBookId
(
null
);
adviserPermission
.
setAdviserId
(
null
);
advertisingAdviserPermissionDao
.
update
(
adviserPermission
);
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/biz/impl/GroupTagBizImpl.java
View file @
db50015f
...
...
@@ -37,12 +37,14 @@ import com.pcloud.common.page.PageParam;
import
com.pcloud.common.utils.DateUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.QrcodeUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.zip.CompressUtils
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.user.entity.UserLogin
;
import
com.pcloud.wechatgroup.message.dto.BrandParamDTO
;
import
com.pcloud.wechatgroup.message.dto.GroupStatistics
;
import
org.apache.commons.collections.MapUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -414,6 +416,7 @@ public class GroupTagBizImpl implements GroupTagBiz {
String
fileUrl
=
""
;
try
{
setGroupInfo
(
list
);
this
.
setGroupMessageInfo
(
list
);
fileUrl
=
exportGroupBrandfile
(
list
,
fileName
);
}
catch
(
Exception
e
)
{
log
.
error
(
"生成导出文件失败"
+
e
.
getMessage
(),
e
);
...
...
@@ -426,6 +429,36 @@ public class GroupTagBizImpl implements GroupTagBiz {
});
}
/**
* 填充群消息数量
* @param groupTagDTOS
*/
private
void
setGroupMessageInfo
(
List
<
GroupTagDTO
>
groupTagDTOS
)
{
List
<
BrandParamDTO
>
paramDTOList
=
new
ArrayList
<>();
groupTagDTOS
.
forEach
(
groupTagDTO
->
{
BrandParamDTO
paramDTO
=
new
BrandParamDTO
();
paramDTO
.
setWxGroupId
(
groupTagDTO
.
getWxGroupId
());
Date
time
=
groupTagDTO
.
getTagTime
();
if
(
null
!=
time
)
{
paramDTO
.
setTagTime
(
DateUtils
.
formatDate
(
time
,
DateUtils
.
DATE_FORMAT_DATETIME
));
}
paramDTOList
.
add
(
paramDTO
);
});
Map
<
String
,
GroupStatistics
>
groupStatisticsMap
=
wechatGroupConsr
.
getGroupMessageStatistics4AdBrand
(
paramDTOList
);
if
(
MapUtils
.
isEmpty
(
groupStatisticsMap
))
{
return
;
}
groupTagDTOS
.
forEach
(
groupTagDTO
->
{
GroupStatistics
statistics
=
groupStatisticsMap
.
get
(
groupTagDTO
.
getWxGroupId
());
if
(
null
!=
statistics
)
{
groupTagDTO
.
setJoinCount
(
statistics
.
getJoinCount
());
groupTagDTO
.
setMsgCount
(
statistics
.
getMsgCount
());
groupTagDTO
.
setChatCount
(
statistics
.
getChatCount
());
groupTagDTO
.
setChatUserCount
(
statistics
.
getChatUserCount
());
}
});
}
@Override
public
Map
<
String
,
Object
>
exportGroupList4Brand
(
Map
<
String
,
Object
>
paramMap
,
Long
userId
)
{
Long
brandId
=
advertisingBrandDao
.
getBrandIdByUserLoginId
(
userId
);
...
...
@@ -474,8 +507,9 @@ public class GroupTagBizImpl implements GroupTagBiz {
*/
private
String
exportGroupBrandfile
(
List
<
GroupTagDTO
>
list
,
String
fileName
)
{
// 字段名
String
[]
rowsName
=
{
"序号"
,
"群名称"
,
"群分类名称"
,
"社群标签(专业)"
,
"社群标签(深度)"
,
"社群标签(目的)"
,
"社群书"
,
"所属出版社"
,
"创建编辑"
,
"近7天活跃度"
,
"当前群人数"
,
"广告位数量"
,
"群二维码"
,
"标签"
,
"群创建时间"
};
String
[]
rowsName
=
{
"序号"
,
"群名称"
,
"群分类名称"
,
"社群书"
,
"社群标签(专业)"
,
"社群标签(深度)"
,
"社群标签(目的)"
,
"所属出版社"
,
"创建编辑"
,
"近7天活跃度"
,
"当前群人数"
,
"广告位数量"
,
"二维码"
,
"品牌方"
,
"分配日期"
,
"期间进群人数"
,
"群消息数"
,
"发言人数(机器人除外)"
,
"发言次数(机器人除外"
};
List
<
Object
[]>
dataList
=
new
ArrayList
<>();
Object
[]
objs
;
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
...
...
@@ -484,17 +518,19 @@ public class GroupTagBizImpl implements GroupTagBiz {
objs
[
0
]
=
i
+
1
;
objs
[
1
]
=
dto
.
getGroupName
();
objs
[
2
]
=
dto
.
getClassify
();
objs
[
3
]
=
dto
.
get
ProLabel
Name
();
objs
[
4
]
=
dto
.
get
Dep
LabelName
();
objs
[
5
]
=
dto
.
get
Pur
LabelName
();
objs
[
6
]
=
dto
.
get
Book
Name
();
objs
[
3
]
=
dto
.
get
Book
Name
();
objs
[
4
]
=
dto
.
get
Pro
LabelName
();
objs
[
5
]
=
dto
.
get
Dep
LabelName
();
objs
[
6
]
=
dto
.
get
PurLabel
Name
();
objs
[
7
]
=
dto
.
getAgentName
();
objs
[
8
]
=
dto
.
getAdviserName
();
objs
[
9
]
=
dto
.
getActiveCount
()
==
null
?
0
:
dto
.
getActiveCount
();
objs
[
10
]
=
dto
.
getUserNumber
();
objs
[
11
]
=
dto
.
getAdvertisingSpaceNum
()
==
null
?
0
:
dto
.
getAdvertisingSpaceNum
();
String
qrcodeUrl
=
""
;
if
(!
StringUtil
.
isEmpty
(
dto
.
getQrcodeUrl
()))
{
if
(
Integer
.
valueOf
(
2
).
equals
(
dto
.
getJoinGroupType
())
&&
!
StringUtil
.
isEmpty
(
dto
.
getCodeUrl
()))
{
qrcodeUrl
=
dto
.
getCodeUrl
().
replace
(
"oss.5rs.me"
,
"file.5rs.me"
);
}
else
if
(!
StringUtil
.
isEmpty
(
dto
.
getQrcodeUrl
()))
{
qrcodeUrl
=
dto
.
getQrcodeUrl
().
replace
(
"oss.5rs.me"
,
"file.5rs.me"
);
}
objs
[
12
]
=
qrcodeUrl
;
...
...
@@ -510,7 +546,11 @@ public class GroupTagBizImpl implements GroupTagBiz {
}
}
objs
[
13
]
=
brandName
;
objs
[
14
]
=
DateUtils
.
formatDate
(
dto
.
getCreateTime
(),
DateUtils
.
DATE_FORMAT_DATEONLY
);
objs
[
14
]
=
dto
.
getTagTime
()
==
null
?
""
:
DateUtils
.
formatDate
(
dto
.
getTagTime
(),
DateUtils
.
DATE_FORMAT_DATEONLY
);
objs
[
15
]
=
dto
.
getJoinCount
();
objs
[
16
]
=
dto
.
getMsgCount
();
objs
[
17
]
=
dto
.
getChatUserCount
();
objs
[
18
]
=
dto
.
getChatCount
();
dataList
.
add
(
objs
);
}
return
exportConsr
.
exportExcel
(
fileName
,
rowsName
,
dataList
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/advertising/dto/GroupTagDTO.java
View file @
db50015f
...
...
@@ -126,6 +126,24 @@ public class GroupTagDTO extends BaseDto{
private
Integer
joinGroupType
;
private
String
codeUrl
;
/**
* 进群人数
*/
private
Integer
joinCount
;
/**
* 群消息总数
*/
private
Integer
msgCount
;
/**
* 发言人数(非机器人)
*/
private
Integer
chatUserCount
;
/**
* 发言次数(非机器人)
*/
private
Integer
chatCount
;
public
String
getWxGroupId
()
{
return
wxGroupId
;
}
...
...
@@ -334,6 +352,38 @@ public class GroupTagDTO extends BaseDto{
this
.
codeUrl
=
codeUrl
;
}
public
Integer
getJoinCount
()
{
return
joinCount
;
}
public
void
setJoinCount
(
Integer
joinCount
)
{
this
.
joinCount
=
joinCount
;
}
public
Integer
getMsgCount
()
{
return
msgCount
;
}
public
void
setMsgCount
(
Integer
msgCount
)
{
this
.
msgCount
=
msgCount
;
}
public
Integer
getChatUserCount
()
{
return
chatUserCount
;
}
public
void
setChatUserCount
(
Integer
chatUserCount
)
{
this
.
chatUserCount
=
chatUserCount
;
}
public
Integer
getChatCount
()
{
return
chatCount
;
}
public
void
setChatCount
(
Integer
chatCount
)
{
this
.
chatCount
=
chatCount
;
}
@Override
public
String
toString
()
{
return
"GroupTagDTO{"
+
...
...
@@ -359,6 +409,14 @@ public class GroupTagDTO extends BaseDto{
", brandList="
+
brandList
+
", tagTime="
+
tagTime
+
", isbn='"
+
isbn
+
'\''
+
", classifyId="
+
classifyId
+
", bookGroupId="
+
bookGroupId
+
", joinGroupType="
+
joinGroupType
+
", codeUrl='"
+
codeUrl
+
'\''
+
", joinCount="
+
joinCount
+
", msgCount="
+
msgCount
+
", chatUserCount="
+
chatUserCount
+
", chatCount="
+
chatCount
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/advertising/facade/impl/AdvertisingSpaceFacadeImpl.java
View file @
db50015f
...
...
@@ -216,7 +216,7 @@ public class AdvertisingSpaceFacadeImpl implements AdvertisingSpaceFacade {
if
(
null
==
advertisingAdviserPermission
.
getIsBatchOperation
())
{
advertisingAdviserPermission
.
setIsBatchOperation
(
false
);
}
advertisingSpaceBiz
.
setAdviserPermission
(
advertisingAdviserPermission
);
advertisingSpaceBiz
.
setAdviserPermission
(
advertisingAdviserPermission
,
adviserId
);
return
new
ResponseDto
<>();
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/book/biz/impl/BookBizImpl.java
View file @
db50015f
...
...
@@ -1117,10 +1117,12 @@ public class BookBizImpl implements BookBiz {
public
PageBean
listPage4Agent
(
PageParam
pageParam
,
Map
<
String
,
Object
>
paramMap
,
Long
agentId
)
{
LOGGER
.
info
(
"书刊列表-出版端,<START>.[paramMap]="
+
paramMap
+
",agentId"
+
agentId
);
List
<
Long
>
adviserIds
=
adviserConsr
.
getIdsByNameAndAgentId
(
agentId
,
(
String
)
paramMap
.
get
(
"bookName"
));
List
<
Long
>
agent4AdviserIds
=
adviserConsr
.
getIdsByNameAndAgentId
(
agentId
,
null
);
paramMap
.
put
(
"adviserIds"
,
adviserIds
);
/*if (ListUtils.isEmpty(adviserIds)) {
paramMap
.
put
(
"agent4AdviserIds"
,
agent4AdviserIds
);
if
(
ListUtils
.
isEmpty
(
agent4AdviserIds
))
{
return
new
PageBean
(
0
,
0
,
new
ArrayList
<>());
}
*/
}
PageBean
pageBean
=
bookDao
.
listPage
(
pageParam
,
paramMap
,
"listPage4Agent"
);
if
(
pageBean
==
null
||
ListUtils
.
isEmpty
(
pageBean
.
getRecordList
()))
{
return
new
PageBean
();
...
...
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
db50015f
...
...
@@ -11,8 +11,10 @@ import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
com.pcloud.wechatgroup.group.dto.RobotReplyDTO
;
import
com.pcloud.wechatgroup.group.service.GroupMemberService
;
import
com.pcloud.wechatgroup.message.dto.BrandParamDTO
;
import
com.pcloud.wechatgroup.message.dto.GroupChatCountDTO
;
import
com.pcloud.wechatgroup.message.dto.UserChatCountDTO
;
import
com.pcloud.wechatgroup.message.dto.GroupStatistics
;
import
com.pcloud.wechatgroup.message.service.MessageService
;
import
com.pcloud.wechatgroup.monitor.service.MonitorService
;
import
com.pcloud.wechatgroup.selfrobot.dto.SelfRobotDTO
;
...
...
@@ -381,4 +383,16 @@ public class WechatGroupConsr {
}
return
map
;
}
@ParamLog
(
"获取群消息数量"
)
public
Map
<
String
,
GroupStatistics
>
getGroupMessageStatistics4AdBrand
(
List
<
BrandParamDTO
>
paramDTOList
)
{
Map
<
String
,
GroupStatistics
>
map
=
new
HashMap
<>();
try
{
map
=
ResponseHandleUtil
.
parseMapResponse
(
messageService
.
getGroupStatistics4AdBrand
(
paramDTOList
),
String
.
class
,
GroupStatistics
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"获取群消息数量.[get7DayActiveCountByQrcode]:"
+
e
.
getMessage
(),
e
);
}
return
map
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/BookGroupBiz.java
View file @
db50015f
...
...
@@ -76,6 +76,11 @@ public interface BookGroupBiz {
Map
<
Long
,
BookGroupDTO
>
getBookGroupInfoByIds
(
List
<
Long
>
bookGroupIds
)
throws
BizException
;
/**
* 根据bookId和AdviserId批量获取社群书基本信息
*/
List
<
BookGroupDTO
>
getBookGroupInfoByBookIdAndAdviserId
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
);
/**
* 获取社群书群二维码信息
* @param bookGroupId 群二维码ID
* @return
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
View file @
db50015f
...
...
@@ -184,4 +184,18 @@ public interface GroupQrcodeBiz {
* @return
*/
PageBeanNew
<
GroupRiddleDTO
>
listPageRiddle
(
Long
partyId
,
Integer
currentPage
,
Integer
numPerPage
,
String
name
);
/**
* @description 获取微信群信息
* @author 戴兴
* @date 2019/9/20 16:36
*/
GroupQrcodeInfo4Advertising
getWechatGroupInfo
(
Long
qrcodeId
);
/**
* @description 批量获取微信群信息
* @author 戴兴
* @date 2019/9/21 19:10
*/
Map
<
Long
,
GroupQrcodeInfo4Advertising
>
getWechatGroupInfoMap
(
List
<
Long
>
qrcodeIds
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/WeixinQrcodeBiz.java
View file @
db50015f
...
...
@@ -134,4 +134,6 @@ public interface WeixinQrcodeBiz {
void
inviteNewRobot
(
String
wxUserId
);
Map
<
String
,
BookWxQrcodeDTO
>
getGroupVersion
(
List
<
String
>
wxGroupIds
);
void
updateGenerationMachineIp
(
Integer
generation
,
String
machineIp
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupBizImpl.java
View file @
db50015f
...
...
@@ -350,6 +350,15 @@ public class BookGroupBizImpl implements BookGroupBiz {
return
list
.
stream
().
collect
(
Collectors
.
toMap
(
BookGroupDTO:
:
getId
,
dto
->
dto
));
}
@Override
public
List
<
BookGroupDTO
>
getBookGroupInfoByBookIdAndAdviserId
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
){
if
(
ListUtils
.
isEmpty
(
bookIds
)
||
ListUtils
.
isEmpty
(
adviserIds
))
{
return
null
;
}
return
bookGroupDao
.
getDTOByBookIdsAnsAdviserIds
(
bookIds
,
adviserIds
);
}
/**
* 获取社群书群二维码信息
*/
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
View file @
db50015f
...
...
@@ -19,6 +19,7 @@ import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import
com.pcloud.book.group.dao.BookClassifyBuyRecordDao
;
import
com.pcloud.book.group.dao.BookGroupCipherUserDao
;
import
com.pcloud.book.group.dao.BookGroupClassifyDao
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.BookQrcodeUserDao
;
import
com.pcloud.book.group.dao.JoinGroupCipherDao
;
import
com.pcloud.book.group.dao.LearningReportBrowseRecordDao
;
...
...
@@ -102,6 +103,7 @@ 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
;
...
...
@@ -165,6 +167,8 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
private
BookAuthUserBiz
bookAuthUserBiz
;
@Autowired
private
BookGroupCipherUserDao
bookGroupCipherUserDao
;
@Autowired
private
BookGroupDao
bookGroupDao
;
@Override
...
...
@@ -186,7 +190,7 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
BookGroupClassify
bookGroupClassify
=
new
BookGroupClassify
();
BeanUtils
.
copyProperties
(
addClassifyVO
,
bookGroupClassify
);
QrcodeNameAndProIdDTO
qrcodeNameAndProId
=
bookGroupBiz
.
getQrcodeNameAndProId
(
addClassifyVO
.
getBookGroupId
());
if
(
qrcodeNameAndProId
==
null
)
{
if
(
Objects
.
isNull
(
qrcodeNameAndProId
)
||
Objects
.
isNull
(
qrcodeNameAndProId
.
getProductId
())
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"请先填写社群码信息!"
);
}
bookGroupClassify
.
setProductId
(
qrcodeNameAndProId
.
getProductId
());
...
...
@@ -417,6 +421,12 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
@ParamLog
(
"获取分类基本信息"
)
public
ClassifyVO
getClassify
(
Long
classifyId
)
{
ClassifyVO
classifyVO
=
bookGroupClassifyDao
.
getClassify
(
classifyId
);
if
(
classifyVO
!=
null
)
{
BookGroupDTO
bookGroupDTO
=
bookGroupDao
.
getDTOById
(
classifyVO
.
getBookGroupId
());
if
(
bookGroupDTO
!=
null
)
{
classifyVO
.
setJoinGroupType
(
bookGroupDTO
.
getJoinGroupType
());
}
}
return
classifyVO
;
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
View file @
db50015f
...
...
@@ -27,6 +27,7 @@ import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import
com.pcloud.book.group.dto.GroupQrcodeServerDTO
;
import
com.pcloud.book.group.dto.PushAddUserMessageDTO
;
import
com.pcloud.book.group.dto.QrcodeNameAndProIdDTO
;
import
com.pcloud.book.group.dto.UpdateGroupNameDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.group.enums.QrcodeStatusEnum
;
...
...
@@ -47,6 +48,7 @@ import com.pcloud.book.riddle.dto.GroupRiddleDTO;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.constant.CacheConstant
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.constant.MQTopicProducer
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.ListUtils
;
...
...
@@ -58,6 +60,7 @@ import com.sdk.wxgroup.WxGroupSDK;
import
org.apache.commons.collections4.MapUtils
;
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
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -66,6 +69,7 @@ import org.springframework.util.CollectionUtils;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -111,6 +115,8 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
private
BookGroupBiz
bookGroupBiz
;
@Autowired
private
GroupTagBiz
groupTagBiz
;
@Autowired
private
AmqpTemplate
amqpTemplate
;
/**
...
...
@@ -242,6 +248,7 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
}
}
String
url
=
null
;
List
<
ClassifyQrcodeVO
>
canUserQrcode
=
Lists
.
newArrayList
();
for
(
ClassifyQrcodeVO
vo
:
collect
)
{
if
(
vo
.
getUserNumber
()
>=
classify
.
getChangeNumber
())
{
//将二维码修改为已满群状态
...
...
@@ -253,9 +260,14 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
log
.
info
(
"[前端调用切群接口] getChangeGroupQrCode 处理超出了但是没有更新状态的群 vo:{}"
,
vo
);
}
if
(
vo
.
getUserNumber
()
<
classify
.
getChangeNumber
())
{
url
=
vo
.
getQrcodeUrl
(
);
canUserQrcode
.
add
(
vo
);
}
}
// 获取群人数最少的可用群二维码返回出去
if
(!
CollectionUtils
.
isEmpty
(
canUserQrcode
))
{
ClassifyQrcodeVO
vo
=
canUserQrcode
.
stream
().
min
(
Comparator
.
comparingInt
(
ClassifyQrcodeVO:
:
getUserNumber
)).
orElseGet
(
ClassifyQrcodeVO:
:
new
);
url
=
StringUtil
.
isBlank
(
vo
.
getQrcodeUrl
())
?
null
:
vo
.
getQrcodeUrl
();
}
if
(
Objects
.
isNull
(
url
))
{
// 如果没有群则新增一个
String
qrcodeUrl
=
changeGroupQrCode
(
classifyId
);
...
...
@@ -436,6 +448,10 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
String
ip
=
Optional
.
ofNullable
(
groupVersion
.
get
(
wechatGroupId
)).
orElse
(
new
BookWxQrcodeDTO
()).
getWechatGroupIp
();
SendWeixinRequestTools
.
changeGroupName
(
robotId
,
changeGroupNameDTO
.
getWxGroupId
(),
wechatGroupName
,
ip
);
}
UpdateGroupNameDTO
updateGroupNameDTO
=
new
UpdateGroupNameDTO
();
updateGroupNameDTO
.
setId
(
id
);
updateGroupNameDTO
.
setGroupName
(
wechatGroupName
);
amqpTemplate
.
convertAndSend
(
MQTopicProducer
.
EXCHAGE
,
MQTopicProducer
.
MODIFY_WXGROUP_NAME
,
updateGroupNameDTO
);
}
@Override
...
...
@@ -797,4 +813,22 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
return
pageBeanNew
;
}
@Override
public
GroupQrcodeInfo4Advertising
getWechatGroupInfo
(
Long
qrcodeId
)
{
GroupQrcode
groupQrcode
=
groupQrcodeDao
.
getGroupQrcodeByqrcodeId
(
qrcodeId
);
GroupQrcodeInfo4Advertising
groupQrcodeInfo4Advertising
=
new
GroupQrcodeInfo4Advertising
();
groupQrcodeInfo4Advertising
.
setAdviserId
(
groupQrcode
.
getCreateUser
());
groupQrcodeInfo4Advertising
.
setGroupName
(
groupQrcode
.
getGroupName
());
groupQrcodeInfo4Advertising
.
setQrcodeUrl
(
groupQrcode
.
getQrcodeUrl
());
return
groupQrcodeInfo4Advertising
;
}
@Override
public
Map
<
Long
,
GroupQrcodeInfo4Advertising
>
getWechatGroupInfoMap
(
List
<
Long
>
qrcodeIds
)
{
if
(
ListUtils
.
isEmpty
(
qrcodeIds
)){
return
new
HashMap
<>();
}
return
groupQrcodeDao
.
getWechatGroupInfoMap
(
qrcodeIds
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/WeixinQrcodeBizImpl.java
View file @
db50015f
...
...
@@ -47,6 +47,7 @@ import java.util.Collections;
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
;
...
...
@@ -272,9 +273,14 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
return
;
}
newUrl
=
QrcodeUtils
.
create
(
weixinQrcodeVO
.
getQrcodeUrl
());
GroupRobotDTO
groupRobotDTO
=
wechatGroupConsr
.
getRobotInfoByWxUserId
(
weixinQrcodeVO
.
getRobotWxId
());
if
(
groupRobotDTO
!=
null
){
weixinQrcode
.
setRobotId
(
Long
.
valueOf
(
groupRobotDTO
.
getId
()));
if
(
Objects
.
isNull
(
weixinQrcodeVO
.
getRobotId
()))
{
LOGGER
.
info
(
"[新增二维码] robotId is null"
);
GroupRobotDTO
groupRobotDTO
=
wechatGroupConsr
.
getRobotInfoByWxUserId
(
weixinQrcodeVO
.
getRobotWxId
());
if
(
groupRobotDTO
!=
null
){
weixinQrcode
.
setRobotId
(
Long
.
valueOf
(
groupRobotDTO
.
getId
()));
}
}
else
{
weixinQrcode
.
setRobotId
(
weixinQrcodeVO
.
getRobotId
());
}
weixinQrcode
.
setUpdateState
(
0
);
}
else
{
...
...
@@ -419,6 +425,14 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
return
weixinQrcodeDao
.
listByWxGroupIds
(
wxGroupIds
)
==
null
?
new
HashMap
<>()
:
weixinQrcodeDao
.
listByWxGroupIds
(
wxGroupIds
);
}
@Override
public
void
updateGenerationMachineIp
(
Integer
generation
,
String
machineIp
)
{
if
(
null
==
generation
||
StringUtil
.
isEmpty
(
machineIp
))
{
return
;
}
weixinQrcodeDao
.
updateGenerationMachineIp
(
generation
,
machineIp
);
}
private
void
updateQrUrlVIP
(
List
<
UpdateQrDTO
>
updateQrs
)
{
if
(
ListUtils
.
isEmpty
(
updateQrs
))
{
return
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/BookGroupDao.java
View file @
db50015f
...
...
@@ -39,6 +39,13 @@ public interface BookGroupDao extends BaseDao<BookGroup> {
BookGroupDTO
getDTOByBookId
(
Long
bookId
,
Long
channelId
,
Long
adviserId
);
/**
*
* @param bookIds 书刊ID
* @param adviserIds 编辑ID
*/
List
<
BookGroupDTO
>
getDTOByBookIdsAnsAdviserIds
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
);
/**
* 根据书刊ID删除
* @param bookId 书刊ID
* @param channelId 运营ID
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
View file @
db50015f
...
...
@@ -147,6 +147,13 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
GroupQrcode
getGroupQrcodeByGroupId
(
String
wechatGroupId
);
/**
* @description 根据qrcodeId获取微信群信息
* @author 戴兴
* @date 2019/9/20 16:40
*/
GroupQrcode
getGroupQrcodeByqrcodeId
(
Long
qrcodeId
);
/**
* @Author: zhangdongwei
* 根据群分类ids获取群总数
* @param classifyIds
...
...
@@ -257,4 +264,6 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
List
<
ClassifyQrcodeVO
>
getQrcodeByClassifyId
(
Long
classifyId
);
List
<
GroupQrcode
>
getListByBookGroupIds
(
List
<
Long
>
bookGroupIds
);
Map
<
Long
,
GroupQrcodeInfo4Advertising
>
getWechatGroupInfoMap
(
List
<
Long
>
qrcodeIds
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/WeixinQrcodeDao.java
View file @
db50015f
...
...
@@ -168,4 +168,6 @@ public interface WeixinQrcodeDao extends BaseDao<WeixinQrcode> {
* 根据状态获取群数量
*/
Integer
countByState
(
Integer
state
,
List
<
String
>
altIds
);
void
updateGenerationMachineIp
(
Integer
generation
,
String
machineIp
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/BookGroupDaoImpl.java
View file @
db50015f
...
...
@@ -48,6 +48,14 @@ public class BookGroupDaoImpl extends BaseDaoImpl<BookGroup> implements BookGrou
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getDTOByBookId"
),
paramMap
);
}
@Override
public
List
<
BookGroupDTO
>
getDTOByBookIdsAnsAdviserIds
(
List
<
Long
>
bookIds
,
List
<
Long
>
adviserIds
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"bookIds"
,
bookIds
);
paramMap
.
put
(
"adviserIds"
,
adviserIds
);
return
super
.
getSqlSession
().
selectList
(
getStatement
(
"getDTOByBookIdsAnsAdviserIds"
),
paramMap
);
}
/**
* 根据书刊ID删除
*/
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
View file @
db50015f
...
...
@@ -167,6 +167,11 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
}
@Override
public
GroupQrcode
getGroupQrcodeByqrcodeId
(
Long
qrcodeId
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getGroupQrcodeByqrcodeId"
),
qrcodeId
);
}
@Override
public
Integer
countByClassifyIds
(
List
<
Long
>
classifyIds
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"countByClassifyIds"
),
classifyIds
);
}
...
...
@@ -244,6 +249,11 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
}
@Override
public
Map
<
Long
,
GroupQrcodeInfo4Advertising
>
getWechatGroupInfoMap
(
List
<
Long
>
qrcodeIds
)
{
return
this
.
getSqlSession
().
selectMap
(
this
.
getStatement
(
"getWechatGroupInfoMap"
),
qrcodeIds
,
"groupQrcodeId"
);
}
@Override
public
List
<
Long
>
getIdsByBookId
(
Long
bookId
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getIdsByBookId"
),
bookId
);
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/WeixinQrcodeDaoImpl.java
View file @
db50015f
...
...
@@ -174,4 +174,12 @@ public class WeixinQrcodeDaoImpl extends BaseDaoImpl<WeixinQrcode> implements We
paramMap
.
put
(
"altIds"
,
altIds
);
return
this
.
getSessionTemplate
().
selectOne
(
"countByState"
,
paramMap
);
}
@Override
public
void
updateGenerationMachineIp
(
Integer
generation
,
String
machineIp
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"generation"
,
generation
);
paramMap
.
put
(
"machineIp"
,
machineIp
);
this
.
getSessionTemplate
().
update
(
getStatement
(
"updateGenerationMachineIp"
),
paramMap
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/BookGroupServiceImpl.java
View file @
db50015f
...
...
@@ -5,6 +5,8 @@ import com.pcloud.book.group.dto.BookGroupDTO;
import
com.pcloud.book.group.dto.GroupCipherDTO
;
import
com.pcloud.book.group.dto.GroupUseDTO
;
import
com.pcloud.book.group.dto.PersonalQrcodeDTO
;
import
com.pcloud.book.group.dto.QueryByBookAdviserDTO
;
import
com.pcloud.book.group.dto.ResourceBrowseParamDto
;
import
com.pcloud.book.group.service.BookGroupService
;
import
com.pcloud.common.dto.ResponseDto
;
...
...
@@ -58,6 +60,15 @@ public class BookGroupServiceImpl implements BookGroupService {
}
/**
* 根据bookId和AdviserId批量获取社群书基本信息
*/
@Override
@PostMapping
(
value
=
"getBookGroupInfoByBookIdAndAdviserId"
)
public
ResponseEntity
<
ResponseDto
<
List
<
BookGroupDTO
>>>
getBookGroupInfoByBookIdAndAdviserId
(
@RequestBody
QueryByBookAdviserDTO
queryByBookAdviserDTO
)
throws
BizException
{
return
ResponseHandleUtil
.
toResponse
(
bookGroupBiz
.
getBookGroupInfoByBookIdAndAdviserId
(
queryByBookAdviserDTO
.
getBookIds
(),
queryByBookAdviserDTO
.
getAdviserIds
()));
}
/**
* 为信息流批量获取社群书基本信息
*/
@Override
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/WeixinQrcodeServiceImpl.java
View file @
db50015f
...
...
@@ -2,11 +2,7 @@ package com.pcloud.book.group.service.impl;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.dto.BookWxQrcodeDTO
;
import
com.pcloud.book.group.dto.SyncWeixinGroupIdDTO
;
import
com.pcloud.book.group.dto.UpdateQrDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeCountDTO
;
import
com.pcloud.book.group.dto.WeixinQrcodeDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.service.WeixinQrcodeService
;
import
com.pcloud.book.group.vo.ClassifyQrcodeVO
;
import
com.pcloud.common.dto.ResponseDto
;
...
...
@@ -133,4 +129,24 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
return
ResponseHandleUtil
.
toResponse
(
wxGroupId
);
}
@Override
@RequestMapping
(
value
=
"getWxGroupInfoById"
,
method
=
RequestMethod
.
GET
)
public
ResponseEntity
<
ResponseDto
<
GroupQrcodeInfo4Advertising
>>
getWxGroupInfoById
(
@RequestParam
(
"qrcodeId"
)
Long
qrcodeId
)
{
GroupQrcodeInfo4Advertising
wechatGroupInfo
=
groupQrcodeBiz
.
getWechatGroupInfo
(
qrcodeId
);
return
ResponseHandleUtil
.
toResponse
(
wechatGroupInfo
);
}
@Override
@RequestMapping
(
value
=
"getWxGroupInfoByIds"
,
method
=
RequestMethod
.
POST
)
public
ResponseEntity
<
ResponseDto
<
Map
<
Long
,
GroupQrcodeInfo4Advertising
>>>
getWxGroupInfoByIds
(
@RequestBody
List
<
Long
>
qrcodeIds
)
{
Map
<
Long
,
GroupQrcodeInfo4Advertising
>
wechatGroupInfoMap
=
groupQrcodeBiz
.
getWechatGroupInfoMap
(
qrcodeIds
);
return
ResponseHandleUtil
.
toResponse
(
wechatGroupInfoMap
);
}
@Override
@RequestMapping
(
value
=
"updateGenerationMachineIp"
,
method
=
RequestMethod
.
GET
)
public
void
updateGenerationMachineIp
(
@RequestParam
(
"generation"
)
Integer
generation
,
@RequestParam
(
"machineIp"
)
String
machineIp
)
{
weixinQrcodeBiz
.
updateGenerationMachineIp
(
generation
,
machineIp
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/vo/ClassifyVO.java
View file @
db50015f
...
...
@@ -54,6 +54,9 @@ public class ClassifyVO implements Serializable {
@ApiModelProperty
(
"创建人"
)
private
Long
createUser
;
@ApiModelProperty
(
"进群方式:1群二维码,2客服机器人"
)
private
Integer
joinGroupType
;
public
Integer
getRank
()
{
return
rank
;
}
...
...
@@ -158,6 +161,14 @@ public class ClassifyVO implements Serializable {
this
.
createUser
=
createUser
;
}
public
Integer
getJoinGroupType
()
{
return
joinGroupType
;
}
public
void
setJoinGroupType
(
Integer
joinGroupType
)
{
this
.
joinGroupType
=
joinGroupType
;
}
@Override
public
String
toString
()
{
return
"ClassifyVO{"
+
...
...
@@ -174,6 +185,7 @@ public class ClassifyVO implements Serializable {
", productSpecId="
+
productSpecId
+
", rank="
+
rank
+
", createUser="
+
createUser
+
", joinGroupType="
+
joinGroupType
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/WxLiveBroadcastReminderListener.java
View file @
db50015f
...
...
@@ -57,40 +57,42 @@ public class WxLiveBroadcastReminderListener {
@ParamLog
(
"直播开播提醒"
)
@RabbitHandler
public
void
onMessage
(
LiveCourseDetailInfoDto
liveCourse
)
throws
BizException
{
if
(
Objects
.
isNull
(
liveCourse
)
||
CollectionUtils
.
isEmpty
(
liveCourse
.
getTableDetailDtos
()))
{
return
;
}
Map
<
Long
,
Long
>
collect
=
liveCourse
.
getTableDetailDtos
().
stream
().
collect
(
Collectors
.
toMap
(
TableDetailDto:
:
getOriginId
,
TableDetailDto:
:
getTableId
));
final
List
<
GroupQrcodeServerDTO
>
wxGroups
=
groupQrcodeBiz
.
getWxGroupIdByServerId
(
Lists
.
newArrayList
(
collect
.
keySet
()));
log
.
info
(
"[直播开播提醒] : liveCourse :{} wxGroups:{}"
,
liveCourse
,
wxGroups
);
if
(
CollectionUtils
.
isEmpty
(
wxGroups
))
{
return
;
}
final
Map
<
Long
,
AccountSettingDto
>
accountMap
=
Maps
.
newHashMap
();
List
<
String
>
wxGroupIds
=
wxGroups
.
stream
().
map
(
GroupQrcodeServerDTO:
:
getWxGroupId
).
collect
(
Collectors
.
toList
());
Map
<
String
,
BookWxQrcodeDTO
>
groupVersion
=
weixinQrcodeBiz
.
getGroupVersion
(
wxGroupIds
);
final
List
<
GroupQrcodeServerDTO
>
wxGroups2
=
wxGroups
.
stream
().
collect
(
Collectors
.
collectingAndThen
(
Collectors
.
toCollection
(()
->
new
TreeSet
<>(
Comparator
.
comparing
(
GroupQrcodeServerDTO:
:
getWxGroupId
))),
ArrayList:
:
new
)
);
for
(
GroupQrcodeServerDTO
dto
:
wxGroups2
)
{
// 避免重复挂服务调用性能损耗
AccountSettingDto
accountSettingDto
=
accountMap
.
get
(
dto
.
getChannelId
());
if
(
Objects
.
isNull
(
accountSettingDto
))
{
accountSettingDto
=
qrcodeSceneConsr
.
getWechatInfo
(
dto
.
getChannelId
());
accountMap
.
put
(
dto
.
getChannelId
(),
accountSettingDto
);
}
String
linkUrl
=
SendWeixinRequestTools
.
splitUrlNew
(
accountSettingDto
,
dto
.
getLinkUrl
(),
dto
.
getBookGroupId
(),
dto
.
getClassifyId
(),
dto
.
getGroupQrcodeId
());
// 定位到具体课程
String
liveInfo
=
linkUrl
.
replace
(
"liveinfo?"
,
"lesson/"
+
liveCourse
.
getLessonId
()
+
"?tableId="
+
collect
.
get
(
dto
.
getServeId
())
+
"&"
);
String
shortUrl4Own
=
UrlUtils
.
getShortUrl4Own
(
liveInfo
);
SendTextMessageVO
vo
=
new
SendTextMessageVO
();
vo
.
setContent
(
"【"
+
liveCourse
.
getTitle
()
+
"】即将开播啦,感兴趣的同学们可以开始进入啦。猛戳直播链接:"
+
shortUrl4Own
);
vo
.
setWxGroupId
(
dto
.
getWxGroupId
());
// 负载均衡会根据群获取该群活跃小号,所以传什么都不重要,写死为“我为你笑着”
vo
.
setAltId
(
Optional
.
ofNullable
(
groupVersion
.
get
(
dto
.
getWxGroupId
())).
orElse
(
new
BookWxQrcodeDTO
()).
getRobotWxId
());
vo
.
setIp
(
Optional
.
ofNullable
(
groupVersion
.
get
(
dto
.
getWxGroupId
())).
orElse
(
new
BookWxQrcodeDTO
()).
getWechatGroupIp
());
WxGroupSDK
.
sendTextMessage
(
vo
);
}
// 20190929 消息量大,重复消息多,导致小号闪退或者崩溃,暂时屏蔽掉
log
.
info
(
"[直播开播提醒] liveCourse:{}"
,
liveCourse
);
// if (Objects.isNull(liveCourse) || CollectionUtils.isEmpty(liveCourse.getTableDetailDtos())) {
// return;
// }
// Map<Long, Long> collect = liveCourse.getTableDetailDtos().stream().collect(Collectors.toMap(TableDetailDto::getOriginId, TableDetailDto::getTableId));
// final List<GroupQrcodeServerDTO> wxGroups = groupQrcodeBiz.getWxGroupIdByServerId(Lists.newArrayList(collect.keySet()));
// log.info("[直播开播提醒] : liveCourse :{} wxGroups:{}", liveCourse, wxGroups);
// if (CollectionUtils.isEmpty(wxGroups)) {
// return;
// }
// final Map<Long, AccountSettingDto> accountMap = Maps.newHashMap();
// List<String> wxGroupIds = wxGroups.stream().map(GroupQrcodeServerDTO::getWxGroupId).collect(Collectors.toList());
// Map<String, BookWxQrcodeDTO> groupVersion = weixinQrcodeBiz.getGroupVersion(wxGroupIds);
// final List<GroupQrcodeServerDTO> wxGroups2 = wxGroups.stream().collect(
// Collectors. collectingAndThen(
// Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(GroupQrcodeServerDTO::getWxGroupId))), ArrayList::new)
// );
// for (GroupQrcodeServerDTO dto : wxGroups2) {
// // 避免重复挂服务调用性能损耗
// AccountSettingDto accountSettingDto = accountMap.get(dto.getChannelId());
// if (Objects.isNull(accountSettingDto)) {
// accountSettingDto = qrcodeSceneConsr.getWechatInfo(dto.getChannelId());
// accountMap.put(dto.getChannelId(), accountSettingDto);
// }
// String linkUrl = SendWeixinRequestTools.splitUrlNew(accountSettingDto, dto.getLinkUrl(), dto.getBookGroupId(), dto.getClassifyId(), dto.getGroupQrcodeId());
// // 定位到具体课程
// String liveInfo = linkUrl.replace("liveinfo?", "lesson/" + liveCourse.getLessonId() + "?tableId=" + collect.get(dto.getServeId()) + "&");
// String shortUrl4Own = UrlUtils.getShortUrl4Own(liveInfo);
// SendTextMessageVO vo = new SendTextMessageVO();
// vo.setContent("【" + liveCourse.getTitle() + "】即将开播啦,感兴趣的同学们可以开始进入啦。猛戳直播链接:" + shortUrl4Own);
// vo.setWxGroupId(dto.getWxGroupId());
// // 负载均衡会根据群获取该群活跃小号,所以传什么都不重要,写死为“我为你笑着”
// vo.setAltId(Optional.ofNullable(groupVersion.get(dto.getWxGroupId())).orElse(new BookWxQrcodeDTO()).getRobotWxId());
// vo.setIp(Optional.ofNullable(groupVersion.get(dto.getWxGroupId())).orElse(new BookWxQrcodeDTO()).getWechatGroupIp());
// WxGroupSDK.sendTextMessage(vo);
// }
}
}
pcloud-service-book/src/main/resources/mapper/book/Book.Mapper.xml
View file @
db50015f
...
...
@@ -1077,6 +1077,11 @@
BOOK B
ON
A.BOOK_ID = B.BOOK_ID AND A.IS_DELETE = 0 AND B.IS_DELETE = 0
AND
A.ADVISER_ID IN
<foreach
collection=
"agent4AdviserIds"
index=
"i"
item=
"item"
open=
"("
separator=
","
close=
")"
>
${item}
</foreach>
AND A.IS_MAIN_EDITOR = 1
LEFT JOIN
BOOK_TYPE T
...
...
pcloud-service-book/src/main/resources/mapper/group/BookGroupMapper.xml
View file @
db50015f
...
...
@@ -99,6 +99,21 @@
and create_user = #{adviserId,jdbcType=BIGINT}
ORDER BY create_time ASC limit 1
</select>
<select
id=
"getDTOByBookIdsAnsAdviserIds"
resultMap=
"BookGroupDTO"
parameterType=
"map"
>
select
<include
refid=
"Base_Column_List"
/>
from book_group
where is_delete = 0
and book_id in
<foreach
collection=
"bookIds"
open=
"("
close=
")"
item=
"item"
separator=
","
>
${item}
</foreach>
and create_user in
<foreach
collection=
"adviserIds"
open=
"("
close=
")"
item=
"item"
separator=
","
>
${item}
</foreach>
</select>
<select
id=
"getBookGroupCount"
resultType=
"Integer"
parameterType=
"Long"
>
SELECT
...
...
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
db50015f
...
...
@@ -351,6 +351,11 @@
where is_delete=0 and weixin_group_id=#{wechatGroupId} limit 1
</select>
<select
id=
"getGroupQrcodeByqrcodeId"
resultMap=
"BaseResultMap"
parameterType=
"long"
>
select
<include
refid=
"Base_Column_List"
/>
from book_group_qrcode
where is_delete=0 and id=#{qrcodeId} limit 1
</select>
<select
id=
"countByClassifyIds"
parameterType=
"list"
resultType=
"java.lang.Integer"
>
select count(1) from book_group_qrcode
where
...
...
@@ -725,4 +730,12 @@
AND t1.is_delete = 0
GROUP BY t.id
</select>
<select
id=
"getWechatGroupInfoMap"
parameterType=
"list"
resultType=
"com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising"
>
select id groupQrcodeId, group_name groupName, qrcode_url qrcodeUrl from book_group_qrcode where id in
<foreach
collection=
"list"
separator=
","
open=
"("
close=
")"
item=
"id"
>
#{id}
</foreach>
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/WeixinQrcode.Mapper.xml
View file @
db50015f
...
...
@@ -302,4 +302,8 @@
</foreach>
and use_state=#{state}
</select>
<update
id=
"updateGenerationMachineIp"
parameterType=
"map"
>
update weixin_qrcode_generation set virtual_machine_ip = #{machineIp} where generation = #{generation}
</update>
</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