package cn.jfinalbbs.mission;
import cn.jfinalbbs.utils.DateUtil;
import com.jfinal.plugin.activerecord.Model;
import com.jfinal.plugin.activerecord.Page;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* Created by liuyang on 15/4/2.
*/
public class Mission extends Model<Mission> {
public static final Mission me = new Mission();
public Mission findLastByAuthorId(String author_id) {
return findFirst("select * from mission where author_id = ? order by in_time desc", author_id);
}
public Mission findByInTime(String author_id, String startDate, String endDate) {
return findFirst("select * from mission m " +
"where m.author_id = ? and (m.in_time between ? and ?)", author_id, startDate, endDate);
}
//查询每日签到列表
public Page<Mission> paginate(int pageNumber, int pageSize) {
return super.paginate(pageNumber, pageSize, "select m.*, u.nickname, u.score as totalScore ",
"from mission m left join user u on m.author_id = u.id order by m.in_time desc");
}
public List<Mission> findTop10() {
String startTime = DateUtil.formatDateTime(new Date(), DateUtil.FORMAT_DATE);
String endTime = DateUtil.formatDateTime(new Date(), DateUtil.FORMAT_DATE) + " 23:59:59";
return super.find("select m.id, m.author_id, u.score, m.in_time, max(m.day) as day, u.nickname, u.avatar " +
"from mission m left join user u on u.id = m.author_id " +
"where m.in_time between ? and ? group by m.author_id order by day desc limit 10", startTime, endTime);
}
public List<Mission> findToday() {
String start = DateUtil.formatDate(new Date()) + " 00:00:00";
String end = DateUtil.formatDate(new Date()) + " 23:59:59";
return super.find("select u.nickname, m.score, u.score as totalScore, m.in_time, m.day " +
" from mission m left join user u on m.author_id = u.id " +
" where m.in_time between ? and ? order by m.in_time desc", start, end);
}
}