java 一键签到功能案例
如意问题,还望各位多多指教!
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;
}
}
java 一键签到功能案例相关推荐
- java 日历签到功能_基于jquery实现日历签到功能
使用Jquery实现每日签到功能 基于jquery实现日历签到功能 jquery记事日历插件e-calendar 思路:1.获取当月第一天是周几2.获取当月共几天 通过获取下月的第0天,即是当月最后一 ...
- java 日历签到功能_Android 在日历的基础上实现签到功能
时间:2019-04-26 概述:签到 日历 这是一个APP签到功能的实例,本实例通过在日历中进行标注,实现日历签到功能.运行实例,单击"签到"按钮,会在日历中当天的位置添加&qu ...
- java 实现签到功能及数据库表设计
前言:公司积分商城增加签到功能,如下: 每次签到+1分,连续签到7天,第7天多+1分.第8天+1,连续签到7天后,再多+1分. 若每个用户每天签到数据直接累计,数据库数据将成倍增加,故每个用户只维持一 ...
- java 日历签到功能_自定义Calendar实现签到功能
前言 这篇文章没有什么可看性,主要是源码注释太多,推荐自己看源码,更容易理解些,在这里主要介绍,其运作流程,贴代码片段. 自定义View要重写三个方法:onMeasure,onLayout,onDra ...
- java积分签到功能_大河客户端积分商城上线,看新闻就能换取各种超实用奖品,来约...
大河报·大河客户端记者 段伟朵 "在大河,爱中国",读新闻攒积分即可换好礼啦!今年是新中国成立70周年,在祖国母亲生日到来之际,大河报给读者送上祝福和礼物,即日起,大河客户端积分商 ...
- java 日历签到功能_快速简单的实现在日历上签到的功能,不需要日历组件,带后端实现讲解...
原本想使用日历组件,发现太麻烦,仅仅就签到而已,把当月的日期渲染一下就可以了,样式也可以自己随便写,用日历组件还得想办法改日历组件的样式. 以下使用到了vue,vant就用了弹窗.按钮,换成其他的也行 ...
- java设计按月每天签到_java微信签到功能实现:java做的一个简易的微信签到系统的案例...
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- java设计按月每天签到_java实现app签到功能
本文实例为大家分享了java实现app签到功能的具体代码,供大家参考,具体内容如下 1.首先设计二张表,第一张表sign_calc记录用户连续签到次数,字段id,user_id,continue_da ...
最新文章
- Python运算符与Pandas方法的映射关系
- Java Thead.interrupt 方法没有使线程停止工作
- 动态嵌套游标解决方案
- Java遍历完数的一些思考
- MySQL笔记 - 用户管理
- 谷歌自动启动flash
- 直方图匹配的数学原理
- 程序员修炼之道(第2版)
- 为什么不要随便点击下载链接:过时的远程病毒灰鸽子木马示范
- 7本软书,助你打破职场天花板
- 泛微oa 明细数据合计
- Windows 10 Build 16226发布:任务管理器新增GPU追踪
- 【开源】我们和童年的距离,就是一台游戏机-用FPGA DIY一个NES游戏机
- opencv 实现 Photoshop 亮度 对比度 调节功能
- Dijkstra算法 详细讲解
- HTML 常用转义字符
- c++最佳情侣身高差(来测一测)
- 台式计算机内存条怎么装,台式电脑怎么装内存条_台式电脑加装内存条方法-win7之家...
- [论文阅读] (09)SP2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow
- python开发cms 教程_django CMS 入门教程