Compare commits

...

2 Commits

Author SHA1 Message Date
黄海 2e31ef9243 'commit'
2 years ago
黄海 dbc83c9eed 变更
2 years ago

@ -1,13 +1,12 @@
package com.dsideal.FengHuang.DingTalk; 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.dsideal.FengHuang.Util.CommonUtil;
import com.jfinal.kit.PropKit; import com.jfinal.kit.PropKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Record; 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 { public class Full {
@ -25,15 +24,13 @@ public class Full {
Record rOrg = Model.getOrgByOrgName(orgName); Record rOrg = Model.getOrgByOrgName(orgName);
//开发测试时专用,批量删除人员与组织机构 //开发测试时专用,批量删除人员与组织机构
//Model.fillDeptListByDataBase(rOrg);//从数据库中获取最新的部门列表(已与钉钉匹配完毕) //OrgPerson.delBureauPerson(accessToken, rOrg);
//OrgPerson.delBureauPerson(accessToken,rOrg); //OrgPerson.delAllDept(accessToken, rOrg);
//OrgPerson.delAllDept(accessToken);
//初始化组织机构【需提前手动删除此学校及下属部门】 //初始化组织机构
//OrgPerson.InitOrg(accessToken, rOrg); //OrgPerson.InitOrg(accessToken, rOrg);
//同步人员 //同步人员
//Model.fillDeptListByDataBase(rOrg);//从数据库中获取最新的部门列表(已与钉钉匹配完毕)
//OrgPerson.initPerson(accessToken, rOrg,10);//这里限定了上限人数为10 //OrgPerson.initPerson(accessToken, rOrg,10);//这里限定了上限人数为10
//初始化角色组 //初始化角色组
@ -42,11 +39,11 @@ public class Full {
//RolePerson.initRole(accessToken, groupId); //RolePerson.initRole(accessToken, groupId);
//同步人员角色信息 //同步人员角色信息
//RolePerson.initPersonRole(accessToken, rOrg); RolePerson.initPersonRole(accessToken, rOrg);
CommonUtil.Print("恭喜,所有操作成功完成!");
// 记录全量同步完成时间 // 记录全量同步完成时间
Progress.finishInit(); Model.finishInit();
CommonUtil.Print("恭喜,所有操作成功完成!");
} }
} }

@ -106,4 +106,11 @@ public class Model {
String sql = "select dingtalk_dept_id from t_base_organization where org_id=?"; String sql = "select dingtalk_dept_id from t_base_organization where org_id=?";
return Db.findFirst(sql, org_id).getLong("dingtalk_dept_id"); return Db.findFirst(sql, org_id).getLong("dingtalk_dept_id");
} }
public static void finishInit() {
List<Record> list = Db.findAll("t_dingtalk_progress");
for (Record record : list) {
Model.saveLastSyncTime(record.getStr("table_name"));
}
}
} }

