Просмотр исходного кода

新增返回经销商,业务员角色

吴志根 4 лет назад
Родитель
Сommit
8724c38236

+ 1 - 1
src/dsb/com/cnd3b/common/parameter/parameter.java

@@ -25,7 +25,7 @@ public class parameter {
     public static HashMap<Long, Row> userIdList = new HashMap<>(16);
 
     public static String defaultsiteid = "JIUSHENG";
-    public static Boolean isMac = true;
+    public static Boolean isMac = false;
     //设置改部门下的为经销商
     public static String depname = "经销商";
     public static String tuserid = "";

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

@@ -107,8 +107,44 @@ public class data extends Controller {
      * @return
      */
     public String getRoles() {
+
+
         return getSucReturnObject().setData(GetWechatData.positionAgent).toString();
     }
 
+    /**
+     * 返回所有角色
+     *
+     * @return
+     */
+    public String getAllRoles() {
+        int type = content.getIntValue("type");
+        JSONArray array = new JSONArray();
+        //经销商
+        if (type == 1) {
+            for (String str : GetWechatData.positionAgent) {
+                array.add(str);
+            }
+        }
+        //业务员
+        if (type == 2) {
+            for (String str : GetWechatData.positionSeller) {
+                array.add(str);
+            }
+        }
+        //所有
+        if (type == 3) {
+            for (String str : GetWechatData.positionAgent) {
+                array.add(str);
+            }
+            for (String str : GetWechatData.positionSeller) {
+                array.add(str);
+            }
+        }
+
+
+        return getSucReturnObject().setData(array).toString();
+    }
+
 
 }

+ 4 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tfolderauth/SQL/体系查询.sql

@@ -0,0 +1,4 @@
+SELECT DISTINCT fauthtype
+FROM tfolderauth
+WHERE tfolderid = $tfolderid$
+  AND fauthtype IN $fauthtype$

+ 6 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tfolderauth/SQL/用户查询.sql

@@ -0,0 +1,6 @@
+SELECT DISTINCT t2.wechat_name
+FROM tfolderauth t1
+         LEFT JOIN tuser t2
+                   ON t2.tuserid = t1.tuserid
+WHERE t1.tfolderid = $tfolderid$
+  AND t1.tuserid IN $tuserid$

+ 4 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tfolderauth/SQL/角色查询.sql

@@ -0,0 +1,4 @@
+SELECT DISTINCT frole
+FROM tfolderauth
+WHERE tfolderid = $tfolderid$
+  AND frole IN $frole$

+ 126 - 0
src/dsb/com/cnd3b/restcontroller/enterprise/tfolderauth/tfolderauth.java

@@ -10,6 +10,8 @@ import p2.pao.PaoRemote;
 import p2.pao.PaoSetRemote;
 import p2.util.P2Exception;
 
+import java.util.ArrayList;
+
 public class tfolderauth extends Controller {
     /**
      * 构造函数
@@ -48,6 +50,130 @@ public class tfolderauth extends Controller {
     }
 
 
+    /**
+     * 批量插入角色
+     *
+     * @return
+     * @throws P2Exception
+     */
+    public String inseretRole() throws P2Exception {
+        String tfolderid = content.getString("tfolderid");
+        //角色
+        JSONArray array = content.getJSONArray("frole");
+        ArrayList<String> list = new ArrayList<>();
+        for (Object obj : array) {
+            list.add(obj.toString());
+        }
+
+        SQLFactory sqlFactory = new SQLFactory(this, "角色查询");
+        sqlFactory.addParameter("tfolderid", tfolderid);
+        sqlFactory.addParameter_in("frole", list);
+        String sql = sqlFactory.getSQL();
+        Rows rows = dbConnect.runSqlQuery(sql);
+
+        if (!rows.isEmpty()) {
+            String msg = "";
+            for (Row row : rows) {
+                msg = msg + row.getString("frole") + ",";
+            }
+            return getErrReturnObject().setErrMsg("新增失败,下列角色已存在:" + msg.substring(0, msg.length() - 1)).toString();
+        }
+
+        //新增体系
+        for (Object obj : array) {
+            PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tfolderauth");
+            PaoRemote paoRemote = paoSetRemote.addAtEnd();
+            paoRemote.setValue("tfolderid", tfolderid, 11L);
+            paoRemote.setValue("frole", obj.toString(), 11L);
+
+            paoSetRemote.save();
+        }
+        return getSucReturnObject().toString();
+    }
+
+    /**
+     * 批量插入体系
+     *
+     * @return
+     * @throws P2Exception
+     */
+    public String inseretAuthtype() throws P2Exception {
+        String tfolderid = content.getString("tfolderid");
+        //角色
+        JSONArray array = content.getJSONArray("fauthtype");
+        ArrayList<String> list = new ArrayList<>();
+        for (Object obj : array) {
+            list.add(obj.toString());
+        }
+
+        SQLFactory sqlFactory = new SQLFactory(this, "体系查询");
+        sqlFactory.addParameter("tfolderid", tfolderid);
+        sqlFactory.addParameter_in("fauthtype", list);
+        String sql = sqlFactory.getSQL();
+        Rows rows = dbConnect.runSqlQuery(sql);
+
+        if (!rows.isEmpty()) {
+            String msg = "";
+            for (Row row : rows) {
+                msg = msg + row.getString("fauthtype") + ",";
+            }
+            return getErrReturnObject().setErrMsg("新增失败,下列体系已存在:" + msg.substring(0, msg.length() - 1)).toString();
+        }
+
+        //新增体系
+        for (Object obj : array) {
+            PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tfolderauth");
+            PaoRemote paoRemote = paoSetRemote.addAtEnd();
+            paoRemote.setValue("tfolderid", tfolderid, 11L);
+            paoRemote.setValue("fauthtype", obj.toString(), 11L);
+
+            paoSetRemote.save();
+        }
+        return getSucReturnObject().toString();
+    }
+
+    /**
+     * 批量插入用户
+     *
+     * @return
+     * @throws P2Exception
+     */
+    public String inseretUser() throws P2Exception {
+        String tfolderid = content.getString("tfolderid");
+        //角色
+        JSONArray array = content.getJSONArray("tuserid");
+        ArrayList<String> list = new ArrayList<>();
+        for (Object obj : array) {
+            list.add(obj.toString());
+        }
+
+        SQLFactory sqlFactory = new SQLFactory(this, "用户查询");
+        sqlFactory.addParameter("tfolderid", tfolderid);
+        sqlFactory.addParameter_in("tuserid", list);
+        String sql = sqlFactory.getSQL();
+        Rows rows = dbConnect.runSqlQuery(sql);
+
+        if (!rows.isEmpty()) {
+            String msg = "";
+            for (Row row : rows) {
+                msg = msg + row.getString("wechat_name") + ",";
+            }
+            return getErrReturnObject().setErrMsg("新增失败,下列用户已存在:" + msg.substring(0, msg.length() - 1)).toString();
+        }
+
+        //新增体系
+        for (Object obj : array) {
+            PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tfolderauth");
+            PaoRemote paoRemote = paoSetRemote.addAtEnd();
+            paoRemote.setValue("tfolderid", tfolderid, 11L);
+            paoRemote.setValue("tuserid", obj.toString(), 11L);
+
+            paoSetRemote.save();
+        }
+        return getSucReturnObject().toString();
+    }
+
+
     /**
      * 更新资料中心授权
      *

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

@@ -11,4 +11,5 @@ FROM tuser t1
          LEFT JOIN tdepartment t2
                    ON t1.wechat_depid = t2.wechat_depid
 WHERE t1.fusertype = $fusertype$
-  and (t1.wechat_name LIKE $keywords$ OR t1.wechat_position LIKE $keywords$ OR t1.wechat_mobile LIKE $keywords$)
+  and (t1.wechat_name LIKE $keywords$ OR t1.wechat_position LIKE $keywords$ OR t1.wechat_mobile LIKE $keywords$ or
+       t2.wechat_depname LIKE $keywords$)

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

@@ -8,6 +8,8 @@ import com.cnd3b.common.data.SQLFactory;
 import com.cnd3b.utility.WebRequest;
 import com.cnd3b.utility.wechatdock.WechatDock_Enterprise;
 
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 
@@ -24,7 +26,13 @@ public class wechatapplet extends Controller {
     public String wechatappletLogin() {
         String code = content.getString("code");
         int type = content.getIntValue("type");
-        String access_token = WechatDock_Enterprise.getMiniAppAccessToken(type);
+        String access_token = "";
+        if (type == 1) {
+            access_token = WechatDock_Enterprise.getAccessToken_zlzx();
+        } else {
+            access_token = WechatDock_Enterprise.getAccessToken_pxxx();
+        }
+
         System.err.println(access_token);
 
         String url = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=" + access_token + "&code=" + code;
@@ -50,4 +58,31 @@ public class wechatapplet extends Controller {
 
         return getSucReturnObject().setData(rows).toString();
     }
+
+
+    /**
+     * »ñȡ΢ÐÅÇ©Ãûj-sdk
+     *
+     * @return
+     */
+    public String getWxConfig() {
+        int type = content.getIntValue("type");
+        String url = content.getString("url");
+        String ticket = "";
+        if (type == 1) {
+            ticket = WechatDock_Enterprise.getTicket_zlzx();
+        } else if (type == 2) {
+            ticket = WechatDock_Enterprise.getTicket_pxxx();
+        } else if (type == 3) {
+            ticket = WechatDock_Enterprise.getTicket();
+        }
+        System.err.println("ticket:" + ticket);
+
+        JSONObject jsonObject = WechatDock_Enterprise.getSign(ticket, url);
+
+        return getSucReturnObject().setData(jsonObject).toString();
+
+    }
+
+
 }

+ 50 - 0
src/dsb/com/cnd3b/restcontroller/system/system/OSSManage.java

@@ -97,6 +97,56 @@ public class OSSManage extends Controller {
 
     }
 
+    /**
+     * @return
+     * @throws P2Exception
+     */
+    public String uploadAttachment2() throws P2Exception {
+        String name = content.getString("filename");
+        String ownertable = content.getString("ownertable");
+        String ownerid = content.getString("ownerid");
+        String ftype = content.getString("ftype");
+        String ftitle = content.getString("ftitle");
+        String postfix = content.getString("postfix");
+        String contentlength = content.getString("contentlength");
+
+        //上传文件到阿里云
+        String filename = Getnum() + "-" + name;
+        String key = "";
+        if (ftype == null || ftype.equals("")) {
+            key = filename;
+        } else {
+            key = ftype + "/" + filename;
+        }
+
+        String url = file_url + "/" + rootpath + key;
+
+        //保存附件信息到附件表
+        PaoSetRemote paoSetRemote = getP2ServerSystemPaoSet("tattachment");
+        PaoRemote paoRemote = paoSetRemote.addAtEnd();
+        Long tattachmentid = paoRemote.getUniqueIDValue();
+        paoRemote.setValue("siteid", "JIUSHENG", 11L);
+        paoRemote.setValue("ownertable", ownertable, 11L);
+        paoRemote.setValue("ownerid", ownerid, 11L);
+        paoRemote.setValue("createby", username, 11L);
+        paoRemote.setValue("ftype", ftype, 11L);
+        paoRemote.setValue("postfix", postfix, 11L);
+        paoRemote.setValue("serialnumber", filename, 11L);
+        paoRemote.setValue("fdocument", name, 11L);
+        paoRemote.setValue("fobsurl", url, 11L);
+        paoRemote.setValue("contentlength", contentlength, 11L);
+        paoRemote.setValue("ftitle", ftitle, 11L);
+        paoSetRemote.save();
+
+        JSONObject object = new JSONObject();
+        object.put("tattachmentid", tattachmentid);
+        object.put("key", rootpath + key);
+        object.put("fobsurl", url);
+
+        return getSucReturnObject().setData(object).toString();
+
+    }
+
     /**
      * 更新附件
      *

+ 4 - 4
src/dsb/com/cnd3b/service/GetWechatData.java

@@ -253,7 +253,7 @@ public class GetWechatData extends BaseClass implements Runnable {
             sqlFactory.addParameter("wechat_depid", wechat_depid);
             sqlFactory.addParameter("wechat_parendeptid", wechat_parendeptid);
             sqlFactory.addParameter("wechat_depname", wechat_depname);
-            System.err.println("插入微信部门");
+//            System.err.println("插入微信部门");
             dbConnect.runSqlUpdate(sqlFactory);
 //            listSql.add(sqlFactory.getSQL());
 //            if (listSql.size() > 100) {
@@ -313,7 +313,7 @@ public class GetWechatData extends BaseClass implements Runnable {
                 sqlFactory.addParameter("fusertype", fusertype);
 //                listSql.add(sqlFactory.getSQL());
                 dbConnect.runSqlUpdate(sqlFactory);
-                System.err.println("业务员...");
+//                System.err.println("业务员...");
 //                if (listSql.size() > 100) {
 //
 //                    dbConnect.runSqlUpdate(listSql);
@@ -367,7 +367,7 @@ public class GetWechatData extends BaseClass implements Runnable {
                 sqlFactory.addParameter("wechat_position", position);
                 sqlFactory.addParameter("fusertype", fusertype);
                 dbConnect.runSqlUpdate(sqlFactory);
-                System.err.println("经销商...");
+//                System.err.println("经销商...");
 //                listSql.add(sqlFactory.getSQL());
 //                if (listSql.size() > 100) {
 //                    System.err.println("经销商...");
@@ -414,7 +414,7 @@ public class GetWechatData extends BaseClass implements Runnable {
             sqlFactory.addParameter("fcontact", name);
             sqlFactory.addParameter("fphonenumber", mobile);
             sqlFactory.addParameter("wechat_depid", main_department);
-            System.err.println("经销商档案...");
+//            System.err.println("经销商档案...");
             dbConnect.runSqlUpdate(sqlFactory);
 //            listSql.add(sqlFactory.getSQL());
 //            if (listSql.size() > 100) {

+ 193 - 16
src/dsb/com/cnd3b/utility/wechatdock/WechatDock_Enterprise.java

@@ -9,10 +9,23 @@ import p2.pao.PaoRemote;
 import p2.pao.PaoSetRemote;
 import p2.util.P2Exception;
 
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.Calendar;
 
 public class WechatDock_Enterprise extends BaseClass {
+    /**
+     * 参数连接符
+     */
+    public static final String QYWX_AND = "&";
+    public static final String QYWX_EQUAL = "=";
+    public static final String QYWX_QUERY = "?";
+    public static final String QYWX_GET_JSAPITICKET_URL_PARAM_TICKET = "jsapi_ticket";
+    public static final String QYWX_GET_JSAPITICKET_URL_PARAM_NONCESTR = "noncestr";
+    public static final String QYWX_GET_JSAPITICKET_URL_PARAM_TIMESTAMP = "timestamp";
+    public static final String QYWX_GET_JSAPITICKET_URL_PARAM_URL = "url";
+    public static final String QYWX_GET_JSAPITICKET_RETURN_SIGNATURE = "signature";
     //企业ID
     public static String corpid = "ww6e401e63011f9f59";
     //应用的凭证密钥(通讯录)
@@ -63,30 +76,194 @@ public class WechatDock_Enterprise extends BaseClass {
         return access_token;
     }
 
+//    /**
+//     * 获取小程序token
+//     *
+//     * @param type
+//     * @return
+//     */
+//    public static String getMiniAppAccessToken(int type) {
+//        String corpsecret = "";
+//        Object 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.get("access_token");
+//        }
+//
+//        return access_token.toString();
+//    }
+
+    private static String access_token_zlzx = "";
+    private static long access_token_timelimit_zlzx = 0L;
+
     /**
-     * 获取小程序token
+     * 资料中心token
      *
-     * @param type
      * @return
      */
-    public static String getMiniAppAccessToken(int type) {
-        String corpsecret = "";
-        Object access_token = "";
-        if (type == 1) {
-            corpsecret = corpsecret1;
-        } else {
-            corpsecret = corpsecret2;
+    public static String getAccessToken_zlzx() {
+        long nowtime = Calendar.getInstance().getTimeInMillis();
+        if (access_token_timelimit_zlzx < nowtime) {
+            String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret1;
+            String res = new WebRequest().doGet(url);
+            JSONObject resobject = JSONObject.parseObject(res);
+            System.err.println(resobject);
+            if (resobject.containsKey("access_token")) {
+                access_token_zlzx = resobject.get("access_token").toString();
+                access_token_timelimit_zlzx = nowtime + 1000 * resobject.getIntValue("expires_in");
+            }
         }
+        return access_token_zlzx;
+    }
 
-        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.get("access_token");
+    private static String access_token_pxxx = "";
+    private static long access_token_timelimit_pxxx = 0L;
+
+    /**
+     * 培训学习token
+     *
+     * @return
+     */
+    public static String getAccessToken_pxxx() {
+        long nowtime = Calendar.getInstance().getTimeInMillis();
+        if (access_token_timelimit_pxxx < nowtime) {
+            String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret2;
+            String res = new WebRequest().doGet(url);
+            JSONObject resobject = JSONObject.parseObject(res);
+            System.err.println(resobject);
+            if (resobject.containsKey("access_token")) {
+                access_token_pxxx = resobject.get("access_token").toString();
+                access_token_timelimit_pxxx = nowtime + 1000 * resobject.getIntValue("expires_in");
+            }
+        }
+        return access_token_pxxx;
+    }
+
+    private static String ticket_zlzx = "";
+    private static long ticket_timelimit_zlzx = 0L;
+
+    /**
+     * 资料中心ticket
+     */
+    public static String getTicket_zlzx() {
+        long nowtime = Calendar.getInstance().getTimeInMillis();
+        if (ticket_timelimit_zlzx < nowtime) {
+            String url = "https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=" + getAccessToken_zlzx() + "&type=agent_config";
+            String res = new WebRequest().doGet(url);
+            JSONObject resobject = JSONObject.parseObject(res);
+            System.err.println(resobject);
+            if (resobject.containsKey("ticket")) {
+                ticket_zlzx = resobject.get("ticket").toString();
+                ticket_timelimit_zlzx = nowtime + 1000 * resobject.getIntValue("expires_in");
+            }
+        }
+        return ticket_zlzx;
+    }
+
+    private static String ticket_pxxx = "";
+    private static long ticket_timelimit_pxxx = 0L;
+
+    /**
+     * 培训学习ticket
+     */
+    public static String getTicket_pxxx() {
+        long nowtime = Calendar.getInstance().getTimeInMillis();
+        if (ticket_timelimit_pxxx < nowtime) {
+            String url = "https://qyapi.weixin.qq.com/cgi-bin/ticket/get?access_token=" + getAccessToken_pxxx() + "&type=agent_config";
+            String res = new WebRequest().doGet(url);
+            JSONObject resobject = JSONObject.parseObject(res);
+            System.err.println(resobject);
+            if (resobject.containsKey("ticket")) {
+                ticket_pxxx = resobject.get("ticket").toString();
+                ticket_timelimit_pxxx = nowtime + 1000 * resobject.getIntValue("expires_in");
+            }
         }
+        return ticket_pxxx;
+    }
+
+    private static String ticket = "";
+    private static long ticket_timelimit = 0L;
 
-        return access_token.toString();
+    public static String getTicket() {
+        long nowtime = Calendar.getInstance().getTimeInMillis();
+        if (ticket_timelimit < nowtime) {
+            String url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=" + getAccessToken();
+            String res = new WebRequest().doGet(url);
+            JSONObject resobject = JSONObject.parseObject(res);
+            System.err.println(resobject);
+            if (resobject.containsKey("ticket")) {
+                ticket = resobject.get("ticket").toString();
+                ticket_timelimit = nowtime + 1000 * resobject.getIntValue("expires_in");
+            }
+        }
+        return ticket;
+    }
+
+
+    public static JSONObject getSign(String ticket, String url) {
+        String noncestr = getRandomString(16);
+        String timestamp = (int) (System.currentTimeMillis() / 1000) + "";
+
+        JSONObject rul = new JSONObject();
+        String sign = "";
+        sign += QYWX_GET_JSAPITICKET_URL_PARAM_TICKET + QYWX_EQUAL + ticket + QYWX_AND + QYWX_GET_JSAPITICKET_URL_PARAM_NONCESTR + QYWX_EQUAL + noncestr + QYWX_AND + QYWX_GET_JSAPITICKET_URL_PARAM_TIMESTAMP + QYWX_EQUAL + timestamp + QYWX_AND + QYWX_GET_JSAPITICKET_URL_PARAM_URL + QYWX_EQUAL + url;
+        String signature = "";
+        try {
+            // 指定sha1算法
+            MessageDigest digest = MessageDigest.getInstance("SHA-1");
+            digest.update(sign.getBytes());
+            // 获取字节数组
+            byte messageDigest[] = digest.digest();
+            // Create Hex String
+            StringBuffer hexString = new StringBuffer();
+            // 字节数组转换为 十六进制 数
+            for (int i = 0; i < messageDigest.length; i++) {
+                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
+                if (shaHex.length() < 2) {
+                    hexString.append(0);
+                }
+                hexString.append(shaHex);
+            }
+            signature = hexString.toString();
+
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        rul.put("signature", signature);
+        rul.put("noncestr", noncestr);
+        rul.put("timestamp", timestamp);
+        rul.put("ticket", ticket);
+
+        return rul;
+    }
+
+    /**
+     * @param
+     * @return 对应长度的随机字符串
+     * @name 中文名称
+     * @description 获取指定位数的随机字符串(包含小写字母 、 大写字母 、 数字, 0 < length)
+     * @time 创建时间:2018年7月23日14:17:21
+     * @author 朱浩
+     * @history 修订历史(历次修订内容、修订人、修订时间等)
+     */
+    private static String getRandomString(int length) {
+        // 随机字符串的随机字符库
+        String KeyString = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+        StringBuffer sb = new StringBuffer();
+        int len = KeyString.length();
+        for (int i = 0; i < length; i++) {
+            sb.append(KeyString.charAt((int) Math.round(Math.random() * (len - 1))));
+        }
+        return sb.toString();
     }