java 一键签到功能案例
来源:互联网 发布:知乎登陆过于频繁 编辑:程序博客网 时间:2024/05/29 15:40
如意问题,还望各位多多指教!
package com.netec.web.home;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.netec.model.admin.Integral;
import com.netec.model.admin.WxUser;
import com.netec.service.admin.IntegralService;
import com.netec.service.admin.UserInfoService;
/**
* 一键签到
*
*
*/
@RequestMapping(value="/sign")
@Controller
public class HomeSignController {
@Autowired
private UserInfoService service;
@Autowired
private IntegralService integralService;
@RequestMapping
@ResponseBody
public Map<String,Object> sign(HttpServletRequest request){
Map<String,Object> map = new HashMap<String, Object>();
WxUser user = (WxUser)request.getSession().getAttribute("wxUser");
Integral integral = new Integral();
//判断用户是否登录:如果登录了就直接签到;如果没登录者提示用户登录
if(user != null && !"".equals(user)){
//获取当前时间
Calendar checkdateCalendar = Calendar.getInstance();
//获取用户签到时间
Date checkDate = user.getCheckDate();
//判断是否签到过
if(checkDate==null || "".equals(checkDate)){
//如果为空则设置为当前时间
checkdateCalendar.set(checkdateCalendar.get(Calendar.YEAR),checkdateCalendar.get(Calendar.MONTH),checkdateCalendar.get(Calendar.DATE),0,0,0);
}else{
//如果不为空则设置为用户签到时间
checkdateCalendar.setTime(checkDate);
}
//获取今天凌晨时间
Calendar today = Calendar.getInstance();
today.set(today.get(Calendar.YEAR),today.get(Calendar.MONTH),today.get(Calendar.DATE),0,0,0);
//获取昨天凌晨时间
Calendar yesterday = Calendar.getInstance();
yesterday.set(yesterday.get(Calendar.YEAR),yesterday.get(Calendar.MONTH),yesterday.get(Calendar.DATE)-1,0,0,0);
//判断用户签到时间是否是在今天凌晨之前
if(checkdateCalendar.before(today)){
//如果上次签到是昨天凌晨之前,说明没有连续签到
if(checkdateCalendar.before(yesterday)){
//将签到天数归为1
user.setCheckTimes(1);
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("一键签到");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+5");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+5);
}else{
int checkTimes = user.getCheckTimes();
checkTimes++;
if (checkTimes==7) {
//连续签到7天
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("连续签到7天额外奖励5慧币");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+10");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+10);
}else if(checkTimes==15){
//连续签到15天
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("连续签到15天额外奖励15慧币");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+20");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+20);
}else if(checkTimes==30){
//连续签到30天
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("连续签到30天额外奖励30慧币");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+35");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+35);
}else if(checkTimes==45){
//连续签到45天
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("连续签到45天额外奖励45慧币");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+50");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+50);
}else if(checkTimes==60){
//连续签到45天
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("连续签到60天额外奖励60慧币");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+65");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+65);
}else{
//每日签到送慧币
integral.setWxOpenid(user.getWxOpenId());
integral.setWxName(user.getWxName());
integral.setOrderId(0);
integral.setOrderSn("0");
integral.setMakeRuleCode("dailyCheck");
integral.setMakeRuleCodeName("一键签到");
integral.setCreatetime(new Date());
integral.setIntegralAmount("+5");
integral.setStatus("1");
integralService.save(integral);
user.setWisdomMoney(user.getWisdomMoney()+5);
}
//连续签到天数加1
user.setCheckTimes(checkTimes);
}
user.setCheckDate(new Date());
service.saveUser(user);
map.put("true","今日签到成功");
}else{
map.put("false","您已经签到过了");
}
}else{
map.put("false","请登录后操作!");
}
return map;
}
}
0 0
- java 一键签到功能案例
- java签到功能
- java模拟登录qq网站,实现一键签到等等功能
- 签到功能
- 签到功能
- 用java语言设计app签到功能
- Java Web 案例一 登录、注册功能实现
- 安卓巴士一键签到插件
- 签到功能之三部曲
- 连续签到的功能
- 签到功能代码
- 自定义签到功能
- php实现签到功能
- php实现签到功能
- php实现签到功能
- php实现签到功能
- 每日签到的功能
- ThinkPHP连续签到小案例
- Maven项目mybatis Invalid bound statement (not found)解决方法
- 序列化与反序列化之Parcelable和Serializable浅析
- 谁用掉了我的数据库空间?
- android api23 抛弃了httpClient,许多基于httpClient第三方库怎么办?
- 调戏Siri,需要理由吗
- java 一键签到功能案例
- Google Protocol Buffer原理
- svn合并分支到主干(非本地work目录)
- javascript中 if(变量)和if(变量==true)的区别
- PostDirectoryFiles//HttpWebRequest,HttpWebResponse
- Android实现定时器的三种方法及详解
- 互联网让你失去自由
- java.lang.OutOfMemoryError: PermGen space
- 找到一本不错的Linux电子书,附《Linux就该这么学》章节目录。