/** составить словарь для комбо, с именем и фамилией, все пользователи */ public void getAllWithCombo() { try { Table users = getTable(getModelName()); Table userProfile = getTable("userProfile"); Select select = getSelect(); select.selectDistinct(users.getPrimary()); select.select(users); select.select(userProfile.get("surname"), userProfile.get("name")); select.from(users); select.leftJoin(users.getPrimary(), userProfile.get("user_id")); // select.on(userProfile.get("delete_date").isNull()); select.order(userProfile.get("surname"), OrdTypes.ASC); select.executeSelect(getConnection()); select(select); setDictAliases("surname", "name"); setDictionary(); } catch (Exception ex) { addError(MyString.getStackExeption(ex)); if (project.index.message != null) { project.index.message += MyString.getStackExeption(ex); } setStatus(false); } }
@Override public void renderAddEntityForm() { try { AbsEnt data = getFabric().get("div"); LinkedHashMap<AbsEnt, String> hs = new LinkedHashMap<AbsEnt, String>(); hs.put( textInput(fieldName, getReq(fieldName), "Сообщение*") .setAttribute(EnumAttrType.size, "80"), ""); hs.put(hiddenInput("client_id", getReq("client_id")), ""); hs.put(hiddenInput("showMenu", renders.entities.client.MENU_COMMENTS), ""); FormOptionInterface fo = getFormOption(objectName, "add", "add"); fo.setTitle("ОК"); setButtonStyle(fo, BUTTON_OK); fo.setRenderType(RenderTypes.ajax); fo.setJsHandler(JsHandlers.ajax(CONTAINER_ID)); AbsEnt form = rightForm(hs, fo); // AbsEnt form = standartAjaxForm(false, objectName, "add", "add", hs, "ОК", // getRenderConstant().OK_IMGPH); data.addEnt(form); AbsEnt Mw = standartFloatWindow("Добавить комментарий", data); addRenderResult(Mw.render()); } catch (Exception ex) { addRenderResult(MyString.getStackExeption(ex)); } }
/** составить словарь для комбо, с именем и фамилией, только активные пользователи */ public void getActiveWithCombo() { try { Table users = getTable(getModelName()); Table userProfile = getTable("userProfile"); Select select = getSelect(); select.selectDistinct(users.getPrimary()); select.select(users); select.select(userProfile.get("surname"), userProfile.get("name")); select.from(users, userProfile); select.and(users.get("user_id").eq(userProfile.get("user_id"))); select.and(userProfile.get("delete_date").isNull()); select.and(users.get("active_to").isNull()); select.order(userProfile.get("surname"), OrdTypes.ASC); select.executeSelect(getConnection()); select(select); setDictAliases("surname", "name"); setDictionary(); } catch (Exception ex) { addError(MyString.getStackExeption(ex)); setStatus(false); } }
/** * составить словарь для комбо, с именем и фамилией, только активные пользователи, и только те, * которые есть в списке у авторизованного */ public void getActiveWithComboOnlyGroup() { try { Table users = getTable(getModelName()); Table userProfile = getTable("userProfile"); Table userLink = getTable("user_link"); Select select = getSelect(); select.selectDistinct(users.getPrimary()); select.select(users); select.select(userProfile.get("surname"), userProfile.get("name")); select.from(users, userProfile, userLink); select.and(users.get("user_id").eq(userProfile.get("user_id"))); select.and(userProfile.get("delete_date").isNull()); select.and(users.get("active_to").isNull()); List<Condition> cnd = new ArrayList(); cnd.add(users.get("user_id").eq(getAuthorizedUserId())); List<Condition> cnd2 = new ArrayList(); cnd2.add(users.get("user_id").eq(userLink.get("partner_id"))); cnd2.add(userLink.get("user_id").eq(getAuthorizedUserId())); cnd2.add(userLink.get("delete_date").isNull()); select.andOrList(cnd, cnd2); select.order(userProfile.get("surname"), OrdTypes.ASC); select.executeSelect(getConnection()); select(select); setDictAliases("surname", "name"); setDictionary(); } catch (Exception ex) { addError(MyString.getStackExeption(ex)); if (project.index.message != null) { project.index.message += MyString.getStackExeption(ex); } setStatus(false); } }
@Override public void updateModel() { try { if (MyString.NotNull(getReq("login"), getReq("user_id"))) { // проверить, есть ли уже такой логин Table usersTable = getTable("users"); Select sel = getSelect(); sel.select(usersTable.get("user_id"), "count", AgrTypes.COUNT); sel.from(usersTable); sel.and(usersTable.get("login").isLikeLower(getReq("login"))); sel.and(usersTable.get("login").eq((getReq("login")))); sel.and(usersTable.get("user_id").notEq(getReq("user_id"))); sel.and(usersTable.get("active_to").isNull()); boolean ok = sel.executeSelect(getConnection()); if (ok) { int count = 0; if (!sel.getDinamicList().isEmpty()) { DinamicModel model = sel.getDinamicList().get(0); try { count = Integer.parseInt(model.get("count").toString()); } catch (Exception e) { } } if (count == 0) { super.updateModel(); } else { setStatus(false); addError("логин " + getReq("login") + " уже существует у другого пользователя"); } } else { setStatus(false); addError(sel.getError()); } } else { setStatus(false); addError("не все параметры переданы"); } } catch (Exception e) { setStatus(false); addError(MyString.getStackExeption(e)); } }
/** обновить данные модели */ @Override public void closeModel() { try { Model model = getModel(getModelName()); boolean status = false; model.set(getRequestClone()); if (model.findByPrimary() == false) { status = false; addError("Не обнаружен первичный ключ " + model.getPrimaryAlias()); } else { model.set("active_to", FormatDate.getCurrentDateInMysql()); status = model.save(); getActionResult().model(model); for (String name : model.getParams().keySet()) { set(name, model.getParams().get(name)); } } } catch (Exception ex) { addError(MyString.getStackExeption(ex)); } }