friendserviceimpl.java

来自「社区文章采用的是平板、树形自由选择的两种展示方式」· Java 代码 · 共 452 行 · 第 1/2 页

JAVA
452
字号
		this.getUserService().ruleUtils(log,0,28);
		log.setUserName(this.getUserService().findById(model.getFriendUserId()).getUserName());
		log.setUserId(model.getFriendUserId());
		log.setIsList(true);
		log.setListByUserName(true);
		log.setMemo("被删除好友名单");
		log.setContent(this.getUserService().findById(model.getFriendUserId()).getUserName()+
				"被"+this.getUserService().findById(model.getMyUserId()).getUserName()+"从好友名单删除!");
		this.getManageLogService().create(log);
		
		log = new ManageLog();
		log.setTitle("");
		log.setMemo("删除好友");
		log.setTopicId(0);
		log.setReplyId(0);
		log.setForumId(0);
		log.setByUserId(model.getMyUserId());
		log.setByUserName(this.getUserService().findById(model.getMyUserId()).getUserName());
		log.setByUserIp("127.0.0.1");
		log.setCreateDateTime(model.getCreateDateTime());
		this.getUserService().ruleUtils(log,0,29);
		log.setUserName(this.getUserService().findById(model.getMyUserId()).getUserName());
		log.setUserId(model.getMyUserId());
		log.setIsList(true);
		log.setListByUserName(true);
		log.setContent(log.getUserName()+"将"+this.getUserService().findById(model.getFriendUserId()).getUserName()+"从好友名单删除");
		this.getManageLogService().create(log);
		return c;
	}
	

	public int delete(String ids) throws ClubException {
		List<Integer> list = StringHelper.stringToIntegerList(ids,"|");
		if(!Validator.isEmpty(list)){
			int c = 0;
			for(Integer id:list){
				Friend model = new Friend();
				model.setFriendId(id);
				c=c+this.delete(model);
			}
			return c;
		}else{
			throw new ClubException(MessageUtils.getMessage("error_parameter"));
		}
		
	}
	
	/* test 
	public static void main(String args[]){
		com.yeqiangwei.club.dao.hibernate.ConnectionManager.init();
		FriendServiceImpl f = new FriendServiceImpl();
		FriendParameter param = new FriendParameter();
		param.setMyUserId(95);
		Object obj = f.findByParameter(param);
		System.out.println(obj);
		List list = (List) obj;
		System.out.println(list);
		com.yeqiangwei.club.dao.hibernate.ConnectionManager.closeSession();
	}
	*/
	public List<Friend> findByParameter(FriendParameter param) {
		List<?> list = (List<?>) this.getFriendDAO().find_friendJoinUser(param);
		List<Friend> mlist = new ArrayList<Friend>();
		if(!Validator.isEmpty(list)){
			for(int i=0; i<list.size(); i++){
				Object[] obj = (Object[]) list.get(i);
				Friend friend = (Friend) obj[0];
				User user = (User) obj[1];
				if(!Validator.isEmpty(friend)&&!Validator.isEmpty(user)){
					friend.setUser(user);
					mlist.add(friend);
					CACHE_FRIEND.put(cacheKey(friend,false),friend);
				}
			}
		}
		return mlist;
	}

	public long countByParameter(FriendParameter param) {
		return this.getFriendDAO().countByParameter(param);
	}
	
	
	/**
	 * 限制了List上限
	 */
	private List<Topic> findTopics(List<Friend> flist, int rows){
		if(Validator.isEmpty(flist)){
			return null;
		}
		List<Integer> userIdList = new ArrayList<Integer>();
		for(Friend friend : flist){
			userIdList.add(friend.getFriendUserId());
		}
		TopicParameter param = new TopicParameter();
		param.setPage(new Integer(1));
		param.setRows(rows);
		param.setUserIdList(userIdList);
		param.setOrderBy(new Byte((byte)2));//order by topicId desc
		param.setIsDeleted(false);
		List<Topic> list = this.getTopicService().findByParameter(param);
		return list;
	}

	private List<Reply> findReplys(List<Friend> flist, int rows){
		if(Validator.isEmpty(flist)){
			return null;
		}
		List<Integer> userIdList = new ArrayList<Integer>();
		for(Friend friend : flist){
			userIdList.add(friend.getFriendUserId());
		}
		TopicParameter param = new TopicParameter();
		param.setPage(new Integer(1));
		param.setRows(rows);
		param.setUserIdList(userIdList);
		param.setOrderBy(new Byte((byte)2));//order by topicId desc
		param.setIsDeleted(false);
		List<Reply> list = this.getReplyService().findByParameter(param);
		return list;
	}
	
	/* test */
	public static void main(String args[]){
		com.yeqiangwei.club.dao.hibernate.ConnectionManager.init();
		FriendServiceImpl f = new FriendServiceImpl();
		List<FriendLastPost> list = f.findLastPost(1585, 7, true);
		
		if(list!=null){
			for(int i=0; i<list.size(); i++){
				FriendLastPost post = list.get(i);
				System.out.println(post.getTopic().getCreateDateTime()
						+"  "+post.getTopic().getTitle()+" / "+post.getTopic().getUserName());
				//System.out.println(post.getReply().getReplyId()+"//"+post.getReply().getTitle()
					//	+"//"+post.getReply().getUserName());
			}
		}
		com.yeqiangwei.club.dao.hibernate.ConnectionManager.closeSession();
	}

	
	public List<FriendLastPost> findLastPost(int myUserId, int rows, boolean isTopic) {
		if(myUserId==0){
			return null;
		}
		List<FriendLastPost> list = new ArrayList<FriendLastPost>();
		FriendParameter param = new FriendParameter();
		param.setMyUserId(myUserId);
		param.setPage(new Integer(1));
		param.setRows(new Integer(50));//总共取前50位好友的信息
		param.setOrderBy((byte)3);//按关系值排列
		List<Friend> flist = this.getFriendDAO().findByParameter(param);
		if(isTopic){
			List<Topic> tlist = this.findTopics(flist, rows);
			if(tlist!=null){
				for(int i=0; i<tlist.size(); i++){
					FriendLastPost p = new FriendLastPost();
					p.setTopic(tlist.get(i));
					list.add(p);
				}
			}
		}
		else{
			List<Reply> rlist = this.findReplys(flist, rows);
			if(rlist!=null){
				for(int i=0; i<rlist.size(); i++){
					FriendLastPost p = new FriendLastPost();
					p.setReply(rlist.get(i));
					list.add(p);
				}
			}
		}
		return list;
	}
	
	/**
	 * 
	 * @param model
	 * @param isresults true缓存List集合对象 false缓存Friend对象
	 * @return
	 */
	private String cacheKey(Friend model, boolean isresults){
		StringBuffer sb = new StringBuffer();
		sb.append("Friend:");
		if(isresults){
			sb.append("myUserId=");
			sb.append(model.getMyUserId());
		}else{
			sb.append(",friendId=");
			sb.append(model.getFriendId());
		}
		return sb.toString();
	}

	private FriendDAO getFriendDAO() {
		return DAOWrapper.<FriendDAO>getSingletonInstance(DAOLocator.FRIEND);
	}

	private UserService getUserService() {
		return ServiceWrapper.getSingletonInstance(ServiceLocator.USER);
	}
	
	private ReplyService getReplyService() {
		return ServiceWrapper.<ReplyService>getSingletonInstance(ServiceLocator.REPLY);
	}
	
	private TopicService getTopicService() {
		return ServiceWrapper.<TopicService>getSingletonInstance(ServiceLocator.TOPIC);
	}

	private ManageLogService getManageLogService() {
		return  ServiceWrapper.<ManageLogService>getSingletonInstance(ServiceLocator.MANAGELOG);
	}
	private RobotService getRobotService(){ 
		return ServiceWrapper.<RobotService>getSingletonInstance(ServiceLocator.DOING_ROBOT);
	}

	private UserIMService getUserIMService(){
		return ServiceWrapper.<UserIMService>getSingletonInstance(ServiceLocator.DOING_USERIM);
	}
	
	private BasicInfoService getBasicInfoService() {
		return ServiceWrapper.<BasicInfoService>getSingletonInstance(ServiceLocator.BASICINFO);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?