package cn.jfinalbbs.mission; import cn.jfinalbbs.common.BaseController; import cn.jfinalbbs.common.Constants; import cn.jfinalbbs.interceptor.UserInterceptor; import cn.jfinalbbs.user.User; import cn.jfinalbbs.utils.DateUtil; import com.jfinal.aop.Before; import java.util.Date; import java.util.Random; /** * Created by liuyang on 15/4/2. */ public class MissionController extends BaseController { // 每日登录后,点击领取积分,可用于发帖,回复等 @Before(UserInterceptor.class) public void daily() { User sessionUser = getSessionAttr(Constants.USER_SESSION); User user = User.me.findById(sessionUser.get("id")); // 查询今天是否获取过奖励 Mission mission = Mission.me.findByInTime(user.getStr("id"), DateUtil.formatDate(new Date()) + " 00:00:00", DateUtil.formatDate(new Date()) + " 23:59:59"); if(mission == null) { //查询最后一次签到记录 Mission lastMission = Mission.me.findLastByAuthorId(user.getStr("id")); Integer day = 1; if(lastMission != null) { String lastMissionInTimeStr = DateUtil.formatDate(lastMission.getDate("in_time")); String beforeDateStr = DateUtil.formatDate(DateUtil.getDateBefore(new Date(), 1)); if(lastMissionInTimeStr != null && lastMissionInTimeStr.equalsIgnoreCase(beforeDateStr)) { day = lastMission.getInt("day") + 1; } } Random random = new Random(); int score = random.nextInt(10) + 1;// 随机积分,1-10分 user.set("score", user.getInt("score") + score) .set("mission", DateUtil.formatDate(new Date())).update(); getModel(Mission.class) .set("score", score) .set("author_id", user.get("id")) .set("day", day) .set("in_time", new Date()).save(); setAttr("score", score); setAttr("day", day); } else { setAttr("msg", "msg"); } setSessionAttr(Constants.USER_SESSION, user); render("front/mission/result.html"); } public void top10() { setAttr("missionList", Mission.me.findTop10()); render("front/mission/top10.html"); } }