package restcontroller.webmanage.saletool.store; import beans.datacontrllog.DataContrlLog; import beans.parameter.Parameter; 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 common.data.db.DBConnect; 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(where.toString()); 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"))); if (roleRows.toArrayList("rolename").contains(Parameter.get("storerolename"))) { row.put("status", "启用"); } else { row.put("status", "停用"); } 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 sa_storeids = content.getJSONArray("sa_storeids"); if (StringUtils.isBlank(phonenumber)) { return getErrReturnObject().setErrMsg("手机号不能为空").toString(); } ArrayList sqlList = new ArrayList<>(); if (sys_enterprise_hrid <= 0) { 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("sex", content.getStringValue("sex")); insertSQL.setValue("birthday", content.getStringValue("birthday", true, "null")); 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); updateSQL.setUniqueid(sys_enterprise_hrid); updateSQL.setValue("name", name); updateSQL.setValue("position", position); updateSQL.setValue("email", email); updateSQL.setValue("phonenumber", phonenumber); updateSQL.setValue("sex", content.getStringValue("sex")); updateSQL.setValue("birthday", content.getStringValue("birthday", true, "null")); sqlList.add(updateSQL.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, "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", "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"); 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"))); if (roleRows.toArrayList("rolename").contains(Parameter.get("storerolename"))) { row.put("status", "启用"); } else { row.put("status", "停用"); } row.put("roleids", roleRows.toArrayList("roleid", new ArrayList())); Rows storeRows = storeRowsMap.getOrDefault(row.getString("sys_enterprise_hrid"), new Rows()); row.put("storenames", String.join(",", storeRows.toArrayList("storename"))); row.put("sa_storeids", storeRows.toArrayList("sa_storeid")); row.putIfAbsent("createdate", ""); row.putIfAbsent("changedate", ""); if (dbConnect.runSqlQuery("SELECT * from sys_wechatapp_openids WHERE userid=" + row.getLong("userid")).isNotEmpty()) { row.put("iswechatbind", 1); } else if (dbConnect.runSqlQuery("SELECT * from sys_wechatapp_unionids WHERE userid=" + row.getLong("userid")).isNotEmpty()) { row.put("iswechatbind", 1); } else { row.put("iswechatbind", 0); } } 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 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(); } @API(title = "门店人员的状态通过设置角色来实现启用停用", apiversion = R.ID20240428091402.v1.class) public String updateRole() throws YosException { String paramname = "storerolename"; String rolename = ""; boolean enable = content.getBooleanValue("enable"); long userid = content.getLongValue("userid"); Rows rows = dbConnect.runSqlQuery("select * from sys_parameter where paramname='" + paramname + "'"); if (rows.isEmpty()) { Parameter.create(controller, paramname, "", "门店人员的状态通过设置角色来实现启用停用"); rolename = ""; } else { rolename = Parameter.get(paramname); } rows = dbConnect.runSqlQuery("select * from sys_role where rolename='" + rolename + "' and siteid='" + siteid + "'"); if (rows.isEmpty()) { return getErrReturnObject().setErrMsg("启用停用失败,未找到对应角色").toString(); } long roleid = rows.get(0).getLong("roleid"); if (enable) { InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_userrole"); insertSQL.setUniqueid(createTableID("sys_userrole")); insertSQL.setSiteid(siteid); insertSQL.setValue("userid", userid); insertSQL.setValue("roleid", roleid); insertSQL.insert(); } else { DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sys_userrole"); deleteSQL.setSiteid(siteid); deleteSQL.setWhere("userid", userid); deleteSQL.setWhere("roleid", roleid); deleteSQL.delete(); } return getSucReturnObject().toString(); } @API(title = "人员信息修改(邀请)", apiversion = R.ID20240428111902.v1.class) public String updateInfo() throws YosException { long sys_enterpriseid = content.getLongValue("sys_enterpriseid"); Rows rows = dbConnect.runSqlQuery("SELECT * from sys_enterprise_hr WHERE sys_enterpriseid=" + sys_enterpriseid + " and userid=" + userid + " and siteid='" + siteid + "'"); if (rows.isNotEmpty()) { long sys_enterprise_hrid = rows.get(0).getLong("sys_enterprise_hrid"); UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr"); updateSQL.setUniqueid(sys_enterprise_hrid); updateSQL.setSiteid(siteid); updateSQL.setValue("name", content.getStringValue("name")); updateSQL.setValue("phonenumber", content.getStringValue("phonenumber")); updateSQL.setValue("sex", content.getStringValue("sex")); updateSQL.setValue("birthday", content.getStringValue("birthday", true, "null")); updateSQL.setValue("position", content.getStringValue("position")); updateSQL.setValue("email", content.getStringValue("email")); updateSQL.update(); } else { InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_hr"); insertSQL.setUniqueid(createTableID("sys_enterprise_hr")); insertSQL.setSiteid(siteid); insertSQL.setValue("name", content.getStringValue("name")); insertSQL.setValue("phonenumber", content.getStringValue("phonenumber")); insertSQL.setValue("sex", content.getStringValue("sex")); insertSQL.setValue("birthday", content.getStringValue("birthday", true, "null")); insertSQL.setValue("position", content.getStringValue("position")); insertSQL.setValue("email", content.getStringValue("email")); insertSQL.setValue("userid", userid); insertSQL.setValue("sys_enterpriseid", sys_enterpriseid); insertSQL.setValue("isleader", 0); insertSQL.insert(); } if (usertype == 99) { //变更用户类型(消费者类型调整为经销商员工类型) new StoreHelper().updateUserType22(this); } return getSucReturnObject().toString(); } }