Пример #1
0
  public String c_roleToMemberOrgAtt()
      throws NoSuchFieldException, IllegalAccessException, ClassNotFoundException {
    String url = "cfg_c_Role_toMemberOrgAtt.sg";
    if ("1".equals(isPage)) {
      // 返回定制页
      bean = baseDao.get(Role.class, String.valueOf(idField.get(bean)));
      StringBuilder orgTree = new StringBuilder();
      Role role = (Role) bean;
      orgTree.append(
          "<div  style='width:30%;'>"
              + "组织:"
              + role.getDescr()
              + "<a class='easyui-linkbutton' onclick='getChecked()'>保存</a> <a class='easyui-linkbutton' onclick='collapse()'>收起</a> "
              + "<ul id='roletree' class=\"easyui-tree\" data-options=\"url:'"
              + url
              + "?isPage=orgTree&bean.id="
              + role.getId()
              + "',checkbox:true,cascadeCheck:false"
              + " \"></ul>"
              + "</div>");
      // permissionTree.append("<script>$(function(){$('#roletree').tree({onLoadSuccess:function(node, data){ $('#roletree').tree({onCheck:function(node, checked){alert(node.text+checked);}});}});});function tr(){}</script>");
      // permissionTree.append("<script>$(function(){setTimeout('tr()',5000);});function
      // tr(){$('.tree-checkbox').click(function(){alert(1)});}</script>");
      orgTree.append(
          "<script>function collapse(){$('#roletree').tree('collapseAll');} function getChecked(){var nodes = $('#roletree').tree('getChecked');var s = '';	"
              + "for(var i=0; i<nodes.length; i++){if (s != '') s += ',';"
              + "s += nodes[i].id;}"
              + "$.post('"
              + url
              + "?isPage=orgTreeSub',{'id':s,'bean.id':"
              + role.getId()
              + "},function(data){alert(data);});}</script>");

      setOrgHtml(orgTree.toString());

      StringBuilder attSb = new StringBuilder();
      attSb.append(
          "组织属性:<form action='"
              + url
              + "?isPage=attSub' method='POST'><input type='submit' value='提交'><p>");
      DetachedCriteria dc = DetachedCriteria.forClass(RoleAtt.class);
      dc.add(Restrictions.eq("role", bean)).add(Restrictions.eq("enable", Constant.ENABLE_NOR));
      List<RoleAtt> ras = baseDao.find(dc);

      List<NameValuePair> nvlist = Util.nvlist(baseDao, "cfg_org_att");
      for (NameValuePair nv : nvlist) {
        String value = nv.getValue();
        if (Util.notEmptyString(value)) {
          String chk = "";
          for (RoleAtt ra : ras) {
            String att = ra.getAtt();
            if (att.equals(value)) {
              chk = "checked";
            }
          }
          attSb
              .append("<input type='checkbox' name='atts' value='" + value + "' " + chk + ">")
              .append(nv.getName());
        }
      }
      attSb.append("</form>");
      setAttHtml(attSb.toString());
      return "page";
    } else if ("orgTreeSub".equals(isPage)) {
      bean = baseDao.get(Role.class, String.valueOf(idField.get(bean)));
      id = "," + id + ",";
      DetachedCriteria dc = DetachedCriteria.forClass(RoleOrg.class);
      dc.add(Restrictions.eq("role", bean)).add(Restrictions.eq("enable", Constant.ENABLE_NOR));
      List<RoleOrg> rpl = baseDao.find(dc);
      for (RoleOrg ro : rpl) {
        String pid = ro.getOrg().getId();
        if (!id.contains("," + pid + ",")) {
          ro.setEnable(Constant.ENABLE_DEL);
          ro.setUpdateDate(now);
          ro.setUpdateMember(sessionMember);
          baseDao.update(ro);
        } else {
          id = id.replace("," + pid + ",", ",");
        }
      }
      if (id.length() > 1) {
        String[] split = id.split(",");
        for (String s : split) {
          if (Util.notEmptyString(s)) {
            RoleOrg rp = new RoleOrg();
            Org one = new Org();
            one.setId(s);
            rp.setOrg(one);
            rp.setRole((Role) bean);
            rp.setEnable(Constant.ENABLE_NOR);
            rp.setCreateDate(now);
            rp.setCreateMember(sessionMember);
            baseDao.save(rp);
          }
        }
      }

      setBodyHtml(Constant.UPDATE_SUCCESS);
      return "orgTreeSub";
    } else if ("orgTree".equals(isPage)) {

      // 返回角色对应的组织树
      DetachedCriteria dc = DetachedCriteria.forClass(RoleOrg.class);
      dc.add(Restrictions.eq("role", bean)).add(Restrictions.eq("enable", "1"));
      List<RoleOrg> rpl = baseDao.find(dc);
      List<String> mpl = new ArrayList<String>();
      for (RoleOrg rp : rpl) {
        mpl.add(rp.getOrg().getId());
      }
      treeValue = new ArrayList<AsyncTree>();
      List<AsyncTree> findTreeValue = Util.findCheckedTreeValue(mpl, new Org(), null, baseDao);
      treeValue.addAll(findTreeValue);
      return "orgTree";
    } else if ("member".equals(isPage)) {
      setCoeo(new EasyOut<BaseTO>());
      DetachedCriteria dc = DetachedCriteria.forClass(OrgMember.class);
      Member member_sear = getMbean().getMember();
      if (member_sear != null && Util.notEmptyString(member_sear.getDescr())) {
        dc.createAlias("member", "ms");
        dc.add(Restrictions.ilike("ms.descr", member_sear.getDescr(), MatchMode.ANYWHERE));
      }
      if (Util.notEmptyString(inRoleInput)) {}

      Org org = getMbean().getOrg();
      if (org != null && Util.notEmptyString(org.getId())) dc.add(Restrictions.eq("org", org));
      dc.add(Restrictions.eq("enable", "1"));

      getCoeo().setTotal(baseDao.findCount(dc));
      if (Util.emptyString(getSort())) {
        setSort("id");
        setOrder("desc");
      }
      dc = DetachedCriteria.forClass(OrgMember.class);
      if (Util.notEmptyString(getSort()) && !getSort().contains(".")) { // !sortx.contains(".")
        // :在包含点号时,无法用其进行排序
        if ("desc".equals(getOrder())) {
          dc.addOrder(Order.desc(getSort()));
        } else {
          dc.addOrder(Order.asc(getSort()));
        }
        dc.addOrder(Order.asc("id"));
      }
      if (member_sear != null && Util.notEmptyString(member_sear.getDescr())) {
        dc.createAlias("member", "ms");
        dc.add(Restrictions.ilike("ms.descr", member_sear.getDescr(), MatchMode.ANYWHERE));
      }
      if (org != null && Util.notEmptyString(org.getId())) dc.add(Restrictions.eq("org", org));
      dc.add(Restrictions.eq("enable", "1"));
      List<BaseTO> cl = baseDao.findWithPage2(dc, (getPage() - 1) * getRows(), getRows());
      List<BaseTO> ml = new ArrayList<BaseTO>();
      for (BaseTO c : cl) {
        OrgMember x = (OrgMember) c;
        Member_ForRole mf = new Member_ForRole();
        Member member = x.getMember();
        mf.setDescr(member.getDescr());
        mf.setId(member.getId());
        mf.setInRole(inRole(bean, member));
        ml.add(mf);
      }
      getCoeo().setRows(ml);
      return "member";
    } else if ("memberSub".equals(isPage)) {
      if (bean != null
          && getMbean() != null
          && getMbean().getMember() != null
          && Util.notEmptyString(getMbean().getMember().getId())) {
        Member sm = getMbean().getMember();
        DetachedCriteria dc = DetachedCriteria.forClass(RoleMember.class);
        dc.add(Restrictions.eq("role", bean))
            .add(Restrictions.eq("member", sm))
            .add(Restrictions.eq("enable", "1"));
        RoleMember rm = baseDao.findBean(dc);
        if ("1".equals(inOro)) {
          if (rm == null) {
            rm = new RoleMember();
            rm.setMember(sm);
            rm.setRole((Role) bean);
            rm.setEnable("1");
            rm.setCreateDate(now);
            rm.setCreateMember(sessionMember);
            baseDao.save(rm);
          }
        } else {
          if (rm != null) {
            rm.setEnable(Constant.ENABLE_DEL);
            rm.setUpdateDate(now);
            rm.setUpdateMember(sessionMember);
            baseDao.update(rm);
          }
        }
        setBodyHtml("ok");
      }
      return "memberSub";
    }
    return SUCCESS;
  }