|
@@ -51,6 +51,7 @@ public class WeComController {
|
|
|
|
|
|
//生成授权地址 两个环境地址相同
|
|
//生成授权地址 两个环境地址相同
|
|
private final static String OAUTH2_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?";
|
|
private final static String OAUTH2_URL = "https://open.weixin.qq.com/connect/oauth2/authorize?";
|
|
|
|
+ //private final static String OAUTH2_URL = "https://qw.cscec8b.com.cn/connect/oauth2/authorize?";
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
private IBladeDeptService bladeDeptService;
|
|
private IBladeDeptService bladeDeptService;
|
|
@@ -91,6 +92,7 @@ public class WeComController {
|
|
System.out.println("获取用户信息地址 userinfoUrl = " + userinfoUrl);
|
|
System.out.println("获取用户信息地址 userinfoUrl = " + userinfoUrl);
|
|
String res = HttpUtil.createGet(userinfoUrl).form(formMap).execute().body();
|
|
String res = HttpUtil.createGet(userinfoUrl).form(formMap).execute().body();
|
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
|
+ System.out.println("res jsonObject = " + jsonObject);
|
|
if (Objects.nonNull(jsonObject.get("errcode")) && jsonObject.getInteger("errcode") == 0) {
|
|
if (Objects.nonNull(jsonObject.get("errcode")) && jsonObject.getInteger("errcode") == 0) {
|
|
String userid = jsonObject.getString("userid");
|
|
String userid = jsonObject.getString("userid");
|
|
BladeUser bladeUser = bladeUserService.getOne(new LambdaQueryWrapper<BladeUser>()
|
|
BladeUser bladeUser = bladeUserService.getOne(new LambdaQueryWrapper<BladeUser>()
|
|
@@ -374,162 +376,6 @@ public class WeComController {
|
|
return R.success("同步成功");
|
|
return R.success("同步成功");
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-/* @GetMapping("/dataSys")
|
|
|
|
- @ApiOperation(value = "企业微信通讯录同步")
|
|
|
|
- public R dataSys(String tenantId,String roleId) throws Exception {
|
|
|
|
- String accessToken = getAccessToken();
|
|
|
|
- //获取部门
|
|
|
|
- JSONArray departmentList = getDepartmentList(accessToken);
|
|
|
|
- if(departmentList.isEmpty()){
|
|
|
|
- return R.fail("部门数据为空");
|
|
|
|
- }
|
|
|
|
- log.info("departmentList - size = {}",departmentList.size());
|
|
|
|
- for (int i = 0; i < departmentList.size(); i++) {
|
|
|
|
- JSONObject jsonObject = departmentList.getJSONObject(i);
|
|
|
|
- Long id = jsonObject.getLong("id");
|
|
|
|
- BladeDept dept = bladeDeptService.getById(id);
|
|
|
|
- if(dept != null){
|
|
|
|
- JSONArray userList = getUserList(accessToken, id);
|
|
|
|
- log.info("userList-size = {}",userList.size());
|
|
|
|
- if(userList.size() == 0){
|
|
|
|
- log.info("userList is null department_id = {}",id);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- List<BladeUser> list = bladeUserService.list(new LambdaQueryWrapper<BladeUser>()
|
|
|
|
- .eq(BladeUser::getDeptId, dept.getId())
|
|
|
|
- );
|
|
|
|
- List<String> nStrings = new ArrayList<>();
|
|
|
|
- for (int j = 0; j < userList.size(); j++) {
|
|
|
|
- JSONObject userObject = userList.getJSONObject(j);
|
|
|
|
- nStrings.add(userObject.getString("userid"));
|
|
|
|
- }
|
|
|
|
- List<String> collect = new ArrayList<>();
|
|
|
|
- if(list.size() > 0){
|
|
|
|
- collect = list.stream()
|
|
|
|
- .map(BladeUser::getAccount)
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- }
|
|
|
|
- nStrings.removeAll(collect);
|
|
|
|
- List<BladeUser> batchList = new ArrayList<>();
|
|
|
|
- for (int j1 = 0; j1 < userList.size(); j1++) {
|
|
|
|
- JSONObject userObject = userList.getJSONObject(j1);
|
|
|
|
- String userid = userObject.getString("userid");
|
|
|
|
- if(nStrings.contains(userid)){
|
|
|
|
- log.info("差集包含未同步人员,补齐人员信息到数据源 ={}",userid);
|
|
|
|
- String userName = userObject.getString("name");
|
|
|
|
- String mobile = userObject.getString("mobile");
|
|
|
|
- String email = userObject.getString("email");
|
|
|
|
- //性别。0表示未定义,1表示男性,2表示女性
|
|
|
|
- Integer gender = userObject.getInteger("gender");
|
|
|
|
- BladeUser bladeUser = new BladeUser();
|
|
|
|
- if(domainName.contains("weixin")){
|
|
|
|
- bladeUser.setAccount(userid);
|
|
|
|
- }
|
|
|
|
- if(domainName.contains("cscec8b")){
|
|
|
|
- bladeUser.setAccount(mobile);
|
|
|
|
- }
|
|
|
|
- bladeUser.setName(userName);
|
|
|
|
- bladeUser.setRealName(userName);
|
|
|
|
- bladeUser.setPhone(mobile);
|
|
|
|
- bladeUser.setEmail(email);
|
|
|
|
- bladeUser.setUserAttr(0);
|
|
|
|
- bladeUser.setSex(gender);
|
|
|
|
- bladeUser.setDeptId(id.toString());
|
|
|
|
- bladeUser.setPassword(DigestUtil.encrypt("zjbj@2024"));
|
|
|
|
- bladeUser.setTenantId(StringUtils.isBlank(tenantId)?"o5f8axm":tenantId);
|
|
|
|
- bladeUser.setRoleId(roleId);
|
|
|
|
- batchList.add(bladeUser);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- bladeUserService.saveBatch(batchList);
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- String name = jsonObject.getString("name");
|
|
|
|
- Long parentid = jsonObject.getLong("parentid");
|
|
|
|
- Integer order = jsonObject.getInteger("order");
|
|
|
|
- BladeDept bladeDept = new BladeDept();
|
|
|
|
- bladeDept.setId(id);
|
|
|
|
- bladeDept.setDeptCategory(1);
|
|
|
|
- bladeDept.setDeptName(name);
|
|
|
|
- bladeDept.setFullName(name);
|
|
|
|
- bladeDept.setParentId(parentid);
|
|
|
|
- bladeDept.setSort(order);
|
|
|
|
- bladeDept.setTenantId(StringUtils.isBlank(tenantId)?"o5f8axm":tenantId);
|
|
|
|
- boolean res = bladeDeptService.save(bladeDept);
|
|
|
|
- if(id == 1){
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if(res){
|
|
|
|
- JSONArray userList = getUserList(accessToken, id);
|
|
|
|
- log.info("userList-size = {}",userList.size());
|
|
|
|
- if(userList.size() == 0){
|
|
|
|
- log.info("department_id = {}",id);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- List<BladeUser> batchList = new ArrayList<>();
|
|
|
|
- for (int i1 = 0; i1 < userList.size(); i1++) {
|
|
|
|
- JSONObject userObject = userList.getJSONObject(i1);
|
|
|
|
- String userName = userObject.getString("name");
|
|
|
|
- String userid = userObject.getString("userid");
|
|
|
|
- String mobile = userObject.getString("mobile");
|
|
|
|
- String email = userObject.getString("email");
|
|
|
|
- //性别。0表示未定义,1表示男性,2表示女性
|
|
|
|
- Integer gender = userObject.getInteger("gender");
|
|
|
|
-
|
|
|
|
- BladeUser bladeUser = new BladeUser();
|
|
|
|
- if(domainName.contains("weixin")){
|
|
|
|
- bladeUser.setAccount(userid);
|
|
|
|
- }
|
|
|
|
- if(domainName.contains("cscec8b")){
|
|
|
|
- bladeUser.setAccount(mobile);
|
|
|
|
- }
|
|
|
|
- bladeUser.setName(userName);
|
|
|
|
- bladeUser.setRealName(userName);
|
|
|
|
- bladeUser.setPhone(mobile);
|
|
|
|
- bladeUser.setEmail(email);
|
|
|
|
- bladeUser.setUserAttr(0);
|
|
|
|
- bladeUser.setSex(gender);
|
|
|
|
- bladeUser.setDeptId(id.toString());
|
|
|
|
- bladeUser.setPassword(DigestUtil.encrypt("zjbj@2024"));
|
|
|
|
- bladeUser.setTenantId(StringUtils.isBlank(tenantId)?"o5f8axm":tenantId);
|
|
|
|
- bladeUser.setRoleId(roleId);
|
|
|
|
- batchList.add(bladeUser);
|
|
|
|
- }
|
|
|
|
- bladeUserService.saveBatch(batchList);
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- List<BladeUser> saveList = bladeUserService.list(new LambdaQueryWrapper<BladeUser>()
|
|
|
|
- .eq(BladeUser::getDeptId, id)
|
|
|
|
- );
|
|
|
|
- List<BladeUserDept> userDepts = new ArrayList<>();
|
|
|
|
- if(saveList.size() > 0){
|
|
|
|
- for (BladeUser bladeUser : saveList) {
|
|
|
|
- List<BladeUserDept> depts = bladeUserDeptService.list(new LambdaQueryWrapper<BladeUserDept>()
|
|
|
|
- .eq(BladeUserDept::getUserId, bladeUser.getId())
|
|
|
|
- .eq(BladeUserDept::getDeptId, id)
|
|
|
|
- );
|
|
|
|
- if(depts.size() > 0){
|
|
|
|
- continue;
|
|
|
|
- }else {
|
|
|
|
- BladeUserDept bladeUserDept = new BladeUserDept();
|
|
|
|
- bladeUserDept.setUserId(bladeUser.getId());
|
|
|
|
- bladeUserDept.setDeptId(id);
|
|
|
|
- userDepts.add(bladeUserDept);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if(userDepts.size() > 0){
|
|
|
|
- bladeUserDeptService.saveBatch(userDepts);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return R.success("同步成功");
|
|
|
|
- }*/
|
|
|
|
-
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 生成授权连接
|
|
* 生成授权连接
|
|
* @return
|
|
* @return
|
|
@@ -559,10 +405,11 @@ public class WeComController {
|
|
formMap.put("code", code);
|
|
formMap.put("code", code);
|
|
String res = HttpUtil.createGet(userinfoUrl).form(formMap).execute().body();
|
|
String res = HttpUtil.createGet(userinfoUrl).form(formMap).execute().body();
|
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
|
JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
|
+ System.out.println("jsonObject = " + jsonObject);
|
|
if (Objects.nonNull(jsonObject.get("errcode")) && jsonObject.getInteger("errcode") == 0) {
|
|
if (Objects.nonNull(jsonObject.get("errcode")) && jsonObject.getInteger("errcode") == 0) {
|
|
String userid = jsonObject.getString("userid");
|
|
String userid = jsonObject.getString("userid");
|
|
BladeUser bladeUser = bladeUserService.getOne(new LambdaQueryWrapper<BladeUser>()
|
|
BladeUser bladeUser = bladeUserService.getOne(new LambdaQueryWrapper<BladeUser>()
|
|
- .eq(BladeUser::getAccount, userid)
|
|
|
|
|
|
+ .eq(BladeUser::getThirdUserId, userid)
|
|
);
|
|
);
|
|
User user = new User();
|
|
User user = new User();
|
|
BeanUtils.copyProperties(bladeUser,user);
|
|
BeanUtils.copyProperties(bladeUser,user);
|