package cn.jfinalbbs.reply;
import cn.jfinalbbs.utils.DateUtil;
import cn.jfinalbbs.utils.StrUtil;
import com.google.common.collect.Collections2;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.Page;
import java.util.Date;
import java.util.List;
/**
* Created by liuyang on 15/4/2.
*/
public class Reply extends Model<Reply> {
public static final Reply me = new Reply();
public List<Reply> findByTid(String tid) {
return find("select u.avatar, u.nickname, r.* " +
"from reply r left join user u on r.author_id = u.id " +
"where r.tid = ? order by r.in_time", tid);
}
public Page<Reply> findByTopicId(int pageNumber, int pageSize,String topicId){
return super.paginate(pageNumber, pageSize, "select u.avatar, u.nickname, r.* ","from reply r left join user u on r.author_id = u.id where r.tid = '"+topicId+"'order by r.in_time");
}
public int deleteByTid(String tid) {
return Db.update("delete from reply where tid = ?", tid);
}
//查询总回复数
public int replyCount() {
return super.find("select id from reply").size();
}
//查询总回复数
public int replyCountWithTopicIds(String topicIds) {
if(StrUtil.notBlank(topicIds)){
return super.find("select count(id) from reply as r where r.tid in ("+topicIds+")").size();
}else{
return 0;
}
}
//查询总回复数和最新的对象
public Reply replyCountAndObjectWithTopicId(String topicId) {
return super.findFirst("select r.*,count(r.id) as count,u.nickname,u.id as replyuserid from reply as r inner join user u on u.id=r.author_id where r.tid = '"+topicId+"' ORDER BY r.in_time DESC");
}
public Reply findBestReplyByTid(String tid) {
return super.findFirst("select * from reply r where r.best = 1 and r.tid = ?", tid);
}
// ------- 后台查询方法 -------
public Page<Reply> page(int pageNumber, int pageSize) {
return super.paginate(pageNumber, pageSize, "select r.*, t.title, u.nickname ", "from reply r left join topic t on r.tid = t.id left join user u on r.author_id = u.id order by r.in_time desc");
}
public List<Reply> findToday() {
String start = DateUtil.formatDate(new Date()) + " 00:00:00";
String end = DateUtil.formatDate(new Date()) + " 23:59:59";
return super.find("select r.id, r.tid, r.content, r.in_time, t.title, r.isdelete " +
"from reply r left join topic t on r.tid = t.id where r.in_time between ? and ? order by r.in_time desc",
start, end);
}
}