微信签到 表单 mysql_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("暂时无此服务");}
}
微信签到 表单 mysql_java做的一个简易的微信签到系统相关推荐
- 微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- java设计按月每天签到_java微信签到功能实现:java做的一个简易的微信签到系统的案例...
java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现 ...
- Java一周签到一次_java做的一个简易的微信签到系统
1.发送签到会提示你签到成功,并获得2积分 2.一天只能签到一次 3.连续一星期签到会额外送12个积分 4.可以查询你当前积分总数 效果图:本订阅好还在完善中,可能还不能用,不久后将会一步步完善功能, ...
- 微信公众号里如何上传html,微信公众号怎么做表单,微信万能表单如何添加到公众号里...
微信的使用占据着大众的日常,而微信上的一些订单.预约.登记.投诉.反馈等功能都可以使用微信万能表单来实现,那么微信万能表单怎么做?下文带来微信公众号表单制作方法,方法很简单,需要的朋友一起看看吧. 微 ...
- arduino智能浇花系统_解放双手!自己动手做一个简易智能浇花系统
原标题:解放双手!自己动手做一个简易智能浇花系统 面对疫情,宅在家的我们可以以各种方式为战"疫"一线的医护工作者.紧急研究病毒的科研人员.口罩厂日夜工作的人们......加油打气. ...
- 搭建一个简易的医疗导诊系统
这里我们来介绍一个简易的医疗导诊系统,基于我们产品有五大测量的功能:心电,血氧,血压,血糖和体脂.这个医疗导诊系统主要是通过用户描述的一些症状来判断用户可能的指标异常,然后引导用户进行相关指标的测量, ...
- [单片机框架] [kv_sys] 实现一个简易KV键值系统(最终版)
[单片机框架] [kv_sys] 实现一个简易KV键值系统 [单片机框架] [kv_sys] 实现一个简易KV键值系统(升级版) 本版本改为数据任意长度,灵活性更高. 版本 Code byte RO ...
- [单片机框架] [kv_sys] 实现一个简易KV键值系统(升级版)
[单片机框架] [kv_sys] 实现一个简易KV键值系统 Env 小型KV数据库,支持 写平衡(磨损平衡) 及掉电保护模式 让Flash变为NoSQL(非关系型数据库)模型的小型键值(Key-Val ...
- 表单源码php,PHP微信表单源码解密开源版 微擎原版功能模块 多功能表单 微信万能表单2.8WEUI高级版...
本模块主要用于实现各行业的报名.预约.加盟申请.调查等应用在微信端的实现,支持创建N个表单主题,每个表单主题功能设置均独立. 01.自定义表单模型(自定义字段支持字符串.数字.单选.多选.下拉.日历. ...
最新文章
- 神经网络相关名词解释
- 多线程执行CPU过高问题
- 将虚拟主机加入到netskills.net域环境_网站建设阿里云虚拟主机、ECS服务器、企业邮箱选择购买指南...
- sscanf与正则表达式
- python2d 平滑插值处理_python中平滑的、通用的2D线性插值
- 小米动态图标+android实现,创新设计动态图标
- 软件测试自学教程——书籍教程篇
- 一个案例入门tableau——NBA球队数据可视化实战解析
- 计算机朝微型化网络化发展例子,收集计算机朝微型化,网络化,智能化和多功能化发展的例子...
- Java中文英文数字混合掩码_Java8 中文教程
- 【华为OJ】【MML命令执行结果查询】
- nextdate函数 c语言,NextDate函数包含3个变量month,day和year,函数的输出为输入日期后一天日期.要求month,day和year满足下列...
- TSU-求最大最小数
- matlab 与 mathmatica 编程对比(Vyi个人学习笔记)
- 2019暑假牛客多校赛第九场H.Cutting Bamboos (主席树+二分)
- js中关于字符串操作的命令
- 如何记住OSI七层协议模型,脑洞大开有木有?
- 深度学习与自然语言处理实验——中文信息熵的计算
- 《F4+2—团队项目设计完善编码测试》
- Podman 在 Rootless 环境中的基本设置和使用