package com.xiaozhi.blog.web.others.sina;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.tianji.test.core.redis.LoginHelper;
import com.xiaozhi.blog.mongo.MongoUserDao;
import com.xiaozhi.blog.service.other.sina.BlogTime;
import com.xiaozhi.blog.vo.SinaAccessToken;
import weibo4j.Friendships;
import weibo4j.Timeline;
import weibo4j.Users;
import weibo4j.model.Paging;
import weibo4j.model.StatusWapper;
import weibo4j.model.User;
import weibo4j.model.UserWapper;
import weibo4j.model.WeiboException;
@Controller
@RequestMapping("/blog/sina/friend")
public class SinaFriendBlogController {
private static Log logger = LogFactory.getLog(SinaFriendBlogController.class);
@Autowired
private Timeline timeline;
@Autowired
private Users users;
@Autowired
private Friendships friendships;
@Autowired
private MongoUserDao retwis;
@Autowired
private BlogTime blogTime;
/**
* 获取用户微博列表
* @param page
* @param model
* @return
*/
@RequestMapping(value = "usertimeline/{uid}", method = RequestMethod.GET)
public String usertimeline(@RequestParam(required = false,defaultValue="1") Integer page,@PathVariable String uid,Model model) {
SinaAccessToken accessToken = (SinaAccessToken)retwis.getAccessTokenByUser(LoginHelper.getUserId());
logger.debug("--------------------------->accessToken :"+accessToken.getAccesstoken());
timeline.client.setToken(accessToken.getAccesstoken());
users.client.setToken(accessToken.getAccesstoken());
friendships.client.setToken(accessToken.getAccesstoken());
try {
StatusWapper statusWapper = timeline.getUserTimelineByUid(uid,new Paging(page, 20),0, 0);
User user = users.showUserById(uid);
UserWapper followers = friendships.getFollowersById(uid, 6, 0);
UserWapper following = friendships.getFriendsBilateral(uid,0,new Paging(page, 6));
model.addAttribute("statusWapper",this.blogTime.getStatusWapperWithFaceImage(statusWapper,timeline));
model.addAttribute("user",user);
model.addAttribute("followers",followers);
model.addAttribute("following",following);
model.addAttribute("pagelist", "friendblogs");
model.addAttribute("pages", getPages (statusWapper.getTotalNumber(),20));
model.addAttribute("page",new Paging(page, 20));
model.addAttribute("uid",uid);
} catch (WeiboException e) {
logger.debug("--------------------------->error :"+e.getError());
if("expired_token".equals(e.getError())){
return "redirect:/bind/sina?callbackUrl=/blog/sina/hometimeline";
}else{
e.printStackTrace();
}
}
return "/blog/sina/friendblogs";
}
/**
* ajax 微博分页
* @param name
* @param page
* @param model
* @return
*/
@RequestMapping(value = "usertimeline/page/{uid}", method = RequestMethod.GET)
public String usertimelinePage(Integer page,@PathVariable String uid,Model model) {
try {
StatusWapper statusWapper = timeline.getUserTimelineByUid(uid,new Paging(page, 20),0, 0);
model.addAttribute("statusWapper",this.blogTime.getStatusWapperWithFaceImage(statusWapper,timeline));
model.addAttribute("page",new Paging(page, 20));
model.addAttribute("pages", getPages (statusWapper.getTotalNumber(),20));
model.addAttribute("pagelist", "friendblogs");
model.addAttribute("uid",uid);
} catch (WeiboException e) {
e.printStackTrace();
}
return "/blog/sina/post";
}
private long getPages (long totalNumber,long pagesize){
long pages = totalNumber % pagesize;
if (pages == 0)
pages = totalNumber / pagesize;
else
pages = totalNumber / pagesize + 1;
return pages;
}
}