eganwu 1 anno fa
parent
commit
7b7e2edf57

+ 25 - 0
src/custom/restcontroller/R.java

@@ -5979,6 +5979,31 @@ public class R {
         }
     }
 
+    public static class ID20240410161802 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240410164102 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240411085402 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240411085502 {
+        public static class v1 {
+        }
+    }
+
+    public static class ID20240411110602 {
+        public static class v1 {
+        }
+    }
+
 
 }
 

+ 1 - 1
src/custom/restcontroller/sale/team/team.java

@@ -207,7 +207,7 @@ public class team extends Controller {
         return getSucReturnObject().toString();
     }
 
-    @API(title = "团队成员角色选择")
+    @API(title = "团队成员角色选择",apiversion = R.ID20240411110602.v1.class)
     public String queryRole() throws YosException {
         long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
         long userid = 0;

+ 1 - 2
src/custom/restcontroller/webmanage/saletool/store/Store.java

@@ -112,8 +112,7 @@ public class Store extends Controller {
             sqlFactory.insert();
 
             content.put("sa_storeid", sa_storeid);
-        }
-        if (sa_storeid > 0) {
+        }else {
             UpdateSQL sqlFactory = SQLFactory.createUpdateSQL(controller, sa_store);
             sqlFactory.setSiteid(siteid);
             sqlFactory.setUniqueid(sa_storeid);

+ 44 - 6
src/custom/restcontroller/webmanage/saletool/store/StoreHelper.java

@@ -3,9 +3,7 @@ package restcontroller.webmanage.saletool.store;
 import common.BaseClass;
 import common.Controller;
 import common.YosException;
-import common.data.QuerySQL;
-import common.data.RowsMap;
-import common.data.SQLFactory;
+import common.data.*;
 
 import java.util.ArrayList;
 
@@ -19,7 +17,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");
+                , "rolename","roleid");
         roleQuery.setWhere("userid", ids);
         return roleQuery.query().toRowsMap("userid");
     }
@@ -28,7 +26,47 @@ 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.setWhere("leader_hrid", ids);
-        return storeQuery.query().toRowsMap("leader_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");
     }
+
+    public static Long getUserid(Controller controller, String phonenumber) throws YosException {
+        Rows rows = controller.dbConnect.runSqlQuery("select * from sys_users where phonenumber='" + phonenumber + "'");
+        if (rows.isNotEmpty()) {
+            return rows.get(0).getLong("userid");
+        }
+        return 0L;
+    }
+
+    public static Long getUserid(Controller controller, Long sys_enterprise_hrid) throws YosException {
+        Rows rows = controller.dbConnect.runSqlQuery("SELECT * from sys_enterprise_hr WHERE sys_enterprise_hrid=" + sys_enterprise_hrid + " and siteid='" + controller.siteid + "'");
+        if (rows.isNotEmpty()) {
+            return rows.get(0).getLong("userid");
+        }
+        return 0L;
+    }
+
+    public static InsertSQL getRoleInsertSQL(Controller controller, Long userid, Long roleid) throws YosException {
+        InsertSQL adduserrole = SQLFactory.createInsertSQL(controller, "sys_userrole");
+        adduserrole.setValue("userid", userid);
+        adduserrole.setValue("userroleid", controller.createTableID("sys_userrole"));
+        adduserrole.setValue("roleid", roleid);
+        adduserrole.setValue("siteid", controller.siteid);
+        adduserrole.setWhere("not exists (select * from sys_userrole where userid=" + userid + " and roleid=" + roleid + ")");
+        return adduserrole;
+    }
+
+    public static InsertSQL getStoreHrInsertSQL(Controller controller, Long sys_enterprise_hrid, Long sa_storeid) throws YosException {
+        InsertSQL insertSQL = SQLFactory.createInsertSQL(controller, "sa_store_hr");
+        insertSQL.setSiteid(controller.siteid);
+        insertSQL.setUniqueid(controller.createTableID("sa_store_hr"));
+        insertSQL.setValue("sys_enterpriseid", controller.sys_enterpriseid);
+        insertSQL.setValue("sa_storeid", sa_storeid);
+        insertSQL.setValue("sys_enterprise_hrid", sys_enterprise_hrid);
+        insertSQL.setWhere("not exists(select 1 from sa_store_hr where sys_enterprise_hrid=" + sys_enterprise_hrid + " and sa_storeid=" + sa_storeid + " and siteid='" + controller.siteid + "')");
+        return insertSQL;
+    }
+
+
 }

+ 229 - 0
src/custom/restcontroller/webmanage/saletool/store/StoreTeam.java

