/*
   * (non-Javadoc)
   *
   * @see com.changpeng.common.action.AbstractAction#go()
   */
  @Override
  protected String go() throws Exception {

    DetachedCriteria detachedCriteria =
        DetachedCriteria.forClass(SysUser.class).add(Restrictions.eq("roleid", 1));

    // 这里要判断出登录帐号所属的group
    // 如果是admin,看所有的,如果不是admin,则根据登录人员的所属角色,判断角色对用户和对部门的可见性

    if (loginname != null && !"".equals(loginname))
      detachedCriteria.add(Restrictions.like("loginname", loginname, MatchMode.ANYWHERE));
    if (username != null && !"".equals(username))
      detachedCriteria.add(Restrictions.like("username", username, MatchMode.ANYWHERE));
    if (systemno != null && !"".equals(systemno))
      detachedCriteria.add(Restrictions.like("systemno", systemno, MatchMode.ANYWHERE));
    // 必须是没有删除的啊
    detachedCriteria.add(Restrictions.eq("delflag", false));
    // 取消掉自己的显示
    detachedCriteria.add(Restrictions.ne("userid", getLoginUser().getUserid()));
    SysUser sysUser = getLoginUser();
    SysGroup group = sysUser.getSysGroup();
    // 如果没有所属的group,则能查看所有的数据信息,否则只能看本部门和下级部门的数据
    if (group != null && group.getGroupid() != 1) { // 不是深圳律协的人上来的话
      int groupid = group.getGroupid();
      GroupTree tree = new GroupTree();
      List groupidlist = tree.getChildGroupIds(groupid);
      detachedCriteria
          .createAlias("sysGroup", "sysGroup")
          .add(Restrictions.in("sysGroup.groupid", groupidlist));
      if (groupname != null && !"".equals(groupname)) {
        detachedCriteria.add(
            Restrictions.like("sysGroup.groupname", groupname, MatchMode.ANYWHERE));
      }

      // detachedCriteria.add(Restrictions.in("groupid", groupidlist));
    } else if (groupname != null && !"".equals(groupname)) {
      detachedCriteria
          .createAlias("sysGroup", "sysGroup")
          .add(Restrictions.like("sysGroup.groupname", groupname, MatchMode.ANYWHERE));
    }
    detachedCriteria.setFetchMode("sysGroup", FetchMode.JOIN);

    // 按userid逆序排序
    detachedCriteria.addOrder(Order.desc("userid"));
    BasicService service = (BasicService) getBean("basicService");
    this.page = service.findPageByCriteria(detachedCriteria, pageSize, pageNo);
    // TODO Auto-generated method stub
    return SUCCESS;
  }
  @Override
  public String input() throws Exception {
    SysUser sysUser = service.getUser(userid);
    SysUser loginUser = super.getLoginUser();

    if (loginUser.getLoginname().equals("admin")) this.isadminer = true;
    else {
      Iterator<SysRole> roles = loginUser.getSysRoles().iterator();
      short maxroleid = 0;
      while (roles.hasNext()) {
        SysRole role = roles.next();
        if (maxroleid <= role.getRoleid()) maxroleid = role.getRoleid();
      }
      if (maxroleid == 3) { // 3的角色id是律协管理员
        isadminer = true;
      }
    }

    /*
     * if (loginUser.getSysGroup() == null) { this.message = "您没有所属的部门,不能进行修改"; this.nextPage = "lawyerList.pl"; return "message"; }
     */

    if (userid == 0) { // 修改自己的
      userid = loginUser.getUserid();
    }

    if (sysUser.getSysGroup() != null) {
      this.groupid = sysUser.getSysGroup().getGroupid();
      this.groupname = sysUser.getSysGroup().getGroupname();
    } else {
      this.groupname = "该律师没有所属的事务所";
    }

    set("sysUser", sysUser);

    return INPUT;
  }
  /*
   * (non-Javadoc)
   *
   * @see com.changpeng.common.action.AbstractAction#go()
   */
  @Override
  protected String go() throws Exception {
    // TODO Auto-generated method stub
    BasicService basicService = (BasicService) this.getBean("basicService");

    if (groupid == 0) {
      this.message = "对不起,您没有选择具体律师事务所。";
      return "message";
    }

    if (service.getSysUser(sysUser.getLawerno(), sysUser.getUserid()) != null) {
      this.message = "对不起,您输入的律师执业证号【" + sysUser.getLawerno() + "】已经被他人使用。";
      return "message";
    }

    SysGroup group = (SysGroup) basicService.get(SysGroup.class, groupid);
    if (group.getParentid() == 0) {
      this.message = "对不起,您没有选择具体律师事务所。";
      return "message";
    }
    sysUser.setSysGroup(group);

    _LOG.debug("主键值:::" + sysUser.getUserid());

    if (upload != null && upload.length() != 0) {
      try {
        if (upload.length() > 100 * 1024) {
          _LOG.info("删除上传图片成功否:" + upload.delete());
          this.message = "上传的图片大小超出了规定的最大大小100K,请重新选择";
          // this.nextPage="lawyerEditSelfPre.pl";
          return "message";
        }

        int index = fileName.lastIndexOf(".");
        String name = System.currentTimeMillis() + fileName.substring(index);
        sysUser.setPhoto(name);

        String indexDir = ServletActionContext.getServletContext().getRealPath("/lawyerphotos");
        // try {
        if (sysUser.getPhoto() != null && !"".equals(sysUser.getPhoto())) {
          // 删除掉之前的照片
          File oldfile =
              new File(indexDir + System.getProperty("file.separator") + sysUser.getPhoto());
          _LOG.info("老照片是否删除成功:" + oldfile.getAbsoluteFile() + ":::" + oldfile.delete());
        }
        // }
        // catch (Exception e) {
        // debug("之前的照片删除失败..." + e);
        // throw e;
        // }
        File file = new File(indexDir + System.getProperty("file.separator") + name);
        upload.renameTo(file);

        debug("=================" + indexDir);
      } catch (Exception e) {
        debug("照片上传失败..." + e);
        throw e;
      }
    }

    // 登录名与执行证号保持一致
    sysUser.setLoginname(sysUser.getLawerno().trim());
    sysUser.setLawerno(sysUser.getLawerno().trim());

    service.updateUser(sysUser);

    this.message = "律师信息修改成功,请确认";
    this.nextPage = "lawyerList.pl";
    return SUCCESS;
  }
  public String requestService(org.dom4j.Element rootElement) {

    StringBuilder result = new StringBuilder();
    StringBuilder temp = new StringBuilder();
    StringBuilder lawyertemp = new StringBuilder();
    result.append("<response>");
    try {
      BasicService userservice = (BasicService) globals.getBean("basicService");
      DetachedCriteria detachedCriteria =
          DetachedCriteria.forClass(SysUser.class)
              .add(Restrictions.eq("roleid", 1))
              .add(Restrictions.eq("delflag", false));
      detachedCriteria.setFetchMode("sysGroup", FetchMode.JOIN);
      List list = userservice.findAllByCriteria(detachedCriteria);
      int lawersize = list == null ? 0 : list.size();
      temp.append("<respcode>").append(lawersize).append("</respcode>");
      temp.append("<respmsg>").append("有" + lawersize + "个律师").append("</respmsg>");

      lawyertemp.append("<lawyers>");
      for (int i = 0; i < lawersize; i++) {
        SysUser lawyer = (SysUser) list.get(i);
        // 有事务所并且不是离职的律师了
        String cardno = lawyer.getCardno();
        if (lawyer.getSysGroup() != null
            && lawyer.getSysGroup().getGroupid() != -1
            && cardno != null
            && !cardno.trim().equals("")) {
          lawyertemp.append("<lawyer>");
          lawyertemp.append("<userid>").append(lawyer.getUserid()).append("</userid>");
          lawyertemp
              .append("<cardno>")
              .append(lawyer.getCardno() == null ? "" : lawyer.getCardno())
              .append("</cardno>");
          lawyertemp
              .append("<username>")
              .append(lawyer.getUsername() == null ? "" : lawyer.getUsername())
              .append("</username>");

          lawyertemp
              .append("<officename>")
              .append(lawyer.getSysGroup().getGroupname())
              .append("</officename>");

          lawyertemp
              .append("<mobile>")
              .append(lawyer.getSystemno() == null ? "" : lawyer.getSystemno())
              .append("</mobile>");
          //					lawyertemp.append("<mobile>").append(lawyer.getMobile() == null ? "" :
          // lawyer.getMobile()).append("</mobile>");
          lawyertemp.append("<lawyerno>").append(lawyer.getLawerno()).append("</lawyerno>");
          lawyertemp
              .append("<photo>")
              .append(lawyer.getPhoto() == null ? "" : lawyer.getPhoto())
              .append("</photo>");
          lawyertemp.append("</lawyer>\r\n");
        } else {
          LOG.info(lawyer.getUsername() + "所在的事务所为空,忽略");
        }
      }
      lawyertemp.append("</lawyers>");

    } catch (Exception e) {
      LOG.error(e);
      result.append("<respcode>").append(-1).append("</respcode>");
      result.append("<respmsg>获取律师信息异常:").append(e.getMessage()).append("</respmsg>");
    }
    result.append(temp);
    result.append(lawyertemp);
    result.append("</response>");
    return result.toString();
  }