|
@@ -655,98 +655,98 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
return httpRespMsg;
|
|
return httpRespMsg;
|
|
}
|
|
}
|
|
|
|
|
|
- //获取provider_access_token
|
|
|
|
- private String getProviderAccessToken() {
|
|
|
|
- if (UserServiceImpl.provider_access_token == null || UserServiceImpl.providerTokenExpireTime < System.currentTimeMillis()) {
|
|
|
|
- //失效了,需要重新获取
|
|
|
|
- String url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_provider_token";
|
|
|
|
- HttpHeaders headers = new HttpHeaders();
|
|
|
|
- RestTemplate restTemplate = new RestTemplate();
|
|
|
|
- MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
|
- headers.setContentType(type);
|
|
|
|
- headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
|
- JSONObject reqParam = new JSONObject();
|
|
|
|
- reqParam.put("corpid", corpId);
|
|
|
|
- reqParam.put("provider_secret", providerSecret);
|
|
|
|
- HttpEntity<JSONObject> Entity = new HttpEntity<>(reqParam, headers);
|
|
|
|
- ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, Entity, String.class);
|
|
|
|
- if (responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
|
- String resp = responseEntity.getBody();
|
|
|
|
- System.err.println(resp);
|
|
|
|
- JSONObject obj = JSONObject.parseObject(resp);
|
|
|
|
- if (obj.getIntValue("errcode") == 0) {
|
|
|
|
- UserServiceImpl.provider_access_token = obj.getString("provider_access_token");
|
|
|
|
- UserServiceImpl.providerTokenExpireTime = System.currentTimeMillis() + obj.getIntValue("expires_in")*1000;
|
|
|
|
- }else{
|
|
|
|
- System.err.println("====================token获取失败======================");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return UserServiceImpl.provider_access_token;
|
|
|
|
- }
|
|
|
|
|
|
+// //获取provider_access_token
|
|
|
|
+// private String getProviderAccessToken() {
|
|
|
|
+// if (UserServiceImpl.provider_access_token == null || UserServiceImpl.providerTokenExpireTime < System.currentTimeMillis()) {
|
|
|
|
+// //失效了,需要重新获取
|
|
|
|
+// String url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_provider_token";
|
|
|
|
+// HttpHeaders headers = new HttpHeaders();
|
|
|
|
+// RestTemplate restTemplate = new RestTemplate();
|
|
|
|
+// MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
|
+// headers.setContentType(type);
|
|
|
|
+// headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
|
+// JSONObject reqParam = new JSONObject();
|
|
|
|
+// reqParam.put("corpid", corpId);
|
|
|
|
+// reqParam.put("provider_secret", providerSecret);
|
|
|
|
+// HttpEntity<JSONObject> Entity = new HttpEntity<>(reqParam, headers);
|
|
|
|
+// ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, Entity, String.class);
|
|
|
|
+// if (responseEntity.getStatusCode() == HttpStatus.OK) {
|
|
|
|
+// String resp = responseEntity.getBody();
|
|
|
|
+// System.err.println(resp);
|
|
|
|
+// JSONObject obj = JSONObject.parseObject(resp);
|
|
|
|
+// if (obj.getIntValue("errcode") == 0) {
|
|
|
|
+// UserServiceImpl.provider_access_token = obj.getString("provider_access_token");
|
|
|
|
+// UserServiceImpl.providerTokenExpireTime = System.currentTimeMillis() + obj.getIntValue("expires_in")*1000;
|
|
|
|
+// }else{
|
|
|
|
+// System.err.println("====================token获取失败======================");
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// return UserServiceImpl.provider_access_token;
|
|
|
|
+// }
|
|
|
|
|
|
//根据关键词查询微信通讯录人员的openid
|
|
//根据关键词查询微信通讯录人员的openid
|
|
//keyword不可为空格或空字符串,否则请求参数错误
|
|
//keyword不可为空格或空字符串,否则请求参数错误
|
|
- private HashMap<String, List> getOpenId(String corpId,String keyword,String cursor) {
|
|
|
|
- HashMap<String, List> result = new HashMap<>();
|
|
|
|
- List<Object> user = new ArrayList<>();
|
|
|
|
- String itemCursor = "";
|
|
|
|
- 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();
|
|
|
|
- MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
|
- headers.setContentType(type);
|
|
|
|
- headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
|
- String providerToken = getProviderAccessToken();
|
|
|
|
- if (providerToken!=null){
|
|
|
|
- //搜索通讯录名单
|
|
|
|
- url = url.replace("ACCESS_TOKEN", providerToken);
|
|
|
|
- JSONObject requestMap = new JSONObject();
|
|
|
|
- requestMap.put("auth_corpid", corpId);
|
|
|
|
- requestMap.put("query_word", keyword);
|
|
|
|
- requestMap.put("query_type", 1);
|
|
|
|
- requestMap.put("query_range", 1);
|
|
|
|
- requestMap.put("limit", 200);
|
|
|
|
- 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) {
|
|
|
|
- String resp = ResponseEntity.getBody();
|
|
|
|
- JSONObject respJson = JSONObject.parseObject(resp);
|
|
|
|
- if (respJson.getInteger("errcode")==0){
|
|
|
|
- JSONObject queryResult = respJson.getJSONObject("query_result");
|
|
|
|
- if (!queryResult.isEmpty()){
|
|
|
|
- JSONArray jsonArray = queryResult.getJSONObject("user").getJSONArray("open_userid");
|
|
|
|
- if (jsonArray!=null){
|
|
|
|
- Object[] objects = jsonArray.toArray();
|
|
|
|
- for (Object object : objects) {
|
|
|
|
- user.add(object);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else{
|
|
|
|
- System.err.println("==================通讯录查询请求无userid列表===================");
|
|
|
|
- }
|
|
|
|
- Boolean is_last = respJson.getBoolean("is_last");
|
|
|
|
- if (!is_last){
|
|
|
|
- itemCursor = respJson.getString("next_cursor");
|
|
|
|
- }
|
|
|
|
- }else {
|
|
|
|
- System.err.println("===================通讯录查询请求失败=================");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else {
|
|
|
|
- System.out.println("=============token查询失败=================");
|
|
|
|
- }
|
|
|
|
- List<Object> nextCursor = new ArrayList<>();
|
|
|
|
- nextCursor.add(itemCursor);
|
|
|
|
- result.put("nextCursor",nextCursor);
|
|
|
|
- result.put("user",user);
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
|
|
+// private HashMap<String, List> getOpenId(String corpId,String keyword,String cursor) {
|
|
|
|
+// HashMap<String, List> result = new HashMap<>();
|
|
|
|
+// List<Object> user = new ArrayList<>();
|
|
|
|
+// String itemCursor = "";
|
|
|
|
+// 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();
|
|
|
|
+// MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
|
|
|
|
+// headers.setContentType(type);
|
|
|
|
+// headers.add("Accept", MediaType.APPLICATION_JSON.toString());
|
|
|
|
+// String providerToken = getProviderAccessToken();
|
|
|
|
+// if (providerToken!=null){
|
|
|
|
+// //搜索通讯录名单
|
|
|
|
+// url = url.replace("ACCESS_TOKEN", providerToken);
|
|
|
|
+// JSONObject requestMap = new JSONObject();
|
|
|
|
+// requestMap.put("auth_corpid", corpId);
|
|
|
|
+// requestMap.put("query_word", keyword);
|
|
|
|
+// requestMap.put("query_type", 1);
|
|
|
|
+// requestMap.put("query_range", 1);
|
|
|
|
+// requestMap.put("limit", 200);
|
|
|
|
+// 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) {
|
|
|
|
+// String resp = ResponseEntity.getBody();
|
|
|
|
+// JSONObject respJson = JSONObject.parseObject(resp);
|
|
|
|
+// if (respJson.getInteger("errcode")==0){
|
|
|
|
+// JSONObject queryResult = respJson.getJSONObject("query_result");
|
|
|
|
+// if (!queryResult.isEmpty()){
|
|
|
|
+// JSONArray jsonArray = queryResult.getJSONObject("user").getJSONArray("open_userid");
|
|
|
|
+// if (jsonArray!=null){
|
|
|
|
+// Object[] objects = jsonArray.toArray();
|
|
|
|
+// for (Object object : objects) {
|
|
|
|
+// user.add(object);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }else{
|
|
|
|
+// System.err.println("==================通讯录查询请求无userid列表===================");
|
|
|
|
+// }
|
|
|
|
+// Boolean is_last = respJson.getBoolean("is_last");
|
|
|
|
+// if (!is_last){
|
|
|
|
+// itemCursor = respJson.getString("next_cursor");
|
|
|
|
+// }
|
|
|
|
+// }else {
|
|
|
|
+// System.err.println("===================通讯录查询请求失败=================");
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+// }else {
|
|
|
|
+// System.out.println("=============token查询失败=================");
|
|
|
|
+// }
|
|
|
|
+// List<Object> nextCursor = new ArrayList<>();
|
|
|
|
+// nextCursor.add(itemCursor);
|
|
|
|
+// result.put("nextCursor",nextCursor);
|
|
|
|
+// result.put("user",user);
|
|
|
|
+// return result;
|
|
|
|
+// }
|
|
|
|
|
|
//获取员工的列表
|
|
//获取员工的列表
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg getEmployeeList(Integer departmentId, String keyword, Integer status, Integer roleId, Integer onlyDirect, String cursor, 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) throws Exception {
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
HttpRespMsg httpRespMsg = new HttpRespMsg();
|
|
Integer WXCompanyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
|
|
Integer WXCompanyId = userMapper.selectById(request.getHeader("Token")).getCompanyId();
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
|
|
@@ -755,7 +755,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
//当企业开启了微信通讯录的情况下
|
|
//当企业开启了微信通讯录的情况下
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1 && departmentId == -1){
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1 && departmentId == -1){
|
|
System.out.println("====================开始查询通讯录名单======================");
|
|
System.out.println("====================开始查询通讯录名单======================");
|
|
- HashMap<String, List> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
|
|
|
|
|
|
+ HashMap<String, List> result = wxCorpInfoService.getOpenId(wxCorpInfo.getCorpid(), keyword, cursor,1,200);
|
|
List users = result.get("user");
|
|
List users = result.get("user");
|
|
if (users.size()!=0){
|
|
if (users.size()!=0){
|
|
List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
|
|
List<User> realUser = userMapper.selectList(new QueryWrapper<User>().in("corpwx_userid", users));
|
|
@@ -2436,7 +2436,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword,String cursor) {
|
|
|
|
|
|
+ public HttpRespMsg getSimpleActiveUserList(Integer departmentId, HttpServletRequest request,String keyword,String cursor) throws Exception {
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
HttpRespMsg msg = new HttpRespMsg();
|
|
String token = request.getHeader("TOKEN");
|
|
String token = request.getHeader("TOKEN");
|
|
User user = userMapper.selectById(token);
|
|
User user = userMapper.selectById(token);
|
|
@@ -2446,7 +2446,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
|
|
WxCorpInfo wxCorpInfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", WXCompanyId));
|
|
//当企业开启了微信通讯录的情况下
|
|
//当企业开启了微信通讯录的情况下
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
|
|
if (org.apache.commons.lang3.StringUtils.isNotBlank(keyword) && wxCorpInfo!=null && wxCorpInfo.getSaasSyncContact()==1){
|
|
- HashMap<String, List> result = getOpenId(wxCorpInfo.getCorpid(), keyword, cursor);
|
|
|
|
|
|
+ HashMap<String, List> result = wxCorpInfoService.getOpenId(wxCorpInfo.getCorpid(), keyword, cursor,1,200);
|
|
HashMap<String, Object> msgResult = new HashMap<>();
|
|
HashMap<String, Object> msgResult = new HashMap<>();
|
|
nextCursor = result.get("nextCursor").get(0).toString();
|
|
nextCursor = result.get("nextCursor").get(0).toString();
|
|
List users = result.get("user");
|
|
List users = result.get("user");
|