From 588f2118b71452d25378d484be32c080355f5282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 7 Jun 2023 08:04:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/UnitTest/TestDingTalk.java | 8 ++++-- .../dsideal/FengHuang/Util/DingTalkUtil.java | 28 ++++++++++++------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/main/java/UnitTest/TestDingTalk.java b/src/main/java/UnitTest/TestDingTalk.java index 3bf3c0a..ba96cc1 100644 --- a/src/main/java/UnitTest/TestDingTalk.java +++ b/src/main/java/UnitTest/TestDingTalk.java @@ -62,15 +62,17 @@ public class TestDingTalk { //同步钉钉与云平台中部门信息 String orgName = "长春市东光学校"; Record record = DingTalkUtil.getOrgByOrgName(orgName); - int bureau_id = record.getInt("org_id"); int dingtalk_dept_id=record.getInt("dingtalk_dept_id"); + //同步组织机构 //DingTalkUtil.syncOrg(accessToken, orgName); + //同步人员 DingTalkUtil.getBureauPerson(accessToken,dingtalk_dept_id); - System.out.println(DingTalkUtil.personList.size()); - // System.out.println(list); + //删除单位下所有人员(开发测试时使用) + //DingTalkUtil.delBureauPerson(accessToken,dingtalk_dept_id); + //CommonUtil.Print(DingTalkUtil.getPerson(accessToken, "003")); //CommonUtil.Print(DingTalkUtil.getPersonToken(appKey, appSecret)); diff --git a/src/main/java/com/dsideal/FengHuang/Util/DingTalkUtil.java b/src/main/java/com/dsideal/FengHuang/Util/DingTalkUtil.java index e831c8a..71ba356 100644 --- a/src/main/java/com/dsideal/FengHuang/Util/DingTalkUtil.java +++ b/src/main/java/com/dsideal/FengHuang/Util/DingTalkUtil.java @@ -1,6 +1,7 @@ package com.dsideal.FengHuang.Util; import cn.binarywang.tools.generator.ChineseMobileNumberGenerator; +import cn.hutool.core.util.PhoneUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.aliyun.dingtalkoauth2_1_0.models.*; @@ -11,6 +12,7 @@ import com.dingtalk.api.DingTalkClient; import com.dingtalk.api.request.*; import com.dingtalk.api.response.*; import com.jfinal.kit.Kv; +import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.redis.Redis; @@ -446,11 +448,17 @@ public class DingTalkUtil { } } - //TODO + public static void delBureauPerson(String accessToken, long dingtalk_dept_id) throws ApiException { + DingTalkUtil.getBureauPerson(accessToken, dingtalk_dept_id); + for (int i = 0; i < DingTalkUtil.personList.size(); i++) { + String userid = DingTalkUtil.personList.get(i).getStr("userid"); + delPerson(accessToken, userid); + } + } + public static void syncPerson(String accessToken, String orgName) throws ApiException { Record rOrg = getOrgByOrgName(orgName); int bureauId = rOrg.getInt("org_id"); - int sortId = rOrg.getInt("sort_id"); List list = DingTalkUtil.getDeptPerson(bureauId); for (int i = 0; i < list.size(); i++) { @@ -458,16 +466,16 @@ public class DingTalkUtil { long deptId = r.getLong("dingtalk_dept_id"); int person_id = r.getInt("person_id"); String person_name = r.getStr("person_name"); - String tel = ChineseMobileNumberGenerator.getInstance().generate(); - DingTalkUtil.createPerson(accessToken, String.valueOf(deptId), String.valueOf(person_id), person_name, tel, "教师"); - CommonUtil.Print("成功加入人员:" + person_name); + String tel = r.getStr("tel"); + if (StrKit.isBlank(tel) || !PhoneUtil.isMobile(tel)) { + tel = ChineseMobileNumberGenerator.getInstance().generate();//生成一个随机临时测试用的手机号 + } + //DingTalkUtil.createPerson(accessToken, String.valueOf(deptId), String.valueOf(person_id), person_name, tel, "教师"); + //CommonUtil.Print("成功加入人员:" + person_name); } } - /** - * -----------------------------------------------------下面是数据库操作--------------------------------------------- - */ - + //-----------------------------------------------------下面是数据库操作--------------------------------------------- public static List getOrgList(int orgId) { // 学校及学校下的部门 String sql = "select org_id,org_name,parent_id,sort_id,dingtalk_dept_id from t_base_organization where bureau_id=? and org_id<>bureau_id order by org_id"; @@ -477,7 +485,7 @@ public class DingTalkUtil { public static List getDeptPerson(int bureau_id) { - String sql = "select t1.person_id,t1.person_name,t2.dingtalk_dept_id from t_base_person as t1 " + + String sql = "select t1.person_id,t1.person_name,t2.dingtalk_dept_id,t1.tel from t_base_person as t1 " + "inner join t_base_organization as t2 on t1.org_id=t2.org_id " + " where t1.bureau_id=? and t1.b_use=1"; return Db.find(sql, bureau_id);