From dbc83c9eed8d1b464793f9659e595e5e51de452e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Thu, 15 Jun 2023 14:35:13 +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 --- .../com/dsideal/FengHuang/DingTalk/Full.java | 25 ++++++++----------- .../FengHuang/DingTalk/Util/Model.java | 7 ++++++ .../FengHuang/DingTalk/Util/OrgPerson.java | 15 +++++++---- .../FengHuang/DingTalk/Util/Progress.java | 7 +----- .../FengHuang/DingTalk/Util/RolePerson.java | 2 +- src/main/resource/dingtalk.properties | 12 +++------ 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Full.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Full.java index 0aad79b..c65a67c 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Full.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Full.java @@ -1,13 +1,12 @@ package com.dsideal.FengHuang.DingTalk; -import com.dsideal.FengHuang.DingTalk.Util.*; +import com.dsideal.FengHuang.DingTalk.Util.DingTalkCommon; +import com.dsideal.FengHuang.DingTalk.Util.Model; +import com.dsideal.FengHuang.DingTalk.Util.OrgPerson; +import com.dsideal.FengHuang.DingTalk.Util.RolePerson; import com.dsideal.FengHuang.Util.CommonUtil; import com.jfinal.kit.PropKit; -import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.Record; -import com.jfinal.plugin.activerecord.dialect.MysqlDialect; -import com.jfinal.plugin.druid.DruidPlugin; -import com.jfinal.plugin.redis.RedisPlugin; public class Full { @@ -25,15 +24,13 @@ public class Full { Record rOrg = Model.getOrgByOrgName(orgName); //开发测试时专用,批量删除人员与组织机构 - //Model.fillDeptListByDataBase(rOrg);//从数据库中获取最新的部门列表(已与钉钉匹配完毕) - //OrgPerson.delBureauPerson(accessToken,rOrg); - //OrgPerson.delAllDept(accessToken); + //OrgPerson.delBureauPerson(accessToken, rOrg); + //OrgPerson.delAllDept(accessToken, rOrg); - //初始化组织机构【需提前手动删除此学校及下属部门】 + //初始化组织机构 //OrgPerson.InitOrg(accessToken, rOrg); //同步人员 - //Model.fillDeptListByDataBase(rOrg);//从数据库中获取最新的部门列表(已与钉钉匹配完毕) //OrgPerson.initPerson(accessToken, rOrg,10);//这里限定了上限人数为10 //初始化角色组 @@ -42,11 +39,11 @@ public class Full { //RolePerson.initRole(accessToken, groupId); //同步人员角色信息 - //RolePerson.initPersonRole(accessToken, rOrg); - - CommonUtil.Print("恭喜,所有操作成功完成!"); + RolePerson.initPersonRole(accessToken, rOrg); // 记录全量同步完成时间 - Progress.finishInit(); + Model.finishInit(); + + CommonUtil.Print("恭喜,所有操作成功完成!"); } } diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Model.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Model.java index fbcd878..2a01291 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Model.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Model.java @@ -106,4 +106,11 @@ public class Model { String sql = "select dingtalk_dept_id from t_base_organization where org_id=?"; return Db.findFirst(sql, org_id).getLong("dingtalk_dept_id"); } + + public static void finishInit() { + List list = Db.findAll("t_dingtalk_progress"); + for (Record record : list) { + Model.saveLastSyncTime(record.getStr("table_name")); + } + } } diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/OrgPerson.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/OrgPerson.java index 3dff99a..b949163 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/OrgPerson.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/OrgPerson.java @@ -127,7 +127,6 @@ public class OrgPerson { //云平台 List list = Model.getOrgList(bureau_id); - //在B不在A for (Record record : list) { // 增加 String org_name = record.getStr("org_name"); @@ -138,6 +137,7 @@ public class OrgPerson { long dingTalkParentDeptId = 1; if (parentId > 0) dingTalkParentDeptId = Model.getDtDeptId(parentId); long dt_dept_id = createDept(accessToken, org_name, dingTalkParentDeptId, sId, parentId == -1); + DingTalkCommon.WriteActionTimes(); Model.writeDtDeptId(org_id, String.valueOf(dt_dept_id)); CommonUtil.Print("成功创建部门:" + org_name); } @@ -205,7 +205,7 @@ public class OrgPerson { req.setLanguage("zh_CN"); OapiUserListsimpleResponse rsp = client.execute(req, access_token); JSONObject jo = JSONObject.parseObject(rsp.getBody()); - + if(jo==null) return; JSONArray ja = jo.getJSONObject("result").getJSONArray("list"); if (ja == null) return; for (int i = 0; i < ja.size(); i++) { @@ -255,19 +255,23 @@ public class OrgPerson { tel = DingTalkCommon.getLawfulTel(tel); long deptId = record.getLong("dingtalk_dept_id"); createPerson(accessToken, deptId, person_id, person_name, tel, "教师"); + DingTalkCommon.WriteActionTimes(); //回写标识 Model.writePersonDingTalkId(person_id); - CommonUtil.Print("成功加入人员:" + person_name); - DingTalkCommon.WriteActionTimes(); } } - public static void delAllDept(String access_token) throws ApiException { + public static void delAllDept(String access_token,Record rOrg) throws ApiException { + getDeptList(access_token,rOrg.getInt("dingtalk_dept_id")); for (int i = 0; i < deptList.size(); i++) { delDept(access_token, deptList.get(i).getLong("dept_id")); + DingTalkCommon.WriteActionTimes(); CommonUtil.Print("成功删除部门:" + deptList.get(i).getStr("name")); } + + delDept(access_token, rOrg.getInt("dingtalk_dept_id")); + DingTalkCommon.WriteActionTimes(); } public static void delBureauPerson(String accessToken, Record rOrg) throws ApiException { @@ -277,6 +281,7 @@ public class OrgPerson { String userid = personList.get(i).getStr("userid"); String person_name = personList.get(i).getStr("name"); delPerson(accessToken, Integer.parseInt(userid)); + DingTalkCommon.WriteActionTimes(); CommonUtil.Print("成功删除:" + person_name); } } diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Progress.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Progress.java index 1b59d02..950010b 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Progress.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Progress.java @@ -10,12 +10,7 @@ import java.util.List; public class Progress { - public static void finishInit() { - List list = Db.findAll("t_dingtalk_progress"); - for (Record record : list) { - Model.saveLastSyncTime(record.getStr("table_name")); - } - } + public static void syncOrg(String accessToken, Record rOrg) throws ApiException { Date dt = Model.getLastSyncTime("t_base_organization"); diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/RolePerson.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/RolePerson.java index 92f5b93..9ff9f69 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/RolePerson.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/RolePerson.java @@ -23,6 +23,7 @@ public class RolePerson { System.out.println(rsp.getBody()); JSONObject jo = JSONObject.parseObject(rsp.getBody()); long groupId = jo.getLong("groupId"); + DingTalkCommon.WriteActionTimes(); return groupId; } @@ -94,5 +95,4 @@ public class RolePerson { DingTalkCommon.WriteActionTimes(); } } - } diff --git a/src/main/resource/dingtalk.properties b/src/main/resource/dingtalk.properties index 2ef9336..993cd75 100644 --- a/src/main/resource/dingtalk.properties +++ b/src/main/resource/dingtalk.properties @@ -1,11 +1,7 @@ # 企业管理员可以直接点击登录钉钉开放平台 -【基本信息】-【开发信息(旧版)】查看企业的CorpID和SSOsecret。 -# 公司ID -corpId=ding0b95901147fc6be0f2c783f7214b6d69 -# 每个应用都拥有唯一的AgentId -agentId=2619270936 # AK SK -appKey=dingr94qyhpr8bflyxqz -appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh +appKey=dingi9ltnrtnf66tolwk +appSecret=8qk0JG6z2PUFeCH6WwAfJhN9lTwZE0Kifx776ZUn65dkfDrQpVNynamTQp68xRrZ # user userName=18946740350 @@ -13,9 +9,9 @@ pwd=mdcija780522 # redis ip -redis_ip=10.10.14.199 +redis_ip=127.0.0.1 # redis port -redis_port=18890 +redis_port=6379 # 数据库信息