|
@@ -469,8 +469,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
|
|
|
//根据关键词查询微信通讯录人员的openid
|
|
|
//keyword不可为空格或空字符串,否则请求参数错误
|
|
|
- private Object[] getOpenId(String corpId,String keyword) {
|
|
|
+ private HashMap<String, Object> getOpenId(String corpId,String keyword,String cursor) {
|
|
|
+ HashMap<String, Object> result = new HashMap<>();
|
|
|
Object[] user = null;
|
|
|
+ String nextCursor = "";
|
|
|
+ result.put("user",user);
|
|
|
+ result.put("nextCursor",nextCursor);
|
|
|
String url = "https://qyapi.weixin.qq.com/cgi-bin/service/contact/search?provider_access_token=ACCESS_TOKEN";
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
RestTemplate restTemplate = new RestTemplate();
|
|
@@ -486,8 +490,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
requestMap.put("query_word", keyword);
|
|
|
requestMap.put("query_type", 1);
|
|
|
requestMap.put("query_range", 1);
|
|
|
- requestMap.put("limit", 200);
|
|
|
- //requestMap.put("cursor", pageSize);
|
|
|
+ requestMap.put("limit", 20);
|
|
|
+ requestMap.put("cursor", cursor);
|
|
|
HttpEntity<JSONObject> entity = new HttpEntity<>(requestMap, headers);
|
|
|
ResponseEntity<String> ResponseEntity = restTemplate.postForEntity(url, entity, String.class);
|
|
|
if (ResponseEntity.getStatusCode() == HttpStatus.OK) {
|
|
@@ -504,6 +508,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
}else{
|
|
|
System.err.println("==================通讯录查询请求无userid列表===================");
|
|
|
}
|
|
|
+ JSONObject isLast = respJson.getJSONObject("is_last");
|
|
|
+ if (isLast!=null){
|
|
|
+ if (!respJson.getBoolean("is_last")){
|
|
|
+ nextCursor = respJson.getString("next_cursor");
|
|
|
+ }
|
|
|
+ }
|
|
|
}else {
|
|
|
System.err.println("===================通讯录查询请求失败=================");
|
|
|
}
|
|
@@ -511,12 +521,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
}else {
|
|
|
System.out.println("=============token查询失败=================");
|
|
|
}
|
|
|
- return user;
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
//获取员工的列表
|
|
|
@Override
|
|
|
- public HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, Integer pageIndex, Integer pageSize, HttpServletRequest request) {
|
|
|
+ public HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, String cursor, Integer pageIndex, Integer pageSize, HttpServletRequest request) {
|
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
|
Integer WXCompanyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
|
|
@@ -526,17 +536,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
//当企业开启了微信通讯录的情况下
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1 && departmentId == -1){
|
|
|
System.out.println("====================开始查询通讯录名单======================");
|
|
|
- Object[] users = getOpenId(wxCorpInfo.getCorpid(), keyword);
|
|
|
+ HashMap<String, Object> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
|
|
|
+ Object users = result.get("user");
|
|
|
if (users!=null){
|
|
|
- System.err.println("=========================查询到的users列表为:"+users[0]);
|
|
|
List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
|
|
|
data.put("records",realUser);
|
|
|
+ data.put("nextCursor",result.get("nextCursor"));
|
|
|
return httpRespMsg;
|
|
|
}else {
|
|
|
System.err.println("======================user列表没有查询到数据===========================");
|
|
|
System.err.println("======================httpRespMsg返回空集合===========================");
|
|
|
ArrayList<Object> records = new ArrayList<>();
|
|
|
data.put("records",records);
|
|
|
+ data.put("nextCursor","");
|
|
|
return httpRespMsg;
|
|
|
}
|
|
|
}else {
|
|
@@ -619,6 +631,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
}
|
|
|
resultMap.put("records", list);
|
|
|
resultMap.put("total", total);
|
|
|
+ resultMap.put("nextCursor", "");
|
|
|
httpRespMsg.data = resultMap;
|
|
|
} catch (NullPointerException e) {
|
|
|
//httpRespMsg.setError("验证失败");
|
|
@@ -2128,10 +2141,11 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword) {
|
|
|
+ public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword,String cursor) {
|
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
|
String token = request.getHeader("TOKEN");
|
|
|
User user = userMapper.selectById(token);
|
|
|
+ String nextCursor = "";
|
|
|
QueryWrapper<User> wrapper = new QueryWrapper<User>().select("id, name, phone, job_number, department_id").eq("company_id", user.getCompanyId()).eq("is_active", 1);
|
|
|
if (departmentId != null) {
|
|
|
//获取全部子部门
|
|
@@ -2145,9 +2159,14 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
|
|
|
//当企业开启了微信通讯录的情况下
|
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
|
|
|
- Object[] users = getOpenId(wxCorpInfo.getCorpid(), keyword);
|
|
|
+ HashMap<String, Object> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
|
|
|
+ HashMap<String, Object> msgResult = new HashMap<>();
|
|
|
List<User> retUser = new ArrayList<>();
|
|
|
- msg.data = retUser;
|
|
|
+ nextCursor = result.get("nextCursor").toString();
|
|
|
+ Object users = result.get("user");
|
|
|
+ msgResult.put("retUser",retUser);
|
|
|
+ msgResult.put("nextCursor",nextCursor);
|
|
|
+ msg.data = result;
|
|
|
if (users!=null){
|
|
|
List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
|
|
|
for (User item : userList) {
|