吴志根 пре 4 година
родитељ
комит
68a197cf87

+ 11 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/data/data.java

@@ -1,8 +1,10 @@
 package com.cnd3b.restcontroller.enterprise.data;
 package com.cnd3b.restcontroller.enterprise.data;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.cnd3b.common.Controller;
 import com.cnd3b.common.Controller;
 import com.cnd3b.common.data.Rows;
 import com.cnd3b.common.data.Rows;
+import com.cnd3b.service.GetWechatData;
 
 
 import java.text.DecimalFormat;
 import java.text.DecimalFormat;
 import java.text.NumberFormat;
 import java.text.NumberFormat;
@@ -99,5 +101,14 @@ public class data extends Controller {
         return result;
         return result;
     }
     }
 
 
+    /**
+     * ·µ»ØÊÚȨ½ÇÉ«
+     *
+     * @return
+     */
+    public String getRoles() {
+        return getSucReturnObject().setData(GetWechatData.positionAgent).toString();
+    }
+
 
 
 }
 }

+ 3 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tagents/SQL/查询经销商体系.sql

@@ -0,0 +1,3 @@
+SELECT tagentauthid, tagentsid, fauthtype
+FROM tagentauth
+WHERE tagentsid IN $tagentsid$

+ 10 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tagents/tagents.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.cnd3b.common.Controller;
 import com.cnd3b.common.Controller;
 import com.cnd3b.common.data.Row;
 import com.cnd3b.common.data.Row;
 import com.cnd3b.common.data.Rows;
 import com.cnd3b.common.data.Rows;
+import com.cnd3b.common.data.RowsMap;
 import com.cnd3b.common.data.SQLFactory;
 import com.cnd3b.common.data.SQLFactory;
 import p2.pao.PaoRemote;
 import p2.pao.PaoRemote;
 import p2.pao.PaoSetRemote;
 import p2.pao.PaoSetRemote;
@@ -30,6 +31,15 @@ public class tagents extends Controller {
         SQLFactory sqlFactory = new SQLFactory(this, "经销商档案列表", pageSize, pageNumber, "t1.createdate desc");
         SQLFactory sqlFactory = new SQLFactory(this, "经销商档案列表", pageSize, pageNumber, "t1.createdate desc");
         Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
 
 
+        SQLFactory sqlFactory1 = new SQLFactory(this, "查询经销商体系");
+        sqlFactory1.addParameter_in("tagentsid", rows.toArrayList("tagentsid"));
+        Rows rows1 = dbConnect.runSqlQuery(sqlFactory1.getSQL());
+        RowsMap rowsMap = rows1.toRowsMap("tagentsid");
+
+        for (Row row : rows) {
+            row.put("tagentauth", rowsMap.getOrDefault(row.getString("tagentsid"), new Rows()));
+        }
+
         return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
         return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
     }
     }
 
 

+ 1 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tuser/SQL/部门成员列表.sql

@@ -8,3 +8,4 @@ SELECT t1.tuserid,
        t1.fusertype
        t1.fusertype
 FROM tuser t1
 FROM tuser t1
 WHERE t1.fusertype = $fusertype$
 WHERE t1.fusertype = $fusertype$
+  and (t1.wechat_name LIKE $keywords$ OR t1.wechat_position LIKE $keywords$ OR t1.wechat_mobile LIKE $keywords$)

+ 6 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tuser/tuser.java

