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
b4527795
Commit
b4527795
authored
Jun 03, 2019
by
阮思源
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
群公告
parent
3228346a
Show whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
776 additions
and
5 deletions
+776
-5
BookApplication.java
...e-book/src/main/java/com/pcloud/book/BookApplication.java
+8
-0
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+23
-0
GroupAnnouncementBiz.java
.../java/com/pcloud/book/group/biz/GroupAnnouncementBiz.java
+35
-0
BookGroupClassifyBizImpl.java
.../pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
+5
-4
GroupAnnouncementBizImpl.java
.../pcloud/book/group/biz/impl/GroupAnnouncementBizImpl.java
+200
-0
GroupQrcodeBizImpl.java
...va/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
+6
-1
GroupAnnouncementDao.java
.../java/com/pcloud/book/group/dao/GroupAnnouncementDao.java
+36
-0
GroupQrcodeDao.java
...c/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
+21
-0
WeixinQrcodeDao.java
.../main/java/com/pcloud/book/group/dao/WeixinQrcodeDao.java
+7
-0
GroupAnnouncementDaoImpl.java
.../pcloud/book/group/dao/impl/GroupAnnouncementDaoImpl.java
+41
-0
GroupQrcodeDaoImpl.java
...va/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
+16
-0
WeixinQrcodeDaoImpl.java
...a/com/pcloud/book/group/dao/impl/WeixinQrcodeDaoImpl.java
+5
-0
GroupAnnouncement.java
.../java/com/pcloud/book/group/entity/GroupAnnouncement.java
+81
-0
GroupAnnouncementFacade.java
...com/pcloud/book/group/facade/GroupAnnouncementFacade.java
+37
-0
GroupAnnouncementFacadeImpl.java
...d/book/group/facade/impl/GroupAnnouncementFacadeImpl.java
+72
-0
MQTopicConumer.java
...c/main/java/com/pcloud/book/mq/config/MQTopicConumer.java
+5
-0
UpdateWXGroupNameListener.java
...a/com/pcloud/book/mq/topic/UpdateWXGroupNameListener.java
+61
-0
GroupAnnouncement.Mapper.xml
.../main/resources/mapper/group/GroupAnnouncement.Mapper.xml
+82
-0
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+28
-0
WeixinQrcode.Mapper.xml
...k/src/main/resources/mapper/group/WeixinQrcode.Mapper.xml
+7
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/BookApplication.java
View file @
b4527795
...
...
@@ -153,6 +153,14 @@ public class BookApplication {
return
RabbitMQFactory
.
bindingExchange
(
pushAddUserMessage
(),
MQTopicProducer
.
PUSH_ADD_USER_MESSAGE
);
}
@Bean
public
Queue
updateWXGroupNameQueue
()
{
return
RabbitMQFactory
.
queueBuilder
(
MQTopicConumer
.
UPDATE_WXGROUP_NAME
);
}
@Bean
public
Binding
updateWXGroupNameBind
()
{
return
RabbitMQFactory
.
bindingExchange
(
updateWXGroupNameQueue
(),
MQTopicProducer
.
UPDATE_WXGROUP_NAME
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
b4527795
...
...
@@ -134,4 +134,27 @@ public class WechatGroupConsr {
}
return
null
;
}
/**
* 根据群号获取群主微信号
*/
public
String
getMasterIdByGroupId
(
String
groupId
)
throws
BizException
{
LOGGER
.
info
(
"【根据群号获取群主微信号,<START>.[groupId]="
+
groupId
+
"]"
);
String
masterId
=
null
;
if
(
groupId
==
null
)
{
return
null
;
}
try
{
masterId
=
ResponseHandleUtil
.
parseResponse
(
groupMemberService
.
getMasterIdByGroupId
(
groupId
),
String
.
class
);
return
masterId
;
}
catch
(
BizException
e
)
{
LOGGER
.
warn
(
"根据群号获取群主微信号失败:"
+
e
.
getMessage
(),
e
);
throw
new
BizException
(
e
.
getCode
(),
e
.
getMessage
());
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"根据群号获取群主微信号.[getMasterIdByGroupId]:"
+
e
.
getMessage
(),
e
);
throw
new
BookBizException
(
BookBizException
.
INVOKE_RES_ERROR
,
"服务内部错误,请稍后重试"
);
}
finally
{
LOGGER
.
info
(
"【根据群号获取群主微信号,<END>--masterId="
+
masterId
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/GroupAnnouncementBiz.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
biz
;
import
com.pcloud.book.group.entity.GroupAnnouncement
;
public
interface
GroupAnnouncementBiz
{
/**
* 新增群公告
* @param groupAnnouncement
* @return
*/
Long
createGroupAnnouncement
(
GroupAnnouncement
groupAnnouncement
);
/**
* 修改群公告
* @param groupAnnouncement
*/
void
updateGroupAnnouncement
(
GroupAnnouncement
groupAnnouncement
);
/**
* 获取群公告
* @param classifyId
* @param bookGroupId
* @return
*/
GroupAnnouncement
getGroupAnnouncement
(
Long
classifyId
,
Long
bookGroupId
);
/**
* 按群设施群公告
* @param bookGroupId
* @param classifyId
* @param weixinGroupId
*/
void
setAnForGroup
(
Long
bookGroupId
,
Long
classifyId
,
String
weixinGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/BookGroupClassifyBizImpl.java
View file @
b4527795
...
...
@@ -10,10 +10,7 @@ import com.pcloud.book.consumer.resource.ProductConsr;
import
com.pcloud.book.consumer.settlement.SettlementConsr
;
import
com.pcloud.book.consumer.trade.TradeConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.biz.BookGroupBiz
;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.biz.*
;
import
com.pcloud.book.group.dao.BookClassifyBuyRecordDao
;
import
com.pcloud.book.group.dao.BookGroupClassifyDao
;
import
com.pcloud.book.group.dao.BookQrcodeUserDao
;
...
...
@@ -121,6 +118,8 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
private
MessageConsr
messageConsr
;
@Autowired
private
TradeConsr
tradeConsr
;
@Autowired
private
GroupAnnouncementBiz
groupAnnouncementBiz
;
@Override
@ParamLog
(
"新增分类"
)
...
...
@@ -161,6 +160,8 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
groupQrcode
.
setClassifyId
(
bookGroupClassify
.
getId
());
groupQrcode
.
setQrcodeHeadUrl
(
readerConsr
.
getNineHeadUrl
());
groupQrcodeBiz
.
insert
(
groupQrcode
);
//获取该社群书下是否有群公告
groupAnnouncementBiz
.
setAnForGroup
(
addClassifyVO
.
getBookGroupId
(),
null
,
oneQrcode
.
getWeixinGroupId
());
//新增一个规格
Long
specId
=
addSpecification
(
bookGroupClassify
.
getPrice
(),
qrcodeNameAndProId
.
getProductId
(),
addClassifyVO
.
getChannelId
(),
bookGroupClassify
.
getClassify
());
bookGroupClassify
.
setProductSpecId
(
specId
);
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupAnnouncementBizImpl.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
biz
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.biz.GroupAnnouncementBiz
;
import
com.pcloud.book.group.dao.GroupAnnouncementDao
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.dao.WeixinQrcodeDao
;
import
com.pcloud.book.group.entity.GroupAnnouncement
;
import
com.pcloud.book.group.entity.WeixinQrcode
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.sdk.wxgroup.GroupInfoVO
;
import
com.sdk.wxgroup.ModifyNoticeVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/5/24 16:27
**/
@Component
(
"groupAnnouncementBiz"
)
public
class
GroupAnnouncementBizImpl
implements
GroupAnnouncementBiz
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
GroupAnnouncementBiz
.
class
);
@Autowired
private
GroupAnnouncementDao
groupAnnouncementDao
;
@Autowired
private
GroupQrcodeDao
groupQrcodeDao
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
@Autowired
private
WeixinQrcodeDao
weixinQrcodeDao
;
@ParamLog
(
"新增群公告"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
Long
createGroupAnnouncement
(
GroupAnnouncement
groupAnnouncement
)
{
if
(
StringUtil
.
isEmpty
(
groupAnnouncement
.
getAnnouncementContent
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"公告内容不能为空!"
);
}
if
(
groupAnnouncement
.
getBookGroupId
()
==
null
&&
groupAnnouncement
.
getBookGroupClassifyId
()
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"社群书id和分类id不能同时为空!"
);
}
Long
bookGroupId
=
groupAnnouncement
.
getBookGroupId
();
Long
classifyId
=
groupAnnouncement
.
getBookGroupClassifyId
();
//新增之前判断是否重复添加
if
(
bookGroupId
!=
null
&&
groupAnnouncementDao
.
getByGroupBookId
(
bookGroupId
)
!=
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"该社群码下已有公告,请勿重复添加!"
);
}
if
(
classifyId
!=
null
&&
groupAnnouncementDao
.
getByClassifyId
(
classifyId
)
!=
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"该群分类下已有公告,请勿重复添加!"
);
}
//新增群发
groupAnnouncementDao
.
insert
(
groupAnnouncement
);
String
content
=
groupAnnouncement
.
getAnnouncementContent
();
List
<
String
>
wechatGroupIds
=
new
ArrayList
<>();
//根据书群发
if
(
bookGroupId
!=
null
&&
classifyId
==
null
)
{
//根据书查询群id集合
wechatGroupIds
=
groupQrcodeDao
.
getWeixinGroupIdsByBookGroupId
(
bookGroupId
);
}
//根据分类群发
if
(
bookGroupId
==
null
&&
classifyId
!=
null
)
{
//根据分类查询群id集合
wechatGroupIds
=
groupQrcodeDao
.
getWeixinGroupIdsByClassifyId
(
classifyId
);
}
dealAnnouncement
(
wechatGroupIds
,
content
);
return
groupAnnouncement
.
getId
();
}
@ParamLog
(
"修改群公告"
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
updateGroupAnnouncement
(
GroupAnnouncement
groupAnnouncement
)
{
if
(
StringUtil
.
isEmpty
(
groupAnnouncement
.
getAnnouncementContent
()))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"公告内容不能为空!"
);
}
if
(
groupAnnouncement
.
getId
()
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"公告id不能为空!"
);
}
GroupAnnouncement
groupAnnouncementOld
=
groupAnnouncementDao
.
getById
(
groupAnnouncement
.
getId
());
if
(
groupAnnouncementOld
==
null
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"该公告不存在!"
);
}
Long
bookGroupId
=
groupAnnouncementOld
.
getBookGroupId
();
Long
classifyId
=
groupAnnouncementOld
.
getBookGroupClassifyId
();
String
content
=
groupAnnouncement
.
getAnnouncementContent
();
//如果群公告一样就不修改
if
(
groupAnnouncement
.
getAnnouncementContent
().
equals
(
groupAnnouncementOld
.
getAnnouncementContent
())){
return
;
}
groupAnnouncementDao
.
updateContentById
(
content
,
groupAnnouncement
.
getId
());
List
<
String
>
wechatGroupIds
=
new
ArrayList
<>();
//如果是按照分类修改,则直接修改
if
(
bookGroupId
==
null
&&
classifyId
!=
null
)
{
//根据分类查询群id集合
wechatGroupIds
=
groupQrcodeDao
.
getWeixinGroupIdsByClassifyId
(
classifyId
);
}
//如果是按照社群书修改,则判断下该社群书下的分类是否已经创建了群公告,如果有,则不修改这部分分类下的群公告
if
(
bookGroupId
!=
null
&&
classifyId
==
null
)
{
//根据书查询群id集合
wechatGroupIds
=
groupQrcodeDao
.
getWeixinGroupIdsByBookGroupId
(
bookGroupId
);
if
(!
ListUtils
.
isEmpty
(
wechatGroupIds
))
{
//根据社群码id获取已经设置过公告的微信群id集合
List
<
String
>
hasAnnWechatGroupIds
=
groupAnnouncementDao
.
getHasAnnGroupIdsByBookGroupId
(
bookGroupId
);
if
(!
ListUtils
.
isEmpty
(
hasAnnWechatGroupIds
))
{
wechatGroupIds
.
removeAll
(
hasAnnWechatGroupIds
);
}
}
}
dealAnnouncement
(
wechatGroupIds
,
content
);
}
@Override
public
GroupAnnouncement
getGroupAnnouncement
(
Long
classifyId
,
Long
bookGroupId
)
{
if
(
classifyId
==
null
&&
bookGroupId
==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"社群码id和群分类id不能同时为空!"
);
}
GroupAnnouncement
groupAnnouncement
=
null
;
if
(
bookGroupId
!=
null
){
groupAnnouncement
=
groupAnnouncementDao
.
getByGroupBookId
(
bookGroupId
);
}
if
(
classifyId
!=
null
){
groupAnnouncement
=
groupAnnouncementDao
.
getByClassifyId
(
classifyId
);
}
if
(
groupAnnouncement
==
null
)
{
groupAnnouncement
=
new
GroupAnnouncement
();
}
return
groupAnnouncement
;
}
/**
* 按照微信群设置群公告
*
* @param bookGroupId
* @param classifyId
* @param weixinGroupId
*/
@ParamLog
(
"按照微信群设置群公告"
)
@Override
public
void
setAnForGroup
(
Long
bookGroupId
,
Long
classifyId
,
String
weixinGroupId
)
{
if
(
bookGroupId
==
null
&&
classifyId
==
null
)
{
return
;
}
GroupAnnouncement
groupAnnouncement
=
null
;
if
(
classifyId
!=
null
)
{
groupAnnouncement
=
groupAnnouncementDao
.
getByClassifyId
(
classifyId
);
}
if
(
groupAnnouncement
==
null
)
{
groupAnnouncement
=
groupAnnouncementDao
.
getByGroupBookId
(
bookGroupId
);
}
if
(
groupAnnouncement
!=
null
)
{
List
<
String
>
wechatGroupIds
=
new
ArrayList
<>();
wechatGroupIds
.
add
(
weixinGroupId
);
dealAnnouncement
(
wechatGroupIds
,
groupAnnouncement
.
getAnnouncementContent
());
}
}
/**
* 设置群公告
*/
private
void
dealAnnouncement
(
List
<
String
>
wechatGroupIds
,
String
content
)
{
if
(!
ListUtils
.
isEmpty
(
wechatGroupIds
))
{
//循环设置群公告
for
(
String
wechatGroupId
:
wechatGroupIds
)
{
ModifyNoticeVO
modifyNoticeVO
=
new
ModifyNoticeVO
();
modifyNoticeVO
.
setContent
(
content
);
modifyNoticeVO
.
setWxGroupId
(
wechatGroupId
);
// 调内部接口获取群主微信号
WeixinQrcode
weixinQrcode
=
weixinQrcodeDao
.
getByGroupId
(
wechatGroupId
);
LOGGER
.
info
(
"开始拿群信息wechatGroupId"
+
wechatGroupId
+
"robotId="
+
weixinQrcode
.
getRobotWxId
());
GroupInfoVO
groupInfoVO
=
WxGroupSDK
.
getGroupInfo
(
wechatGroupId
,
weixinQrcode
.
getRobotWxId
());
LOGGER
.
info
(
"结束拿群信息"
+
groupInfoVO
.
toString
());
if
(
groupInfoVO
==
null
)
{
continue
;
}
modifyNoticeVO
.
setMasterId
(
groupInfoVO
.
getGroupOwner
());
//设置群公告
LOGGER
.
info
(
"设置群公告开始"
+
modifyNoticeVO
.
toString
());
WxGroupSDK
.
modifyNotice
(
modifyNoticeVO
);
LOGGER
.
info
(
"设置群公告结束"
+
modifyNoticeVO
.
toString
());
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
View file @
b4527795
...
...
@@ -4,6 +4,7 @@ import com.pcloud.book.base.exception.BookBizException;
import
com.pcloud.book.consumer.reader.ReaderConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.biz.GroupAnnouncementBiz
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.biz.WeixinQrcodeBiz
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
...
...
@@ -21,7 +22,6 @@ import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import
com.pcloud.book.group.vo.ClassifyVO
;
import
com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO
;
import
com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO
;
import
com.pcloud.book.keywords.biz.BookGuideBiz
;
import
com.pcloud.book.keywords.dao.BookKeywordRecordDao
;
import
com.pcloud.book.keywords.dto.KeywordUserCountDTO
;
import
com.pcloud.book.mq.producer.BookMQProducer
;
...
...
@@ -63,6 +63,8 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
private
BookKeywordRecordDao
bookKeywordRecordDao
;
@Autowired
private
ReaderConsr
readerConsr
;
@Autowired
private
GroupAnnouncementBiz
groupAnnouncementBiz
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
...
@@ -258,6 +260,9 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
groupQrcode
.
setGroupName
(
groupName
);
groupQrcode
.
setClassifyId
(
classifyId
);
this
.
insert
(
groupQrcode
);
//获取该社群书下是否有群公告
ClassifyVO
classifyVO
=
bookGroupClassifyBiz
.
getClassify
(
classifyId
);
groupAnnouncementBiz
.
setAnForGroup
(
classifyVO
.
getBookGroupId
(),
classifyId
,
oneQrcode
.
getWeixinGroupId
());
//String robotId = wechatGroupConsr.getRobotIdByGroupId(oneQrcode.getWeixinGroupId());
SendWeixinRequestTools
.
changeGroupName
(
oneQrcode
.
getRobotWxId
(),
oneQrcode
.
getWeixinGroupId
(),
groupName
);
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupAnnouncementDao.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
dao
;
import
com.pcloud.book.group.entity.GroupAnnouncement
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
public
interface
GroupAnnouncementDao
extends
BaseDao
<
GroupAnnouncement
>
{
/**
* 更新公告内容
* @param content
* @param id
*/
void
updateContentById
(
String
content
,
Long
id
);
/**
* 根据社群码id获取已经设置过公告的微信群id集合
* @param bookGroupId
* @return
*/
List
<
String
>
getHasAnnGroupIdsByBookGroupId
(
Long
bookGroupId
);
/**
* 根据社群码id获取
* @param bookGroupId
* @return
*/
GroupAnnouncement
getByGroupBookId
(
Long
bookGroupId
);
/**
* 根据分类id获取
* @param classifyId
* @return
*/
GroupAnnouncement
getByClassifyId
(
Long
classifyId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
View file @
b4527795
...
...
@@ -108,4 +108,25 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* @Date:2019/5/7 18:14
*/
ChangeGroupNameDTO
getUpdateGroupNameParam
(
Long
id
);
/**
* 根据社群书二维码id查询群id集合
* @param bookGroupId
* @return
*/
List
<
String
>
getWeixinGroupIdsByBookGroupId
(
Long
bookGroupId
);
/**
* 根据群分类id查询群id集合
* @param classifyId
* @return
*/
List
<
String
>
getWeixinGroupIdsByClassifyId
(
Long
classifyId
);
/**
* 根据群号查询
* @param wechatGroupId
* @return
*/
GroupQrcode
getGroupQrcodeByGroupId
(
String
wechatGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/WeixinQrcodeDao.java
View file @
b4527795
...
...
@@ -128,4 +128,11 @@ public interface WeixinQrcodeDao extends BaseDao<WeixinQrcode> {
* @Date:2019/5/13 14:35
*/
void
updateState
(
Long
weixinQrcodeId
,
Integer
updateState
);
/**
* 获取群信息
* @param wechatGroupId
* @return
*/
WeixinQrcode
getByGroupId
(
String
wechatGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupAnnouncementDaoImpl.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
dao
.
impl
;
import
com.pcloud.book.group.dao.GroupAnnouncementDao
;
import
com.pcloud.book.group.entity.GroupAnnouncement
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/5/24 16:06
**/
@Component
(
"groupAnnouncementDao"
)
public
class
GroupAnnouncementDaoImpl
extends
BaseDaoImpl
<
GroupAnnouncement
>
implements
GroupAnnouncementDao
{
@Override
public
void
updateContentById
(
String
content
,
Long
id
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
();
paramMap
.
put
(
"content"
,
content
);
paramMap
.
put
(
"id"
,
id
);
this
.
getSqlSession
().
update
(
this
.
getStatement
(
"updateContentById"
),
paramMap
);
}
@Override
public
List
<
String
>
getHasAnnGroupIdsByBookGroupId
(
Long
bookGroupId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getHasAnnGroupIdsByBookGroupId"
),
bookGroupId
);
}
@Override
public
GroupAnnouncement
getByGroupBookId
(
Long
bookGroupId
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getByGroupBookId"
),
bookGroupId
);
}
@Override
public
GroupAnnouncement
getByClassifyId
(
Long
classifyId
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getByClassifyId"
),
classifyId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
View file @
b4527795
...
...
@@ -104,4 +104,20 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
public
ChangeGroupNameDTO
getUpdateGroupNameParam
(
Long
id
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getUpdateGroupNameParam"
),
id
);
}
@Override
public
List
<
String
>
getWeixinGroupIdsByBookGroupId
(
Long
bookGroupId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getWeixinGroupIdsByBookGroupId"
),
bookGroupId
);
}
@Override
public
List
<
String
>
getWeixinGroupIdsByClassifyId
(
Long
classifyId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getWeixinGroupIdsByClassifyId"
),
classifyId
);
}
@Override
public
GroupQrcode
getGroupQrcodeByGroupId
(
String
wechatGroupId
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getGroupQrcodeByGroupId"
),
wechatGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/WeixinQrcodeDaoImpl.java
View file @
b4527795
...
...
@@ -121,4 +121,9 @@ public class WeixinQrcodeDaoImpl extends BaseDaoImpl<WeixinQrcode> implements We
paramMap
.
put
(
"weixinQrcodeId"
,
weixinQrcodeId
);
this
.
getSqlSession
().
update
(
this
.
getStatement
(
"updateState"
),
paramMap
);
}
@Override
public
WeixinQrcode
getByGroupId
(
String
wechatGroupId
)
{
return
this
.
getSqlSession
().
selectOne
(
this
.
getStatement
(
"getByGroupId"
),
wechatGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/entity/GroupAnnouncement.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
entity
;
import
com.pcloud.common.entity.BaseEntity
;
import
io.swagger.annotations.ApiModelProperty
;
/**
* @Description 群公告
* @Author ruansiyuan
* @Date 2019/5/24 15:13
**/
public
class
GroupAnnouncement
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
-
2226196406799320902L
;
@ApiModelProperty
(
"社群书id"
)
private
Long
bookGroupId
;
@ApiModelProperty
(
"群分类id"
)
private
Long
bookGroupClassifyId
;
@ApiModelProperty
(
"群公告内容"
)
private
String
announcementContent
;
@ApiModelProperty
(
"创建人"
)
private
Long
createUser
;
@ApiModelProperty
(
"更新人"
)
private
Long
updateUser
;
public
Long
getBookGroupId
()
{
return
bookGroupId
;
}
public
void
setBookGroupId
(
Long
bookGroupId
)
{
this
.
bookGroupId
=
bookGroupId
;
}
public
Long
getBookGroupClassifyId
()
{
return
bookGroupClassifyId
;
}
public
void
setBookGroupClassifyId
(
Long
bookGroupClassifyId
)
{
this
.
bookGroupClassifyId
=
bookGroupClassifyId
;
}
public
String
getAnnouncementContent
()
{
return
announcementContent
;
}
public
void
setAnnouncementContent
(
String
announcementContent
)
{
this
.
announcementContent
=
announcementContent
;
}
public
Long
getCreateUser
()
{
return
createUser
;
}
public
void
setCreateUser
(
Long
createUser
)
{
this
.
createUser
=
createUser
;
}
public
Long
getUpdateUser
()
{
return
updateUser
;
}
public
void
setUpdateUser
(
Long
updateUser
)
{
this
.
updateUser
=
updateUser
;
}
@Override
public
String
toString
()
{
return
"GroupAnnouncement{"
+
", bookGroupId="
+
bookGroupId
+
", bookGroupClassifyId="
+
bookGroupClassifyId
+
", announcementContent='"
+
announcementContent
+
'\''
+
", createUser="
+
createUser
+
", updateUser="
+
updateUser
+
"} "
+
super
.
toString
();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/GroupAnnouncementFacade.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
facade
;
import
com.pcloud.book.group.entity.GroupAnnouncement
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.web.bind.annotation.*
;
@Api
(
description
=
"群公告"
)
public
interface
GroupAnnouncementFacade
{
@ApiOperation
(
"新增群公告"
)
@PostMapping
(
"createGroupAnnouncement"
)
ResponseDto
<?>
createGroupAnnouncement
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestBody
@ApiParam
(
"群公告实体"
)
GroupAnnouncement
groupAnnouncement
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
"修改群公告"
)
@PostMapping
(
"updateGroupAnnouncement"
)
ResponseDto
<?>
updateGroupAnnouncement
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestBody
@ApiParam
(
"群公告实体"
)
GroupAnnouncement
groupAnnouncement
)
throws
BizException
,
PermissionException
;
@ApiOperation
(
"获取群公告"
)
@GetMapping
(
"getGroupAnnouncement"
)
ResponseDto
<?>
getGroupAnnouncement
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestParam
(
value
=
"classifyId"
,
required
=
false
)
@ApiParam
(
"分类id"
)
Long
classifyId
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
false
)
@ApiParam
(
"社群码id"
)
Long
bookGroupId
)
throws
BizException
,
PermissionException
;
}
pcloud-service-book/src/main/java/com/pcloud/book/group/facade/impl/GroupAnnouncementFacadeImpl.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
group
.
facade
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.group.biz.GroupAnnouncementBiz
;
import
com.pcloud.book.group.entity.GroupAnnouncement
;
import
com.pcloud.book.group.facade.GroupAnnouncementFacade
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiParam
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
/**
* @Description
* @Author ruansiyuan
* @Date 2019/5/24 16:29
**/
@RestController
(
"groupAnnouncementFacade"
)
@RequestMapping
(
"groupAnnouncement"
)
public
class
GroupAnnouncementFacadeImpl
implements
GroupAnnouncementFacade
{
@Autowired
private
GroupAnnouncementBiz
groupAnnouncementBiz
;
@ApiOperation
(
"新增群公告"
)
@PostMapping
(
"createGroupAnnouncement"
)
@Override
public
ResponseDto
<?>
createGroupAnnouncement
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestBody
@ApiParam
(
"群公告实体"
)
GroupAnnouncement
groupAnnouncement
)
throws
BizException
,
PermissionException
{
Long
partyId
=
(
Long
)
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
if
(
groupAnnouncement
==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"群公告实体不能为空!"
);
}
groupAnnouncement
.
setCreateUser
(
partyId
);
groupAnnouncement
.
setUpdateUser
(
partyId
);
return
new
ResponseDto
<>(
groupAnnouncementBiz
.
createGroupAnnouncement
(
groupAnnouncement
));
}
@ApiOperation
(
"修改群公告"
)
@PostMapping
(
"updateGroupAnnouncement"
)
@Override
public
ResponseDto
<?>
updateGroupAnnouncement
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestBody
@ApiParam
(
"群公告实体"
)
GroupAnnouncement
groupAnnouncement
)
throws
BizException
,
PermissionException
{
Long
partyId
=
(
Long
)
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
if
(
groupAnnouncement
==
null
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"群公告实体不能为空!"
);
}
groupAnnouncement
.
setUpdateUser
(
partyId
);
groupAnnouncementBiz
.
updateGroupAnnouncement
(
groupAnnouncement
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"获取群公告"
)
@GetMapping
(
"getGroupAnnouncement"
)
@Override
public
ResponseDto
<?>
getGroupAnnouncement
(
@RequestHeader
(
"token"
)
@ApiParam
(
"token信息"
)
String
token
,
@RequestParam
(
value
=
"classifyId"
,
required
=
false
)
@ApiParam
(
"分类id"
)
Long
classifyId
,
@RequestParam
(
value
=
"bookGroupId"
,
required
=
false
)
@ApiParam
(
"社群码id"
)
Long
bookGroupId
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
return
new
ResponseDto
<>(
groupAnnouncementBiz
.
getGroupAnnouncement
(
classifyId
,
bookGroupId
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/mq/config/MQTopicConumer.java
View file @
b4527795
...
...
@@ -50,4 +50,9 @@ public class MQTopicConumer {
*/
public
static
final
String
PUSH_ADD_USER_MESSAGE
=
PREFIX
+
MQTopicProducer
.
PUSH_ADD_USER_MESSAGE
;
/**
* 修改微信群名称
*/
public
static
final
String
UPDATE_WXGROUP_NAME
=
PREFIX
+
MQTopicProducer
.
UPDATE_WXGROUP_NAME
;
}
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/UpdateWXGroupNameListener.java
0 → 100644
View file @
b4527795
package
com
.
pcloud
.
book
.
mq
.
topic
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.wechatgroup.message.dto.GroupNameDTO
;
import
com.sdk.wxgroup.ChangeNameVO
;
import
com.sdk.wxgroup.SendTextMessageVO
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.amqp.rabbit.annotation.RabbitHandler
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
@RabbitListener
(
queues
=
MQTopicConumer
.
UPDATE_WXGROUP_NAME
)
public
class
UpdateWXGroupNameListener
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
UpdateWXGroupNameListener
.
class
);
@Autowired
private
GroupQrcodeDao
groupQrcodeDao
;
@Autowired
private
WechatGroupConsr
wechatGroupConsr
;
@ParamLog
(
"接收修改群名称topic"
)
@RabbitHandler
public
void
onMessage
(
GroupNameDTO
groupNameDTO
)
throws
BizException
{
try
{
String
wechatGroupId
=
groupNameDTO
.
getWechatGroupId
();
if
(
groupNameDTO
==
null
||
wechatGroupId
==
null
||
groupNameDTO
.
getNewGroupName
()
==
null
||
groupNameDTO
.
getNickName
()
==
null
)
return
;
GroupQrcode
groupQrcode
=
groupQrcodeDao
.
getGroupQrcodeByGroupId
(
wechatGroupId
);
if
(
groupQrcode
==
null
)
{
LOGGER
.
info
(
"没有找到该群"
+
wechatGroupId
);
return
;
}
if
(!
groupNameDTO
.
getNewGroupName
().
equals
(
groupQrcode
.
getGroupName
()))
{
ChangeNameVO
changeNameVO
=
new
ChangeNameVO
();
changeNameVO
.
setName
(
groupQrcode
.
getGroupName
());
changeNameVO
.
setWxGroupId
(
wechatGroupId
);
String
altId
=
wechatGroupConsr
.
getRobotIdByGroupId
(
wechatGroupId
);
changeNameVO
.
setAltId
(
altId
);
WxGroupSDK
.
changeGroupName
(
changeNameVO
);
SendTextMessageVO
sendTextMessageVO
=
new
SendTextMessageVO
();
sendTextMessageVO
.
setContent
(
"@"
+
groupNameDTO
.
getNickName
()+
",为方便群友入群分享好的助学方法,请不要随意修改群名。如再修改,会将您移出群聊。谢谢配合。"
);
sendTextMessageVO
.
setAltId
(
altId
);
sendTextMessageVO
.
setGroupId
(
wechatGroupId
);
WxGroupSDK
.
sendTextMessage
(
sendTextMessageVO
);
}
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"接收修改群名称失败"
+
e
.
getMessage
(),
e
);
}
}
}
pcloud-service-book/src/main/resources/mapper/group/GroupAnnouncement.Mapper.xml
0 → 100644
View file @
b4527795
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.group.dao.impl.GroupAnnouncementDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.group.entity.GroupAnnouncement"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"book_group_id"
property=
"bookGroupId"
jdbcType=
"BIGINT"
/>
<result
column=
"book_group_classify_id"
property=
"bookGroupClassifyId"
jdbcType=
"BIGINT"
/>
<result
column=
"announcement_content"
property=
"announcementContent"
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,book_group_id,book_group_classify_id,announcement_content,create_user,create_time,update_user,update_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.group.entity.GroupAnnouncement"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
INSERT INTO group_announcement
<trim
prefix=
"("
suffix=
")"
suffixOverrides=
","
>
book_group_id,
book_group_classify_id,
announcement_content,
create_user,
create_time,
update_user,
update_time,
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
#{bookGroupId,jdbcType=BIGINT},
#{bookGroupClassifyId,jdbcType=BIGINT},
#{announcementContent,jdbcType=VARCHAR},
#{createUser,jdbcType=BIGINT},
now(),
#{updateUser,jdbcType=BIGINT},
NOW(),
</trim>
</insert>
<!--根据id查询-->
<select
id=
"getById"
parameterType=
"Long"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from group_announcement where id=#{id}
</select>
<!--更新群公告内容-->
<update
id=
"updateContentById"
parameterType=
"map"
>
update group_announcement set
announcement_content=#{content},
update_time=now()
where id=#{id}
</update>
<!--根据社群码id获取已经设置过公告的微信群id集合-->
<select
id=
"getHasAnnGroupIdsByBookGroupId"
parameterType=
"Long"
resultType=
"String"
>
SELECT
t2.weixin_group_id
FROM
group_announcement t
INNER JOIN book_group_classify t1 ON t.book_group_classify_id = t1.id
INNER JOIN book_group_qrcode t2 ON t1.id = t2.classify_id
WHERE
t1.book_group_id = #{bookGroupId}
</select>
<!--根据社群码id获取-->
<select
id=
"getByGroupBookId"
parameterType=
"Long"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from group_announcement
where book_group_id=#{bookGroupId}
</select>
<!--根据群分类id获取-->
<select
id=
"getByClassifyId"
parameterType=
"Long"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from group_announcement
where book_group_classify_id=#{classifyId}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
b4527795
...
...
@@ -248,4 +248,31 @@
AND c.book_id = b.BOOK_ID
AND q.id = #{qrcodeId}
</select>
<!--根据社群书二维码id查询群id集合-->
<select
id=
"getWeixinGroupIdsByBookGroupId"
parameterType=
"Long"
resultType=
"String"
>
SELECT
DISTINCT t.weixin_group_id
FROM
book_group_qrcode t
INNER JOIN book_group_classify t1 ON t.classify_id = t1.id
WHERE
t1.book_group_id = #{bookGroupId}
</select>
<!--根据群分类id查询群id集合-->
<select
id=
"getWeixinGroupIdsByClassifyId"
parameterType=
"Long"
resultType=
"String"
>
SELECT
DISTINCT t.weixin_group_id
FROM
book_group_qrcode t
WHERE
classify_id = #{classifyId}
</select>
<!--根据群号查询-->
<select
id=
"getGroupQrcodeByGroupId"
parameterType=
"String"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from book_group_qrcode
where is_delete=0 and weixin_group_id=#{wechatGroupId} limit 1
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/group/WeixinQrcode.Mapper.xml
View file @
b4527795
...
...
@@ -213,4 +213,10 @@
WHERE ID = #{weixinQrcodeId}
</update>
<select
id=
"getByGroupId"
parameterType=
"String"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from weixin_qrcode where
weixin_group_id = #{wechatGroupId}
limit 1
</select>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment