package com.xiaozhi.blog.service;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xiaozhi.blog.mongo.MongoBlogDao;
import com.xiaozhi.blog.mongo.MongoFollowingDao;
import com.xiaozhi.blog.utils.ListPage;
import com.xiaozhi.blog.vo.Range;
import com.xiaozhi.blog.vo.User;
@Service
public class FollowingService {
private static Log logger = LogFactory.getLog(FollowingService.class);
@Autowired
private MongoFollowingDao mongoFollowingDao;
@Autowired
private MongoBlogDao mongoBlogDao;
/**
* 获取第一页的几个关注人
* @param uid
* @return
*/
public List<User> getFollowing(String uid) {
return this.mongoFollowingDao.getFollowings(uid,new Range(1));
}
/**
* 分页获取关注列表
* @param uid
* @param range
* @return
*/
public ListPage<User> getFollowingsByPage(String uid, Integer page,Integer pagesize) {
int firstResult = (page-1)*pagesize;
int lastResult = (page-1)*pagesize+pagesize-1;
int allResults = this.mongoFollowingDao.getFollowingsNum(uid);
List<User> users=this.mongoFollowingDao.getFollowings(uid, new Range(firstResult,lastResult));
return new ListPage<User>(users, firstResult, lastResult, allResults);
}
public boolean isFollowing(String uid, String targetUid) {
return this.mongoFollowingDao.isFollowing(uid, targetUid);
}
/**
* 加关注
* @param targetUser
*/
public boolean follow(String targetUid,String uid) {
try {
this.mongoFollowingDao.follow(targetUid,uid);
this.mongoBlogDao.updateTimeLineForFllowing(uid, targetUid);
return true;
} catch (Exception e) {
e.fillInStackTrace();
}
return false;
}
/**
* 停止关注
* @param targetUser
*/
public boolean stopFollowing(String targetUid,String uid) {
try {
this.mongoFollowingDao.stopFollowing(targetUid,uid);
this.mongoBlogDao.delTimeLineForFllowing(uid, targetUid);
return true;
} catch (Exception e) {
e.fillInStackTrace();
}
return false;
}
}