2个方法有同样的代码,请大神帮忙抽取啊

public String user_list() {
MemberRO ro;
SessionStore store = SessionStore.getInstance();
List authorities=store.getSession(store.getSessionidByUserId(user.getUserId())).getAuthorities();
try {
ro = getInputStream(MemberRO.class);
ro.setSort(ro.getSortName());
ro.setOrder(ro.getSortOrder());
if(StringUtils.isEmpty(ro.getSortName())) ro.setSortName("userId");
if(StringUtils.isEmpty(ro.getSortOrder())) ro.setSortOrder("desc");
List> list = null;
long total = 0;
if("user".equals(ro.getType()) || StringUtils.isEmpty(ro.getType())) {
list = accountManageService.getMemberList(ro);
total = accountManageService.getMemBerCount(ro);
} else if("agent".equals(ro.getType())){
list = accountManageService.getAgentList(ro);
total = accountManageService.getAgentCount();
} else if ("manager".equals(ro.getType())) {
list = accountManageService.getManagerList(ro);
total = accountManageService.getManagerCount();
}
if(authorities.contains(15)){
RO.setOther(true);
}
RO.setCode(0);
RO.setRows(list);
RO.setTotal((int)total);
} catch (Exception e) {
e.printStackTrace();
RO.setCode(e);
}
return SUCCESS;
}


 class MyResult
{
List list;
int total;
}

MyResult foo(Object ro)
{
 MyResult mr = new MyResult();
if("user".equals(ro.getType()) || StringUtils.isEmpty(ro.getType())) {
            mr.list = accountManageService.getMemberList(ro);
            mr.total = accountManageService.getMemBerCount(ro);
        } else if("agent".equals(ro.getType())){
            mr.list = accountManageService.getAgentList(ro);
            mr.total = accountManageService.getAgentCount();
        } else if ("manager".equals(ro.getType())) {
            mr.list = accountManageService.getManagerList(ro);
            mr.total = accountManageService.getManagerCount();
        }
                return mr;
}