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; 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.SyncWeixinGroupIdDTO;
import com.pcloud.book.group.dto.UpdateQrDTO; import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO; import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
...@@ -12,6 +13,7 @@ import org.springframework.http.ResponseEntity; ...@@ -12,6 +13,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -62,4 +64,15 @@ public interface WeixinQrcodeService { ...@@ -62,4 +64,15 @@ public interface WeixinQrcodeService {
@ApiOperation("获取一个二维码") @ApiOperation("获取一个二维码")
@GetMapping("getOneQrcode") @GetMapping("getOneQrcode")
ResponseEntity<ResponseDto<WeixinQrcodeDTO>> 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; 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.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO; import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
import com.pcloud.book.group.dto.WeixinQrcodeDTO; import com.pcloud.book.group.dto.WeixinQrcodeDTO;
...@@ -103,4 +104,18 @@ public interface WeixinQrcodeBiz { ...@@ -103,4 +104,18 @@ public interface WeixinQrcodeBiz {
* 平台端二维码统计数据 * 平台端二维码统计数据
*/ */
QrStatisticsVO getQrStatistics(); 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; ...@@ -6,6 +6,7 @@ import com.pcloud.book.consumer.wechatgroup.WechatGroupConsr;
import com.pcloud.book.group.biz.WeixinQrcodeBiz; import com.pcloud.book.group.biz.WeixinQrcodeBiz;
import com.pcloud.book.group.dao.GroupQrcodeDao; import com.pcloud.book.group.dao.GroupQrcodeDao;
import com.pcloud.book.group.dao.WeixinQrcodeDao; 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.ChangeGroupNameDTO;
import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO; import com.pcloud.book.group.dto.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO; import com.pcloud.book.group.dto.UpdateQrDTO;
...@@ -25,6 +26,8 @@ import com.pcloud.common.utils.QrcodeUtils; ...@@ -25,6 +26,8 @@ import com.pcloud.common.utils.QrcodeUtils;
import com.pcloud.common.utils.cache.redis.JedisClusterUtils; import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import com.pcloud.wechatgroup.group.dto.GroupRobotDTO; import com.pcloud.wechatgroup.group.dto.GroupRobotDTO;
import com.sdk.wxgroup.AddToGroupVO;
import com.sdk.wxgroup.GroupInfoVO;
import com.sdk.wxgroup.WxGroupSDK; import com.sdk.wxgroup.WxGroupSDK;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -299,4 +302,54 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz { ...@@ -299,4 +302,54 @@ public class WeixinQrcodeBizImpl implements WeixinQrcodeBiz {
return qrStatistics; 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; 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.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO; import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO; import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
...@@ -135,4 +136,11 @@ public interface WeixinQrcodeDao extends BaseDao<WeixinQrcode> { ...@@ -135,4 +136,11 @@ public interface WeixinQrcodeDao extends BaseDao<WeixinQrcode> {
* @return * @return
*/ */
WeixinQrcode getByGroupId(String wechatGroupId); WeixinQrcode getByGroupId(String wechatGroupId);
/**
*
* @param paramMap 参数map
* @return
*/
List<BookWxQrcodeDTO> listAvailableGroupByPage(Map<String, Object> paramMap);
} }
package com.pcloud.book.group.dao.impl; package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.WeixinQrcodeDao; 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.SyncWeixinGroupIdRequestDTO;
import com.pcloud.book.group.dto.UpdateQrDTO; import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO; import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
...@@ -126,4 +127,9 @@ public class WeixinQrcodeDaoImpl extends BaseDaoImpl<WeixinQrcode> implements We ...@@ -126,4 +127,9 @@ public class WeixinQrcodeDaoImpl extends BaseDaoImpl<WeixinQrcode> implements We
public WeixinQrcode getByGroupId(String wechatGroupId) { public WeixinQrcode getByGroupId(String wechatGroupId) {
return this.getSqlSession().selectOne(this.getStatement("getByGroupId"), 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; package com.pcloud.book.group.service.impl;
import com.pcloud.book.group.biz.WeixinQrcodeBiz; 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.SyncWeixinGroupIdDTO;
import com.pcloud.book.group.dto.UpdateQrDTO; import com.pcloud.book.group.dto.UpdateQrDTO;
import com.pcloud.book.group.dto.WeixinQrcodeCountDTO; import com.pcloud.book.group.dto.WeixinQrcodeCountDTO;
...@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.GetMapping; ...@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.List;
...@@ -87,4 +89,17 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService { ...@@ -87,4 +89,17 @@ public class WeixinQrcodeServiceImpl implements WeixinQrcodeService {
return ResponseHandleUtil.toResponse(weixinQrcodeBiz.getOneQrcode()); 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 @@ ...@@ -219,4 +219,18 @@
weixin_group_id = #{wechatGroupId} weixin_group_id = #{wechatGroupId}
limit 1 limit 1
</select> </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> </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