Selaa lähdekoodia

定时删除不在企业微信的用户数据

吴志根 4 vuotta sitten
vanhempi
commit
5b7c8e7e70

+ 27 - 0
src/dsb/com/cnd3b/service/GetWechatData.java

@@ -213,6 +213,9 @@ public class GetWechatData extends BaseClass implements Runnable {
     public static String[] positionAgent = {"经销商管理员", "销售主管", "店长", "销售经理", "家居顾问", "售后经理", "安装技师"};
 
 
+    private ArrayList<String> list_wechat_userid = new ArrayList<>();
+
+
     /**
      * 获取企业微信部门列表
      *
@@ -302,6 +305,7 @@ public class GetWechatData extends BaseClass implements Runnable {
             String open_userid = jsonObject.getString("open_userid");
             List<String> list = Arrays.asList(strArray);
             if (list.contains(position)) {
+                list_wechat_userid.add(userid);
                 SQLFactory sqlFactory = new SQLFactory(this, "插入微信成员");
                 sqlFactory.addParameter("tuserid", createTableID("tuser", "tuserid"));
                 sqlFactory.addParameter("wechat_depid", main_department);
@@ -357,6 +361,7 @@ public class GetWechatData extends BaseClass implements Runnable {
             String open_userid = jsonObject.getString("open_userid");
             List<String> list = Arrays.asList(strArray);
             if (list.contains(position)) {
+                list_wechat_userid.add(userid);
                 SQLFactory sqlFactory = new SQLFactory(this, "插入微信成员");
                 sqlFactory.addParameter("tuserid", createTableID("tuser", "tuserid"));
                 sqlFactory.addParameter("wechat_depid", main_department);
@@ -429,6 +434,28 @@ public class GetWechatData extends BaseClass implements Runnable {
 //            }
         }
 
+        deleteUser();
+
+    }
+
+    /**
+     * 自动清除用户
+     */
+    public void deleteUser() {
+        System.err.println("用户数量:" + list_wechat_userid.size());
+        SQLFactory sqlFactory = new SQLFactory(this, "查询删除用户");
+        sqlFactory.addParameter_in("wechat_userid", list_wechat_userid);
+        String sql = sqlFactory.getSQL();
+        Rows rows = dbConnect.runSqlQuery(sql);
+        ArrayList<String> deleteList = rows.toArrayList("tuserid");
+        System.err.println("删除用户数量:" + deleteList.size());
+        if (!rows.isEmpty()) {
+            SQLFactory deleteFac = new SQLFactory(this, "删除用户");
+            deleteFac.addParameter_in("tuserid", deleteList);
+            System.err.println(deleteFac.getSQL());
+            dbConnect.runSqlUpdate(deleteFac.getSQL());
+        }
+        list_wechat_userid.clear();
 
     }
 

+ 15 - 0
src/dsb/com/cnd3b/service/SQL/删除用户.sql

@@ -0,0 +1,15 @@
+DELETE
+FROM tadministrators
+WHERE tuserid IN $tuserid$
+DELETE
+FROM tuserrequestlog
+WHERE tuserid IN $tuserid$
+DELETE
+FROM tuser
+WHERE tuserid IN $tuserid$
+DELETE
+FROM tuser_study
+WHERE tuserid IN $tuserid$
+DELETE
+FROM tfolderauth
+WHERE tuserid IN $tuserid$

+ 5 - 0
src/dsb/com/cnd3b/service/SQL/查询删除用户.sql

@@ -0,0 +1,5 @@
+SELECT tuserid
+FROM tuser
+WHERE wechat_userid not IN $wechat_userid$
+  AND tuserid != 1
+ORDER BY tuserid DESC