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); } }