Search in sources :

Example 16 with Table

use of app.hongs.db.Table in project HongsCORE by ihongs.

the class AuthKit method getUserRoles.

public static Set getUserRoles(String uid) throws HongsException {
    Table rel = DB.getInstance("master").getTable("user_role");
    List<Map> lst = rel.fetchCase().filter("user_id = ?", uid).select("role").all();
    Set set = new HashSet();
    for (Map row : lst) {
        set.add(row.get("role"));
    }
    return set;
}
Also used : Table(app.hongs.db.Table) Set(java.util.Set) HashSet(java.util.HashSet) HashMap(java.util.HashMap) Map(java.util.Map) HashSet(java.util.HashSet)

Example 17 with Table

use of app.hongs.db.Table in project HongsCORE by ihongs.

the class RoleSet method imports.

@Override
protected void imports() throws HongsException {
    roles = new HashSet();
    DB db;
    Table tb;
    Table td;
    FetchCase fc;
    List<Map> rz;
    db = DB.getInstance("master");
    // ** 查询用户权限 **/
    tb = db.getTable("user_role");
    fc = new FetchCase().from(tb.tableName, tb.name).select(tb.name + ".role").filter(tb.name + ".user_id = ?", userId);
    rz = db.fetchMore(fc);
    for (Map rm : rz) {
        roles.add((String) rm.get("role"));
    }
    // ** 查询部门权限 **/
    tb = db.getTable("dept_role");
    td = db.getTable("user_dept");
    fc = new FetchCase().from(tb.tableName, tb.name).select(tb.name + ".role");
    fc.join(td.tableName, td.name).on(td.name + ".dept_id = " + tb.name + ".dept_id").filter(td.name + ".user_id = ?", userId);
    rz = db.fetchMore(fc);
    for (Map rm : rz) {
        roles.add((String) rm.get("role"));
    }
    // ** 当前保存时间 **/
    rtime = (int) (System.currentTimeMillis() / 1000);
}
Also used : Table(app.hongs.db.Table) FetchCase(app.hongs.db.util.FetchCase) Map(java.util.Map) DB(app.hongs.db.DB) HashSet(java.util.HashSet)

Example 18 with Table

use of app.hongs.db.Table in project HongsCORE by ihongs.

the class Data method save.

public void save(String id, Map rd) throws HongsException {
    String fid = getFormId();
    Table table = getTable();
    String where = "`id`=? AND `form_id`=? AND `etime`=?";
    Object[] param = new String[] { id, fid, "0" };
    long ctime = System.currentTimeMillis() / 1000;
    time = ctime;
    // 删除当前数据
    if (rd == null) {
        if (table != null) {
            Map ud = new HashMap();
            ud.put("etime", ctime);
            ud.put("state", 0);
            table.update(ud, where, param);
        }
        super.del(id);
        return;
    }
    // 获取旧的数据
    Map dd;
    if (table != null) {
        dd = table.fetchCase().filter(where, param).select("data,ctime").one();
        if (!dd.isEmpty()) {
            if (ctime <= Synt.declare(dd.get("ctime"), 0L)) {
                throw new HongsException(0x1100, "等会儿, 不要急");
            }
            dd = (Map) app.hongs.util.Data.toObject(dd.get("data").toString());
        }
    } else {
        dd = get(id);
    }
    // 合并新旧数据
    int i = 0;
    Map<String, Map> fields = getFields();
    for (String fn : fields.keySet()) {
        if ("id".equals(fn)) {
            dd.put(fn, id);
        } else if (rd.containsKey(fn)) {
            Object fr = Synt.defoult(rd.get(fn), "");
            Object fo = Synt.defoult(dd.get(fn), "");
            dd.put(fn, fr);
            if (!equals(fr, fo) && !fn.equals("muid") && !fn.equals("mtime")) {
                // 需要排除修改环境数据
                i++;
            }
        }
    }
    // 无更新不存储
    if (i == 0) {
        return;
    }
    dd.put("name", getName(dd));
    dd.put("word", getWord(dd));
    if (table != null) {
        Map ud = new HashMap();
        ud.put("etime", ctime);
        Map nd = new HashMap();
        nd.put("ctime", ctime);
        nd.put("etime", 0);
        nd.put(/**
         */
        "id", id);
        nd.put("form_id", fid);
        nd.put("user_id", rd.get("user_id"));
        nd.put("name", dd.get("name"));
        nd.put("memo", rd.get("memo"));
        nd.put("data", app.hongs.util.Data.toString(dd));
        table.update(ud, where, param);
        table.insert(nd);
    }
    // ** 保存到索引库 **/
    Document doc = new Document();
    dd.put(Cnst.ID_KEY, id);
    docAdd(doc, dd);
    setDoc(id, doc);
}
Also used : Table(app.hongs.db.Table) HashMap(java.util.HashMap) HongsException(app.hongs.HongsException) Document(org.apache.lucene.document.Document) HashMap(java.util.HashMap) Map(java.util.Map)

