思创记录 发表于 2017-08-14 获取当前用户1234*service*@Autowiredprotected IUserService userService;// 统一用户服务String userId=userService.getCurrentUser().getUserId(); 列表显示数据连表查询但获取的是一个表的数据 123456789101112131415161718192021222324 /** * 获取当前用户参加的议题 * @param page * @param model * @return * @throws SystemException * @throws ServiceException */public Page<TGxMeetingAgenda> getCurrentUserJoin(Page page, String meetingId) throws SystemException,ServiceException{ List params = new ArrayList(); StringBuffer hql=new StringBuffer("select ad from TGxMeetingMru mru,TGxMeetingAgenda ad"); hql.append(" where mru.mruMid=ad.meetingId"); hql.append(" and mru.mruAid=ad.id"); if(StringUtils.isNotBlank(meetingId)){ hql.append(" and ad.meetingId=?"); params.add(meetingId); } hql.append(" and mru.mruUserid=?"); params.add(userService.getCurrentUser().getUserId()); page=meetingAdDAO.find(page, hql.toString(), params.toArray()); return page;} 单表查询数据(带条件)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748/** * author: * description: 获取所有没有删除的会议室 page对象 * modifyer: * description: * @param page 分页对象 * @param model 搜索条件 * @return * @throws SystemException * @throws ServiceException */public Page<TGxMeetingAgenda> getAllPage(Page page, TGxMeetingAgenda model) throws SystemException,ServiceException{ try{ StringBuilder hql = new StringBuilder(); List palist=new ArrayList(); hql.append("select t from TGxMeetingAgenda t where 1=1"); if(null!=model.getMeetingId()){//会议id String meetingId = model.getMeetingId(); if(!"".equals(meetingId)&&null!=meetingId){ hql.append(" and t.meetingId = ?"); palist.add(FiltrateContent.getNewContent(meetingId)); } } if(null!=model.getTitle()){//议题 String mTile = model.getTitle(); if(!"".equals(mTile)&&null!=mTile){ hql.append(" and t.title like ?"); palist.add("%"+FiltrateContent.getNewContent(mTile.trim())+"%"); } } if(null!=model.getUserName()){//参与人员 String userName = model.getUserName(); if(!"".equals(userName)&&null!=userName){ hql.append(" and t.userName like ?"); palist.add("%"+FiltrateContent.getNewContent(userName.trim())+"%"); } } hql.append(" order by t.sort asc");//创建时间排序 return meetingDAO.find(page, hql.toString(), palist.toArray()); }catch(ServiceException e){ throw new ServiceException(MessagesConst.find_error, new Object[] {"会议议题列表"}); }} 连表查询数据(结果集为多表字段)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849/** * 分页浏览参会人员 * @param page * @param username 搜索 * @param model * @param logInfos * @return * @throws SystemException * @throws ServiceException */ public Page getTGxMeetingUserPage(Page page,TGxMeetingUser model)throws SystemException,ServiceException{ try { List palist=new ArrayList(); StringBuffer hql = new StringBuffer(); hql.append("SELECT tu.id,tu.userId,us.userName as userName,tbo.orgName as userOrgName"); hql.append(" FROM TUumsBaseUser us, "); hql.append(" TGxMeetingUser tu,"); hql.append(" TUumsBaseOrg tbo"); hql.append(" WHERE us.userId = tu.userId "); hql.append( "AND us.orgId = tbo.orgId"); if(null!=model.getUserName() && !"".equals(model.getUserName())){ hql.append(" and us.userName like ? "); palist.add("%"+model.getUserName()+"%"); } hql.append( " order by tu.id asc"); page=tGxMeetingUserDAO.find(page, hql.toString(),palist.toArray()); if(null!=page.getResult()){ List<TGxMeetingUser> tmuList=new ArrayList<TGxMeetingUser>(); TGxMeetingUser tmu=null; List<Object> objs=page.getResult(); for(Object obj:objs){ tmu =new TGxMeetingUser(); Object[] a = (Object[]) obj; tmu.setId(a[0].toString()); tmu.setUserId(a[1].toString()); tmu.setUserName(a[2].toString()); tmu.setUserOrgName(a[3].toString()); tmuList.add(tmu); } page.setResult(tmuList); } return page; } catch (Exception e) { throw new ServiceException(MessagesConst.find_error, new Object[] { "分页搜索参会用户" }); } } 1234其中结果返回对象里面加入了其他与当前对象无关字段#加入注解@Transient不将字段加入数据库#private String userName;//用户名字private String userOrgName;//用户部门 添加1234567/** * 添加 * @param model */ public void save(TGxMeetingUser model) { tGxMeetingUserDAO.save(model); } 编辑1234567/** * 编辑实体 * @param model */ public void update(TGxMeetingUser model){ this.tGxMeetingUserDAO.update(model); } 删除12345678910111213141516/** * 删除参会人员根据id * @param suggestionCode * @param loginfos * @throws SystemException * @throws ServiceException */ public void delete(String id,OALogInfo logInfo) throws SystemException, ServiceException { try { tGxMeetingUserDAO.delete(id); } catch (Exception e) { throw new ServiceException(MessagesConst.save_error, new Object[] {"删除参与人员"}); } } 123456789101112**其中action里面一般批量删除**//删除 @Override public String delete() throws Exception { // TODO Auto-generated method stub String[] mrIdString = ids.split(","); for(int i=0;i<mrIdString.length;i++){ manager.delete(mrIdString[i],new OALogInfo("会议室管理-『删除』:"+mrIdString[i])); } renderText("reload"); return null; } 根据ID获取信息123456789@Transactional(readOnly=true) public TGxMeeting getTGxMeetingById(String roomId) throws SystemException,ServiceException{ try{ return meetingDAO.get(roomId); }catch(ServiceException e){ throw new ServiceException(MessagesConst.find_error, new Object[] {"获取会议室信息"}); } } 人员选择树结构123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566/** * 选择机构负责人,支持多选. * @author:邓志城 * @date:2011-1-6 下午04:16:31 * @return */public String chooseOrgManager() { List<TempPo> nodes = new LinkedList<TempPo>(); try { List<Organization> orgList = userService.getAllDeparments();//得到机构列表 Map<String,List<User>> userMap = userService.getUserMap();//得到用户MAP:KEY:机构ID,VALUE:机构下的人员列表 List<Organization> newList = new ArrayList<Organization>(orgList); Collections.sort(newList, new Comparator<Organization>(){ @Override public int compare(Organization o1, Organization o2) { String code1 = o1.getOrgSyscode(); String code2 = o2.getOrgSyscode(); if(code1 != null && code2 != null) { return code1.length() - code2.length(); } return 0; } }); String root = null; if(!newList.isEmpty()) { root = newList.get(0).getOrgSyscode(); } for(int i=0;i<orgList.size();i++) {//遍历塞值进去 (部门) Organization organization = orgList.get(i); TempPo po = new TempPo(); po.setId("o"+organization.getOrgId()); po.setName(organization.getOrgName()); String parentId = organization.getOrgParentId(); po.setType("o"); if(organization.getOrgSyscode().equals(root)) {//判断树结构是否根节点 parentId = "0"; } else { parentId = parentId == null ? "0" : "o" + parentId;//自定义非根节点表示样式 } po.setParentId(parentId);//--- nodes.add(po); //添加人员 List<User> userList = userMap.get(organization.getOrgId()); if(userList != null) { for(User u : userList) { TempPo upo = new TempPo(); upo.setId(u.getUserId()); upo.setName(u.getUserName()); upo.setParentId(po.getId());//--对应部门 upo.setType("u"); nodes.add(upo); } } } userMap.clear();//清空 orgList.clear();//清空 }catch (Exception e) { logger.error("选择机构负责人发生异常", e); } getRequest().setAttribute("data", nodes);//前台自定义树遍历值 getRequest().setAttribute("id", getRequest().getParameter("id")); getRequest().setAttribute("ids", manager.getUserTreeIds()); return "bigtree";} 1其中的data在前台自定义标签里面自动遍历 -------------本文结束感谢您的阅读-------------