|
|
@@ -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();
|
|
|
+ }
|
|
|
+
|
|
|
+}
|