| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834 |
- package com.cnd3b.common;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.cnd3b.common.data.Row;
- import com.cnd3b.common.data.Rows;
- import com.cnd3b.common.data.RowsMap;
- import com.cnd3b.common.data.SQLFactory;
- import com.cnd3b.common.data.db.DBConnect;
- import com.cnd3b.common.data.db.DataPool;
- import com.cnd3b.common.parameter.parameter;
- import com.cnd3b.common.websocket.WebClientSocket;
- import p2.p2server.P2Server;
- import p2.pao.PaoRemote;
- import p2.pao.PaoSetRemote;
- import p2.security.ConnectionKey;
- import p2.util.P2Exception;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.Method;
- import java.sql.Connection;
- import java.util.*;
- public class Controller extends BaseClass {
- // 请求正文
- public JSONObject content;
- public int returnMaxCount = 1000;
- public D3BReturnObject returnObject;
- /**
- * 不要预加载数据,false表示需要预加载,true表示不需要预加载
- */
- public boolean donotpreloading = false;
- public int pageNumber = 1;
- public int pageSize = 20;
- public String $classname = "";
- public String $method = "";
- public String $accesstoken = "";
- public long userid = 0L;
- public String username = "";
- public String siteid = "";
- public long tagentsid = 0L;
- public String fusertype = "";
- public String fphonenumber = "";
- public DBConnect dbConnect = null;
- public boolean fissysadministrator = false;
- public boolean fisadministrator = false;
- public String hostipport;//访问地址url 如http://localhost:8080 http://127.0.0.1:8080
- public Date sysdate;
- /**
- * 构造函数
- *
- * @param content
- */
- public Controller(JSONObject content) {
- this.dbConnect = new DBConnect();
- sysdate = getDateTime();
- this.content = content;
- if (content.containsKey("returnMaxCount")) {
- returnMaxCount = content.getIntValue("returnMaxCount");
- }
- returnObject = new D3BReturnObject(this);
- donotpreloading = content.containsKey("donotpreloading") && content.getBoolean("donotpreloading");
- this.content.remove("donotpreloading");
- if (this.content.containsKey("pageNumber")) {
- pageNumber = this.content.getIntValue("pageNumber");
- }
- if (this.content.containsKey("pageSize")) {
- pageSize = this.content.getIntValue("pageSize");
- }
- if (this.content.containsKey("$classname")) {
- $classname = this.content.getString("$classname");
- }
- if (this.content.containsKey("$method")) {
- $method = this.content.getString("$method");
- }
- if (this.content.containsKey("$requestHost")) {
- hostipport = this.content.getString("$requestHost");
- }
- if (this.content.containsKey("userid")) {
- userid = this.content.getLongValue("userid");
- } else if (this.content.containsKey("$accesstoken")) {
- $accesstoken = this.content.getString("$accesstoken");
- if (parameter.tokenlist.containsKey($accesstoken)) {
- userid = parameter.tokenlist.get($accesstoken);
- }
- }
- if (parameter.userIdList.containsKey(userid)) {
- Row row = parameter.userIdList.get(userid);
- siteid = row.getString("siteid");
- tagentsid = row.getLong("tagentsid");
- fusertype = row.getString("fusertype");
- username = row.getString("fname");
- fphonenumber = row.getString("fphonenumber");
- fissysadministrator = row.getBoolean("fissysadministrator");
- fisadministrator = row.getBoolean("fisadministrator");
- createRequestLog();
- } else if ($classname.contains("publicmethod")) {
- siteid = (String) content.getOrDefault("siteid", parameter.defaultsiteid);
- }
- }
- public String getSort(String[] sortfield, String defaultsort) {
- String sort = "";
- if (content.containsKey("sort") && Arrays.asList(sortfield).contains(content.getString("sort").replace("desc", "").replace("asc", "").trim())) {
- sort = content.getString("sort");
- } else {
- sort = defaultsort;
- }
- return sort;
- }
- /**
- * 每次从数据库里获取数据时,后台自动加载一定数据的数据至缓存中
- *
- * @param loadcount
- */
- public void preloading(int loadcount) {
- if (!donotpreloading && loadcount > 0) {
- /**
- * 获得当前页码
- */
- int pageNumber = this.pageNumber;
- new Thread() {
- @Override
- public void run() {
- super.run();
- for (int i = 1; i <= loadcount; i++) {
- /**
- * 先将是否需要缓存数据的key移除
- */
- content.remove("donotpreloading");
- /**
- * 设定需要缓存的页码。
- */
- if (content.get("pageNumber") instanceof String) {
- content.put("pageNumber", String.valueOf(pageNumber + i));
- } else {
- content.put("pageNumber", (pageNumber + i));
- }
- /**
- * 判断该数据是否存在于缓存中,如果不存在则查询一条
- */
- if (!DataPool.datapoolCtrl.containsKey(content.toString())) {
- /**
- * 缓存时,强制命令下次不再进行缓存
- */
- content.put("donotpreloading", true);
- try {
- /**
- * 执行请求方法
- */
- Class clz = Class.forName("com.cnd3b.restcontroller." + $classname);
- Constructor cla = clz.getDeclaredConstructor(JSONObject.class);
- Object obj = cla.newInstance(content);
- Method method = obj.getClass().getDeclaredMethod($method);
- method.invoke(obj);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
- }.start();
- }
- }
- public long getUniqueIDValue(String tablename, String tableidname) {
- ConnectionKey locala = null;
- try {
- locala = P2Server.getP2Server().getSystemUserInfo()
- .getConnectionKey();
- Connection localConnection = P2Server.getP2Server()
- .getDBConnProvider().getConnection(locala);
- return p2.pao.m
- .a(localConnection, tablename, tableidname);
- } catch (Exception e) {
- return 0;
- } finally {
- P2Server.getP2Server().getDBConnProvider().freeConnection(locala);
- }
- }
- public void saveDataLog(PaoRemote pao) throws P2Exception {
- if (content.containsKey("datalog")) {
- JSONArray datalogArray = content.getJSONArray("datalog");
- PaoSetRemote tdatalog = pao.getPaoSet("$tdatalog", "tdatalog");
- for (Object o : datalogArray) {
- JSONObject datalogObject = (JSONObject) o;
- PaoRemote datalog = tdatalog.addAtEnd();
- datalog.setValue("siteid", siteid, 11L);
- datalog.setValue("ftablename", pao.getName(), 11L);
- datalog.setValue("ftableid", pao.getUniqueIDValue(), 11L);
- datalog.setValue("ftype", datalogObject.getString("ftype"), 11L);
- datalog.setValue("flog", datalogObject.getString("flog"), 11L);
- datalog.setValue("changeby", username, 11L);
- datalog.setValue("changedate", getDateTime(), 11L);
- datalog.setValue("tenterprise_userid", userid, 11L);
- }
- }
- }
- public Rows getDataLog(String ftablename, String ftableid) {
- return dbConnect.runSqlQuery("select changeby,changedate,ftype,flog,tenterprise_userid from tdatalog where siteid='" + siteid
- + "' and ftablename='" + ftablename + "' and ftableid='" + ftableid + "'");
- }
- public Rows getDataLog(String ftablename, long ftableid) {
- return getDataLog(ftablename, String.valueOf(ftableid));
- }
- //userid:tuserrequestlogid
- public static HashMap<Long, Long> userRequestLogMap = new HashMap<>();
- //userid:count
- public static HashMap<Long, Long> userRequestLogcountMap = new HashMap<>();
- public static String lastday = "";
- /**
- * 创建请求日志
- */
- private void createRequestLog() {
- new Thread() {
- @Override
- public void run() {
- String nowday = getDate_Str();
- if (!lastday.equals(nowday)) {
- lastday = nowday;
- userRequestLogMap.clear();
- }
- if (!userRequestLogMap.containsKey(userid)) {
- Rows rows = dbConnect.runSqlQuery("select tuserrequestlogid from tuserrequestlog where siteid='" + siteid + "' and tenterprise_userid='" + userid + "' and convert(varchar(10),fdate,120)=convert(varchar(10),getdate(),120) ");
- if (rows.isEmpty()) {
- long tuserrequestlogid = createTableID("tuserrequestlog", "tuserrequestlogid");
- SQLFactory sqlFactory = new SQLFactory(this, "请求日志插入");
- sqlFactory.addParameter("tuserrequestlogid", tuserrequestlogid);
- sqlFactory.addParameter("siteid", siteid);
- sqlFactory.addParameter("tenterprise_userid", userid);
- sqlFactory.addParameter("tagentsid", tagentsid);
- String status = dbConnect.runSqlUpdate(sqlFactory.getSQL());
- if ("true".equals(status)) {
- userRequestLogMap.put(userid, tuserrequestlogid);
- }
- } else {
- userRequestLogMap.put(userid, rows.get(0).getLong("tuserrequestlogid"));
- }
- userRequestLogcountMap.put(userid, 1L);
- } else {
- long count = userRequestLogcountMap.get(userid) + 1;
- if (count > 9) {
- userRequestLogcountMap.put(userid, 1L);
- long tuserrequestlogid = userRequestLogMap.get(userid);
- dbConnect.runSqlUpdate("update tuserrequestlog set flastrequestdate=getdate(),frequesttimes=frequesttimes+" + count + " where siteid='" + siteid + "' and tenterprise_userid='" + userid + "' and tuserrequestlogid=" + tuserrequestlogid);
- } else {
- userRequestLogcountMap.put(userid, count);
- }
- }
- }
- }.start();
- }
- /**
- * 获取一个新的表数据ID
- */
- private static HashMap<String, Long> tableidmap = new HashMap<>();
- public long createTableID(String tablename, String fieldname) {
- synchronized (Controller.class) {
- tablename = tablename.toLowerCase();
- fieldname = fieldname.toLowerCase();
- if (!tableidmap.containsKey(tablename)) {
- Rows rows = dbConnect.runSqlQuery("select convert(bigint,isnull(max(" + fieldname + "),0)) as " + fieldname + " from " + tablename);
- if (!rows.isEmpty()) {
- long id = rows.get(0).getLong(fieldname);
- tableidmap.put(tablename, id);
- }
- }
- tableidmap.put(tablename, tableidmap.get(tablename) + 1);
- return tableidmap.get(tablename);
- }
- }
- public long createTableID(String tablename, String fieldname, int count) {
- synchronized (Controller.class) {
- tablename = tablename.toLowerCase();
- fieldname = fieldname.toLowerCase();
- if (!tableidmap.containsKey(tablename)) {
- Rows rows = dbConnect.runSqlQuery("select convert(bigint,isnull(max(" + fieldname + "),0)) as " + fieldname + " from " + tablename);
- if (!rows.isEmpty()) {
- long id = rows.get(0).getLong(fieldname);
- tableidmap.put(tablename, id);
- }
- }
- tableidmap.put(tablename, tableidmap.get(tablename) + 1 + count);
- return tableidmap.get(tablename) - count;
- }
- }
- public Row getUser(long userid) {
- return getUser(userid, siteid);
- }
- public Row getUser(long userid, String siteid) {
- Rows rows = dbConnect.runSqlQuery("select * from tenterprise_users where siteid='" + siteid + "' and tenterprise_userid=" + userid);
- return rows.isEmpty() ? null : rows.get(0);
- }
- public RowsMap getUser(long userids[]) {
- StringBuilder where = new StringBuilder("''");
- for (long userid : userids) {
- where.append(",'").append(userid).append("'");
- }
- return dbConnect.runSqlQuery("select * from tenterprise_users where siteid='" + siteid + "' and tenterprise_userid in(" + where + ")").toRowsMap("tenterprise_userid");
- }
- public Row getMainUser(long tagentsid) {
- Rows rows = dbConnect.runSqlQuery("select * from tenterprise_users where siteid='" + siteid + "' and fisadministrator=1 and tagentsid=" + tagentsid);
- return rows.isEmpty() ? null : rows.get(0);
- }
- public Rows getAgentUsers(long tagentsid) {
- Rows rows = dbConnect.runSqlQuery("select * from tenterprise_users where siteid='" + siteid + "' and tagentsid=" + tagentsid);
- return rows;
- }
- public Row getAgent(long tagentsid) {
- Rows rows = dbConnect.runSqlQuery("select * from tagents where siteid='" + siteid + "' and tagentsid=" + tagentsid);
- return rows.isEmpty() ? null : rows.get(0);
- }
- /**
- * 获取用户账户余额
- *
- * @return
- */
- public long getUserBalance() {
- Rows balancerows = dbConnect.runSqlQuery("select faccountbalance from tenterprise_users where siteid='" + siteid + "' and tenterprise_userid=" + userid);
- if (!balancerows.isEmpty()) {
- return balancerows.get(0).getLong("faccountbalance");
- } else {
- return 0L;
- }
- }
- /**
- * 获取用户账户冻结金额
- *
- * @return
- */
- public long getUserFreez() {
- Rows freezrows = dbConnect.runSqlQuery("select ffreezamount from accountfreez_view where siteid='" + siteid + "' and tenterprise_userid=" + userid);
- if (!freezrows.isEmpty()) {
- return freezrows.get(0).getLong("ffreezamount");
- } else {
- return 0L;
- }
- }
- /**
- * 获取账户可用余额
- *
- * @return
- */
- public long getUserCanUseAmount() {
- Rows canuseamountrows = dbConnect.runSqlQuery("select (isnull(t1.faccountbalance,0)-isnull(t2.ffreezamount,0))as fcanuseamount from tenterprise_users t1 left join accountfreez_view t2 on t1.siteid=t2.siteid and t1.tenterprise_userid=t2.tenterprise_userid where t1.siteid='" + siteid + "' and t1.tenterprise_userid='" + userid + "'");
- if (!canuseamountrows.isEmpty()) {
- return canuseamountrows.get(0).getLong("fcanuseamount");
- } else {
- return 0L;
- }
- }
- /**
- * 获取商学院功能说明
- *
- * @return
- */
- public long getAppHelpNotes(String ftype) {
- long tarchives_scid = 0L;
- if (parameter.isdebug()) {
- if ("销售系统".equals(ftype)) {
- tarchives_scid = 2305L;
- }
- } else {
- if ("销售系统".equals(ftype)) {
- tarchives_scid = 2305L;
- }
- }
- return tarchives_scid;
- }
- public D3BReturnObject_Err getErrReturnObject() {
- return returnObject.getErrObject();
- }
- public D3BReturnObject_Suc getSucReturnObject() {
- return returnObject.getSucObject();
- }
- /**
- * 获取当前及下属的账号列表,返回一个账号列表字符串
- *
- * @return
- */
- public String[] getSubUsers() {
- if (content.containsKey("fsalerid") && !"".equals(content.getString("fsalerid"))) {
- return getSubUsers(content.getString("fsalerid"));
- } else {
- Rows rows = getSubUserRows();
- return rows.toArray("tenterprise_userid");
- }
- }
- /**
- * 获取当前及下属的账号列表,返回一个账号列表字符串
- *
- * @return
- */
- public String[] getSubUsers(String userid) {
- Rows rows = getSubUserRows(siteid, userid);
- return rows.toArray("tenterprise_userid");
- }
- /**
- * 获取当前及下属的账号列表,返回一个账号列表字符串
- *
- * @return
- */
- public String[] getSubUsers(String siteid, String userid) {
- Rows rows = getSubUserRows(siteid, userid);
- return rows.toArray("tenterprise_userid");
- }
- public Rows getSubUserRows() {
- String key = siteid + userid;
- Object object = DataPool.get(key);
- if (object != null) {
- return (Rows) object;
- }
- SQLFactory sqlFactory = new SQLFactory("下属账号列表获取");
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("siteid", siteid);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- DataPool.put(key, rows, 60);
- return rows;
- }
- public Rows getSubUserRows(String siteid, String userid) {
- String key = siteid + userid;
- Object object = DataPool.get(key);
- if (object != null) {
- return (Rows) object;
- }
- SQLFactory sqlFactory = new SQLFactory("下属账号列表获取");
- sqlFactory.addParameter("userid", userid);
- sqlFactory.addParameter("siteid", siteid);
- Rows rows = dbConnect.runSqlQuery(sqlFactory.getSQL());
- DataPool.put(key, rows, 60);
- return rows;
- }
- public Rows getAttachmentUrl(long tattachmentid) {
- SQLFactory docfactory = new SQLFactory("附件查询_ID");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("tattachmentid", tattachmentid);
- return dbConnect.runSqlQuery(docfactory.getSQL());
- }
- public Rows getAttachmentUrl(String serialnumber) {
- SQLFactory docfactory = new SQLFactory("附件查询_名称");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("serialnumber", serialnumber);
- return dbConnect.runSqlQuery(docfactory.getSQL());
- }
- public Rows getAttachmentUrl(String ownertable, String ownerid) {
- SQLFactory docfactory = new SQLFactory("附件查询");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("ownertable", ownertable);
- docfactory.addParameter_in("ownerid", ownerid);
- return dbConnect.runSqlQuery(docfactory.getSQL());
- }
- public RowsMap getAttachmentUrl(String ownertable, String[] ownerids) {
- SQLFactory docfactory = new SQLFactory("附件查询");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("ownertable", ownertable);
- docfactory.addParameter_in("ownerid", ownerids);
- return dbConnect.runSqlQuery(docfactory.getSQL()).toRowsMap("ownerid");
- }
- public RowsMap getAttachmentUrl(String ownertable, ArrayList<String> ownerids) {
- return getAttachmentUrl(ownertable, ownerids.toArray(new String[0]));
- }
- public Rows getAttachmentUrl(String ownertable, String ownerid, String ftype) {
- SQLFactory attquerysql = new SQLFactory("附件查询_类型");
- attquerysql.addParameter("siteid", siteid);
- attquerysql.addParameter("ownertable", ownertable);
- attquerysql.addParameter_in("ownerid", ownerid);
- attquerysql.addParameter("ftype", ftype);
- return dbConnect.runSqlQuery(attquerysql.getSQL());
- }
- public RowsMap getAttachmentUrl(String ownertable, String[] ownerids, String ftype) {
- SQLFactory docfactory = new SQLFactory("附件查询_类型");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("ownertable", ownertable);
- docfactory.addParameter_in("ownerid", ownerids);
- docfactory.addParameter("ftype", ftype);
- return dbConnect.runSqlQuery(docfactory.getSQL()).toRowsMap("ownerid");
- }
- public RowsMap getAttachmentUrl(String ownertable, ArrayList<String> ownerids, String ftype) {
- return getAttachmentUrl(ownertable, ownerids.toArray(new String[0]), ftype);
- }
- public static HashMap<Long, String> headPicMap = new HashMap<>();
- /**
- * 获取用户头像
- *
- * @return
- */
- public String getHeadPic(long userid) {
- if (!headPicMap.containsKey(userid)) {
- Rows rows = getAttachmentUrl("tenterprise_users", String.valueOf(userid), "headportrait");
- if (!rows.isEmpty()) {
- headPicMap.put(userid, rows.get(0).getString("fobsurl_thumbnail"));
- }
- }
- return headPicMap.getOrDefault(userid, "");
- }
- public RowsMap getAttachmentQty(String ownertable, String[] ownerids) {
- return getAttachmentQty(ownertable, ownerids, "default");
- }
- public RowsMap getAttachmentQty(String ownertable, ArrayList<String> ownerids) {
- return getAttachmentQty(ownertable, ownerids, "default");
- }
- public Rows getAttachmentQty(String ownertable, String ownerids) {
- return getAttachmentQty(ownertable, ownerids, "default");
- }
- public RowsMap getAttachmentQty(String ownertable, ArrayList<String> ownerids, String ftype) {
- return getAttachmentQty(ownertable, ownerids.toArray(new String[0]), ftype);
- }
- public RowsMap getAttachmentQty(String ownertable, String[] ownerids, String ftype) {
- SQLFactory docfactory = new SQLFactory("附件数量查询");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("ownertable", ownertable);
- docfactory.addParameter_in("ownerid", ownerids);
- docfactory.addParameter("ftype", ftype);
- return dbConnect.runSqlQuery(docfactory.getSQL()).toRowsMap("ownerid");
- }
- public Rows getAttachmentQty(String ownertable, String ownerids, String ftype) {
- SQLFactory docfactory = new SQLFactory("附件数量查询");
- docfactory.addParameter("siteid", siteid);
- docfactory.addParameter("ownertable", ownertable);
- docfactory.addParameter_in("ownerid", ownerids);
- docfactory.addParameter("ftype", ftype);
- Rows rows = dbConnect.runSqlQuery(docfactory.getSQL());
- return rows;
- }
- public static HashMap<String, String> uniquecolumnnamemap = new HashMap<>();
- public String getuniquecolumnname(String tablename) {
- tablename = tablename.toLowerCase();
- if (!uniquecolumnnamemap.containsKey(tablename)) {
- SQLFactory sqlFactory = new SQLFactory("表ID字段查询");
- sqlFactory.addParameter("tablename", tablename);
- Rows rows = dbConnect.runSqlQuery(sqlFactory);
- for (Row row : rows) {
- uniquecolumnnamemap.put(row.getString("tablename").toLowerCase(), row.getString("uniquecolumnname").toLowerCase());
- }
- }
- return uniquecolumnnamemap.get(tablename);
- }
- public Rows addAttachmentUrl(Rows rows, String tablename, String fdoctype, String jsonkeyname) {
- String uniquecolumnname = getuniquecolumnname(tablename);
- RowsMap rowsMap = getAttachmentUrl(tablename, rows.toArrayList(uniquecolumnname), fdoctype);
- for (Row row : rows) {
- String ownerid = row.getString(uniquecolumnname);
- if (rowsMap.containsKey(ownerid)) {
- row.put(jsonkeyname, rowsMap.get(ownerid));
- } else {
- row.put(jsonkeyname, "[]");
- }
- }
- return rows;
- }
- /**
- * 获取请求访问地址数据key
- *
- * @return
- */
- public long getRequestAuthorDataKey() throws P2Exception {
- long datakey = 0L;
- PaoSetRemote trequestauthor = getP2ServerSystemPaoSet("trequestauthor");
- PaoRemote pao = trequestauthor.addAtEnd();
- pao.setValue("siteid", siteid, 11L);
- Calendar calendar = Calendar.getInstance();
- pao.setValue("createdate", calendar.getTime(), 11L);
- calendar.add(Calendar.SECOND, 20);
- pao.setValue("closedate", calendar.getTime(), 11L);
- pao.setValue("tenterprise_userid", userid, 11L);
- datakey = pao.getUniqueIDValue();
- trequestauthor.save();
- return datakey;
- }
- public void p2ServerSystemPaoSetClose() {
- for (PaoSetRemote paoset : PaoSetRemoteList) {
- try {
- paoset.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- PaoSetRemoteList.clear();
- }
- public static HashMap<Long, ArrayList<Long>> imdialog_usermap = new HashMap<>();
- /**
- * 根据消息对话框ID获取用户id
- *
- * @param timdialogid
- * @return
- */
- public ArrayList<Long> getImDialogUserIds(long timdialogid) {
- if (!imdialog_usermap.containsKey(timdialogid)) {
- Rows rows = dbConnect.runSqlQuery("select tenterprise_userid from timdialogusers where siteid='" + siteid + "' and timdialogid='" + timdialogid + "' and fisremove=0");
- ArrayList<Long> list = new ArrayList<>();
- for (Row row : rows) {
- list.add(row.getLong("tenterprise_userid"));
- }
- imdialog_usermap.put(timdialogid, list);
- }
- return imdialog_usermap.get(timdialogid);
- }
- /**
- * 通知前端执行指定方法
- */
- public void sendSystemWebSocketMessage(String classname, String method,long userid) {
- if (parameter.websocketClients.containsKey(userid)) {
- JSONObject methodobject = new JSONObject();
- methodobject.put("type", "callmethod");
- methodobject.put("classname", classname);
- methodobject.put("method", method);
- for (WebClientSocket webClientSocket : parameter.websocketClients.get(userid).values()) {
- webClientSocket.sendSystemMessage(methodobject);
- }
- }
- }
- /**
- * 通知前端执行指定方法
- */
- public void sendSystemWebSocketMessage(String classname, String method) {
- if (parameter.websocketClients.containsKey(userid)) {
- JSONObject methodobject = new JSONObject();
- methodobject.put("type", "callmethod");
- methodobject.put("classname", classname);
- methodobject.put("method", method);
- for (WebClientSocket webClientSocket : parameter.websocketClients.get(userid).values()) {
- webClientSocket.sendSystemMessage(methodobject);
- }
- }
- }
- /**
- * 发送系统消息
- */
- public void sendSystemWebSocketMessage(long userid, String message) {
- if (parameter.websocketClients.containsKey(userid)) {
- JSONObject methodobject = new JSONObject();
- methodobject.put("type", "remind");//提醒
- methodobject.put("text", message);
- for (WebClientSocket webClientSocket : parameter.websocketClients.get(userid).values()) {
- webClientSocket.sendSystemMessage(methodobject);
- }
- }
- }
- /**
- * 生成系统消息
- *
- * @param userid 用户ID,传0表示全部用户
- * @param ftype 消息类型(公共、商户、团队)
- * @param ftitle 消息小标题
- * @param fmessage 消息内容
- */
- public String createSystemMessage(String ftype, String ftitle, String fmessage, long userid) {
- SQLFactory factory = new SQLFactory("系统消息插入");
- factory.addParameter("siteid", siteid);
- factory.addParameter("ftype", ftype);
- factory.addParameter("ftitle", ftitle);
- factory.addParameter("fmessage", fmessage);
- factory.addParameter("tenterprise_userid", userid);
- factory.addParameter("objectid", "null");
- factory.addParameter("objectname", "null");
- sendSystemWebSocketMessage(userid, fmessage);
- return dbConnect.runSqlUpdate(factory.getSQL());
- }
- /**
- * 生成系统消息
- *
- * @param userid 用户ID,传0表示全部用户
- * @param ftype 消息类型(公共、商户、团队)
- * @param ftitle 消息小标题
- * @param fmessage 消息内容
- */
- public String createSystemMessage(String ftype, String ftitle, String fmessage, long objectid, String objectname, long userid) {
- SQLFactory factory = new SQLFactory("系统消息插入");
- factory.addParameter("siteid", siteid);
- factory.addParameter("ftype", ftype);
- factory.addParameter("ftitle", ftitle);
- factory.addParameter("fmessage", fmessage);
- factory.addParameter("tenterprise_userid", userid);
- factory.addParameter("objectid", objectid);
- factory.addParameter("objectname", objectname);
- sendSystemWebSocketMessage(userid, fmessage);
- return dbConnect.runSqlUpdate(factory.getSQL());
- }
- /**
- * 生成系统消息
- *
- * @param tagentsid 用户ID,传0表示全部用户
- * @param ftype 消息类型(公共、商户、团队)
- * @param ftitle 消息小标题
- * @param fmessage 消息内容
- */
- public String createSystemMessageByAgentsid(String ftype, String ftitle, String fmessage, long tagentsid) {
- Row row = getMainUser(tagentsid);
- if (row != null) {
- return createSystemMessage(ftype, ftitle, fmessage, row.getLong("tenterprise_userid"));
- }
- return "false";
- }
- /**
- * 生成系统消息
- *
- * @param tagentsid 用户ID,传0表示全部用户
- * @param ftype 消息类型(公共、商户、团队)
- * @param ftitle 消息小标题
- * @param fmessage 消息内容
- */
- public String createSystemMessageByAgentsid(String ftype, String ftitle, String fmessage, long objectid, String objectname, long tagentsid) {
- Row row = getMainUser(tagentsid);
- if (row != null) {
- return createSystemMessage(ftype, ftitle, fmessage, objectid, objectname, row.getLong("tenterprise_userid"));
- }
- return "false";
- }
- public static HashMap<String, Row> tableColumnRowmap = new HashMap<>();
- public String[] getTableColumns(String tablename) {
- tablename = tablename.toLowerCase();
- if (!tableColumnRowmap.containsKey(tablename)) {
- Rows rows = dbConnect.runSqlQuery("select a.name as [column],b.name as type from syscolumns a,systypes b where a.id=object_id('" + tablename + "') and a.xtype=b.xtype");
- Row columnRow = new Row();
- for (Row row : rows) {
- columnRow.put(row.getString("column").toLowerCase(), row.getString("type").toLowerCase());
- }
- tableColumnRowmap.put(tablename, columnRow);
- }
- if (tableColumnRowmap.containsKey(tablename)) {
- return tableColumnRowmap.get(tablename).keySet().toArray(new String[0]);
- } else {
- return new String[]{};
- }
- }
- public String getTableColumnType(String tablename, String fieldname) {
- tablename = tablename.toLowerCase();
- fieldname = fieldname.toLowerCase();
- if (!tableColumnRowmap.containsKey(tablename)) {
- Rows rows = dbConnect.runSqlQuery("select a.name as [column],b.name as type from syscolumns a,systypes b where a.id=object_id('" + tablename + "') and a.xtype=b.xtype");
- Row columnRow = new Row();
- for (Row row : rows) {
- columnRow.put(row.getString("column").toLowerCase(), row.getString("type").toLowerCase());
- }
- tableColumnRowmap.put(tablename, columnRow);
- }
- if (tableColumnRowmap.containsKey(tablename) && tableColumnRowmap.get(tablename).containsKey(fieldname)) {
- return tableColumnRowmap.get(tablename).getString(fieldname);
- } else {
- return "";
- }
- }
- /**
- * 获取当前账号登陆时间
- *
- * @return
- */
- public Date getLoginDate() {
- return getLoginDate(userid);
- }
- /**
- * 获取指定账号登陆时间
- *
- * @return
- */
- public Date getLoginDate(long userid) {
- return parameter.loginDate.getOrDefault(userid, getDateTime());
- }
- }
|