@@ -0,0 +1,229 @@
+package restcontroller.webmanage.saletool.store;
+
+import beans.datacontrllog.DataContrlLog;
+import beans.user.User;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import common.Controller;
+import common.YosException;
+import common.annotation.API;
+import common.data.*;
+import org.apache.commons.lang.StringUtils;
+import restcontroller.R;
+
+import java.util.ArrayList;
+import java.util.Objects;
+
+public class StoreTeam extends Controller {
+    /**
+     * 构造函数
+     *
+     * @param content
+     */
+    public StoreTeam(JSONObject content) throws YosException {
+        super(content);
+    }
+
+    Controller controller = this;
+
+    @API(title = "团队人员列表", apiversion = R.ID20240410161802.v1.class)
+    public String teamList() throws YosException {
+
+        StringBuffer where = new StringBuffer(" 1=1 ");
+        if (content.containsKey("where")) {
+            JSONObject whereObject = content.getJSONObject("where");
+            if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
+                where.append(" and (");
+                where.append("t1.name like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append("or t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
+                where.append(")");
+            }
+
+        }
+        QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr"
+                        , "sys_enterprise_hrid", "name", "position", "phonenumber", "isleader", "userid")
+                .setTableAlias("t1");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("sys_enterpriseid", sys_enterpriseid);
+        querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
+        Rows rows = querySQL.query();
+
+        //查询角色
+        RowsMap roleRowsMap = StoreHelper.getRoleRowsMap(controller, rows.toArray("userid"));
+        //查询门店
+        RowsMap storeRowsMap = StoreHelper.getStoreRowsMap(controller, rows.toArray("sys_enterprise_hrid"));
+
+        for (Row row : rows) {
+            row.put("headpic", getHeadPic(row.getLong("userid")));
+            Rows roleRows = roleRowsMap.getOrDefault(row.getString("userid"), new Rows());
+            row.put("rolenames", String.join(",", roleRows.toArrayList("rolename")));
+
+            Rows storeRows = storeRowsMap.getOrDefault(row.getString("sys_enterprise_hrid"), new Rows());
+            row.put("storenames", String.join(",", storeRows.toArrayList("storename")));
+
+        }
+
+
+        return getSucReturnObject().setData(rows).toString();
+
+    }
+
+    @API(title = "团队人员新增或编辑", apiversion = R.ID20240410164102.v1.class)
+    public String teamInsertOrUpdate() throws YosException {
+
+        Long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
+        String name = content.getStringValue("name");
+        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);
+            }
+        } else {
+            UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
+            updateSQL.setSiteid(siteid);
+            updateSQL.setUniqueid(sys_enterprise_hrid);
+            updateSQL.setValue("name", name);
+            updateSQL.setValue("position", position);
+            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());
+            }
+        }
+        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.setSiteid(siteid);
+        deleteSQL.setWhere("sys_enterpriseid", sys_enterpriseid);
+        deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrid);
+        deleteSQL.setWhere("sa_storeid not in " + sa_storeids.toString().replace("[", "(").replace("]", ")"));
+        deleteSQL.delete();
+
+        return teamDetail();
+    }
+
+    @API(title = "团队人员详情", apiversion = R.ID20240411085402.v1.class)
+    public String teamDetail() throws YosException {
+        Long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
+
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr"
+                        , "sys_enterprise_hrid", "name", "position", "phonenumber", "isleader", "userid","createby","createdate","changeby","changedate")
+                .setTableAlias("t1");
+        querySQL.addJoinTable(JOINTYPE.inner, "sa_store_hr", "t2", "t2.sys_enterprise_hrid=t1.sys_enterprise_hrid and t2.siteid=t1.siteid"
+                , "sa_store_hrid");
+        querySQL.addJoinTable(JOINTYPE.left, "sys_users", "t3", "t3.userid=t1.userid "
+                , "accountno");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrid);
+        Rows rows = querySQL.query();
+
+        //查询角色
+        RowsMap roleRowsMap = StoreHelper.getRoleRowsMap(controller, rows.toArray("userid"));
+        //查询门店
+        RowsMap storeRowsMap = StoreHelper.getStoreRowsMap(controller, rows.toArray("sys_enterprise_hrid"));
+
+        for (Row row : rows) {
+            row.put("headpic", getHeadPic(row.getLong("userid")));
+            Rows roleRows = roleRowsMap.getOrDefault(row.getString("userid"), new Rows());
+            row.put("rolenames", String.join(",", roleRows.toArrayList("rolename")));
+            row.put("roleids", roleRows.toArrayList("roleid",new ArrayList<Long>()));
+
+            Rows storeRows = storeRowsMap.getOrDefault(row.getString("sys_enterprise_hrid"), new Rows());
+            row.put("storenames", String.join(",", storeRows.toArrayList("storename")));
+
+            row.putIfAbsent("createdate","");
+            row.putIfAbsent("changedate","");
+        }
+        Row detailRow = rows.isNotEmpty() ? rows.get(0) : new Row();
+
+
+        return getSucReturnObject().setData(detailRow).toString();
+    }
+
+    @API(title = "团队人员删除", apiversion = R.ID20240411085502.v1.class)
+    public String teamDelete() throws YosException {
+        JSONArray sys_enterprise_hrids = content.getJSONArray("sys_enterprise_hrids");
+
+        QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr");
+        querySQL.setSiteid(siteid);
+        querySQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrids);
+        Rows rows = querySQL.query();
+        for (Row row : rows) {
+            if (row.getBoolean("isleader")) {
+                return getErrReturnObject().setErrMsg("主账号不能删除").toString();
+            }
+
+        }
+
+
+        ArrayList<Long> userids = rows.toArrayList("userid", new ArrayList<>());
+
+        DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(controller, "sys_enterprise_hr");
+        deleteSQL.setSiteid(siteid);
+        deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrids);
+        deleteSQL.delete();
+
+        deleteSQL = SQLFactory.createDeleteSQL(controller, "sa_store_hr");
+        deleteSQL.setSiteid(siteid);
+        deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrids);
+        deleteSQL.delete();
+
+        deleteSQL = SQLFactory.createDeleteSQL(controller, "sys_usersite");
+        deleteSQL.setSiteid(siteid);
+        deleteSQL.setWhere("userid", userids);
+        deleteSQL.delete();
+
+        for (Object o : userids) {
+            DataContrlLog.createLog(this, "sys_users", Long.parseLong(String.valueOf(o)), "删除", "删除成功").insert();
+            loguserout(Long.parseLong(String.valueOf(o)));
+        }
+
+
+        return getSucReturnObject().toString();
+    }
+
+}