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 cn.jfinalbbs.utils.StrUtil;
import com.jfinal.aop.Before;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
/**
* Created by tomoya on 15/7/16.
*/
public class MissionClientController extends BaseController {
// 每日登录后,点击领取积分,可用于发帖,回复等
@Before(UserInterceptor.class)
public void daily() {
String token = getPara("token");
if (StrUtil.isBlank(token)) {
error("请先登录");
} else {
//根据token获取用户信息
User user = User.me.findByToken(token);
if (user == null) {
error("用户不存在,请退出重新登录");
} else {
Map<String, Object> map = new HashMap<String, Object>();
// 查询今天是否获取过奖励
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();
map.put("score", score);
map.put("day", day);
} else {
map.put("msg", "您今天已经领取了奖励,明天在来吧");
}
success(map);
}
}
}
}