@ -127,7 +127,6 @@ public class OrgPerson {
//云平台 //云平台
List<Record> list = Model.getOrgList(bureau_id); List<Record> list = Model.getOrgList(bureau_id);
//在B不在A
for (Record record : list) { for (Record record : list) {
// 增加 // 增加
String org_name = record.getStr("org_name"); String org_name = record.getStr("org_name");
@ -138,6 +137,7 @@ public class OrgPerson {
long dingTalkParentDeptId = 1; long dingTalkParentDeptId = 1;
if (parentId > 0) dingTalkParentDeptId = Model.getDtDeptId(parentId); if (parentId > 0) dingTalkParentDeptId = Model.getDtDeptId(parentId);
long dt_dept_id = createDept(accessToken, org_name, dingTalkParentDeptId, sId, parentId == -1); long dt_dept_id = createDept(accessToken, org_name, dingTalkParentDeptId, sId, parentId == -1);
DingTalkCommon.WriteActionTimes();
Model.writeDtDeptId(org_id, String.valueOf(dt_dept_id)); Model.writeDtDeptId(org_id, String.valueOf(dt_dept_id));
CommonUtil.Print("成功创建部门:" + org_name); CommonUtil.Print("成功创建部门:" + org_name);
} }
@ -205,7 +205,7 @@ public class OrgPerson {
req.setLanguage("zh_CN"); req.setLanguage("zh_CN");
OapiUserListsimpleResponse rsp = client.execute(req, access_token); OapiUserListsimpleResponse rsp = client.execute(req, access_token);
JSONObject jo = JSONObject.parseObject(rsp.getBody()); JSONObject jo = JSONObject.parseObject(rsp.getBody());
if(jo==null) return;
JSONArray ja = jo.getJSONObject("result").getJSONArray("list"); JSONArray ja = jo.getJSONObject("result").getJSONArray("list");
if (ja == null) return; if (ja == null) return;
for (int i = 0; i < ja.size(); i++) { for (int i = 0; i < ja.size(); i++) {
@ -255,19 +255,23 @@ public class OrgPerson {
tel = DingTalkCommon.getLawfulTel(tel); tel = DingTalkCommon.getLawfulTel(tel);
long deptId = record.getLong("dingtalk_dept_id"); long deptId = record.getLong("dingtalk_dept_id");
createPerson(accessToken, deptId, person_id, person_name, tel, "教师"); createPerson(accessToken, deptId, person_id, person_name, tel, "教师");
DingTalkCommon.WriteActionTimes();
//回写标识 //回写标识
Model.writePersonDingTalkId(person_id); Model.writePersonDingTalkId(person_id);
CommonUtil.Print("成功加入人员:" + person_name); 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++) { for (int i = 0; i < deptList.size(); i++) {
delDept(access_token, deptList.get(i).getLong("dept_id")); delDept(access_token, deptList.get(i).getLong("dept_id"));
DingTalkCommon.WriteActionTimes();
CommonUtil.Print("成功删除部门:" + deptList.get(i).getStr("name")); 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 { 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 userid = personList.get(i).getStr("userid");
String person_name = personList.get(i).getStr("name"); String person_name = personList.get(i).getStr("name");
delPerson(accessToken, Integer.parseInt(userid)); delPerson(accessToken, Integer.parseInt(userid));
DingTalkCommon.WriteActionTimes();
CommonUtil.Print("成功删除:" + person_name); CommonUtil.Print("成功删除:" + person_name);
} }
} }

@ -1,7 +1,6 @@
package com.dsideal.FengHuang.DingTalk.Util; package com.dsideal.FengHuang.DingTalk.Util;
import com.dsideal.FengHuang.Util.CommonUtil; import com.dsideal.FengHuang.Util.CommonUtil;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.Record;
import com.taobao.api.ApiException; import com.taobao.api.ApiException;
@ -9,14 +8,6 @@ import java.util.Date;
import java.util.List; import java.util.List;
public class Progress { public class Progress {
public static void finishInit() {
List<Record> 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 { public static void syncOrg(String accessToken, Record rOrg) throws ApiException {
Date dt = Model.getLastSyncTime("t_base_organization"); Date dt = Model.getLastSyncTime("t_base_organization");
//找出变更信息 //找出变更信息
@ -65,7 +56,6 @@ public class Progress {
OrgPerson.createPerson(accessToken, dingtalk_dept_id, person_id, person_name, tel, "教师"); OrgPerson.createPerson(accessToken, dingtalk_dept_id, person_id, person_name, tel, "教师");
CommonUtil.Print("新增人员:" + person_name); CommonUtil.Print("新增人员:" + person_name);
} else { } else {
int dingtalk_dept_id = record.getInt("dingtalk_dept_id");
if (b_use == 1) { if (b_use == 1) {
//修改 //修改
OrgPerson.updatePerson(accessToken, person_id, person_name); OrgPerson.updatePerson(accessToken, person_id, person_name);

@ -23,6 +23,7 @@ public class RolePerson {
System.out.println(rsp.getBody()); System.out.println(rsp.getBody());
JSONObject jo = JSONObject.parseObject(rsp.getBody()); JSONObject jo = JSONObject.parseObject(rsp.getBody());
long groupId = jo.getLong("groupId"); long groupId = jo.getLong("groupId");
DingTalkCommon.WriteActionTimes();
return groupId; return groupId;
} }
@ -94,5 +95,4 @@ public class RolePerson {
DingTalkCommon.WriteActionTimes(); DingTalkCommon.WriteActionTimes();
} }
} }
} }

@ -1,11 +1,7 @@
# 企业管理员可以直接点击登录钉钉开放平台 -【基本信息】-【开发信息旧版】查看企业的CorpID和SSOsecret。 # 企业管理员可以直接点击登录钉钉开放平台 -【基本信息】-【开发信息旧版】查看企业的CorpID和SSOsecret。
# 公司ID
corpId=ding0b95901147fc6be0f2c783f7214b6d69
# 每个应用都拥有唯一的AgentId
agentId=2619270936
# AK SK # AK SK
appKey=dingr94qyhpr8bflyxqz appKey=dingi9ltnrtnf66tolwk
appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh appSecret=8qk0JG6z2PUFeCH6WwAfJhN9lTwZE0Kifx776ZUn65dkfDrQpVNynamTQp68xRrZ
# user # user
userName=18946740350 userName=18946740350
@ -13,9 +9,9 @@ pwd=mdcija780522
# redis ip # redis ip
redis_ip=10.10.14.199 redis_ip=127.0.0.1
# redis port # redis port
redis_port=18890 redis_port=6379
# 数据库信息 # 数据库信息

@ -1,11 +1,7 @@
# 企业管理员可以直接点击登录钉钉开放平台 -【基本信息】-【开发信息旧版】查看企业的CorpID和SSOsecret。 # 企业管理员可以直接点击登录钉钉开放平台 -【基本信息】-【开发信息旧版】查看企业的CorpID和SSOsecret。
# 公司ID
corpId=ding0b95901147fc6be0f2c783f7214b6d69
# 每个应用都拥有唯一的AgentId
agentId=2619270936
# AK SK # AK SK
appKey=dingr94qyhpr8bflyxqz appKey=dingi9ltnrtnf66tolwk
appSecret=hnxZ93QqkGJpRyBziaR2vlbOPZo1U9eeqj73DfFuFnIxIUHNPbMR2DkIol9oGteh appSecret=8qk0JG6z2PUFeCH6WwAfJhN9lTwZE0Kifx776ZUn65dkfDrQpVNynamTQp68xRrZ
# user # user
userName=18946740350 userName=18946740350
@ -13,9 +9,9 @@ pwd=mdcija780522
# redis ip # redis ip
redis_ip=10.10.14.199 redis_ip=127.0.0.1
# redis port # redis port
redis_port=18890 redis_port=6379
# 数据库信息 # 数据库信息

Loading…
Cancel
Save