| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355 |
- package restcontroller.sale.team;
- import beans.datacontrllog.DataContrlLog;
- import beans.user.User;
- import com.alibaba.fastjson2.JSONArray;
- import com.alibaba.fastjson2.JSONObject;
- import common.Controller;
- import common.YosException;
- import common.annotation.*;
- import common.data.*;
- import common.data.db.SQLList;
- import common.password.UserPassword;
- import org.apache.commons.lang.ArrayUtils;
- import restcontroller.R;
- import java.util.ArrayList;
- import java.util.Objects;
- @API(title = "团队管理")
- public class team extends Controller {
- public team(JSONObject content) throws YosException {
- super(content);
- }
- @API(title = "团队账号列表查询", apiversion = R.ID20221107094704.v1.class)
- @CACHEING
- public String query_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("or t1.position like'%").append(whereObject.getString("condition")).append("%' ");
- where.append("or t2.accountno like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- }
- // SQLFactory sqlFactory = new SQLFactory(this, "团队列表查询", pageSize, pageNumber, pageSorting);
- // sqlFactory.addParameter("siteid", siteid);
- // sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
- // sqlFactory.addParameter_SQL("where", where);
- // Rows hrrows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_hr", "sys_enterprise_hrid", "name", "position", "isleader", "phonenumber", "remarks", "email", "userid", "authmodel", "isagent");
- querySQL.setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.inner, "sys_users", "t2", "t1.userid = t2.userid and t2.status!='DELETED'", "accountno");
- querySQL.addJoinTable(JOINTYPE.left, "sys_usertrialperiod", "t4", "t4.userid=t1.userid and t4.siteid=t1.siteid");
- querySQL.addQueryFields("begdate", "ifnull(t4.begdate, '')");
- querySQL.addQueryFields("enddate", "ifnull(t4.enddate, '')");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("t1.sys_enterpriseid", sys_enterpriseid);
- querySQL.setWhere(where.toString());
- querySQL.setPage(pageSize, pageNumber);
- Rows hrrows = querySQL.query();
- SQLFactory roleFactory = new SQLFactory(this, "团队成员已授权角色查询");
- roleFactory.addParameter("siteid", siteid);
- roleFactory.addParameter_in("userid", hrrows.toArray("userid"));
- RowsMap roleRolesMap = dbConnect.runSqlQuery(roleFactory.getSQL()).toRowsMap("userid");
- SQLFactory factory = new SQLFactory(this, "查询付费版本");
- factory.addParameter("siteid", siteid);
- factory.addParameter_in("userid", hrrows.toArray("userid"));
- RowsMap factoryMap = dbConnect.runSqlQuery(factory.getSQL()).toRowsMap("userid");
- QuerySQL orderclue_authQuery = SQLFactory.createQuerySQL(this, "sat_orderclue_auth", "hrid").setTableAlias("t1");
- orderclue_authQuery.addJoinTable(JOINTYPE.inner, "sat_orderclue", "t2", "t1.sat_orderclueid=t2.sat_orderclueid and t2.status in('待跟进','跟进中')");
- orderclue_authQuery.addQueryFields("count", "count(0)");
- orderclue_authQuery.setSiteid(siteid);
- orderclue_authQuery.setWhere("t1.sys_enterpriseid", sys_enterpriseid);
- orderclue_authQuery.setWhere("t1.isused", true);
- orderclue_authQuery.setWhere("t1.hrid", hrrows.toArrayList("sys_enterprise_hrid"));
- orderclue_authQuery.addGroupBy("hrid");
- RowsMap orderclue_authRowsMap = orderclue_authQuery.query().toRowsMap("hrid");
- RowsMap attinfosmap = getAttachmentUrl("sys_users", hrrows.toArrayList("userid", new ArrayList<>()));
- for (Row row : hrrows) {
- String sys_enterprise_hrid = row.getString("sys_enterprise_hrid");
- if (orderclue_authRowsMap.containsKey(sys_enterprise_hrid)) {
- row.put("ordercluecount", orderclue_authRowsMap.get(sys_enterprise_hrid).get(0).getLong("count"));//在手线索数量
- } else {
- row.put("ordercluecount", 0);
- }
- String userid = row.getString("userid");
- if (roleRolesMap.get(userid).isNotEmpty()) {
- row.put("roleid", roleRolesMap.get(userid).get(0).getLong("roleid"));
- row.put("rolename", roleRolesMap.get(userid).get(0).getString("rolename"));
- } else {
- row.put("roleid", "");
- row.put("rolename", "");
- }
- row.put("attinfos", attinfosmap.get(userid));
- Rows partitionnameRows = factoryMap.get(row.getString("userid"));
- row.put("partitionname", partitionnameRows);
- if (partitionnameRows.isNotEmpty()) {
- row.put("status", "已付费");
- } else {
- row.put("status", "未付费");
- }
- }
- return getSucReturnObject().setData(hrrows).toString();
- }
- @API(title = "团队新增或修改")
- @CACHEING_CLEAN(cms = {@cm(clazz = team.class, method = {"query_teamList"})})
- public String insertormodify_team() throws YosException {
- long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");//新增时传0
- String name = content.getString("name");
- String phonenumber = content.getString("phonenumber");
- String email = content.getString("email");
- String position = content.getString("position");
- String remarks = content.getString("remarks");
- JSONArray roleidArray = content.getJSONArray("roleid");
- if (roleidArray == null) {
- roleidArray = new JSONArray();
- }
- String password = content.getString("password");//md5加密
- boolean userdatalimit = content.getBoolean("userdatalimit");//仅可查询本人客户、客户订单
- boolean storedatalimit = content.getBoolean("storedatalimit");//仅可处理门店数据
- ArrayList<Long> newroleidList = new ArrayList<>();
- for (Object o : roleidArray) {
- newroleidList.add(Long.parseLong(String.valueOf(o)));
- }
- int usertype = 22;//经销商子账号用户类型
- Rows sys_enterprise_hrRows = dbConnect.runSqlQuery("select userid from sys_enterprise_hr where siteid='" + siteid + "'and sys_enterpriseid='" + sys_enterpriseid + "' and sys_enterprise_hrid=" + sys_enterprise_hrid);
- Row returnRow;
- if (sys_enterprise_hrid <= 0 || sys_enterprise_hrRows.isEmpty()) {
- Rows agentRows = dbConnect.runSqlQuery("select * from sa_agents where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid);
- String accountno = agentRows.get(0).getString("agentnum");
- int count = dbConnect.runSqlQuery(0, "SELECT count(1) count from sys_enterprise_hr WHERE sys_enterpriseid=" + sys_enterpriseid + " and isleader=0").getInteger("count");
- String paddedNumber = String.format("%0" + 3 + "d", count + 1);
- accountno = accountno + "-" + paddedNumber;
- Long id = User.createUser(this, sys_enterpriseid, accountno, name, phonenumber, false, position, usertype, ArrayUtils.toPrimitive(newroleidList.toArray(new Long[]{})), remarks);
- UpdateSQL sysEnterpriseHr = SQLFactory.createUpdateSQL(this, "sys_enterprise_hr");
- sysEnterpriseHr.setValue("userdatalimit", userdatalimit);
- sysEnterpriseHr.setValue("storedatalimit", storedatalimit);
- sysEnterpriseHr.setValue("password", UserPassword.create(password));
- sysEnterpriseHr.setSiteid(siteid).setWhere("sys_enterpriseid", sys_enterpriseid).setWhere("userid", id);
- returnRow = dbConnect.runSqlQuery("select * from sys_enterprise_hr where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid + " and userid=" + id).get(0);
- } else {
- SQLList sqllist = new SQLList();
- SQLFactory modifyusersql = new SQLFactory(this, "团队成员修改");
- modifyusersql.addParameter("siteid", siteid);
- modifyusersql.addParameter("sys_enterprise_hrid", sys_enterprise_hrid);
- modifyusersql.addParameter("sys_enterpriseid", sys_enterpriseid);
- modifyusersql.addParameter("name", name);
- modifyusersql.addParameter("phonenumber", phonenumber);
- modifyusersql.addParameter("email", email);
- modifyusersql.addParameter("position", position);
- modifyusersql.addParameter("remarks", remarks);
- modifyusersql.addParameter("changeuserid", userid);
- modifyusersql.addParameter("userdatalimit", userdatalimit ? 1 : 0);
- modifyusersql.addParameter("storedatalimit", storedatalimit ? 1 : 0);
- sqllist.add(modifyusersql.getSQL());
- /*
- 获取账号id
- */
- Long userid = sys_enterprise_hrRows.get(0).getLong("userid");
- /*
- 获取账号当前角色信息
- */
- Rows userroleRows = dbConnect.runSqlQuery("select roleid from sys_userrole where siteid='" + siteid + "' and userid=" + userid);
- ArrayList<Long> oldroleidList = userroleRows.toArrayList("roleid", new ArrayList<Long>());
- /*
- 判断角色是否需要添加
- */
- for (Long newroleid : newroleidList) {
- boolean isneedinsert = true;
- for (Long oldroleid : oldroleidList) {
- if (Objects.equals(newroleid, oldroleid)) {
- isneedinsert = false;
- break;
- }
- }
- if (isneedinsert) {
- SQLFactory sqlFactory = new SQLFactory(this, "账号角色添加");
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("userroleid", createTableID("sys_userrole"));
- sqlFactory.addParameter("roleid", newroleid);//新用户默认角色
- sqlFactory.addParameter("createby", username);
- sqllist.add(sqlFactory.getSQL());
- }
- }
- /*
- 判断角色是否需要删除
- */
- for (Long oldroleid : oldroleidList) {
- boolean isneeddelete = true;
- for (Long newroleid : newroleidList) {
- if (Objects.equals(newroleid, oldroleid)) {
- isneeddelete = false;
- break;
- }
- }
- if (isneeddelete) {
- sqllist.add("delete from sys_userrole where siteid='" + siteid + "' and userid='" + userid + "'and roleid='" + oldroleid + "'");
- }
- }
- dbConnect.runSqlUpdate(sqllist);
- returnRow = dbConnect.runSqlQuery("select * from sys_enterprise_hr where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid + " and sys_enterprise_hrid=" + sys_enterprise_hrid).get(0);
- }
- return getSucReturnObject().setData(returnRow).toString();
- }
- /**
- * 团队人员账号密码设置
- *
- * @return
- */
- @API(title = "团队人员账号密码设置", apiversion = R.ID2026052015501001.v1.class, params = {
- @Param(paramname = "password", remarks = "密码", isrequired = true, fieldtype = FieldType.Varchar),
- @Param(paramname = "sys_enterprise_hrid", remarks = "团队人员id", isrequired = true, fieldtype = FieldType.Varchar)}
- )
- public String setPassword() throws YosException {
- String password = content.getString("password");//md5加密
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_enterprise_hr");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("sys_enterpriseid", sys_enterpriseid);
- querySQL.setWhere("sys_enterprise_hrid", content.getLong("sys_enterprise_hrid"));
- Rows rows = querySQL.query();
- if (rows.isEmpty()) {
- return getErrReturnObject().setErrMsg("团队人员不存在").toString();
- }
- UserPassword.create(rows.get(0).getLong("userid"), password);
- DataContrlLog.createLog(this, "sys_users", userid, "密码重置", "密码重置成功").insert();
- loguserout(userid);
- return getSucReturnObject().toString();
- }
- @API(title = "删除团队成员", apiversion = R.ID20221107094804.v1.class)
- @CACHEING_CLEAN(cms = {@cm(clazz = team.class, method = {"query_teamList"})})
- public String deleteHr() throws YosException {
- JSONArray sys_enterprise_hrids = content.getJSONArray("sys_enterprise_hrids");
- StringBuffer str = new StringBuffer("(0");
- for (Object o : sys_enterprise_hrids) {
- str.append(",").append(o);
- }
- str.append(")");
- Rows rows = dbConnect.runSqlQuery("select userid from sys_enterprise_hr where siteid='" + siteid + "'and sys_enterpriseid='" + sys_enterpriseid + "' and sys_enterprise_hrid in" + str);
- ArrayList sqlList = new ArrayList();
- if (!rows.isEmpty()) {
- for (Row row : rows) {
- long userid = row.getLong("userid");
- Rows userroleRows = dbConnect.runSqlQuery("select t1.*,t2.rolename from sys_userrole t1 inner join sys_role t2 on t1.roleid=t2.roleid and t1.siteid=t2.siteid where t1.userid=" + userid);
- if (userroleRows.isNotEmpty()) {
- if (userroleRows.get(0).getString("rolename").equals("经销商")) {
- return getErrReturnObject().setErrMsg("团队负责人账号禁止删除").toString();
- }
- }
- String sql = "update sys_users set status='DELETED' where userid=" + userid;
- sqlList.add(sql);
- }
- }
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "团队成员角色选择")
- public String queryRole() throws YosException {
- long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
- long userid = 0;
- if (sys_enterprise_hrid > 0) {
- Rows sys_enterprise_hrRows = dbConnect.runSqlQuery("select userid from sys_enterprise_hr where siteid='" + siteid + "'and sys_enterpriseid='" + sys_enterpriseid + "' and sys_enterprise_hrid=" + sys_enterprise_hrid);
- userid = sys_enterprise_hrRows.get(0).getLong("userid");
- }
- SQLFactory sqlFactory = new SQLFactory(this, "账号角色选择查询");
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid);
- sqlFactory.addParameter("userid", userid);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "查询账号付费记录")
- public String queryPaid() throws YosException {
- long userid = content.getLongValue("userid");
- /*
- 过滤条件设置
- */
- 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("t3.partitionname like'%").append(whereObject.getString("condition")).append("%' ");
- where.append(")");
- }
- }
- // SQLFactory sqlFactory = new SQLFactory(this, "查询账号付费记录", pageSize, pageNumber, pageSorting);
- // sqlFactory.addParameter("siteid", siteid);
- // sqlFactory.addParameter("userid", userid);
- // sqlFactory.addParameter_SQL("where", where);
- // Rows rows = dbConnect.runSqlQuery(sqlFactory);
- QuerySQL querySQL = SQLFactory.createQuerySQL(this, "sys_payorderitems", "enddate");
- querySQL.setTableAlias("t1");
- querySQL.addJoinTable(JOINTYPE.inner, "sys_payorder", "t2", "t2.sys_payorderid = t1.sys_payorderid and t2.siteid = t1.siteid", "ispaid");
- querySQL.addJoinTable(JOINTYPE.left, "sys_site_systempartition", "t3", "t3.sys_site_systempartitionid = t2.sys_site_systempartitionid and t3.siteid = t2.siteid", "partitionname");
- querySQL.setSiteid(siteid);
- querySQL.setWhere("t2.ispaid = 1 and CURRENT_TIME <= t1.enddate");
- querySQL.setWhere("t1.userid", userid);
- querySQL.setWhere(where.toString());
- querySQL.setPage(pageSize, pageNumber);
- Rows rows = querySQL.query();
- return getSucReturnObject().setData(rows).toString();
- }
- @API(title = "修改销售线索分配模式")
- public String changeOrderClueGetModel() throws YosException {
- Long authmodel = content.getLong("authmodel");
- Long sys_enterprise_hrid = content.getLongValue("sys_enterprise_hrid");
- SQLList sqlList = new SQLList();
- sqlList.add("UPDATE sys_enterprise_hr SET authmodel=" + authmodel + " WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid = '" + siteid + "'");
- if (authmodel == 3) {
- sqlList.add("UPDATE sys_enterprise_hr SET isagent = 0 WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid = '" + siteid + "'");
- sqlList.add("UPDATE sys_enterprise_hr SET isagent = 1 WHERE sys_enterprise_hrid = " + sys_enterprise_hrid + " and siteid = '" + siteid + "'");
- }
- dbConnect.runSqlUpdate(sqlList);
- return getSucReturnObject().toString();
- }
- @API(title = "获取销售线索分配模式")
- public String getOrderClueGetModel() throws YosException {
- Long sys_enterpriseid = content.getLong("sys_enterpriseid");
- Row row = new Row();
- Rows rows = dbConnect.runSqlQuery("SELECT authmodel from sys_enterprise_hr WHERE sys_enterpriseid = " + sys_enterpriseid + " and siteid = '" + siteid + "'");
- if (rows.isNotEmpty()) {
- row.put("authmodel", rows.get(0).getLong("authmodel"));
- } else {
- row.put("authmodel", 1);
- }
- rows = dbConnect.runSqlQuery("SELECT * from sys_enterprise_hr WHERE sys_enterpriseid = " + sys_enterpriseid + " and isagent=1 and siteid = '" + siteid + "'");
- if (rows.isNotEmpty()) {
- rows.get(0).put("headpic", getHeadPic(rows.get(0).getLong("userid")));
- row.put("sys_enterprise_hrid", rows.get(0));
- }
- return getSucReturnObject().setData(row).toString();
- }
- }
|