Commit e8cebf8a by 桂前礼

set room manager

parent a3bc8b02
......@@ -6,12 +6,14 @@ import com.pcloud.book.group.dto.GroupQrcodeInfoDTO;
import com.pcloud.book.group.dto.GroupQrcodeServerDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
import com.pcloud.book.group.entity.GroupQrcode;
import com.pcloud.book.group.vo.BookGroupManagerVO;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.GroupQrcodeBookVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.book.group.vo.UpdateRoomManagerVO;
import com.pcloud.book.riddle.dto.GroupRiddleDTO;
import com.pcloud.common.page.PageBeanNew;
import com.sdk.wxgroup.GroupInfoVO;
......@@ -224,4 +226,18 @@ public interface GroupQrcodeBiz {
* @param groupInfoVO
*/
void updateGroupMember(GroupInfoVO groupInfoVO);
/**
* 获取群管理员信息
*
* @param groupName
* @param currentPage
* @param numPerPage
* @return
*/
PageBeanNew<BookGroupManagerVO> listBookGroupManager4Pcloud(Integer currentPage, Integer numPerPage, String groupName);
void updateRoomManager(UpdateRoomManagerVO updateRoomManagerVO);
}
......@@ -2,7 +2,6 @@ package com.pcloud.book.group.biz.impl;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.pcloud.book.advertising.biz.AdvertisingSpaceBiz;
import com.pcloud.book.advertising.biz.GroupTagBiz;
import com.pcloud.book.advertising.dto.QrcodeAdvertisingSpaceCountDTO;
......@@ -34,6 +33,7 @@ import com.pcloud.book.group.enums.JoinGroupTypeEnum;
import com.pcloud.book.group.enums.QrcodeStatusEnum;
import com.pcloud.book.group.enums.UpdateStatusEnum;
import com.pcloud.book.group.tools.SendWeixinRequestTools;
import com.pcloud.book.group.vo.BookGroupManagerVO;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.ClassifyVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
......@@ -41,10 +41,11 @@ import com.pcloud.book.group.vo.GroupQrcodeBookVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.book.group.vo.UpdateRoomManagerVO;
import com.pcloud.book.group.vo.WxUserVO;
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;
import com.pcloud.book.push.dao.PushGroupDao;
import com.pcloud.book.push.entity.PushGroup;
import com.pcloud.book.riddle.dto.GroupRiddleDTO;
......@@ -55,12 +56,17 @@ 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;
import com.pcloud.common.utils.ResponseHandleUtil;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto;
import com.pcloud.wechatgroup.group.dto.GroupManagerDTO;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.pcloud.wechatgroup.group.service.GroupMemberService;
import com.sdk.wxgroup.GroupInfoVO;
import com.sdk.wxgroup.WxGroupSDK;
import com.sdk.wxgroup.im.mimc.dto.SendMomentsDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -69,6 +75,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
......@@ -81,9 +88,6 @@ import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
/**
* @author lily
* @date 2019/4/18 15:31
......@@ -122,6 +126,8 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
private GroupTagBiz groupTagBiz;
@Autowired
private AmqpTemplate amqpTemplate;
@Autowired
private GroupMemberService groupMemberService;
@Override
......@@ -905,4 +911,72 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
}
}
@Override
public PageBeanNew<BookGroupManagerVO> listBookGroupManager4Pcloud(Integer currentPage, Integer numPerPage, String groupName) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("groupName", groupName);
PageBeanNew<BookGroupManagerVO> pageBeanNew = groupQrcodeDao.listPageNew(new PageParam(currentPage, numPerPage), paramMap, "listBookGroupManager4Pcloud");
if (pageBeanNew == null || ListUtils.isEmpty(pageBeanNew.getRecordList())) {
return new PageBeanNew<>(currentPage, numPerPage, new ArrayList<>());
}
List<BookGroupManagerVO> managerList = pageBeanNew.getRecordList();
List<String> groupList = new ArrayList<>(managerList.size());
managerList.forEach(item->groupList.add(item.getWxGroupId()));
// 查询所有的管理员及群主信息
List<GroupManagerDTO> groupManagerDTOS = ResponseHandleUtil.parseList(groupMemberService.listGroupManager(groupList), GroupManagerDTO.class);
// 根据群ID进行分组
Map<String, List<GroupManagerDTO>> collect = groupManagerDTOS.stream().collect(Collectors.groupingBy(GroupManagerDTO::getWxGroupId));
// 数据填充
managerList.forEach(item -> {
List<GroupManagerDTO> users = collect.get(item.getWxGroupId());
if (!ListUtils.isEmpty(users)) {
List<WxUserVO> managers = new ArrayList<>(3);
for (GroupManagerDTO user : users) {
if (item.getMaster() != null && user.getIsMaster() == 1) {
item.setMaster(new WxUserVO(user.getWxUserId(), user.getNickName(), user.getHeadPic()));
} else {
managers.add(new WxUserVO(user.getWxUserId(), user.getNickName(), user.getHeadPic()));
}
}
item.setManager(managers);
}
});
return pageBeanNew;
}
@Override
public void updateRoomManager(UpdateRoomManagerVO updateRoomManagerVO) {
String wxGroupId = updateRoomManagerVO.getWxGroupId();
Map<String, BookWxQrcodeDTO> groupVersion = weixinQrcodeBiz.getGroupVersion(Collections.singletonList(wxGroupId));
BookWxQrcodeDTO bookWxQrcodeDTO = groupVersion.get(wxGroupId);
if (bookWxQrcodeDTO==null){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "没有找到群小号信息");
}
String masterId = ResponseHandleUtil.parseResponse(groupMemberService.getMasterIdByGroupId(wxGroupId), String.class);
if (StringUtils.isEmpty(masterId)){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "没有找到群主");
}
GroupRobotDTO info = wechatGroupConsr.getGroupRobotByRobotId(masterId);
if (StringUtils.isEmpty(info.getMac())){
throw new BookBizException(BookBizException.PARAM_IS_NULL, "没有找到群主MAC地址");
}
SendMomentsDTO momentsDTO = new SendMomentsDTO();
// 群主的MAC地址
momentsDTO.setReceiveAccount(info.getMac());
momentsDTO.setIsMasterWx(true);
// 待设置的群成员
momentsDTO.setImages(Collections.singletonList(updateRoomManagerVO.getWxUserId()));
// 群ID
momentsDTO.setContent(wxGroupId);
momentsDTO.setId(Long.valueOf(updateRoomManagerVO.getType()));
// IP
momentsDTO.setIp(bookWxQrcodeDTO.getWechatGroupIp());
WxGroupSDK.sendMessageToPhone(momentsDTO);
}
}
......@@ -302,4 +302,5 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* @return
*/
List<GroupQrcodeDTO> getGroupQrcodeListByBookGroupId(Long bookGroupId);
}
package com.pcloud.book.group.dao.impl;
import com.google.common.collect.Maps;
import com.pcloud.book.advertising.dto.GroupTagDTO;
import com.pcloud.book.advertising.dto.WeixinClassifyInfoDTO;
import com.pcloud.book.group.dao.GroupQrcodeDao;
......@@ -18,7 +17,6 @@ import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListGroupQrcodeResponseVO;
import com.pcloud.common.core.dao.BaseDaoImpl;
import org.springframework.stereotype.Component;
import java.util.HashMap;
......@@ -307,4 +305,5 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
public List<GroupQrcodeDTO> getGroupQrcodeListByBookGroupId(Long bookGroupId) {
return getSessionTemplate().selectList(getStatement("getGroupQrcodeListByBookGroupId"), bookGroupId);
}
}
......@@ -2,6 +2,7 @@ package com.pcloud.book.group.facade;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateRoomManagerVO;
import com.pcloud.book.group.vo.WechatGroupNameVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
......@@ -11,6 +12,7 @@ import com.pcloud.common.permission.PermissionException;
import com.sdk.wxgroup.GroupInfoVO;
import io.swagger.annotations.ApiParam;
import org.codehaus.jackson.JsonParseException;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -24,6 +26,8 @@ import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import javax.ws.rs.POST;
/**
* @author lily
* @date 2019/4/19 15:34
......@@ -102,5 +106,18 @@ public interface GroupQrcodeFacade {
@PostMapping("updateGroupMember")
ResponseDto<?> updateGroupMember(@RequestBody GroupInfoVO groupInfoVO);
@ApiOperation(value = "获取所有的群管理员", httpMethod = "GET")
@GetMapping("listBookGroupManager4Pcloud")
ResponseDto<PageBeanNew> listBookGroupManager4Pcloud(@RequestHeader("token") String token,
@RequestParam(value = "groupName",required = false) String groupName,
@RequestParam(value = "currentPage") @ApiParam("当前页") Integer currentPage,
@RequestParam(value = "numPerPage") @ApiParam("每页条数") Integer numPerPage
) throws PermissionException;
@ApiOperation(value = "设置/删除群管理员", httpMethod = "POST")
@PostMapping("updateRoomManager")
ResponseDto<?> updateRoomManager(@RequestHeader("token") String token,
@RequestBody @Validated UpdateRoomManagerVO updateRoomManagerVO
) throws PermissionException;
}
......@@ -6,11 +6,13 @@ import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.facade.GroupQrcodeFacade;
import com.pcloud.book.group.service.WeixinQrcodeService;
import com.pcloud.book.group.vo.BookGroupManagerVO;
import com.pcloud.book.group.vo.ClassifyQrcodeVO;
import com.pcloud.book.group.vo.GroupQrcodeBaseInfoVO;
import com.pcloud.book.group.vo.GroupQrcodeBookVO;
import com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO;
import com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO;
import com.pcloud.book.group.vo.UpdateRoomManagerVO;
import com.pcloud.book.group.vo.WechatGroupNameVO;
import com.pcloud.common.core.constant.SystemCode;
import com.pcloud.common.dto.ResponseDto;
......@@ -23,6 +25,7 @@ import com.pcloud.common.utils.cookie.Cookie;
import com.sdk.wxgroup.GroupInfoVO;
import org.codehaus.jackson.JsonParseException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -173,4 +176,29 @@ public class GroupQrcodeFacadeImpl implements GroupQrcodeFacade {
groupQrcodeBiz.updateGroupMember(groupInfoVO);
return new ResponseDto<>();
}
@ApiOperation(value = "获取所有的群管理员", httpMethod = "GET")
@GetMapping("listBookGroupManager4Pcloud")
@Override
public ResponseDto<PageBeanNew> listBookGroupManager4Pcloud(@RequestHeader("token") String token,
@RequestParam(value = "groupName",required = false) String groupName,
@RequestParam(value = "currentPage") Integer currentPage,
@RequestParam(value = "numPerPage") Integer numPerPage) throws PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
if (currentPage == null || numPerPage == null || currentPage < 0 || numPerPage <= 0) {
throw BookBizException.PAGE_PARAM_DELETION;
}
PageBeanNew<BookGroupManagerVO> pageBeanNew = groupQrcodeBiz.listBookGroupManager4Pcloud(currentPage, numPerPage, groupName);
return new ResponseDto<>(pageBeanNew);
}
@ApiOperation(value = "设置/删除群管理员", httpMethod = "POST")
@Override
@PostMapping("updateRoomManager")
public ResponseDto<?> updateRoomManager(@RequestHeader("token") String token, @RequestBody @Validated UpdateRoomManagerVO updateRoomManagerVO) throws PermissionException {
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
groupQrcodeBiz.updateRoomManager(updateRoomManagerVO);
return new ResponseDto<>();
}
}
package com.pcloud.book.group.vo;
import lombok.Data;
import java.util.List;
/**
* @ClassName com.pcloud.book.group.vo.BookGroupManagerVO
* @Author guiq
* @Description 群管理员信息
* @Date 2020/5/14 16:40
* @Version 1.0
**/
@Data
public class BookGroupManagerVO {
public String groupName;
public String wxGroupId;
public String qrcodeUrl;
public WxUserVO master;
public List<WxUserVO> manager;
}
package com.pcloud.book.group.vo;
import lombok.Data;
/**
* @ClassName com.pcloud.book.group.vo.UpdateRoomManagerVO
* @Author guiq
* @Description 设置/删除群管理员
* @Date 2020/5/14 19:13
* @Version 1.0
**/
@Data
public class UpdateRoomManagerVO {
private String wxGroupId;
private String wxUserId;
private Integer type;
}
package com.pcloud.book.group.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName com.pcloud.book.group.vo.WxUserVO
* @Author guiq
* @Description 微信用户信息
* @Date 2020/5/14 16:41
* @Version 1.0
**/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class WxUserVO {
private String wxUserId;
private String nickName;
private String headPic;
}
......@@ -862,4 +862,18 @@
AND c.is_delete = 0
AND q.is_delete = 0
</select>
<select id="listBookGroupManager4Pcloud" parameterType="map" resultType="com.pcloud.book.group.vo.BookGroupManagerVO">
SELECT
group_name groupName,
weixin_group_id wxGroupId,
qrcode_url qrcodeUrl
FROM
book_group_qrcode
<if test="groupName != null">
WHERE group_name LIKE CONCAT('%', #{groupName}, '%')
</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment