StoreTeam.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. package restcontroller.webmanage.saletool.store;
  2. import beans.datacontrllog.DataContrlLog;
  3. import beans.parameter.Parameter;
  4. import beans.user.User;
  5. import com.alibaba.fastjson.JSONArray;
  6. import com.alibaba.fastjson.JSONObject;
  7. import common.Controller;
  8. import common.YosException;
  9. import common.annotation.API;
  10. import common.data.*;
  11. import common.data.db.DBConnect;
  12. import org.apache.commons.lang.StringUtils;
  13. import restcontroller.R;
  14. import java.util.ArrayList;
  15. import java.util.Objects;
  16. public class StoreTeam extends Controller {
  17. /**
  18. * 构造函数
  19. *
  20. * @param content
  21. */
  22. public StoreTeam(JSONObject content) throws YosException {
  23. super(content);
  24. }
  25. Controller controller = this;
  26. @API(title = "团队人员列表", apiversion = R.ID20240410161802.v1.class)
  27. public String teamList() throws YosException {
  28. StringBuffer where = new StringBuffer(" 1=1 ");
  29. if (content.containsKey("where")) {
  30. JSONObject whereObject = content.getJSONObject("where");
  31. if (whereObject.containsKey("condition") && !"".equals(whereObject.getString("condition"))) {
  32. where.append(" and (");
  33. where.append("t1.name like'%").append(whereObject.getString("condition")).append("%' ");
  34. where.append("or t1.phonenumber like'%").append(whereObject.getString("condition")).append("%' ");
  35. where.append(")");
  36. }
  37. }
  38. QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr"
  39. , "sys_enterprise_hrid", "name", "position", "phonenumber", "isleader", "userid")
  40. .setTableAlias("t1");
  41. querySQL.setSiteid(siteid);
  42. querySQL.setWhere(where.toString());
  43. querySQL.setWhere("sys_enterpriseid", sys_enterpriseid);
  44. querySQL.setPage(pageSize, pageNumber).setOrderBy(pageSorting);
  45. Rows rows = querySQL.query();
  46. //查询角色
  47. RowsMap roleRowsMap = StoreHelper.getRoleRowsMap(controller, rows.toArray("userid"));
  48. //查询门店
  49. RowsMap storeRowsMap = StoreHelper.getStoreRowsMap(controller, rows.toArray("sys_enterprise_hrid"));
  50. for (Row row : rows) {
  51. row.put("headpic", getHeadPic(row.getLong("userid")));
  52. Rows roleRows = roleRowsMap.getOrDefault(row.getString("userid"), new Rows());
  53. row.put("rolenames", String.join(",", roleRows.toArrayList("rolename")));
  54. if (roleRows.toArrayList("rolename").contains(Parameter.get("storerolename"))) {
  55. row.put("status", "启用");
  56. } else {
  57. row.put("status", "停用");
  58. }
  59. Rows storeRows = storeRowsMap.getOrDefault(row.getString("sys_enterprise_hrid"), new Rows());
  60. row.put("storenames", String.join(",", storeRows.toArrayList("storename")));
  61. }
  62. return getSucReturnObject().setData(rows).toString();
  63. }
  64. @API(title = "团队人员新增或编辑", apiversion = R.ID20240410164102.v1.class)
  65. public String teamInsertOrUpdate() throws YosException {
  66. Long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
  67. String name = content.getStringValue("name");
  68. String phonenumber = content.getStringValue("phonenumber");
  69. String email = content.getStringValue("email");
  70. String position = content.getStringValue("position");
  71. JSONArray sa_storeids = content.getJSONArray("sa_storeids");
  72. if (StringUtils.isBlank(phonenumber)) {
  73. return getErrReturnObject().setErrMsg("手机号不能为空").toString();
  74. }
  75. ArrayList<String> sqlList = new ArrayList<>();
  76. if (sys_enterprise_hrid <= 0) {
  77. sys_enterprise_hrid = controller.createTableID("sys_enterprise_hr");
  78. InsertSQL insertSQL = SQLFactory.createInsertSQL(controller, "sys_enterprise_hr");
  79. insertSQL.setValue("siteid", controller.siteid);
  80. insertSQL.setValue("sys_enterprise_hrid", sys_enterprise_hrid);
  81. insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
  82. insertSQL.setValue("userid", 0);
  83. insertSQL.setValue("isleader", 0);
  84. insertSQL.setValue("phonenumber", phonenumber);
  85. insertSQL.setValue("position", position);
  86. insertSQL.setValue("name", name);
  87. insertSQL.setValue("remarks", "");
  88. insertSQL.setValue("sex", content.getStringValue("sex"));
  89. insertSQL.setValue("birthday", content.getStringValue("birthday", true, "null"));
  90. insertSQL.setValue("changeuserid", userid);
  91. sqlList.add(insertSQL.getSQL());
  92. content.put("sys_enterprise_hrid", sys_enterprise_hrid);
  93. } else {
  94. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
  95. updateSQL.setSiteid(siteid);
  96. updateSQL.setUniqueid(sys_enterprise_hrid);
  97. updateSQL.setValue("name", name);
  98. updateSQL.setValue("position", position);
  99. updateSQL.setValue("email", email);
  100. updateSQL.setValue("phonenumber", phonenumber);
  101. updateSQL.setValue("sex", content.getStringValue("sex"));
  102. updateSQL.setValue("birthday", content.getStringValue("birthday", true, "null"));
  103. sqlList.add(updateSQL.getSQL());
  104. }
  105. for (Object sa_storeid : sa_storeids) {
  106. sqlList.add(StoreHelper.getStoreHrInsertSQL(controller, sys_enterprise_hrid, Long.valueOf(sa_storeid.toString())).getSQL());
  107. }
  108. dbConnect.runSqlUpdate(sqlList);
  109. DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(controller, "sa_store_hr");
  110. deleteSQL.setSiteid(siteid);
  111. deleteSQL.setWhere("sys_enterpriseid", sys_enterpriseid);
  112. deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrid);
  113. deleteSQL.setWhere("sa_storeid not in " + sa_storeids.toString().replace("[", "(").replace("]", ")"));
  114. deleteSQL.delete();
  115. return teamDetail();
  116. }
  117. @API(title = "团队人员详情", apiversion = R.ID20240411085402.v1.class)
  118. public String teamDetail() throws YosException {
  119. Long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
  120. QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr"
  121. , "sys_enterprise_hrid", "name", "position", "phonenumber", "isleader", "userid", "createby", "createdate", "changeby", "changedate", "sex", "birthday", "email")
  122. .setTableAlias("t1");
  123. querySQL.addJoinTable(JOINTYPE.left, "sa_store_hr", "t2", "t2.sys_enterprise_hrid=t1.sys_enterprise_hrid and t2.siteid=t1.siteid"
  124. , "sa_store_hrid");
  125. querySQL.addJoinTable(JOINTYPE.left, "sys_users", "t3", "t3.userid=t1.userid "
  126. , "accountno");
  127. querySQL.setSiteid(siteid);
  128. querySQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrid);
  129. Rows rows = querySQL.query();
  130. //查询角色
  131. RowsMap roleRowsMap = StoreHelper.getRoleRowsMap(controller, rows.toArray("userid"));
  132. //查询门店
  133. RowsMap storeRowsMap = StoreHelper.getStoreRowsMap(controller, rows.toArray("sys_enterprise_hrid"));
  134. for (Row row : rows) {
  135. row.put("headpic", getHeadPic(row.getLong("userid")));
  136. Rows roleRows = roleRowsMap.getOrDefault(row.getString("userid"), new Rows());
  137. row.put("rolenames", String.join(",", roleRows.toArrayList("rolename")));
  138. if (roleRows.toArrayList("rolename").contains(Parameter.get("storerolename"))) {
  139. row.put("status", "启用");
  140. } else {
  141. row.put("status", "停用");
  142. }
  143. row.put("roleids", roleRows.toArrayList("roleid", new ArrayList<Long>()));
  144. Rows storeRows = storeRowsMap.getOrDefault(row.getString("sys_enterprise_hrid"), new Rows());
  145. row.put("storenames", String.join(",", storeRows.toArrayList("storename")));
  146. row.put("sa_storeids", storeRows.toArrayList("sa_storeid"));
  147. row.putIfAbsent("createdate", "");
  148. row.putIfAbsent("changedate", "");
  149. if (dbConnect.runSqlQuery("SELECT * from sys_wechatapp_openids WHERE userid=" + row.getLong("userid")).isNotEmpty()) {
  150. row.put("iswechatbind", 1);
  151. } else if (dbConnect.runSqlQuery("SELECT * from sys_wechatapp_unionids WHERE userid=" + row.getLong("userid")).isNotEmpty()) {
  152. row.put("iswechatbind", 1);
  153. } else {
  154. row.put("iswechatbind", 0);
  155. }
  156. }
  157. Row detailRow = rows.isNotEmpty() ? rows.get(0) : new Row();
  158. return getSucReturnObject().setData(detailRow).toString();
  159. }
  160. @API(title = "团队人员删除", apiversion = R.ID20240411085502.v1.class)
  161. public String teamDelete() throws YosException {
  162. JSONArray sys_enterprise_hrids = content.getJSONArray("sys_enterprise_hrids");
  163. QuerySQL querySQL = SQLFactory.createQuerySQL(controller, "sys_enterprise_hr");
  164. querySQL.setSiteid(siteid);
  165. querySQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrids);
  166. Rows rows = querySQL.query();
  167. for (Row row : rows) {
  168. if (row.getBoolean("isleader")) {
  169. return getErrReturnObject().setErrMsg("主账号不能删除").toString();
  170. }
  171. }
  172. ArrayList<Long> userids = rows.toArrayList("userid", new ArrayList<>());
  173. DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(controller, "sys_enterprise_hr");
  174. deleteSQL.setSiteid(siteid);
  175. deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrids);
  176. deleteSQL.delete();
  177. deleteSQL = SQLFactory.createDeleteSQL(controller, "sa_store_hr");
  178. deleteSQL.setSiteid(siteid);
  179. deleteSQL.setWhere("sys_enterprise_hrid", sys_enterprise_hrids);
  180. deleteSQL.delete();
  181. deleteSQL = SQLFactory.createDeleteSQL(controller, "sys_usersite");
  182. deleteSQL.setSiteid(siteid);
  183. deleteSQL.setWhere("userid", userids);
  184. deleteSQL.delete();
  185. for (Object o : userids) {
  186. DataContrlLog.createLog(this, "sys_users", Long.parseLong(String.valueOf(o)), "删除", "删除成功").insert();
  187. loguserout(Long.parseLong(String.valueOf(o)));
  188. }
  189. return getSucReturnObject().toString();
  190. }
  191. @API(title = "门店人员的状态通过设置角色来实现启用停用", apiversion = R.ID20240428091402.v1.class)
  192. public String updateRole() throws YosException {
  193. String paramname = "storerolename";
  194. String rolename = "";
  195. boolean enable = content.getBooleanValue("enable");
  196. long userid = content.getLongValue("userid");
  197. Rows rows = dbConnect.runSqlQuery("select * from sys_parameter where paramname='" + paramname + "'");
  198. if (rows.isEmpty()) {
  199. Parameter.create(controller, paramname, "", "门店人员的状态通过设置角色来实现启用停用");
  200. rolename = "";
  201. } else {
  202. rolename = Parameter.get(paramname);
  203. }
  204. rows = dbConnect.runSqlQuery("select * from sys_role where rolename='" + rolename + "' and siteid='" + siteid + "'");
  205. if (rows.isEmpty()) {
  206. return getErrReturnObject().setErrMsg("启用停用失败,未找到对应角色").toString();
  207. }
  208. long roleid = rows.get(0).getLong("roleid");
  209. if (enable) {
  210. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_userrole");
  211. insertSQL.setUniqueid(createTableID("sys_userrole"));
  212. insertSQL.setSiteid(siteid);
  213. insertSQL.setValue("userid", userid);
  214. insertSQL.setValue("roleid", roleid);
  215. insertSQL.insert();
  216. } else {
  217. DeleteSQL deleteSQL = SQLFactory.createDeleteSQL(this, "sys_userrole");
  218. deleteSQL.setSiteid(siteid);
  219. deleteSQL.setWhere("userid", userid);
  220. deleteSQL.setWhere("roleid", roleid);
  221. deleteSQL.delete();
  222. }
  223. return getSucReturnObject().toString();
  224. }
  225. @API(title = "人员信息修改(邀请)", apiversion = R.ID20240428111902.v1.class)
  226. public String updateInfo() throws YosException {
  227. long sys_enterpriseid = content.getLongValue("sys_enterpriseid");
  228. Rows rows = dbConnect.runSqlQuery("SELECT * from sys_enterprise_hr WHERE sys_enterpriseid=" + sys_enterpriseid + " and userid=" + userid + " and siteid='" + siteid + "'");
  229. if (rows.isNotEmpty()) {
  230. long sys_enterprise_hrid = rows.get(0).getLong("sys_enterprise_hrid");
  231. UpdateSQL updateSQL = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
  232. updateSQL.setUniqueid(sys_enterprise_hrid);
  233. updateSQL.setSiteid(siteid);
  234. updateSQL.setValue("name", content.getStringValue("name"));
  235. updateSQL.setValue("phonenumber", content.getStringValue("phonenumber"));
  236. updateSQL.setValue("sex", content.getStringValue("sex"));
  237. updateSQL.setValue("birthday", content.getStringValue("birthday", true, "null"));
  238. updateSQL.setValue("position", content.getStringValue("position"));
  239. updateSQL.setValue("email", content.getStringValue("email"));
  240. updateSQL.update();
  241. } else {
  242. InsertSQL insertSQL = SQLFactory.createInsertSQL(this, "sys_enterprise_hr");
  243. insertSQL.setUniqueid(createTableID("sys_enterprise_hr"));
  244. insertSQL.setSiteid(siteid);
  245. insertSQL.setValue("name", content.getStringValue("name"));
  246. insertSQL.setValue("phonenumber", content.getStringValue("phonenumber"));
  247. insertSQL.setValue("sex", content.getStringValue("sex"));
  248. insertSQL.setValue("birthday", content.getStringValue("birthday", true, "null"));
  249. insertSQL.setValue("position", content.getStringValue("position"));
  250. insertSQL.setValue("email", content.getStringValue("email"));
  251. insertSQL.setValue("userid", userid);
  252. insertSQL.setValue("sys_enterpriseid", sys_enterpriseid);
  253. insertSQL.setValue("isleader", 0);
  254. insertSQL.insert();
  255. }
  256. if (usertype == 99) {
  257. //变更用户类型(消费者类型调整为经销商员工类型)
  258. new StoreHelper().updateUserType22(this);
  259. }
  260. return getSucReturnObject().toString();
  261. }
  262. }