diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Init.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Init.java index a8b12fe..50c967d 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Init.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Init.java @@ -1,9 +1,8 @@ package com.dsideal.FengHuang.DingTalk; -import com.alibaba.druid.filter.stat.StatFilter; -import com.dsideal.FengHuang.DingTalk.Util.Common; +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; @@ -12,6 +11,8 @@ import com.jfinal.plugin.activerecord.dialect.MysqlDialect; import com.jfinal.plugin.druid.DruidPlugin; import com.jfinal.plugin.redis.RedisPlugin; +import java.util.List; + public class Init { public static void main(String[] args_) throws Exception { @@ -19,7 +20,7 @@ public class Init { final String appKey = PropKit.get("appKey"); String appSecret = PropKit.get("appSecret"); - DruidPlugin druid = Common.createDruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(), PropKit.get("driverClassName")); + DruidPlugin druid = DingTalkCommon.createDruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(), PropKit.get("driverClassName")); druid.start(); ActiveRecordPlugin arp = new ActiveRecordPlugin(druid); @@ -32,7 +33,7 @@ public class Init { redis.start(); //accessToken - String accessToken = Common.getAccessToken(appKey, appSecret); + String accessToken = DingTalkCommon.getAccessToken(appKey, appSecret); //同步钉钉与云平台中部门信息 String orgName = "长春市东光学校"; @@ -49,35 +50,20 @@ public class Init { //同步人员 Model.fillDeptListByDataBase(rOrg);//从数据库中获取最新的部门列表(已与钉钉匹配完毕) - OrgPerson.initPerson(accessToken, rOrg); + //OrgPerson.initPerson(accessToken, rOrg); //创建角色组【执行一次即可】 - //RolePerson.createRoleGroup(accessToken, "义务教育阶段角色组"); ---> 3779920123 - - //long groupId = 3779920123L; - - //获取指定角色组下有哪些角色 - //List list = RolePerson.getRoleList(accessToken, groupId); - //System.out.println(list); - - //删除指定角色组下的角色 - //RolePerson.delGroupRole(accessToken,groupId); - - //同步角色 - //RolePerson.syncRole(accessToken, groupId); - - //获取钉钉侧指定角色下人员信息 -// RolePerson.getRolePersonList(accessToken, 3780868223L, 0); -// -// for (int i = 0; i < RolePerson.rolePersonList.size(); i++) { -// System.out.println(RolePerson.rolePersonList.get(i)); -// } -// //获取云平台侧指定角色下人员信息 -// List list2 = Model.getRolePersonReleation(); + // 手动删除原有的职务等角色组,执行下面的语句,并记录返回的角色组值---> 3786695368 + //RolePerson.createRoleGroup(accessToken, "义务教育阶段角色组"); + long groupId = 3786695368L; + //初始化角色 + RolePerson.initRole(accessToken, groupId); + //获取云平台侧指定角色下人员信息 + List list2 = Model.getRolePersonReleation(); CommonUtil.Print("恭喜,所有操作成功完成!"); } } diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Sql/t_dingtalk_actioncount.sql b/src/main/java/com/dsideal/FengHuang/DingTalk/Sql/t_dingtalk_actioncount.sql new file mode 100644 index 0000000..08b70a1 --- /dev/null +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Sql/t_dingtalk_actioncount.sql @@ -0,0 +1,407 @@ +/* + Navicat Premium Data Transfer + + Source Server : 10.10.14.199 + Source Server Type : MySQL + Source Server Version : 100123 (10.1.23-MariaDB) + Source Host : 10.10.14.199:22066 + Source Schema : dsideal_db + + Target Server Type : MySQL + Target Server Version : 100123 (10.1.23-MariaDB) + File Encoding : 65001 + + Date: 15/06/2023 08:30:25 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for t_dingtalk_actioncount +-- ---------------------------- +DROP TABLE IF EXISTS `t_dingtalk_actioncount`; +CREATE TABLE `t_dingtalk_actioncount` ( + `year` int NOT NULL COMMENT '年份', + `month` int NOT NULL COMMENT '月份', + `remain_count` int NULL DEFAULT NULL COMMENT '剩余次数', + PRIMARY KEY (`year`, `month`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of t_dingtalk_actioncount +-- ---------------------------- +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2023, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2024, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2025, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2026, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2027, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2028, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2029, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2030, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2031, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2032, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2033, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2034, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2035, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2036, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2037, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2038, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2039, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2040, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2041, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2042, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2043, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2044, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2045, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2046, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2047, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2048, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2049, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2050, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2051, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2052, 12, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 1, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 2, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 3, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 4, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 5, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 6, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 7, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 8, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 9, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 10, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 11, 500000); +INSERT INTO `t_dingtalk_actioncount` VALUES (2053, 12, 500000); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Sql/t_dingtalk_role.sql b/src/main/java/com/dsideal/FengHuang/DingTalk/Sql/t_dingtalk_role.sql new file mode 100644 index 0000000..9042963 --- /dev/null +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Sql/t_dingtalk_role.sql @@ -0,0 +1,38 @@ +/* + Navicat Premium Data Transfer + + Source Server : 10.10.14.199 + Source Server Type : MySQL + Source Server Version : 100123 (10.1.23-MariaDB) + Source Host : 10.10.14.199:22066 + Source Schema : dsideal_db + + Target Server Type : MySQL + Target Server Version : 100123 (10.1.23-MariaDB) + File Encoding : 65001 + + Date: 15/06/2023 08:53:56 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for t_dingtalk_role +-- ---------------------------- +DROP TABLE IF EXISTS `t_dingtalk_role`; +CREATE TABLE `t_dingtalk_role` ( + `role_id` int NOT NULL COMMENT '角色ID', + `role_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称', + `dingtalk_role_id` bigint NULL DEFAULT NULL COMMENT '在钉钉系统中的角色ID', + PRIMARY KEY (`role_id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of t_dingtalk_role +-- ---------------------------- +INSERT INTO `t_dingtalk_role` VALUES (4, '普通教师', 3786531788); +INSERT INTO `t_dingtalk_role` VALUES (174, '班主任', 3786792098); +INSERT INTO `t_dingtalk_role` VALUES (323, '学校校长', 3780952031); + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Common.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/DingTalkCommon.java similarity index 84% rename from src/main/java/com/dsideal/FengHuang/DingTalk/Util/Common.java rename to src/main/java/com/dsideal/FengHuang/DingTalk/Util/DingTalkCommon.java index 3a66c10..1b52e98 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Common.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/DingTalkCommon.java @@ -6,10 +6,15 @@ import com.aliyun.dingtalkoauth2_1_0.models.GetAccessTokenResponse; import com.aliyun.dingtalkoauth2_1_0.models.GetSsoAccessTokenRequest; import com.aliyun.dingtalkoauth2_1_0.models.GetSsoAccessTokenResponse; import com.aliyun.tea.TeaException; +import com.dsideal.FengHuang.Util.CommonUtil; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.druid.DruidPlugin; import com.jfinal.plugin.redis.Redis; -public class Common { +import java.util.Calendar; + +public class DingTalkCommon { public static DruidPlugin createDruidPlugin(String url, String username, String password, String driverClass) { DruidPlugin druidPlugin = new DruidPlugin(url, username, password, driverClass); //最大连接池数量 @@ -34,6 +39,7 @@ public class Common { druidPlugin.addFilter(new StatFilter()); return druidPlugin; } + /** * 使用 Token 初始化账号Client * @@ -139,7 +145,23 @@ public class Common { } } - public static void WriteActionTimes(){ + public static void WriteActionTimes() { + //当前年、月 + Calendar calendar = Calendar.getInstance(); + int year = calendar.get(Calendar.YEAR); + int month = calendar.get(Calendar.MONTH) + 1; // Calendar.MONTH返回的范围是0-11,需要加1 + String sql = "update t_dingtalk_actioncount set remain_count=remain_count-1 where year=? and month=?"; + Db.update(sql, year, month); + sql = "select remain_count from t_dingtalk_actioncount where year=? and month=?"; + Record record = Db.findFirst(sql, year, month); + int remain_count = record.getInt("remain_count"); + int seconds = 2; + CommonUtil.Print("钉钉本月剩余API调用次数:" + remain_count + ",为防止调用过于频繁,将休息" + seconds + "秒后继续操作!"); + try { + Thread.sleep(seconds * 1000); + } catch (InterruptedException e) { + e.printStackTrace(); + } } } diff --git a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/FillRemainCount.java b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/FillRemainCount.java index 4655328..5e6194a 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/FillRemainCount.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/FillRemainCount.java @@ -11,7 +11,7 @@ import com.jfinal.plugin.druid.DruidPlugin; public class FillRemainCount { public static void main(String[] args) { PropKit.use("dingtalk.properties"); - DruidPlugin druid = Common.createDruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(), PropKit.get("driverClassName")); + DruidPlugin druid = DingTalkCommon.createDruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim(), PropKit.get("driverClassName")); druid.start(); ActiveRecordPlugin arp = new ActiveRecordPlugin(druid); 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 79d065b..57edb01 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Model.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/Model.java @@ -53,7 +53,7 @@ public class Model { } public static List getRoleList() { - String sql = "select * from t_im_role"; + String sql = "select * from t_dingtalk_role"; return Db.find(sql); } @@ -64,7 +64,7 @@ public class Model { // 需要同步哪些人员角色信息 public static List getRolePersonReleation() { - String sql = "select t1.person_id,t1.role_id,t2.dingtalk_role_id from t_sys_person_role as t1 inner join t_im_role as t2 on t1.role_id=t2.role_id where t1.bureau_id=?"; + String sql = "select t1.person_id,t1.role_id,t2.dingtalk_role_id from t_sys_person_role as t1 inner join t_dingtalk_role as t2 on t1.role_id=t2.role_id where t1.bureau_id=?"; List list=Db.find(sql); return list; } 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 de56104..b0a43d7 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/OrgPerson.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/OrgPerson.java @@ -260,6 +260,7 @@ public class OrgPerson { long deptId = record.getLong("dingtalk_dept_id"); createPerson(accessToken, String.valueOf(deptId), person_id, person_name, tel, "教师"); CommonUtil.Print("成功加入人员:" + person_name); + DingTalkCommon.WriteActionTimes(); } } 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 8f9aa7c..d12991e 100644 --- a/src/main/java/com/dsideal/FengHuang/DingTalk/Util/RolePerson.java +++ b/src/main/java/com/dsideal/FengHuang/DingTalk/Util/RolePerson.java @@ -13,26 +13,6 @@ import com.taobao.api.ApiException; import java.util.*; public class RolePerson { - //暂未改修改,因为我们的角色与测试架构的角色存在冲突,不能在人家的环境中实现全部测试功能,需要搭建自己的专用服务器+架构 - /* - -- 需要产品人员整理出我们管理软件需要的角色有哪些,是现在云平台角色表的子集 - DROP TABLE IF EXISTS `t_im_role`; - CREATE TABLE `t_im_role` ( - `role_id` int NOT NULL COMMENT '角色ID', - `role_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称', - `dingtalk_role_id` bigint NULL DEFAULT NULL COMMENT '在钉钉系统中的角色ID', - PRIMARY KEY (`role_id`) USING BTREE - ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; - - -- ---------------------------- - -- Records of t_im_role - -- ---------------------------- - INSERT INTO `t_im_role` VALUES (174, '班主任', NULL); - INSERT INTO `t_im_role` VALUES (323, '学校校长', NULL); - insert into `t_im_role` VALUES (4,'普通教师',NULL); - TODO - //让产品经理想好,加入到此表中,表示需要与IM钉钉系统对接的角色 - */ //创建用户组,这个概念似乎不重要,可以手动创建即可 public static void createRoleGroup(String access_token, String group_name) throws ApiException { @@ -43,30 +23,6 @@ public class RolePerson { System.out.println(rsp.getBody()); } - /** - * 功能:获取指定角色组下有哪些角色 - * - * @param access_token - * @param group_id - * @throws ApiException - */ - public static List getRoleList(String access_token, long group_id) throws ApiException { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/role/getrolegroup"); - OapiRoleGetrolegroupRequest req = new OapiRoleGetrolegroupRequest(); - req.setGroupId(group_id); - OapiRoleGetrolegroupResponse rsp = client.execute(req, access_token); - JSONObject jo = JSONObject.parseObject(rsp.getBody()); - JSONArray ja = jo.getJSONObject("role_group").getJSONArray("roles"); - List list = new ArrayList(); - for (int i = 0; i < ja.size(); i++) { - Record record = new Record(); - record.set("role_id", ((JSONObject) ja.get(i)).getLong("role_id")); - record.set("role_name", ((JSONObject) ja.get(i)).getString("role_name")); - list.add(record); - } - return list; - } - public static long createRole(String access_token, String role_name, long group_id) throws ApiException { DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/role/add_role"); OapiRoleAddRoleRequest req = new OapiRoleAddRoleRequest(); @@ -85,21 +41,6 @@ public class RolePerson { System.out.println(rsp.getBody()); } - public static void updateRole(String access_token, long role_id, String role_name) throws ApiException { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/role/update_role"); - OapiRoleUpdateRoleRequest req = new OapiRoleUpdateRoleRequest(); - req.setRoleId(role_id); - req.setRoleName(role_name); - OapiRoleUpdateRoleResponse rsp = client.execute(req, access_token); - System.out.println(rsp.getBody()); - } - - public static void clearGroupRole(String access_token, long group_id) throws ApiException { - List list = getRoleList(access_token, group_id); - for (int i = 0; i < list.size(); i++) { - delRole(access_token, list.get(i).getLong("role_id")); - } - } /** * 功能:同步角色信息 @@ -108,110 +49,19 @@ public class RolePerson { * @param group_id * @throws ApiException */ - public static void syncRole(String access_token, long group_id) throws ApiException { - //1、钉钉侧有哪些角色 - List listA = getRoleList(access_token, group_id); - //2、数据库有哪些角色 + public static void initRole(String access_token, long group_id) throws ApiException { + //数据库有哪些角色 List listB = Model.getRoleList(); - boolean flag; - //3、在A不在B,删除之 - for (int i = 0; i < listA.size(); i++) { - flag = false; - for (int j = 0; j < listB.size(); j++) { - if (listB.get(j).get("dingtalk_role_id") != null && listA.get(i).getLong("role_id") == listB.get(j).getLong("dingtalk_role_id")) { - flag = true; - break; - } - } - if (!flag) { - delRole(access_token, listA.get(i).getLong("role_id")); - CommonUtil.Print("成功删除钉钉侧角色:" + listA.get(i).getStr("role_name")); - } - } - //4、在B不在A,增加之 + //增加 for (int i = 0; i < listB.size(); i++) { - flag = false; - for (int j = 0; j < listA.size(); j++) { - if (listB.get(j).get("dingtalk_role_id") != null && listA.get(i).getLong("role_id") == listB.get(j).getLong("dingtalk_role_id")) { - flag = true; - break; - } - } - if (!flag) { - long dt_role_id = createRole(access_token, listB.get(i).getStr("role_name"), group_id); - //回写 - Model.writeDingTalkRoleId(listB.get(i).getInt("role_id"), dt_role_id); - - CommonUtil.Print("成功创建角色:" + listB.get(i).getStr("role_name")); - } + long dt_role_id = createRole(access_token, listB.get(i).getStr("role_name"), group_id); + //回写 + Model.writeDingTalkRoleId(listB.get(i).getInt("role_id"), dt_role_id); + CommonUtil.Print("成功创建角色:" + listB.get(i).getStr("role_name")); + DingTalkCommon.WriteActionTimes(); } - //5、在A也在B,看看是不是角色名称需要修改 - //TODO,因为角色名称不般不随意变化,不写这块代码也是OK的 } - /** - * 功能:角色下人员列表 - * - * @param access_token - * @param role_id - * @throws ApiException - */ - public static List rolePersonList = new ArrayList<>(); - public static long SZ = 2l; - - public static void getRolePersonList(String access_token, long role_id, long start) throws ApiException { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/role/simplelist"); - OapiRoleSimplelistRequest req = new OapiRoleSimplelistRequest(); - req.setRoleId(role_id); - req.setSize(SZ); - req.setOffset(start); - OapiRoleSimplelistResponse rsp = client.execute(req, access_token); - JSONObject jo = JSONObject.parseObject(rsp.getBody()); - - JSONArray ja = jo.getJSONObject("result").getJSONArray("list"); - for (int i = 0; i < ja.size(); i++) { - Record record = new Record(); - String name = ((JSONObject) ja.get(i)).getString("name"); - String userid = ((JSONObject) ja.get(i)).getString("userid"); - record.set("person_name", name); - record.set("person_id", userid); - rolePersonList.add(record); - } - - if (jo.getJSONObject("result").getBoolean("hasMore")) { - getRolePersonList(access_token, role_id, start + SZ); - } - } - - public static void syncRolePersonReleation() { - //getRolePersonList(); - //Model.getRolePersonReleation(); - } - - /** - * 获取角色列表 - * - * @param accessToken - * @throws ApiException - */ - public static void getRoleList(String accessToken) throws ApiException { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/role/list"); - OapiRoleListRequest req = new OapiRoleListRequest(); - req.setSize(20L); - req.setOffset(0L); - OapiRoleListResponse rsp = client.execute(req, accessToken); - System.out.println(rsp.getBody()); - } - - - public static void updateRole(String accessToken) throws ApiException { - DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/role/update_role"); - OapiRoleUpdateRoleRequest req = new OapiRoleUpdateRoleRequest(); - req.setRoleId(1560985325L); - req.setRoleName("服装制造"); - OapiRoleUpdateRoleResponse rsp = client.execute(req, accessToken); - System.out.println(rsp.getBody()); - } public static void addRolePerson(String accessToken, String role_id, String ids) throws ApiException {