// 每日登录后,点击领取积分 public void daily() { String token = getPara("token"); User user = getUser(token); 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); }
/** * qq登录回调方法 * * @throws QQConnectException */ public void qqlogincallback() throws QQConnectException, IOException { HttpServletRequest request = getRequest(); AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request); String accessToken = null, openID = null; if (accessTokenObj.getAccessToken().equals("")) { renderText("用户取消了授权或没有获取到响应参数"); } else { accessToken = accessTokenObj.getAccessToken(); // 利用获取到的accessToken 去获取当前用的openid -------- start OpenID openIDObj = new OpenID(accessToken); openID = openIDObj.getUserOpenID(); UserInfo qzoneUserInfo = new UserInfo(accessToken, openID); UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo(); String avatar = userInfoBean.getAvatar().getAvatarURL50(); String nickname = userInfoBean.getNickname(); User user = (User) getSession().getAttribute(Constants.USER_SESSION); if (user == null) { user = User.me.findByOpenID(openID, "qq"); String id = StrUtil.getUUID(); if (user == null) { user = new User(); user.set("id", id) .set("qq_nickname", nickname) .set("qq_avatar", avatar) .set("qq_open_id", openID); } else { user.set("qq_nickname", nickname).set("qq_avatar", avatar); } setSessionAttr("open_id", openID); setSessionAttr("thirdlogin_type", "qq"); setSessionAttr("unsave_user", user); } else { User user1 = User.me.findByOpenID(openID, "qq"); if (user1 != null && !user1.get("id").equals(user.get("id"))) { getResponse().setCharacterEncoding("utf-8"); getResponse() .getWriter() .write( "<script>alert('此QQ号已经绑定其他账户,请更换绑定');location.href=\'/user/setting\'</script>"); return; } else { user.set("qq_nickname", nickname) .set("qq_open_id", openID) .set("qq_avatar", avatar) .update(); } } if (StrUtil.isBlank(user.getStr("email"))) { redirect("/reg.html?third=qq"); } else { setSessionAttr(Constants.USER_SESSION, user); setCookie( Constants.USER_COOKIE, StrUtil.getEncryptionToken(user.getStr("token")), 30 * 24 * 60 * 60); String source = (String) getSession().getAttribute("source"); if (!StrUtil.isBlank(source)) { if (source.equalsIgnoreCase("usersetting")) { getSession().removeAttribute("source"); redirect("/user/setting"); } } else { redirect("/"); } } } }
/** * 新浪微博登录后回调 * * @throws WeiboException */ public void weibologincallback() throws WeiboException, IOException { String code = getPara("code"); cn.weibo.Oauth oauth = new cn.weibo.Oauth(); String error = getPara("error"); if (!StrUtil.isBlank(error) && error.equals("access_denied")) { renderText("用户拒绝了新浪微博登录"); } else { cn.weibo.http.AccessToken accessToken = oauth.getAccessTokenByCode(code); Users users = new Users(accessToken.getAccessToken()); cn.weibo.model.User weiboUser = users.showUserById(accessToken.getUid()); if (weiboUser != null) { User user = (User) getSession().getAttribute(Constants.USER_SESSION); if (user == null) { user = User.me.findByOpenID(weiboUser.getId(), "sina"); String id = StrUtil.getUUID(); if (user == null) { user = new User(); user.set("id", id) .set("sina_nickname", weiboUser.getScreenName()) .set("sina_avatar", weiboUser.getAvatarLarge()) .set("sina_open_id", weiboUser.getId()); } else { user.set("sina_nickname", weiboUser.getScreenName()) .set("sina_avatar", weiboUser.getAvatarLarge()); } setSessionAttr("open_id", weiboUser.getId()); setSessionAttr("thirdlogin_type", "sina"); setSessionAttr("unsave_user", user); } else { User user1 = User.me.findByOpenID(weiboUser.getId(), "sina"); if (user1 != null && !user1.get("id").equals(user.get("id"))) { getResponse().setCharacterEncoding("utf-8"); getResponse() .getWriter() .write( "<script>alert('此微博账号已经绑定其他账户,请更换绑定');location.href=\'/user/setting\'</script>"); return; } else { user.set("sina_nickname", weiboUser.getScreenName()) .set("sina_avatar", weiboUser.getAvatarLarge()) .set("sina_open_id", weiboUser.getId()) .update(); } } if (StrUtil.isBlank(user.getStr("email"))) { redirect("/reg.html?third=qq"); } else { setSessionAttr(Constants.USER_SESSION, user); setCookie( Constants.USER_COOKIE, StrUtil.getEncryptionToken(user.getStr("token")), 30 * 24 * 60 * 60); String source = (String) getSession().getAttribute("source"); if (!StrUtil.isBlank(source)) { if (source.equalsIgnoreCase("usersetting")) { getSession().removeAttribute("source"); redirect("/user/setting"); } } else { redirect("/"); } } } else { renderText("新浪微博登陆失败"); } } }