Example 19 with Table

use of app.hongs.db.Table in project HongsCORE by ihongs.

the class Data method redo.

public void redo(String id, Map rd) throws HongsException {
    long ctime = System.currentTimeMillis() / 1000;
    long rtime = Synt.declare(rd.get("rtime"), 0L);
    // ** 获取旧的数据 **/
    String fid = getFormId();
    Table table = getTable();
    String where = "`id`=? AND `form_id`=? AND `ctime`=?";
    Object[] param = new Object[] { id, fid, rtime };
    if (table == null) {
        throw new HongsException(0x1100, "此资源不支持恢复");
    }
    Map dd = table.fetchCase().filter(where, param).select("data, name, etime").orderBy("ctime DESC").one();
    if (dd.isEmpty()) {
        throw new HongsException(0x1100, "恢复数据源不存在");
    }
    if (Synt.declare(dd.get("etime"), 0L) == 0L) {
        throw new HongsException(0x1100, "活跃数据不可操作");
    }
    // ** 保存到数据库 **/
    Map ud = new HashMap();
    ud.put("etime", ctime);
    rd.put("ctime", ctime);
    rd.put("rtime", rtime);
    rd.put("etime", 0);
    rd.put("name", dd.get("name"));
    rd.put("data", dd.get("data"));
    where = "`id`=? AND `form_id`=? AND `etime`=?";
    param = new Object[] { id, fid, 0 };
    table.update(ud, where, param);
    table.insert(rd);
    // ** 保存到索引库 **/
    dd = (Map) app.hongs.util.Data.toObject(dd.get("data").toString());
    Document doc = new Document();
    dd.put(Cnst.ID_KEY, id);
    docAdd(doc, dd);
    setDoc(id, doc);
}
Also used : Table(app.hongs.db.Table) HongsException(app.hongs.HongsException) HashMap(java.util.HashMap) Document(org.apache.lucene.document.Document) HashMap(java.util.HashMap) Map(java.util.Map)

Example 20 with Table

use of app.hongs.db.Table in project HongsCORE by ihongs.

the class Form method deleteAuthRole.

protected void deleteAuthRole(String id) throws HongsException {
    ActionHelper helper = Core.getInstance(ActionHelper.class);
    String uid = (String) helper.getSessibute(Cnst.UID_SES);
    String tan;
    // 删除权限
    tan = (String) table.getParams().get("role.table");
    if (tan != null) {
        Table tab = db.getTable(tan);
        tab.remove("`role` IN (?)", Synt.setOf(prefix + "/" + id + "/search", prefix + "/" + id + "/create", prefix + "/" + id + "/update", prefix + "/" + id + "/delete", prefix + "/" + id + "/revert"));
    }
    // 更新缓存(通过改变权限更新时间)
    tan = (String) table.getParams().get("user.table");
    if (tan != null) {
        Table tab = db.getTable(tan);
        tab.update(Synt.mapOf("rtime", System.currentTimeMillis() / 1000), "`id` = ?", uid);
    }
}
Also used : Table(app.hongs.db.Table) ActionHelper(app.hongs.action.ActionHelper)

Aggregations

Table (app.hongs.db.Table)21 Map (java.util.Map)19 HashMap (java.util.HashMap)14 HashSet (java.util.HashSet)11 Set (java.util.Set)10 HongsException (app.hongs.HongsException)7 DB (app.hongs.db.DB)5 ArrayList (java.util.ArrayList)5 List (java.util.List)5 FetchCase (app.hongs.db.util.FetchCase)4 Iterator (java.util.Iterator)3 ActionHelper (app.hongs.action.ActionHelper)2 Action (app.hongs.action.anno.Action)2 Matcher (java.util.regex.Matcher)2 Pattern (java.util.regex.Pattern)2 Document (org.apache.lucene.document.Document)2 FormSet (app.hongs.action.FormSet)1 Verify (app.hongs.action.anno.Verify)1 Cmdlet (app.hongs.cmdlet.anno.Cmdlet)1 RoleSet (app.hongs.serv.auth.RoleSet)1