Commit 3bc7a38c by 高鹏

Merge branch 'feat-lihao' into 'master'

add:分页获取可用群

See merge request rays/pcloud-book!21
parents f5b18181 b863b96e
package com.pcloud.book.group.dto;
import java.io.Serializable;
/**
* 微信群二维码DTO
* @author lili
* @date 创建时间:2017年12月13日 下午6:57:29
*/
public class BookWxQrcodeDTO implements Serializable {
/**
* 序列化
*/
private static final long serialVersionUID = 6758789564455358387L;
/**
* 微信群ID
*/
private String weixinGroupId;
/**
* 微信群ID
*/
private String robotWxId;
public String getWeixinGroupId() {
return weixinGroupId;
}
public void setWeixinGroupId(String weixinGroupId) {
this.weixinGroupId = weixinGroupId;
}
public String getRobotWxId() {
return robotWxId;
}
public void setRobotWxId(String robotWxId) {
this.robotWxId = robotWxId;
}
@Override
public String toString() {
return "BookWxQrcodeDTO{" +
"weixinGroupId='" + weixinGroupId + '\'' +
", robotWxId='" + robotWxId + '\'' +
'}';
}
}
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;
......@@ -12,6 +13,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
......@@ -62,4 +64,15 @@ public interface WeixinQrcodeService {
@ApiOperation("获取一个二维码")
@GetMapping("getOneQrcode")
ResponseEntity<ResponseDto<WeixinQrcodeDTO>> getOneQrcode();
@ApiOperation("分页获取可用微信群")
@GetMapping("listAvailableGroupByPage")
ResponseEntity<ResponseDto<List<BookWxQrcodeDTO>>> listAvailableGroupByPage(@RequestParam("currentPage") Integer currentPage, @RequestParam("numPerPage") Integer numPerPage);
@ApiOperation("所有群邀请新的机器人小号(有接收消息机器人存在好友关系)")
@GetMapping("inviteNewRobot")
void inviteNewRobot(@RequestParam("wxUserId") String wxUserId);
}
package com.pcloud.book.group.biz;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO;
......@@ -103,4 +104,18 @@ public interface WeixinQrcodeBiz {
* 平台端二维码统计数据
*/
QrStatisticsVO getQrStatistics();
/**
* 分页获取可用微信群
* @param currentPage
* @param numPerPage
* @return
*/
List<BookWxQrcodeDTO> listAvailableGroupByPage(Integer currentPage, Integer numPerPage);
/**
* 所有群邀请新的机器人小号
* @param wxUserId 用户微信ID
*/
void inviteNewRobot(String wxUserId);
}
......@@ -6,6 +6,7 @@ import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dao.WeixinQrcodeDao;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
......@@ -25,6 +26,8 @@ import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.sdk.wxgroup.AddToGroupVO;
import com.sdk.wxgroup.GroupInfoVO;
import com.sdk.wxgroup.WxGroupSDK;
import org.slf4j.Logger;
......@@ -299,4 +302,54 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
return qrStatistics;
}
@Override
@ParamLog("分页获取可用微信群")
public List<BookWxQrcodeDTO> listAvailableGroupByPage(Integer currentPage, Integer numPerPage) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("currentPage", currentPage);
paramMap.put("numPerPage", numPerPage);
List<BookWxQrcodeDTO> wxQrcodeDTOS = weixinQrcodeDao.listAvailableGroupByPage(paramMap);
return wxQrcodeDTOS;
}
@Override
@ParamLog("所有群邀请新的机器人小号")
public void inviteNewRobot(String wxUserId) {
for(int i = 0; true ; i++) {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("currentPage", i * 100);
paramMap.put("numPerPage", 100);
List<BookWxQrcodeDTO> wxQrcodeDTOS = weixinQrcodeDao.listAvailableGroupByPage(paramMap);
for(BookWxQrcodeDTO wxQrcodeDTO: wxQrcodeDTOS) {
if(null != wxQrcodeDTO) {
String weixinGroupId = wxQrcodeDTO.getWeixinGroupId();
String robotWxId = wxQrcodeDTO.getRobotWxId();
/* GroupInfoVO groupInfoVO = WxGroupSDK.getGroupInfo(weixinGroupId, robotWxId);
if(null != groupInfoVO) {
List<String> memberIds = groupInfoVO.getIdList();
if(!memberIds.contains(wxUserId)) {
}
}*/
try {
Thread.sleep(5000);
LOGGER.info("邀请新的机器人==线程休眠5秒!!!");
} catch (InterruptedException e) {
LOGGER.error("线程休眠失败" + e.getMessage());
}
AddToGroupVO addToGroupVO = new AddToGroupVO();
addToGroupVO.setWxGroupId(weixinGroupId);
addToGroupVO.setAltId(robotWxId);
addToGroupVO.setWxId(wxUserId);
WxGroupSDK.addToGroup(addToGroupVO);
}
}
if(wxQrcodeDTOS.size() < 100) {
break;
}
}
}
}
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
......@@ -135,4 +136,11 @@ public interface WeixinQrcodeDao extends BaseDao<WeixinQrcode> {
* @return
*/
WeixinQrcode getByGroupId(String wechatGroupId);
/**
*
* @param paramMap 参数map
* @return
*/
List<BookWxQrcodeDTO> listAvailableGroupByPage(Map<String, Object> paramMap);
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.WeixinQrcodeDao;
import com.pcloud.book.group.dto.BookWxQrcodeDTO;
import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
......@@ -126,4 +127,9 @@ public class WeixinQrcodeDaoImpl extends BaseDaoImpl<WeixinQrcode> implements We
public WeixinQrcode getByGroupId(String wechatGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getByGroupId"), wechatGroupId);
}
@Override
public List<BookWxQrcodeDTO> listAvailableGroupByPage(Map<String, Object> paramMap) {
return this.getSqlSession().selectList(this.getStatement("listAvailableGroupByPage"), paramMap);
}
}
package com.pcloud.book.group.service.impl;
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;
......@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
......@@ -87,4 +89,17 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
return ResponseHandleUtil.toResponse(weixinQrcodeBiz.getOneQrcode());
}
@Override
@GetMapping("listAvailableGroupByPage")
public ResponseEntity<ResponseDto<List<BookWxQrcodeDTO>>> listAvailableGroupByPage(@RequestParam("currentPage") Integer currentPage,
@RequestParam("numPerPage") Integer numPerPage) {
return ResponseHandleUtil.toResponse(weixinQrcodeBiz.listAvailableGroupByPage(currentPage, numPerPage));
}
@Override
@GetMapping("inviteNewRobot")
public void inviteNewRobot(@RequestParam("wxUserId") String wxUserId) {
weixinQrcodeBiz.inviteNewRobot(wxUserId);
}
}
......@@ -219,4 +219,18 @@
weixin_group_id = #{wechatGroupId}
limit 1
</select>
<select id="listAvailableGroupByPage" parameterType="map" resultType="bookWxQrcodeDTO">
SELECT
weixin_group_id AS weixinGroupId,
robot_wx_id AS robotWxId
FROM
`weixin_qrcode`
WHERE
use_state = 1
GROUP BY weixin_group_id
LIMIT #{currentPage}, #{numPerPage}
</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