Browse Source

团队人员及微信绑定逻辑调整

eganwu 1 year ago
parent
commit
ea32f81b6c

+ 29 - 5
src/custom/restcontroller/common/usercenter/usercenter.java

@@ -9,11 +9,10 @@ import common.annotation.API;
 import common.annotation.CACHEING;
 import common.annotation.CACHEING_CLEAN;
 import common.annotation.cm;
-import common.data.Row;
-import common.data.Rows;
-import common.data.SQLFactory;
+import common.data.*;
 import common.parameter.parameter;
 import restcontroller.R;
+import restcontroller.webmanage.saletool.store.StoreHelper;
 import utility.sms.Sms;
 import utility.tools.Encryption;
 import utility.wechat.miniprogram.WechatMiniProgram;
@@ -312,8 +311,9 @@ public class usercenter extends Controller {
     public String WechatBinding() throws YosException {
         String wechat_code = content.getString("wechat_code");
         boolean isbinging = content.getBooleanValue("isbinging");
-        if (content.containsKey("userid") && content.getLongValue("userid") > 0) {
-            userid = content.getLongValue("userid");
+        Long sys_enterprise_hrid = 0L;
+        if (content.containsKey("sys_enterprise_hrid") && content.getLongValue("sys_enterprise_hrid") > 0) {
+            sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
         }
         if (isbinging) {
             Rows openidsRows = dbConnect.runSqlQuery("select * from sys_wechatapp_openids where userid='" + userid + "' and systemclient='" + systemclient + "'");
@@ -373,6 +373,30 @@ public class usercenter extends Controller {
                 sqllist.add("delete from sys_wechatapp_unionids where unionid='" + unionid + "' and userid='" + userid + "'");
             }
         }
+        //绑定
+        if (isbinging && sys_enterprise_hrid > 0) {
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
+            updateSQL.setSiteid(siteid);
+            updateSQL.setUniqueid(sys_enterprise_hrid);
+            updateSQL.setValue("userid", userid);
+            updateSQL.update();
+            if (usertype == 99) {
+
+                new StoreHelper().updateUserType22(this);
+            }
+
+        }
+        //解绑
+        if (!isbinging && sys_enterprise_hrid > 0) {
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
+            updateSQL.setSiteid(siteid);
+            updateSQL.setUniqueid(sys_enterprise_hrid);
+            updateSQL.setValue("userid", 0);
+            updateSQL.update();
+            if (usertype == 22) {
+                new StoreHelper().updateUserType99(this);
+            }
+        }
         if (sqllist.size() > 0) {
             dbConnect.runSqlUpdate(sqllist);
             return getSucReturnObject().toString();

+ 60 - 2
src/custom/restcontroller/webmanage/saletool/store/StoreHelper.java

@@ -1,5 +1,6 @@
 package restcontroller.webmanage.saletool.store;
 
+import beans.parameter.Parameter;
 import common.BaseClass;
 import common.Controller;
 import common.YosException;
@@ -17,7 +18,7 @@ public class StoreHelper extends BaseClass {
         QuerySQL roleQuery = SQLFactory.createQuerySQL(controller, "sys_userrole"
                 , "userid").setTableAlias("t1");
         roleQuery.addJoinTable(JOINTYPE.left, "sys_role", "t2", "t2.roleid=t1.roleid and t2.siteid=t1.siteid"
-                , "rolename","roleid");
+                , "rolename", "roleid");
         roleQuery.setWhere("userid", ids);
         return roleQuery.query().toRowsMap("userid");
     }
@@ -26,7 +27,7 @@ public class StoreHelper extends BaseClass {
     public static RowsMap getStoreRowsMap(Controller controller, String[] ids) throws YosException {
         QuerySQL storeQuery = SQLFactory.createQuerySQL(controller, "sa_store"
                 , "leader_hrid", "storename").setTableAlias("t1");
-        storeQuery.addJoinTable(JOINTYPE.inner,"sa_store_hr","t2","t2.sa_storeid=t1.sa_storeid and t2.siteid=t1.siteid","sys_enterprise_hrid");
+        storeQuery.addJoinTable(JOINTYPE.inner, "sa_store_hr", "t2", "t2.sa_storeid=t1.sa_storeid and t2.siteid=t1.siteid", "sys_enterprise_hrid");
         storeQuery.setWhere("t2.sys_enterprise_hrid", ids);
         return storeQuery.query().toRowsMap("sys_enterprise_hrid");
     }
@@ -68,5 +69,62 @@ public class StoreHelper extends BaseClass {
         return insertSQL;
     }
 
+    //改为经销商员工类型
+    public void updateUserType22(Controller controller) throws YosException {
+        updateUserType(controller, 22);
+
+        ArrayList<Long> deleteroles = dbConnect.runSqlQuery("SELECT visitor_roleid from sys_wechatapp WHERE (systemclient='"
+                + controller.systemclient + "' or systemclient_auth='" + controller.systemclient + "' ) and  siteid='" + controller.siteid + "'  and isvisitor=1").toArrayList("visitor_roleid", new ArrayList<>());
+
+        if (deleteroles.size() > 0) {
+            deleteUserRole(controller, deleteroles);
+        }
+
+        Rows rows = dbConnect.runSqlQuery("select * from sys_role where rolename='" + Parameter.get("storerolename") + "' and siteid='" + controller.siteid + "'");
+        if (rows.isNotEmpty()) {
+            insertUserRole(controller, rows.get(0).getLong("roleid"));
+        }
+    }
+
+    public void updateUserType99(Controller controller) throws YosException {
+        updateUserType(controller, 99);
+
+        ArrayList<Long> deleteroles = dbConnect.runSqlQuery("select * from sys_role where rolename='" + Parameter.get("storerolename") + "' and siteid='" + controller.siteid + "'").toArrayList("roleid", new ArrayList<>());
+
+        if (deleteroles.size() > 0) {
+            deleteUserRole(controller, deleteroles);
+        }
+        Rows rows = dbConnect.runSqlQuery("SELECT visitor_roleid from sys_wechatapp WHERE (systemclient='" + controller.systemclient + "' or systemclient_auth='" + controller.systemclient + "' ) and  siteid='" + controller.siteid + "'  and isvisitor=1");
+
+        if (rows.isNotEmpty()) {
+            insertUserRole(controller, rows.get(0).getLong("visitor_roleid"));
+        }
+    }
+
+
+    public void updateUserType(Controller controller, int usertype) throws YosException {
+        UpdateSQL updateSQL = SQLFactory.createUpdateSQL(controller, "sys_usersite");
+        updateSQL.setSiteid(controller.siteid);
+        updateSQL.setWhere("userid", controller.userid);
+        updateSQL.setValue("usertype", usertype);
+        updateSQL.update();
+    }
+
+    public void deleteUserRole(Controller controller, ArrayList<Long> deleteroles) throws YosException {
+        DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(controller, "sys_userrole");
+        deleteSQL.setSiteid(controller.siteid);
+        deleteSQL.setWhere("userid", controller.userid);
+        deleteSQL.setWhere("roleid", deleteroles);
+        deleteSQL.delete();
+    }
+
+    public void insertUserRole(Controller controller, Long roleid) throws YosException {
+        InsertSQL insertSQL = SQLFactory.createInsertSQL(controller, "sys_userrole");
+        insertSQL.setSiteid(controller.siteid);
+        insertSQL.setUniqueid(createTableID("sys_userrole"));
+        insertSQL.setValue("userid", controller.userid);
+        insertSQL.setValue("roleid", roleid);
+        insertSQL.insert();
+    }
 
 }

+ 22 - 66
src/custom/restcontroller/webmanage/saletool/store/StoreTeam.java

@@ -83,39 +83,29 @@ public class StoreTeam extends Controller {
         String phonenumber = content.getStringValue("phonenumber");
         String email = content.getStringValue("email");
         String position = content.getStringValue("position");
-        JSONArray newroleids = content.getJSONArray("roleids");
         JSONArray sa_storeids = content.getJSONArray("sa_storeids");
 
         if (StringUtils.isBlank(phonenumber)) {
             return getErrReturnObject().setErrMsg("手机号不能为空").toString();
         }
 
-        Long tempuserid = 0L;
-
-        /**
-         * 根据用户类型查找新账号默认角色
-         */
-        Rows defaultrole = dbConnect.runSqlQuery("select roleid from sys_role where siteid='" + siteid + "' and usertype=21 and issystem=1");
-        ArrayList<Long> roleids = defaultrole.toArrayList("roleid", new ArrayList<Long>());
-
-        for (Object object : newroleids) {
-            roleids.add(Long.valueOf(object.toString()));
-        }
-
         ArrayList<String> sqlList = new ArrayList<>();
 
         if (sys_enterprise_hrid <= 0) {
-            User.createUser(controller, sys_enterpriseid, name, phonenumber, false, position, 21, roleids.toArray(new Long[]{}), "");
-            tempuserid = StoreHelper.getUserid(controller, phonenumber);
-            Row enterpriseHr = getEnterpriseHr(tempuserid);
-            if (!enterpriseHr.isEmpty()) {
-                sys_enterprise_hrid = enterpriseHr.getLong("sys_enterprise_hrid");
-                for (Object sa_storeid : sa_storeids) {
-                    sqlList.add(StoreHelper.getStoreHrInsertSQL(controller, sys_enterprise_hrid, Long.valueOf(sa_storeid.toString())).getSQL());
-                }
-
-                content.put("sys_enterprise_hrid", sys_enterprise_hrid);
-            }
+            sys_enterprise_hrid = controller.createTableID("sys_enterprise_hr");
+            InsertSQL insertSQL = SQLFactory.createInsertSQL(controller, "sys_enterprise_hr");
+            insertSQL.setValue("siteid", controller.siteid);
+            insertSQL.setValue("sys_enterprise_hrid", sys_enterprise_hrid);
+            insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
+            insertSQL.setValue("userid", 0);
+            insertSQL.setValue("isleader", 0);
+            insertSQL.setValue("phonenumber", phonenumber);
+            insertSQL.setValue("position", position);
+            insertSQL.setValue("name", name);
+            insertSQL.setValue("remarks", "");
+            insertSQL.setValue("changeuserid", userid);
+            sqlList.add(insertSQL.getSQL());
+            content.put("sys_enterprise_hrid", sys_enterprise_hrid);
         } else {
             UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
             updateSQL.setSiteid(siteid);
@@ -125,24 +115,15 @@ public class StoreTeam extends Controller {
             updateSQL.setValue("email", email);
             updateSQL.setValue("phonenumber", phonenumber);
             sqlList.add(updateSQL.getSQL());
-            //添加权限
-            tempuserid = StoreHelper.getUserid(controller, sys_enterprise_hrid);
-            for (Object roleid : roleids) {
-                sqlList.add(StoreHelper.getRoleInsertSQL(controller, tempuserid, Long.valueOf(roleid.toString())).getSQL());
-            }
-            for (Object sa_storeid : sa_storeids) {
-                sqlList.add(StoreHelper.getStoreHrInsertSQL(controller, sys_enterprise_hrid, Long.valueOf(sa_storeid.toString())).getSQL());
-            }
+        }
+
+        for (Object sa_storeid : sa_storeids) {
+            sqlList.add(StoreHelper.getStoreHrInsertSQL(controller, sys_enterprise_hrid, Long.valueOf(sa_storeid.toString())).getSQL());
         }
         dbConnect.runSqlUpdate(sqlList);
 
-        DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(controller, "sys_userrole");
-        deleteSQL.setSiteid(siteid);
-        deleteSQL.setWhere("userid", tempuserid);
-        deleteSQL.setWhere("roleid not in " + roleids.toString().replace("[", "(").replace("]", ")"));
-        deleteSQL.delete();
 
-        deleteSQL = SQLFactory.createDeleteSQL(controller, "sa_store_hr");
+        DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(controller, "sa_store_hr");
         deleteSQL.setSiteid(siteid);
         deleteSQL.setWhere("sys_enterpriseid", sys_enterpriseid);
         deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrid);
@@ -158,7 +139,7 @@ public class StoreTeam extends Controller {
 
 
         QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr"
-                        , "sys_enterprise_hrid", "name", "position", "phonenumber", "isleader", "userid", "createby", "createdate", "changeby", "changedate","sex","birthday","email")
+                        , "sys_enterprise_hrid", "name", "position", "phonenumber", "isleader", "userid", "createby", "createdate", "changeby", "changedate", "sex", "birthday", "email")
                 .setTableAlias("t1");
         querySQL.addJoinTable(JOINTYPE.left, "sa_store_hr", "t2", "t2.sys_enterprise_hrid=t1.sys_enterprise_hrid and t2.siteid=t1.siteid"
                 , "sa_store_hrid");
@@ -326,33 +307,7 @@ public class StoreTeam extends Controller {
 
         if (usertype == 99) {
             //变更用户类型(消费者类型调整为经销商员工类型)
-            usertype = 22;
-            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_usersite");
-            updateSQL.setSiteid(siteid);
-            updateSQL.setWhere("userid", userid);
-            updateSQL.setValue("usertype", usertype);
-            updateSQL.update();
-
-            ArrayList<Long> deleteroles = dbConnect.runSqlQuery("SELECT visitor_roleid from sys_wechatapp WHERE (systemclient='" + systemclient + "' or systemclient_auth='" + systemclient + "' ) and  siteid='" + siteid + "'  and isvisitor=1").toArrayList("visitor_roleid", new ArrayList<>());
-
-            if (deleteroles.size() > 0) {
-                DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sys_userrole");
-                deleteSQL.setSiteid(siteid);
-                deleteSQL.setWhere("userid", userid);
-                deleteSQL.setWhere("roleid", deleteroles);
-                deleteSQL.delete();
-            }
-
-            rows = dbConnect.runSqlQuery("select * from sys_role where rolename='" + Parameter.get("storerolename") + "' and siteid='" + siteid + "'");
-            if (rows.isNotEmpty()) {
-                InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_userrole");
-                insertSQL.setSiteid(siteid);
-                insertSQL.setUniqueid(createTableID("sys_userrole"));
-                insertSQL.setValue("userid", userid);
-                insertSQL.setValue("roleid", rows.get(0).getLong("roleid"));
-                insertSQL.insert();
-            }
-
+            new StoreHelper().updateUserType22(this);
 
         }
 
@@ -360,4 +315,5 @@ public class StoreTeam extends Controller {
         return getSucReturnObject().toString();
     }
 
+
 }