@@ -25,8 +25,14 @@ public class tuser extends Controller {
      */
      */
     public String selectTuserList() {
     public String selectTuserList() {
         String fusertype = content.getString("fusertype");
         String fusertype = content.getString("fusertype");
+        String keywords = "";
+        if (content.containsKey("keywords")) {
+            keywords = content.getString("keywords");
+        }
+
         SQLFactory sqlFactory = new SQLFactory(this, "²¿ÃųÉÔ±Áбí", pageSize, pageNumber, "t1.createdate DESC");
         SQLFactory sqlFactory = new SQLFactory(this, "²¿ÃųÉÔ±Áбí", pageSize, pageNumber, "t1.createdate DESC");
         sqlFactory.addParameter("fusertype", fusertype);
         sqlFactory.addParameter("fusertype", fusertype);
+        sqlFactory.addParameter("keywords", "%" + keywords + "%");
         Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
         return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
         return getSucReturnObject().setDataByPaging(rows).preloading(1).toString();
     }
     }

+ 2 - 1
src/dsb/com/cnd3b/restcontroller/publicmethod/wechatapplet/wechatapplet.java

@@ -23,7 +23,8 @@ public class wechatapplet extends Controller {
 
 
     public String wechatappletLogin() {
     public String wechatappletLogin() {
         String code = content.getString("code");
         String code = content.getString("code");
-        String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=" + WechatDock_Enterprise.getAccessToken2() + "&code=" + code;
+        int type = content.getIntValue("type");
+        String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=" + WechatDock_Enterprise.getMiniAppAccessToken(type) + "&code=" + code;
 //        System.err.println(url);
 //        System.err.println(url);
         String response = new WebRequest().doGet(url);
         String response = new WebRequest().doGet(url);
         JSONObject object = JSONObject.parseObject(response);
         JSONObject object = JSONObject.parseObject(response);

+ 234 - 167
src/dsb/com/cnd3b/service/GetWechatData.java

@@ -5,23 +5,14 @@ import com.alibaba.fastjson.JSONObject;
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.OSSClient;
 import com.aliyun.oss.model.*;
 import com.aliyun.oss.model.*;
 import com.cnd3b.common.BaseClass;
 import com.cnd3b.common.BaseClass;
+import com.cnd3b.common.Controller;
 import com.cnd3b.common.data.Rows;
 import com.cnd3b.common.data.Rows;
 import com.cnd3b.common.data.SQLFactory;
 import com.cnd3b.common.data.SQLFactory;
 import com.cnd3b.common.data.db.DBConnect;
 import com.cnd3b.common.data.db.DBConnect;
-import com.cnd3b.common.data.db.SQLiteJDBC;
-import com.cnd3b.common.parameter.parameter;
 import com.cnd3b.utility.WebRequest;
 import com.cnd3b.utility.WebRequest;
-import com.cnd3b.utility.aliyun.oss.AliyunOSSConfigConstant;
 import com.cnd3b.utility.wechatdock.WechatDock_Enterprise;
 import com.cnd3b.utility.wechatdock.WechatDock_Enterprise;
-import p2.common.parse.A;
-import p2.pao.PaoRemote;
-import p2.pao.PaoSetRemote;
-import p2.util.P2Exception;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+
+import java.util.*;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipEntry;
 
 
 import static com.cnd3b.utility.aliyun.oss.AliyunOSSUtil.*;
 import static com.cnd3b.utility.aliyun.oss.AliyunOSSUtil.*;
@@ -29,10 +20,11 @@ import static com.cnd3b.utility.aliyun.oss.AliyunOSSUtil.*;
 
 
 public class GetWechatData extends BaseClass implements Runnable {
 public class GetWechatData extends BaseClass implements Runnable {
 
 
-
+    public DBConnect dbConnect = null;
 
 
     @Override
     @Override
     public void run() {
     public void run() {
+        this.dbConnect = new DBConnect();
 //        if (new SQLiteJDBC().checkServicesUsed("GetWechatData", false)) {
 //        if (new SQLiteJDBC().checkServicesUsed("GetWechatData", false)) {
         try {
         try {
             System.err.println("GetWechatData Service start...");
             System.err.println("GetWechatData Service start...");
@@ -74,6 +66,7 @@ public class GetWechatData extends BaseClass implements Runnable {
         // 发起deleteObjects请求。
         // 发起deleteObjects请求。
         client.deleteObjects(request);
         client.deleteObjects(request);
         client.shutdown();
         client.shutdown();
+        keysList.clear();
     }
     }
 
 
 
 
@@ -99,38 +92,135 @@ public class GetWechatData extends BaseClass implements Runnable {
     }
     }
 
 
 
 
+//    public void updateUser(JSONArray userArray) throws P2Exception {
+//        ArrayList<String> ids = new ArrayList<>();
+//        for (Object obj : userArray) {
+//            JSONObject jsonObject = (JSONObject) obj;
+//            String wechat_userid = jsonObject.getString("userid");
+//
+//            ids.add(wechat_userid);
+//
+//            String WECHAT_NAME = jsonObject.getString("name");
+//            String wechat_open_userid = jsonObject.getString("open_userid");
+//            String wechat_mobile = jsonObject.getString("mobile");
+//            String wechat_position = jsonObject.getString("position");
+//            int wechat_depid = jsonObject.getIntValue("main_department");
+//
+//            String sql = "SELECT wechat_depname FROM tdepartment WHERE wechat_depid='" + wechat_depid + "'";
+//            Rows rows = dbConnect.runSqlQuery(sql);
+//            String fusertype = "";
+//            String wechat_depname = "";
+//            if (!rows.isEmpty()) {
+//                wechat_depname = rows.get(0).getString("wechat_depname");
+//            }
+//            if (wechat_depname.equals(parameter.depname)) {
+//                fusertype = "经销商";
+//
+//            } else {
+//                fusertype = "业务员";
+//            }
+//
+//
+//            PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tuser", "wechat_userid = '" + wechat_userid + "'");
+//            if (paoSetRemote.isEmpty()) {
+//                PaoRemote paoRemote = paoSetRemote.addAtEnd();
+//                paoRemote.setValue("siteid", parameter.defaultsiteid, 11L);
+//                paoRemote.setValue("wechat_userid", wechat_userid, 11L);
+//                paoRemote.setValue("WECHAT_NAME", WECHAT_NAME, 11L);
+//                paoRemote.setValue("wechat_open_userid", wechat_open_userid, 11L);
+//                paoRemote.setValue("wechat_mobile", wechat_mobile, 11L);
+//                paoRemote.setValue("wechat_position", wechat_position, 11L);
+//                paoRemote.setValue("wechat_depid", wechat_depid, 11L);
+//                paoRemote.setValue("fusertype", fusertype, 11L);
+//                paoSetRemote.save();
+//            }
+//
+//
+//
+//        }
+//
+//    }
+
+
+//    public void updateTagents(int id) throws P2Exception {
+//        String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + WechatDock_Enterprise.getAccessToken() + "&id=" + id;
+//        String response = new WebRequest().doGet(url);
+//        JSONObject object = JSONObject.parseObject(response);
+//        JSONArray array = object.getJSONArray("department");
+//        DBConnect dbConnect = new DBConnect();
+//        ArrayList<String> ids = new ArrayList<>();
+//        for (Object obj : array) {
+//            JSONObject jsonObject = (JSONObject) obj;
+//
+//            int wechat_depid = jsonObject.getIntValue("id");
+//            if (wechat_depid != id) {
+//                ids.add(wechat_depid + "");
+//                //获取管理员信息
+//                JSONArray department_leader = jsonObject.getJSONArray("department_leader");
+//                String fcontact = "";
+//                String fphonenumber = "";
+//                String faddress = "";
+//                if (department_leader.size() > 0) {
+//                    String url2 = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=" + WechatDock_Enterprise.getAccessToken() + "&userid=" + department_leader.get(0);
+//                    String responseUser = new WebRequest().doGet(url2);
+//                    JSONObject objectUser = JSONObject.parseObject(responseUser);
+//                    fcontact = objectUser.getString("name");
+//                    fphonenumber = objectUser.getString("mobile");
+//                    faddress = objectUser.getString("address");
+//                }
+//
+//                //保存经销商档案
+//                PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tagents", "wechat_depid = '" + wechat_depid + "'");
+//                if (paoSetRemote.isEmpty()) {
+//                    PaoRemote paoRemote = paoSetRemote.addAtEnd();
+//                    paoRemote.setValue("wechat_depid", wechat_depid, 11L);
+//                    paoRemote.setValue("fagentname", jsonObject.getString("name"), 11L);
+//                    paoRemote.setValue("fcontact", fcontact, 11L);
+//                    paoRemote.setValue("fphonenumber", fphonenumber, 11L);
+//                    paoRemote.setValue("faddress", faddress, 11L);
+//                    paoSetRemote.save();
+//                }
+//                else {
+//                    PaoRemote paoRemote = paoSetRemote.getPao(0);
+//                    paoRemote.setValue("wechat_depid", wechat_depid, 11L);
+//                    paoRemote.setValue("fagentname", jsonObject.getString("name"), 11L);
+//                    paoRemote.setValue("fcontact", fcontact, 11L);
+//                    paoRemote.setValue("fphonenumber", fphonenumber, 11L);
+//                    paoRemote.setValue("faddress", faddress, 11L);
+//                    paoSetRemote.save();
+//                }
+//            }
+//        }
+
+//        SQLFactory sqlFactory = new SQLFactory(this, "删除经销商");
+//        sqlFactory.addParameter_in("ids", ids);
+//        dbConnect.runSqlUpdate(sqlFactory.getSQL());
+//    }
+
+    /**
+     * 内部职位
+     */
+    public static String[] positionSeller = {"董事局主席", "董事长兼总裁", "董事长助理", "总裁助理", "营销总经理", "营销副总经理", "总监", "副总监", "总监助理", "部长", "主任", "大区总经理", "大区副总经理", "大区总助理", "片区经理", "储备人才"};
+    /**
+     * 经销商职位
+     */
+    public static String[] positionAgent = {"经销商管理员", "销售主管", "店长", "销售经理", "家居顾问", "售后经理", "安装技师"};
+
+
     /**
     /**
      * 获取企业微信部门列表
      * 获取企业微信部门列表
      *
      *
      * @return
      * @return
      */
      */
-    public JSONArray getDepartmentList() throws P2Exception {
+    public JSONArray getDepartmentList() {
         String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + WechatDock_Enterprise.getAccessToken();
         String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + WechatDock_Enterprise.getAccessToken();
         System.err.println(url);
         System.err.println(url);
         String response = new WebRequest().doGet(url);
         String response = new WebRequest().doGet(url);
         JSONObject object = JSONObject.parseObject(response);
         JSONObject object = JSONObject.parseObject(response);
-        System.err.println(object.toJSONString());
         JSONArray array = object.getJSONArray("department");
         JSONArray array = object.getJSONArray("department");
         if (array.size() > 0) {
         if (array.size() > 0) {
             updateDepartment(array);
             updateDepartment(array);
-            JSONArray userArray = new JSONArray();
-            JSONArray tagentsArray = new JSONArray();
-            int id = 0;
-            for (Object obj : array) {
-                JSONObject jsonObject = (JSONObject) obj;
-                String name = jsonObject.getString("name");
-                //查询部门名称为经销商的部门id
-                if (name.equals(parameter.depname)) {
-                    id = jsonObject.getIntValue("id");
-                }
-                userArray.addAll(getDepartmentUsers(jsonObject.getIntValue("id"), 0));
 
 
-            }
-            //更新成员表
-            updateUser(userArray);
-            //更新经销商表
-
-            updateTagents(id);
         } else {
         } else {
             WechatDock_Enterprise.getAccessToken2();
             WechatDock_Enterprise.getAccessToken2();
         }
         }
@@ -140,164 +230,141 @@ public class GetWechatData extends BaseClass implements Runnable {
     }
     }
 
 
     /**
     /**
-     * 获取企业微信部门成员列
+     * 更新数据到部门
      *
      *
-     * @return
+     * @param array
      */
      */
-    public JSONArray getDepartmentUsers(int id, int fetch_child) {
-        String url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=" + WechatDock_Enterprise.getAccessToken() + "&department_id=" + id + "&fetch_child=" + fetch_child;
-        String response = new WebRequest().doGet(url);
-        JSONObject object = JSONObject.parseObject(response);
-        System.err.println(object.toJSONString());
-        return object.getJSONArray("userlist");
-    }
-
-    public void updateDepartment(JSONArray array) throws P2Exception {
-        ArrayList<String> ids = new ArrayList<>();
+    public void updateDepartment(JSONArray array) {
+        ArrayList<String> listSql = new ArrayList<>();
         for (Object obj : array) {
         for (Object obj : array) {
             JSONObject jsonObject = (JSONObject) obj;
             JSONObject jsonObject = (JSONObject) obj;
-            int id = jsonObject.getIntValue("id");
-            ids.add(id + "");
-
-            PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tdepartment", "wechat_depid = '" + id + "'");
-            if (paoSetRemote.isEmpty()) {
-                PaoRemote paoRemote = paoSetRemote.addAtEnd();
-                paoRemote.setValue("wechat_depid", id, 11L);
-                paoRemote.setValue("wechat_parendeptid", jsonObject.getIntValue("parentid"), 11L);
-                paoRemote.setValue("wechat_depname", jsonObject.getString("name"), 11L);
-                paoSetRemote.save();
+            int wechat_depid = jsonObject.getIntValue("id");
+            int wechat_parendeptid = jsonObject.getIntValue("parentid");
+            String wechat_depname = jsonObject.getString("name");
+            SQLFactory sqlFactory = new SQLFactory(this, "插入微信部门");
+            sqlFactory.addParameter("tdepartmentid", createTableID("tdepartment", "tdepartmentid"));
+            sqlFactory.addParameter("wechat_depid", wechat_depid);
+            sqlFactory.addParameter("wechat_parendeptid", wechat_parendeptid);
+            sqlFactory.addParameter("wechat_depname", wechat_depname);
+            listSql.add(sqlFactory.getSQL());
+            if (listSql.size() > 50) {
+                System.err.println("start...");
+                dbConnect.runSqlUpdate(listSql);
+                listSql.clear();
             }
             }
-//            else {
-//                PaoRemote paoRemote = paoSetRemote.getPao(0);
-//                paoRemote.setValue("wechat_depid", id, 11L);
-//                paoRemote.setValue("wechat_parendeptid", jsonObject.getIntValue("parentid"), 11L);
-//                paoRemote.setValue("wechat_depname", jsonObject.getString("name"), 11L);
-//                paoSetRemote.save();
-//            }
+
         }
         }
-//        SQLFactory sqlFactory = new SQLFactory(this, "删除微信部门");
-//        sqlFactory.addParameter_in("ids", ids);
-//        new DBConnect().runSqlUpdate(sqlFactory.getSQL());
+        dbConnect.runSqlUpdate(listSql);
+
+        getDepartmentUsers(3, 1, positionSeller, "业务员");
+        getDepartmentUsers(144, 1, positionAgent, "经销商");
+
+
     }
     }
 
 
-    public void updateUser(JSONArray userArray) throws P2Exception {
-        ArrayList<String> ids = new ArrayList<>();
-        DBConnect dbConnect = new DBConnect();
-        for (Object obj : userArray) {
+    /**
+     * 获取企业微信部门成员列表
+     *
+     * @return
+     */
+    public JSONArray getDepartmentUsers(int id, int fetch_child, String[] strArray, String fusertype) {
+        String url = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=" + WechatDock_Enterprise.getAccessToken() + "&department_id=" + id + "&fetch_child=" + fetch_child;
+        String response = new WebRequest().doGet(url);
+        JSONObject object = JSONObject.parseObject(response);
+        JSONArray array = object.getJSONArray("userlist");
+        ArrayList<String> listSql = new ArrayList<>();
+        for (Object obj : array) {
             JSONObject jsonObject = (JSONObject) obj;
             JSONObject jsonObject = (JSONObject) obj;
-            String wechat_userid = jsonObject.getString("userid");
-
-            ids.add(wechat_userid);
-
-            String WECHAT_NAME = jsonObject.getString("name");
-            String wechat_open_userid = jsonObject.getString("open_userid");
-            String wechat_mobile = jsonObject.getString("mobile");
-            String wechat_position = jsonObject.getString("position");
-            int wechat_depid = jsonObject.getIntValue("main_department");
-
-            String sql = "SELECT wechat_depname FROM tdepartment WHERE wechat_depid='" + wechat_depid + "'";
-            Rows rows = dbConnect.runSqlQuery(sql);
-            String fusertype = "";
-            String wechat_depname = "";
-            if (!rows.isEmpty()) {
-                wechat_depname = rows.get(0).getString("wechat_depname");
-            }
-            if (wechat_depname.equals(parameter.depname)) {
-                fusertype = "经销商";
+            String position = jsonObject.getString("position");
+            String name = jsonObject.getString("name");
+            String userid = jsonObject.getString("userid");
+            int main_department = jsonObject.getIntValue("main_department");
+            String mobile = jsonObject.getString("mobile");
+            String open_userid = jsonObject.getString("open_userid");
+            List<String> list = Arrays.asList(strArray);
+            if (list.contains(position)) {
+                SQLFactory sqlFactory = new SQLFactory(this, "插入微信成员");
+                sqlFactory.addParameter("tuserid", createTableID("tuser", "tuserid"));
+                sqlFactory.addParameter("wechat_depid", main_department);
+                sqlFactory.addParameter("wechat_userid", userid);
+                sqlFactory.addParameter("wechat_name", name);
+                sqlFactory.addParameter("wechat_open_userid", open_userid);
+                sqlFactory.addParameter("wechat_mobile", mobile);
+                sqlFactory.addParameter("wechat_position", position);
+                sqlFactory.addParameter("fusertype", fusertype);
+                listSql.add(sqlFactory.getSQL());
+                if (listSql.size() > 50) {
+                    System.err.println("start user...");
+                    dbConnect.runSqlUpdate(listSql);
+                    listSql.clear();
+                }
 
 
-            } else {
-                fusertype = "业务员";
             }
             }
 
 
+        }
 
 
-            PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tuser", "wechat_userid = '" + wechat_userid + "'");
-            if (paoSetRemote.isEmpty()) {
-                PaoRemote paoRemote = paoSetRemote.addAtEnd();
-                paoRemote.setValue("siteid", parameter.defaultsiteid, 11L);
-                paoRemote.setValue("wechat_userid", wechat_userid, 11L);
-                paoRemote.setValue("WECHAT_NAME", WECHAT_NAME, 11L);
-                paoRemote.setValue("wechat_open_userid", wechat_open_userid, 11L);
-                paoRemote.setValue("wechat_mobile", wechat_mobile, 11L);
-                paoRemote.setValue("wechat_position", wechat_position, 11L);
-                paoRemote.setValue("wechat_depid", wechat_depid, 11L);
-                paoRemote.setValue("fusertype", fusertype, 11L);
-                paoSetRemote.save();
-            }
-//            else {
-//                PaoRemote paoRemote = paoSetRemote.getPao(0);
-//                paoRemote.setValue("siteid", parameter.defaultsiteid, 11L);
-//                paoRemote.setValue("wechat_userid", wechat_userid, 11L);
-//                paoRemote.setValue("WECHAT_NAME", WECHAT_NAME, 11L);
-//                paoRemote.setValue("wechat_open_userid", wechat_open_userid, 11L);
-//                paoRemote.setValue("wechat_mobile", wechat_mobile, 11L);
-//                paoRemote.setValue("wechat_position", wechat_position, 11L);
-//                paoRemote.setValue("wechat_depid", wechat_depid, 11L);
-//                paoRemote.setValue("fusertype", fusertype, 11L);
-//                paoSetRemote.save();
-//            }
-
+        dbConnect.runSqlUpdate(listSql);
 
 
+        if (fusertype.equals("经销商")) {
+            updateAgents(array);
         }
         }
-//        SQLFactory sqlFactory = new SQLFactory(this, "删除微信部门成员");
-//        sqlFactory.addParameter_in("ids", ids);
-//        dbConnect.runSqlUpdate(sqlFactory.getSQL());
-    }
 
 
+        return array;
+    }
 
 
-    public void updateTagents(int id) throws P2Exception {
-        String url = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + WechatDock_Enterprise.getAccessToken() + "&id=" + id;
-        String response = new WebRequest().doGet(url);
-        JSONObject object = JSONObject.parseObject(response);
-        JSONArray array = object.getJSONArray("department");
-        DBConnect dbConnect = new DBConnect();
-        ArrayList<String> ids = new ArrayList<>();
-        for (Object obj : array) {
+    /**
+     * 更新经销商信息
+     *
+     * @param userArray
+     */
+    public void updateAgents(JSONArray userArray) {
+        ArrayList<String> listSql = new ArrayList<>();
+        for (Object obj : userArray) {
             JSONObject jsonObject = (JSONObject) obj;
             JSONObject jsonObject = (JSONObject) obj;
+            int main_department = jsonObject.getIntValue("main_department");
+            String mobile = jsonObject.getString("mobile");
+            String faddress = jsonObject.getString("address");
+            String name = jsonObject.getString("name");
+
+            SQLFactory sqlFactory = new SQLFactory(this, "插入经销商档案");
+            sqlFactory.addParameter("tagentsid", createTableID("tagents", "tagentsid"));
+//            sqlFactory.addParameter("fagentname", "");
+            sqlFactory.addParameter("faddress", faddress);
+            sqlFactory.addParameter("fcontact", name);
+            sqlFactory.addParameter("fphonenumber", mobile);
+            sqlFactory.addParameter("wechat_depid", main_department);
+
+            listSql.add(sqlFactory.getSQL());
+            if (listSql.size() > 50) {
+                System.err.println("start Agents...");
+                dbConnect.runSqlUpdate(listSql);
+                listSql.clear();
+            }
+        }
+        dbConnect.runSqlUpdate(listSql);
+
+    }
 
 
-            int wechat_depid = jsonObject.getIntValue("id");
-            if (wechat_depid != id) {
-                ids.add(wechat_depid + "");
-                //获取管理员信息
-                JSONArray department_leader = jsonObject.getJSONArray("department_leader");
-                String fcontact = "";
-                String fphonenumber = "";
-                String faddress = "";
-                if (department_leader.size() > 0) {
-                    String url2 = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=" + WechatDock_Enterprise.getAccessToken() + "&userid=" + department_leader.get(0);
-                    String responseUser = new WebRequest().doGet(url2);
-                    JSONObject objectUser = JSONObject.parseObject(responseUser);
-                    fcontact = objectUser.getString("name");
-                    fphonenumber = objectUser.getString("mobile");
-                    faddress = objectUser.getString("address");
-                }
 
 
-                //保存经销商档案
-                PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tagents", "wechat_depid = '" + wechat_depid + "'");
-                if (paoSetRemote.isEmpty()) {
-                    PaoRemote paoRemote = paoSetRemote.addAtEnd();
-                    paoRemote.setValue("wechat_depid", wechat_depid, 11L);
-                    paoRemote.setValue("fagentname", jsonObject.getString("name"), 11L);
-                    paoRemote.setValue("fcontact", fcontact, 11L);
-                    paoRemote.setValue("fphonenumber", fphonenumber, 11L);
-                    paoRemote.setValue("faddress", faddress, 11L);
-                    paoSetRemote.save();
+    /**
+     * 获取一个新的表数据ID
+     */
+    private static HashMap<String, Long> tableidmap = new HashMap<>();
+
+    public long createTableID(String tablename, String fieldname) {
+        synchronized (Controller.class) {
+            tablename = tablename.toLowerCase();
+            fieldname = fieldname.toLowerCase();
+            if (!tableidmap.containsKey(tablename)) {
+                Rows rows = dbConnect.runSqlQuery("select convert(bigint,isnull(max(" + fieldname + "),0)) as " + fieldname + " from " + tablename);
+                if (!rows.isEmpty()) {
+                    long id = rows.get(0).getLong(fieldname);
+                    tableidmap.put(tablename, id);
                 }
                 }
-//                else {
-//                    PaoRemote paoRemote = paoSetRemote.getPao(0);
-//                    paoRemote.setValue("wechat_depid", wechat_depid, 11L);
-//                    paoRemote.setValue("fagentname", jsonObject.getString("name"), 11L);
-//                    paoRemote.setValue("fcontact", fcontact, 11L);
-//                    paoRemote.setValue("fphonenumber", fphonenumber, 11L);
-//                    paoRemote.setValue("faddress", faddress, 11L);
-//                    paoSetRemote.save();
-//                }
             }
             }
+            tableidmap.put(tablename, tableidmap.get(tablename) + 1);
+            return tableidmap.get(tablename);
         }
         }
-
-//        SQLFactory sqlFactory = new SQLFactory(this, "删除经销商");
-//        sqlFactory.addParameter_in("ids", ids);
-//        dbConnect.runSqlUpdate(sqlFactory.getSQL());
     }
     }
 
 
-
 }
 }

+ 9 - 0
src/dsb/com/cnd3b/service/SQL/插入微信成员.sql

@@ -0,0 +1,9 @@
+IF
+NOT EXISTS ( SELECT * FROM tuser WHERE wechat_userid = $wechat_userid$ )
+INSERT INTO tuser( tuserid, wechat_depid, wechat_userid, wechat_name, wechat_open_userid,wechat_mobile,wechat_position,fusertype,siteid,rmkenable,createby,changeby,createdate,changedate)
+VALUES
+	( $tuserid$,$wechat_depid$, $wechat_userid$, $wechat_name$,$wechat_open_userid$,$wechat_mobile$,$wechat_position$,$fusertype$,'JIUSHENG',0,'P2ADMIN','P2ADMIN',GETDATE() ,GETDATE());
+ELSE
+UPDATE tuser
+SET changedate=GETDATE()
+WHERE wechat_userid = $wechat_userid$

+ 10 - 0
src/dsb/com/cnd3b/service/SQL/插入微信部门.sql

@@ -0,0 +1,10 @@
+IF
+NOT EXISTS ( SELECT * FROM tdepartment WHERE wechat_depid = $wechat_depid$ )
+INSERT INTO tdepartment ( tdepartmentid,  wechat_depid, wechat_parendeptid, wechat_depname ,rmkenable,createby,changeby,createdate,changedate)
+VALUES
+	( $tdepartmentid$,  $wechat_depid$, $wechat_parendeptid$, $wechat_depname$,0,'P2ADMIN','P2ADMIN',GETDATE() ,GETDATE());
+ELSE
+UPDATE tdepartment
+SET changedate=GETDATE(),
+    wechat_depname = $wechat_depname$
+WHERE wechat_depid = $wechat_depid$

+ 9 - 0
src/dsb/com/cnd3b/service/SQL/插入经销商档案.sql

@@ -0,0 +1,9 @@
+IF
+NOT EXISTS ( SELECT * FROM tagents WHERE wechat_depid = $wechat_depid$ )
+INSERT INTO tagents ( tagentsid, fagentname, faddress, fcontact , fphonenumber   ,wechat_depid,   rmkenable,   createby,changeby,createdate,changedate)
+VALUES
+	( $tagentsid$,  (SELECT wechat_depname FROM tdepartment WHERE wechat_depid =  $wechat_depid$), $faddress$, $fcontact$,$fphonenumber$,$wechat_depid$,0,'P2ADMIN','P2ADMIN',GETDATE() ,GETDATE());
+ELSE
+UPDATE tagents
+SET changedate=GETDATE()
+WHERE wechat_depid = $wechat_depid$

+ 33 - 3
src/dsb/com/cnd3b/utility/wechatdock/WechatDock_Enterprise.java

@@ -14,9 +14,13 @@ import java.util.Calendar;
 
 
 public class WechatDock_Enterprise extends BaseClass {
 public class WechatDock_Enterprise extends BaseClass {
     //企业ID
     //企业ID
-    public static String corpid = "ww1679499b0ccbb304";
-    //应用的凭证密钥
-    public static String corpsecret = "VmoM0sWqot77xka1xxRb1cGZApLxW5sKvsmYQjSHH1o";
+    public static String corpid = "ww6e401e63011f9f59";
+    //应用的凭证密钥(通讯录)
+    public static String corpsecret = "0UaJC_H6HUp4myFsJTxINeDHRAPj7Z4lYqmDMZFRmT0";
+    //应用的凭证密钥(资料中心)
+    public static String corpsecret1 = "uf8PZCPRPIB9pSLrgQJuK0z4kifrSIcH_VxqeyjYAt4";
+    //应用的凭证密钥(培训学习)
+    public static String corpsecret2 = "hBJRVc0VZ5hNk-3ItOrqcWAImWmimhQMZWhtOcX08yI";
     //企业应用agentid
     //企业应用agentid
     public static long agentid = 1000003;
     public static long agentid = 1000003;
     //有效期2小时,需定时刷新,重复获取将导致上次获取的失效
     //有效期2小时,需定时刷新,重复获取将导致上次获取的失效
@@ -58,5 +62,31 @@ public class WechatDock_Enterprise extends BaseClass {
         return access_token;
         return access_token;
     }
     }
 
 
+    /**
+     * 获取小程序token
+     *
+     * @param type
+     * @return
+     */
+    public static String getMiniAppAccessToken(int type) {
+        String corpsecret = "";
+        String access_token = "";
+        if (type == 1) {
+            corpsecret = corpsecret1;
+        } else {
+            corpsecret = corpsecret2;
+        }
+
+        String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret;
+        String res = new WebRequest().doGet(url);
+        JSONObject resobject = JSONObject.parseObject(res);
+        System.err.println(resobject);
+        if (resobject.containsKey("access_token")) {
+            access_token = resobject.getString("access_token");
+        }
+
+        return access_token;
+    }
+
 
 
 }
 }