Java一周签到一次_java做的一个简易的微信签到系统
1.发送签到会提示你签到成功,并获得2积分
2.一天只能签到一次
3.连续一星期签到会额外送12个积分
4.可以查询你当前积分总数
效果图:本订阅好还在完善中,可能还不能用,不久后将会一步步完善功能,用于生活,到时欢迎大家关注"z植物空间z"订阅号,
部分代码:
// 保存用户信息
public static void saveWeixinUser(String openId) {
MySQLUtil mysql = new MySQLUtil();
Connection conn = mysql.getConnection();
String sql = "insert into weixin_user (open_id,subscribe_time,subscribe_status) values (?,now(),1)";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, openId);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
mysql.releaseResource(conn, ps, null);
}
}
// 更新用户总积分
public static void updateUserPoints(String openId, int signPoints) {
MySQLUtil mysql = new MySQLUtil();
Connection conn = mysql.getConnection();
String sql = "update weixin_user set points=points+? where open_id = ?";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, signPoints);
ps.setString(2, openId);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
mysql.releaseResource(conn, ps, null);
}
}
// 保存签到信息
public static void saveWeixinSign(String openId, int signPoints) {
MySQLUtil mysql = new MySQLUtil();
Connection conn = mysql.getConnection();
String sql = "insert into weixin_sign (open_id,sign_time,sign_points) values (?,now(),?)";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, openId);
ps.setInt(2, signPoints);
ps.execute();
} catch (SQLException e) {
e.printStackTrace();
} finally {
mysql.releaseResource(conn, ps, null);
}
}
//用户查积分
public static String searchjifen(String openId){
MySQLUtil mysql = new MySQLUtil();
Connection conn = mysql.getConnection();
String signPoints=null;
String sql = "select sign_Points from weixin_sign where open_id=?";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, openId);
rs = ps.executeQuery();
if(rs.next()){
signPoints=rs.getString("sign_Points");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
mysql.releaseResource(conn, ps, rs);
}
return signPoints;
}
// 判断用户今天是否签到过
public static boolean isTodaySigned(String openId) {
boolean result = false;
MySQLUtil mysql = new MySQLUtil();
Connection conn = mysql.getConnection();
ResultSet rs = null;
String sql = "SELECT count(*) as signCounts FROM weixin_sign WHERE open_id=? AND DATE_FORMAT(sign_time,‘%Y-%m-%d‘) = DATE_FORMAT(now(),‘%Y-%m-%d‘)";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, openId);
rs = ps.executeQuery();
int signCounts = 0;
if(rs.next()){
signCounts = rs.getInt("signCounts");
}
if(1 == signCounts){
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
mysql.releaseResource(conn, ps, rs);
}
return result;
}
// 判断用户本周是否第七次签到
public static boolean isSevenSign(String openId, String monday) {
boolean result = false;
MySQLUtil mysql = new MySQLUtil();
Connection conn = mysql.getConnection();
ResultSet rs = null;
String sql = "SELECT count(*) FROM weixin_sign WHERE open_id=? AND sign_time between str_to_date(‘?‘,‘%Y-%m-%d %H:%i:%s‘) and now()";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, openId);
ps.setString(2, monday);
rs = ps.executeQuery();
int signCounts = 0;
if(rs.next()){
signCounts = rs.getInt("signCounts");
}
if(6 == signCounts){
result = true;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
mysql.releaseResource(conn, ps, rs);
}
return result;
}
----------------------------------------------------------------------------------------------------------------
//将文本消息保存到数据库
if(msgType.equals(MessageUtil.REQ_MESSAGE_TYPE_TEXT)){
String content = requestMap.get("Content");
if(content.equals("签到")){
boolean result = MySQLUtil.isTodaySigned(fromUserName);
if(!result){
boolean flag = MySQLUtil.isSevenSign(fromUserName, getMondayOfThisWeek()+" 00:00:00");
//连续7天签到,送12积分
if(flag){
MySQLUtil.saveWeixinSign(fromUserName, 12);
MySQLUtil.updateUserPoints(fromUserName, 12);
tm.setContent("签到成功!获得2个积分!"+"\n签到时间为:"+str+"\n本周连续7次签到,额外赠送10个积分!");
}
//每天签到送2积分
else{
MySQLUtil.saveWeixinSign(fromUserName, 2);
MySQLUtil.updateUserPoints(fromUserName, 2);
tm.setContent("签到成功!获得2积分"+"\n签到时间为:"+str);
}
}else{
tm.setContent("您今日已签到,明日再来吧!");
}
}else if(content.equals("查积分")){
String signPoints=MySQLUtil.searchjifen(fromUserName);
tm.setContent("您的当前积分为:"+signPoints+"积分");
}else{tm.setContent("暂时无此服务");}
}
Java一周签到一次_java做的一个简易的微信签到系统相关推荐
- 微信签到 表单 mysql_java做的一个简易的微信签到系统
1.发送签到会提示你签到成功,并获得2积分 2.一天只能签到一次 3.连续一星期签到会额外送12个积分 4.可以查询你当前积分总数 效果图:本订阅好还在完善中,可能还不能用,不久后将会一步步完善功能, ...
- java设计按月每天签到_java微信签到功能实现:java做的一个简易的微信签到系统的案例...
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- arduino智能浇花系统_解放双手!自己动手做一个简易智能浇花系统
原标题:解放双手!自己动手做一个简易智能浇花系统 面对疫情,宅在家的我们可以以各种方式为战"疫"一线的医护工作者.紧急研究病毒的科研人员.口罩厂日夜工作的人们......加油打气. ...
- java 一周的第一天_Java获取某年某周的第一天
Java获取某年某周的第一天 1.设计源代码 FirstDayOfWeek.java: /** * @Title:FirstDayOfWeek.java * @Package:com.you.free ...
- java猜数游戏图形界面_Java做一个猜数的小游戏
@Author : By Runsen 效果展现 猜数字游戏是一个简单,有趣的小游戏.游戏者通过输入一个指定区间的数字,与系统产生的随机数进行对比,然后输出相应的结果. 游戏运行时产生一个0-10之间 ...
- java根据周数获取日期_java获取日期的周数和所属年份
在项目中遇到需要导出excel表格 表格的标题需要根据数据来动态获取 格式为 2017年第 50 周计划检修申报.实施确认表 获取日期所属周数 Date date = new Date( ...
- java调用包中的类_java调用另一个包中的类的方法
java调用另一个包中的类的方法 发布时间:2020-05-18 15:04:40 来源:亿速云 阅读:199 作者:小新 今天小编给大家分享的是java调用另一个包中的类的方法,相信很多人都不太了解 ...
- java达达租车接口_Java第一个项目——达达租车系统v1
父类Vehicle package com.dada; public class Vehicle { protected String name;//车辆名称 protected int price; ...
最新文章
- phpMyAdmin 4.4.0 beta1 发布,MySQL 管理工具
- Android 在 SElinux下 如何获得对一个内核节点的访问权限
- HaoheDI让ETL变得简单
- iOS 里面如何使用第三方应用程序打开自己的文件,调用wps其他应用打开当前应用里面的的ppt doc xls...
- 算法(3)--leetcode-explore-learn-数据结构-数组1
- html文本弹性,HTML5 很有趣的文本蹦床/弹性弯曲动效
- python网页提交表单_Html表单——使用python在web页面上显示用户提交的数据
- python什么是入口文件_Python注释是什么东东
- Oracle 中文转拼音
- 一、初学计算机——认识键盘布局及快捷键使用
- 数据共享,如何拆掉那些“部门的墙”?by 傅一平
- Abnova 基因 FISH 探针丨CCND1(橙色)FISH 探针
- 11年小伙被武汉大学“录取”,上学4年后蒙了,学校:没录取你啊
- 关于笔记本电脑插上网线没反应的解决方案
- java怎么计算时间差_请问java怎么计算时间差
- SNMP介绍, OID及MIB库
- PTA--基础编程题目集(7-10 计算工资) Python版
- 前端:字符串正则表达式替换
- ORB-SLAM:精确多功能单目SLAM系统
- poscms会员登录方法