package restcontroller.webmanage.sale.enterprise; import beans.data.BatchDeleteErr; import beans.datateam.DataTeam; import beans.enterprise.Enterprise; import beans.hr.Hr; 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.annotation.CACHEING; import common.annotation.CACHEING_CLEAN; import common.annotation.cm; import common.data.Row; import common.data.Rows; import common.data.SQLFactory; import org.apache.commons.lang.StringUtils; import restcontroller.R; import restcontroller.webmanage.sale.agents.agents; import restcontroller.webmanage.sale.customer.Customer; import restcontroller.webmanage.sale.salearea.salearea; import utility.tools.WebRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.regex.Matcher; import java.util.regex.Pattern; public class enterprise extends Controller { public enterprise(JSONObject content) throws YosException { super(content); } @API(title = "商户档案列表查询", apiversion = R.ID20220920083901.v1.class) @CACHEING public String query_enterpriseList() 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.phonenumber like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.enterprisename like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.taxno like'").append(whereObject.getString("condition")).append("%' "); where.append("or t1.city like'").append(whereObject.getString("condition")).append("%' "); where.append("or t1.province like'").append(whereObject.getString("condition")).append("%' "); where.append("or t1.county like'").append(whereObject.getString("condition")).append("%' "); where.append("or t1.address like'").append(whereObject.getString("condition")).append("%' "); where.append("or t1.contact like'").append(whereObject.getString("condition")).append("%' "); where.append(")"); } if (whereObject.containsKey("type") && !"".equals(whereObject.getString("type"))) { String sql; // if (whereObject.containsKey("typemx") && StringUtils.isNotEmpty(whereObject.getString("typemx"))) { // sql = " and ("; // } else { sql = " and "; // } String type = whereObject.getString("type"); //获取经销商sys_enterpriseid if (type.equals("1")) { ArrayList list = getAgentsList(); list.add(0L); sql += " (t1.sys_enterpriseid in " + list + ")"; } //获取所有客户sys_enterpriseid if (type.equals("2")) { ArrayList list = getCustomersList(); list.add(0L); sql += " (t1.sys_enterpriseid in " + list + ")"; } //排除已添加经销商的经销商数据 if (type.equals("3")) { ArrayList ids = new ArrayList<>(); ids.addAll(getCanAddAgentsList()); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //缔约方 if (type.equals("4")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList list = getProjectPartiesList(sa_projectid); list.add(-1L); sql += " (t1.sys_enterpriseid in " + list + ")"; } //查询我负责的经销商 if (type.equals("5")) { ArrayList ids = new ArrayList<>(); ids.addAll(Hr.getMyAgentsList2(this)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //查询我负责的客户,排除已添加的关联客户 if (type.equals("6")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList ids = new ArrayList<>(); ids.addAll(Hr.getMyCustomersList(this, hrid)); ids.removeAll(getProjectPartiesList(sa_projectid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //查询我负责的客户 if (type.equals("7")) { ArrayList ids = new ArrayList<>(); ids.addAll(Hr.getMyCustomersList2(this)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //查询我负责的经销商,排除已添加的关联客户 if (type.equals("8")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList ids = new ArrayList<>(); ids.addAll(Hr.getMyAgentsList(this, hrid)); ids.removeAll(getProjectPartiesList(sa_projectid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //工具借用单中使用:查询我负责的经销商及下属负责的,查询我负责的客户及下属负责的 if (type.equals("9")) { ArrayList ids = new ArrayList<>(); ids.addAll(Hr.getAgents(this, hrid)); ids.addAll(Hr.getCustomers(this, hrid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //查询我负责的经销商,查询我负责的客户 if (type.equals("10")) { ArrayList ids = new ArrayList<>(); ids.addAll(Hr.getMyAgentsList2(this)); ids.addAll(Hr.getMyCustomersList2(this)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //项目》关联客户》项目负责人的负责的客户 if (type.equals("11")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList ids = new ArrayList<>(); ids.addAll(getProjectCustomers(sa_projectid)); ids.removeAll(getProjectPartiesList(sa_projectid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //项目》关联客户》项目负责人的启用状态的经销商 if (type.equals("12")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList ids = new ArrayList<>(); ids.addAll(getProjectAgents(sa_projectid)); ids.removeAll(getProjectPartiesList(sa_projectid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //项目》合同》直销项目协议 if (type.equals("13")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList ids = new ArrayList<>(); ids.addAll(getProjectCustomers2(sa_projectid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } //项目》合同》居间协议 if (type.equals("14")) { Long sa_projectid = whereObject.getLongValue("sa_projectid"); ArrayList ids = new ArrayList<>(); ids.addAll(getProjectAgents2(sa_projectid)); ids.add(0L); sql += " (t1.sys_enterpriseid in " + ids + ")"; } sql = sql.replace("[", "(").replace("]", ")"); where.append(sql); } // if (whereObject.containsKey("typemx") && !"".equals(whereObject.getString("typemx"))) { // String typemx = whereObject.getString("typemx"); // String sql = ""; // boolean issaler = isSaler(); // // // //经销商 // if (typemx.equals("经销商合作协议") || typemx.equals("经销项目协议") || typemx.equals("工具使用(借用)协议")) { // if (issaler) { // Rows rows = dbConnect.runSqlQuery("select sys_enterpriseid from sys_enterprise where sys_enterpriseid in (select t2.sys_enterpriseid from sys_departmenthrid t1 left join sys_enterprise_tradefield t2 " // + "on t1.siteid=t2.siteid and t1.hrid=t2.hrid where (t1.departmentid in(with recursive department as (select departmentid from sys_department where siteid = '" + siteid + "' and departmentid = " + departmentid // + " union all select t2.departmentid from department t1 inner join sys_department t2 on t1.departmentid = t2.parentid and t2.siteid ='" + siteid + "') select departmentid from department where departmentid !='" + departmentid + "') " // + " or if((select isleader from sys_hr where userid=" + userid + ")=1,t1.departmentid=" + departmentid + ",1=2) or t1.hrid=(select hrid from sys_hr where userid=" + userid + "))) UNION ALL select 0"); // if (StringUtils.isNotEmpty(whereObject.getString("type")) && whereObject.getLong("type") > 0) { // sql = " or (t1.sys_enterpriseid in " + rows.toArrayList("sys_enterpriseid", new ArrayList<>()) + "))"; // } else { // sql = " and (t1.sys_enterpriseid in " + rows.toArrayList("sys_enterpriseid", new ArrayList<>()) + ")"; // } // } // } // //客户 // if (typemx.equals("直销项目协议") || typemx.equals("工具使用(借用)协议")) { // if (issaler) { // //Rows rows = dbConnect.runSqlQuery("select t2.sys_enterpriseid from sys_datateam t1 left join sa_customers t2 on t1.ownerid=t2.sa_customersid and t1.siteid=t2.siteid and t1.ownertable='sa_customers' where t1.userid=" + userid + " and t1.siteid='" + siteid + "' and t2.sys_enterpriseid is not null UNION ALL select 0 "); //// Rows rows = dbConnect.runSqlQuery("select sys_enterpriseid from sa_customers where sys_enterpriseid in (select t2.sys_enterpriseid from sys_departmenthrid t1 left join sys_datateam t2 " //// + "on t1.siteid=t2.siteid and t1.hrid=t2.hrid where (t1.departmentid in(with recursive department as (select departmentid from sys_department where siteid = '"+siteid+"' and departmentid = "+departmentid //// + " union all select t2.departmentid from department t1 inner join sys_department t2 on t1.departmentid = t2.parentid and t2.siteid ='"+siteid+"') select departmentid from department where departmentid !='"+departmentid+"') " //// + " or if((select isleader from sys_hr where userid="+userid+")=1,t1.departmentid="+departmentid+",1=2) or t1.hrid=(select hrid from sys_hr where userid="+userid+"))) UNION ALL select 0"); // // if (whereObject.containsKey("type") && StringUtils.isNotEmpty(whereObject.getString("type"))) { // sql = " or (t1.sys_enterpriseid in " + Hr.getCustomers(this, hrid) + "))"; // } else { // sql = " and (t1.sys_enterpriseid in " + Hr.getCustomers(this, hrid) + ")"; // } // } // } // if (StringUtils.isEmpty(sql)) { // sql = ")"; // } // sql = sql.replace("[", "(").replace("]", ")"); // where.append(sql); // } } SQLFactory sqlFactory = new SQLFactory(this, "商户档案列表查询", pageSize, pageNumber, pageSorting); sqlFactory.addParameter_SQL("where", where); sqlFactory.addParameter("siteid", siteid); String sql = sqlFactory.getSQL(false); Rows rows = dbConnect.runSqlQuery(sql); return getSucReturnObject().setData(rows).toString(); } /** * 获取项目负责人的负责的客户 * * @param sa_projectid * @return */ public ArrayList getProjectCustomers(Long sa_projectid) throws YosException { SQLFactory sqlFactory = new SQLFactory(this, "获取项目负责人的负责的客户"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_projectid", sa_projectid); Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL(false)); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } public ArrayList getProjectCustomers2(Long sa_projectid) throws YosException { SQLFactory sqlFactory = new SQLFactory(this, "获取项目负责人的负责的客户2"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_projectid", sa_projectid); Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL(false)); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } /** * 获取项目负责人启用状态的经销商 * * @param sa_projectid * @return */ public ArrayList getProjectAgents(Long sa_projectid) throws YosException { SQLFactory sqlFactory = new SQLFactory(this, "获取项目负责人启用状态的经销商"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_projectid", sa_projectid); Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL(false)); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } public ArrayList getProjectAgents2(Long sa_projectid) throws YosException { SQLFactory sqlFactory = new SQLFactory(this, "获取项目负责人启用状态的经销商2"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sa_projectid", sa_projectid); Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL(false)); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } @API(title = "选择经销商(订单)", apiversion = R.ID20230219195002.v1.class) @CACHEING public String selectAgents() 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.phonenumber like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.enterprisename like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t2.agentnum like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t1.contact like'").append(whereObject.getString("condition")).append("%' "); where.append(")"); } } boolean ismanage = content.getBooleanValue("ismanage"); //业务员 if (!ismanage && usertype == 1) { ArrayList subUserIds = User.getSubUserIds(this); subUserIds.add(userid); String hridsql = "SELECT hrid from sys_hr WHERE userid in " + subUserIds + " and siteid='" + siteid + "'"; hridsql = hridsql.replace("[", "(").replace("]", ")"); where.append(" and t1.sys_enterpriseid in (SELECT sys_enterpriseid from sys_enterprise_tradefield WHERE hrid in (" + hridsql + ") and siteid = '" + siteid + "') "); } //给默认排序 pageSorting = pageSorting.equals("''") ? " t1.createdate desc" : pageSorting; SQLFactory sqlFactory = new SQLFactory(this, "经销商列表", pageSize, pageNumber, pageSorting); sqlFactory.addParameter_SQL("where", where); sqlFactory.addParameter("siteid", siteid); String sql = sqlFactory.getSQL(); Rows rows = dbConnect.runSqlQuery(sql); return getSucReturnObject().setData(rows).toString(); } @API(title = "选择企业(订单)", apiversion = R.ID20230220005002.v1.class) @CACHEING public String selectCustomers() 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("t2.phonenumber like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t2.enterprisename like'%").append(whereObject.getString("condition")).append("%' "); where.append("or t2.contact like'").append(whereObject.getString("condition")).append("%' "); where.append(")"); } } String tablename = "sa_customers"; boolean ismanage = content.getBooleanValue("ismanage"); //业务员 String where2 = "1=1"; if (!ismanage && usertype == 1) { where2 = DataTeam.getDataWhereStr(this, tablename, "t1", 1) + " or " + DataTeam.getDataWhereStr(this, tablename, "t1", 3); } //给默认排序 pageSorting = pageSorting.equals("''") ? " t1.createdate desc" : pageSorting; SQLFactory sqlFactory = new SQLFactory(this, "客户列表", pageSize, pageNumber, pageSorting); sqlFactory.addParameter_SQL("where", where); sqlFactory.addParameter_SQL("where2", where2); sqlFactory.addParameter("siteid", siteid); String sql = sqlFactory.getSQL(); Rows rows = dbConnect.runSqlQuery(sql); return getSucReturnObject().setData(rows).toString(); } /** * 获取经销商sys_enterpriseid * * @return * @throws YosException */ public ArrayList getAgentsList() throws YosException { Rows rows = dbConnect.runSqlQuery("SELECT sys_enterpriseid from sa_agents WHERE status='启用' and siteid='" + siteid + "'"); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } //查询可添加为经销商的企业 public ArrayList getCanAddAgentsList() throws YosException { Rows rows = dbConnect.runSqlQuery("SELECT sys_enterpriseid from sys_enterprise t1 WHERE NOT EXISTS(SELECT 1 from sa_agents WHERE status='启用' and sys_enterpriseid=t1.sys_enterpriseid and siteid='" + siteid + "') and siteid='" + siteid + "' and ismain=0"); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } /** * 获取所有客户sys_enterpriseid * * @return * @throws YosException */ public ArrayList getCustomersList() throws YosException { Rows rows = dbConnect.runSqlQuery("SELECT sys_enterpriseid from sa_customers WHERE datastatus != 1 and siteid='" + siteid + "'"); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } /** * 获取缔约方sys_enterpriseid * * @return * @throws YosException */ public ArrayList getProjectPartiesList(Long sa_projectid) throws YosException { Rows rows = dbConnect.runSqlQuery("SELECT sys_enterpriseid from sa_project_parties WHERE sa_projectid = " + sa_projectid + " and siteid = '" + siteid + "'"); return rows.toArrayList("sys_enterpriseid", new ArrayList<>()); } @API(title = "商户档案详情查询", apiversion = R.ID20220920084001.v1.class) @CACHEING public String query_enterpriseMain() throws YosException { if (content.containsKey("sys_enterpriseid")) { sys_enterpriseid = content.getLongValue("sys_enterpriseid"); } SQLFactory sqlFactory = new SQLFactory(this, "商户档案详情查询"); sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid); sqlFactory.addParameter("siteid", siteid); Rows enterpriseRows = dbConnect.runSqlQuery(sqlFactory.getSQL()); for (Row enterpriseRow : enterpriseRows) { enterpriseRow.put("hrs", getEnterpriseHrs(enterpriseRow.getLong("sys_enterpriseid"))); } return getSucReturnObject().setData(enterpriseRows.isNotEmpty() ? enterpriseRows.get(0) : new Row()).toString(); } @API(title = "商户档案新增修改", apiversion = R.ID20220920084101.v1.class, intervaltime = 200) @CACHEING_CLEAN(cms = {@cm(clazz = enterprise.class, method = {"query_enterpriseList", "query_enterpriseMain"}), @cm(clazz = restcontroller.sale.enterprise.enterprise.class, method = {"query_enterpriseMain"})}, apiversions = {R.ID20221011133602.class}, apiClass = {Customer.class, restcontroller.sale.customer.Customer.class}) public String insertormodify_enterprise() throws YosException { long sys_enterpriseid = content.getLongValue("sys_enterpriseid");//商户档案id,新增时传0 String tablename = "sys_enterprise"; String phonenumber = content.getStringValue("phonenumber", tablename); boolean isValidPhoneNumber = validatePhoneNumber(phonenumber); if (!isValidPhoneNumber) { return getErrReturnObject().setErrMsg("请输入正确的手机号").toString(); } ArrayList sqllist = new ArrayList<>(); SQLFactory sqlFactory = new SQLFactory(this, "商户档案新增"); if (sys_enterpriseid <= 0 || dbConnect.runSqlQuery("select sys_enterpriseid from sys_enterprise where sys_enterpriseid=" + sys_enterpriseid).isEmpty()) { sys_enterpriseid = createTableID("sys_enterprise"); } else { sqlFactory = new SQLFactory(this, "商户档案修改"); } sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("sys_enterpriseid", sys_enterpriseid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("changeuserid", userid); sqlFactory.addParameter("enterprisename", content.getStringValue("enterprisename", tablename)); sqlFactory.addParameter("address", content.getStringValue("address", tablename)); sqlFactory.addParameter("contact", content.getStringValue("contact", tablename)); Rows rows = dbConnect.runSqlQuery("select t1.sys_enterpriseid,t2.agentnum from sys_enterprise t1 " + "left join sa_agents t2 on t1.sys_enterpriseid=t2.sys_enterpriseid and t1.siteid=t2.siteid " + "where t1.sys_enterpriseid!=" + sys_enterpriseid + " and t1.siteid='" + siteid + "' and t1.phonenumber='" + phonenumber + "'"); if (!rows.isEmpty()) { return getErrReturnObject().setErrMsg("与经销商编码" + rows.get(0).getString("agentnum") + "联系方式重复,无法保存").toString(); } sqlFactory.addParameter("phonenumber", phonenumber); sqlFactory.addParameter("province", content.getStringValue("province", tablename)); sqlFactory.addParameter("city", content.getStringValue("city", tablename)); sqlFactory.addParameter("county", content.getStringValue("county", tablename)); sqlFactory.addParameter("taxno", content.getStringValue("taxno", tablename)); sqlFactory.addParameter("limitreturnday", content.getLongValue("limitreturnday")); sqlFactory.addParameter("freefreightamount", content.getBigDecimalValue("freefreightamount")); sqlFactory.addParameter("latitude", content.getStringValue("latitude")); sqlFactory.addParameter("longitude", content.getStringValue("longitude")); sqlFactory.addParameter("abbreviation", content.getStringValue("abbreviation", tablename)); sqlFactory.addParameter("isorder", content.getLongValue("isorder")); //开票节点(1:订单审核:2:发货) sqlFactory.addParameter("invoicingpoint", content.getLongValue("invoicingpoint") == 0 ? 2 : content.getLongValue("invoicingpoint")); //是否需要经营授权,默认1 sqlFactory.addParameter("saleclassauth", content.getBooleanValue("saleclassauth") == false ? 0 : 1); sqlFactory.addParameter("grade", content.getLongValue("grade")); sqllist.add(sqlFactory.getSQL()); //扩展字段 String erpagentnum = content.getStringValue("erpagentnum"); String sql = "SELECT * from sys_dataextend WHERE ownertable='sys_enterprise' and ownerid=" + sys_enterpriseid + " and siteid = '" + siteid + "'"; Rows extendRows = dbConnect.runSqlQuery(sql); Long sys_dataextendid = 0L; if (extendRows.isEmpty()) { sys_dataextendid = createTableID("sys_dataextend"); sqlFactory = new SQLFactory(this, "经销商扩展字段新增"); } else { sys_dataextendid = extendRows.get(0).getLong("sys_dataextendid"); sqlFactory = new SQLFactory(this, "经销商扩展字段更新"); } sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("sys_dataextendid", sys_dataextendid); sqlFactory.addParameter("ownerid", sys_enterpriseid); sqlFactory.addParameter("ownertable", "sys_enterprise"); sqlFactory.addParameter("erpagentnum", erpagentnum); sqllist.add(sqlFactory.getSQL()); //企业信息同步到【我的客户】,并将该客户打上经销商标签, Rows customersRows = dbConnect.runSqlQuery("SELECT sa_customersid from sa_customers WHERE sys_enterpriseid =" + sys_enterpriseid + " and siteid = '" + siteid + "'"); Long sa_customersid = 0L; if (customersRows.isNotEmpty()) { sa_customersid = customersRows.get(0).getLong("sa_customersid"); sqlFactory = new SQLFactory(this, "客户更新"); sqlFactory.addParameter("siteid", siteid); sqlFactory.addParameter("userid", userid); sqlFactory.addParameter("username", username); sqlFactory.addParameter("sa_customersid", sa_customersid); sqlFactory.addParameter("name", content.getStringValue("enterprisename")); sqlFactory.addParameter("province", content.getStringValue("province")); sqlFactory.addParameter("city", content.getStringValue("city")); sqlFactory.addParameter("county", content.getStringValue("county")); sqlFactory.addParameter("address", content.getStringValue("address")); sqlFactory.addParameter("phonenumber", content.getStringValue("phonenumber")); sqllist.add(sqlFactory.getSQL()); } dbConnect.runSqlUpdate(sqllist); content.put("sys_enterpriseid", sys_enterpriseid); return query_enterpriseMain(); } public static boolean validatePhoneNumber(String number) { Pattern pattern = Pattern.compile("^[1][0-9]{10}$"); // 定义手机号码格式的正则表达式 Matcher matcher = pattern.matcher(number); return matcher.matches(); // 返回true表示匹配成功,false表示不匹配或者输入为空 } @API(title = "商户档案删除", apiversion = R.ID20220920084201.v1.class) @CACHEING_CLEAN(apiversions = {R.ID20220920083901.class, R.ID20220920084001.class, R.ID20221022165203.class}) public String delete_enterprise() throws YosException { JSONArray sys_enterpriseids = content.getJSONArray("sys_enterpriseids"); BatchDeleteErr batchDeleteErr = BatchDeleteErr.create(this, sys_enterpriseids.size()); for (Object o : sys_enterpriseids) { long sys_enterpriseid = Long.parseLong(o.toString()); Rows userRows = dbConnect.runSqlQuery("select userid from sys_enterprise_hr where siteid='" + siteid + "' and sys_enterpriseid='" + sys_enterpriseid + "'"); ArrayList useridlist = userRows.toArrayList("userid"); SQLFactory sqlFactory = new SQLFactory("sql:select * from sys_userrequestlog where userid!=0 and userid in $userid$"); sqlFactory.addParameter_in("userid", useridlist); Rows logRows = dbConnect.runSqlQuery(sqlFactory.getSQL()); if (logRows.isNotEmpty()) { batchDeleteErr.addErr(sys_enterpriseid, "该商户下属账号存在访问记录,不可进行删除操作"); continue; } ArrayList list = new ArrayList<>(); { SQLFactory deletesql = new SQLFactory("sql:delete from sys_enterprise where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid); list.add(deletesql.getSQL()); } { SQLFactory deletesql = new SQLFactory("sql:delete from sa_agents where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid); list.add(deletesql.getSQL()); } { SQLFactory deletesql = new SQLFactory("sql:delete from sys_enterprise_hr where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid); list.add(deletesql.getSQL()); } if (useridlist.size() > 0) { { SQLFactory deletesql = new SQLFactory("sql:delete from sys_users where userid in $userid$"); deletesql.addParameter_in("userid", useridlist); list.add(deletesql.getSQL()); } { SQLFactory deletesql = new SQLFactory("sql:delete from sys_usersite where userid in $userid$"); deletesql.addParameter_in("userid", useridlist); list.add(deletesql.getSQL()); } { SQLFactory deletesql = new SQLFactory("sql:delete from sys_userrole where userid in $userid$"); deletesql.addParameter_in("userid", useridlist); list.add(deletesql.getSQL()); } } dbConnect.runSqlUpdate(list); } return batchDeleteErr.getReturnObject().toString(); } @API(title = "创建商户主账号,如已存在,则赋予相应角色权限", apiversion = R.ID20220920084301.v1.class) @CACHEING_CLEAN(cms = {@cm(clazz = agents.class, method = {"query_agentList", "query_agentMain"}), @cm(clazz = salearea.class, method = {"query_agent"})}) public String createMainUser() throws YosException { long sys_enterpriseid = content.getLongValue("sys_enterpriseid"); if (dbConnect.runSqlQuery("select * from sys_enterprise_hr where sys_enterpriseid='" + sys_enterpriseid + "' and isleader=1 and siteid='" + siteid + "'").isNotEmpty()) { return getErrReturnObject().setErrMsg("创建失败,已存在负责人账号").toString(); } Rows rows = dbConnect.runSqlQuery("select * from sys_enterprise where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid); if (rows.isEmpty()) { return getErrReturnObject().setErrMsg("商户档案不存在").toString(); } String contact = rows.get(0).getString("contact"); String enterprisename = rows.get(0).getString("enterprisename"); String phonenumber = rows.get(0).getString("phonenumber"); Rows defaultrole = dbConnect.runSqlQuery("select roleid from sys_role where siteid='" + siteid + "' and usertype='" + 21 + "' and issystem=1"); Long[] defaultroleids = defaultrole.toArray("roleid", new Long[]{}); Rows agentRows = dbConnect.runSqlQuery("select agentnum from sa_agents where siteid='" + siteid + "' and sys_enterpriseid=" + sys_enterpriseid); if (agentRows.isEmpty()) { User.createUser(this, sys_enterpriseid, enterprisename, phonenumber, true, "负责人", 21, defaultroleids, enterprisename); } else { String accountprefix = Parameter.get(siteid, "accountprefix"); User.createUser(this, sys_enterpriseid, accountprefix + "" + agentRows.get(0).getString("agentnum"), enterprisename, phonenumber, true, "负责人", 21, defaultroleids, enterprisename); } return getSucReturnObject().toString(); } @API(title = "企业在线查找", intervaltime = 2000, apiversion = R.ID20221208103601.v1.class) @CACHEING(life = 1440) public String queryEnterpriseListOnline() throws YosException { String keyword = content.getString("keyword"); int pageNumber = content.getIntValue("pageNumber"); int pageSize = content.getIntValue("pageSize"); HashMap headers = new HashMap<>(); headers.put("content-type", "application/json;charset=utf-8"); JSONObject requestObject = new JSONObject(); requestObject.put("pageNo", pageNumber); requestObject.put("pageSize", pageSize); requestObject.put("keyword", keyword); requestObject.put("orderByType", 5); String web_result = new WebRequest().doPost(requestObject.toString(), "https://holmes.taobao.com/web/corp/customer/searchWithSummary", headers); JSONObject web_resultObject = JSONObject.parseObject(web_result); JSONArray resultArray = new JSONArray(); if (web_resultObject.containsKey("code") && web_resultObject.getLongValue("code") == 0) { JSONArray webdataArray = web_resultObject.getJSONObject("data").getJSONArray("data"); for (Object webdataObject : webdataArray) { JSONObject webdataJSONObject = (JSONObject) webdataObject; JSONObject resultObject = new JSONObject(true); resultObject.put("companyName", webdataJSONObject.getString("companyName")); resultObject.put("socialCreditCode", webdataJSONObject.getString("socialCreditCode")); resultObject.put("taxNum", webdataJSONObject.getString("taxNum")); resultObject.put("tags", webdataJSONObject.getJSONArray("tags")); resultObject.put("address", webdataJSONObject.getString("address")); String regProvince = webdataJSONObject.getString("regProvince"); regProvince = regProvince.replace("<mark>", "").replace("</mark>", ""); resultObject.put("regProvince", regProvince); String regCity = webdataJSONObject.getString("regCity"); regCity = regCity.replace("<mark>", "").replace("</mark>", ""); resultObject.put("regCity", regCity); String regArea = webdataJSONObject.getString("regArea"); regArea = regArea.replace("<mark>", "").replace("</mark>", ""); resultObject.put("regArea", regArea); resultObject.put("registerCapital", webdataJSONObject.getString("registerCapital")); resultObject.put("legalPerson", webdataJSONObject.getString("legalPerson")); resultObject.put("registerDate", webdataJSONObject.getString("registerDate")); resultObject.put("bizStatus", webdataJSONObject.getString("bizStatus")); resultObject.put("lat", webdataJSONObject.getString("lat")); resultObject.put("lon", webdataJSONObject.getString("lon")); resultObject.put("phone", webdataJSONObject.getString("phone")); resultObject.put("officialSite", webdataJSONObject.getString("officialSite")); resultObject.put("email", webdataJSONObject.getString("email")); resultObject.put("ocid", webdataJSONObject.getString("ocid")); { JSONObject mainrequestObject = new JSONObject(); mainrequestObject.put("ocid", webdataJSONObject.getString("ocid")); String web_mainresult = new WebRequest().doPost(mainrequestObject.toString(), "https://holmes.taobao.com/web/corpquery/company/category3", headers); JSONObject web_mainresultObject = JSONObject.parseObject(web_mainresult); if (web_mainresultObject.containsKey("code") && web_mainresultObject.getLongValue("code") == 0) { JSONObject summaryObject = web_mainresultObject.getJSONObject("data").getJSONObject("summary"); resultObject.put("opScope", summaryObject.getString("opScope")); resultObject.put("entBrief", summaryObject.getString("entBrief")); resultObject.put("industryOne", summaryObject.getString("industryOne")); resultObject.put("industryTwo", summaryObject.getString("industryTwo")); resultObject.put("staffSize", summaryObject.getString("staffSize")); } } resultArray.add(resultObject); } } return getSucReturnObject().setData(resultArray).toString(); } // public static void main(String[] args) throws YosException { // JSONObject object = new JSONObject(); // object.put("keyword", "云链"); // object.put("pageNumber", 1); // object.put("pageSize", 80); // enterprise enterprise = new enterprise(object); // } // @API(title = "在线查询企业详情信息") // public void queryEnterpriseMainOnline() throws YosException { // HashMap headers = new HashMap<>(); // headers.put("content-type", "application/json;charset=utf-8"); // // JSONObject requestObject = new JSONObject(); // requestObject.put("ocid", "1211104000186135776"); // // String web_result = new WebRequest().doPost(requestObject.toString(), "https://holmes.taobao.com/web/corpquery/company/category3", headers); // JSONObject web_resultObject = JSONObject.parseObject(web_result); // // // JSONObject resultObject = new JSONObject(); // if (web_resultObject.getLong("code") == 0) { // JSONObject summaryObject = web_resultObject.getJSONObject("data").getJSONObject("summary"); // // resultObject.put("opScope", summaryObject.getString("opScope")); // resultObject.put("entBrief", summaryObject.getString("entBrief")); // resultObject.put("industryOne", summaryObject.getString("industryOne")); // resultObject.put("industryTwo", summaryObject.getString("industryTwo")); // } // //// JSONObject requestObject2 = new JSONObject(); //// requestObject2.put("type", "web"); //// requestObject2.put("pageNo", 1); //// requestObject2.put("pageSize", 1); //// JSONArray dataModuleIds = new JSONArray(); //// dataModuleIds.add("482");// //// requestObject2.put("dataModuleIds", dataModuleIds); //// //// JSONArray params = new JSONArray(); //// JSONObject param = new JSONObject(); //// param.put("key", "onecomp_id"); //// param.put("value", "1211104000186135776"); //// params.add(param); //// requestObject2.put("params", params); //// //// String result2 = new WebRequest().doPost(requestObject2.toString(), "https://holmes.taobao.com/web/detail/companyDetailCardBatch", headers); //// JSONObject resultObject2 = JSONObject.parseObject(result2); // } }