如意问题,还望各位多多指教!

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 一键签到功能案例相关推荐

  1. java 日历签到功能_基于jquery实现日历签到功能

    使用Jquery实现每日签到功能 基于jquery实现日历签到功能 jquery记事日历插件e-calendar 思路:1.获取当月第一天是周几2.获取当月共几天 通过获取下月的第0天,即是当月最后一 ...

  2. java 日历签到功能_Android 在日历的基础上实现签到功能

    时间:2019-04-26 概述:签到 日历 这是一个APP签到功能的实例,本实例通过在日历中进行标注,实现日历签到功能.运行实例,单击"签到"按钮,会在日历中当天的位置添加&qu ...

  3. java 实现签到功能及数据库表设计

    前言:公司积分商城增加签到功能,如下: 每次签到+1分,连续签到7天,第7天多+1分.第8天+1,连续签到7天后,再多+1分. 若每个用户每天签到数据直接累计,数据库数据将成倍增加,故每个用户只维持一 ...

  4. java 日历签到功能_自定义Calendar实现签到功能

    前言 这篇文章没有什么可看性,主要是源码注释太多,推荐自己看源码,更容易理解些,在这里主要介绍,其运作流程,贴代码片段. 自定义View要重写三个方法:onMeasure,onLayout,onDra ...

  5. java积分签到功能_大河客户端积分商城上线,看新闻就能换取各种超实用奖品,来约...

    大河报·大河客户端记者 段伟朵 "在大河,爱中国",读新闻攒积分即可换好礼啦!今年是新中国成立70周年,在祖国母亲生日到来之际,大河报给读者送上祝福和礼物,即日起,大河客户端积分商 ...

  6. java 日历签到功能_快速简单的实现在日历上签到的功能,不需要日历组件,带后端实现讲解...

    原本想使用日历组件,发现太麻烦,仅仅就签到而已,把当月的日期渲染一下就可以了,样式也可以自己随便写,用日历组件还得想办法改日历组件的样式. 以下使用到了vue,vant就用了弹窗.按钮,换成其他的也行 ...

  7. java设计按月每天签到_java微信签到功能实现:java做的一个简易的微信签到系统的案例...

    java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...

  8. 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统

    java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...

  9. java设计按月每天签到_java实现app签到功能

    本文实例为大家分享了java实现app签到功能的具体代码,供大家参考,具体内容如下 1.首先设计二张表,第一张表sign_calc记录用户连续签到次数,字段id,user_id,continue_da ...

最新文章

  1. Python运算符与Pandas方法的映射关系
  2. Java Thead.interrupt 方法没有使线程停止工作
  3. 动态嵌套游标解决方案
  4. Java遍历完数的一些思考
  5. MySQL笔记 - 用户管理
  6. 谷歌自动启动flash
  7. 直方图匹配的数学原理
  8. 程序员修炼之道(第2版)
  9. 为什么不要随便点击下载链接:过时的远程病毒灰鸽子木马示范
  10. 7本软书,助你打破职场天花板
  11. 泛微oa 明细数据合计
  12. Windows 10 Build 16226发布:任务管理器新增GPU追踪
  13. 【开源】我们和童年的距离,就是一台游戏机-用FPGA DIY一个NES游戏机
  14. opencv 实现 Photoshop 亮度 对比度 调节功能
  15. Dijkstra算法 详细讲解
  16. HTML 常用转义字符
  17. c++最佳情侣身高差(来测一测)
  18. 台式计算机内存条怎么装,台式电脑怎么装内存条_台式电脑加装内存条方法-win7之家...
  19. [论文阅读] (09)SP2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow
  20. python开发cms 教程_django CMS 入门教程

热门文章

  1. SQL Server索引的创建与维护
  2. 盘点移动办公的2018:连接、推进与动能
  3. hanbot正版多少一个月_hanbot使用教程
  4. Shell简单编程实例
  5. CAD版本转换器怎么设置输出格式
  6. python镜像站点
  7. CentOS6 NFS安装与配置
  8. Hibernate 之主键生成策略
  9. 用vegas制作美美哒写真相册——教程
  10. 如何设置敬业签定时提醒待办事项?