java微信签到功能实现,现在微信签到功能很流行,这个签到功能帮助微信用户更好的管理自己的微信公众号,那你想知道java微信签到功能如何实现呢,今天小编就特意为大家分享一个关于java微信签到功能实现:java做的一个简易的微信签到系统的案例,有兴趣的宝宝们欢迎来阅读。

java做的一个简易的微信签到系统

1.发送签到会提示你签到成功,并获得2积分

2.一天只能签到一次

3.连续一星期签到会额外送12个积分

4.可以查询你当前积分总数

部分代码:

// 保存用户信息

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个积分!"+"

签到时间为:"+str+"

本周连续7次签到,额外赠送10个积分!");

}

//每天签到送2积分

else{

MySQLUtil.saveWeixinSign(fromUserName, 2);

MySQLUtil.updateUserPoints(fromUserName, 2);

tm.setContent("签到成功!获得2积分"+"

签到时间为:"+str);

}

}else{

tm.setContent("您今日已签到,明日再来吧!");

}

}else if(content.equals("查积分")){

String signPoints=MySQLUtil.searchjifen(fromUserName);

tm.setContent("您的当前积分为:"+signPoints+"积分");

}else{tm.setContent("暂时无此服务");}

}

非常感谢大家对微微风的支持,以上介绍的java微信签到功能实现:java做的一个简易的微信签到系统希望能够对大家有帮助,更多更热门的微信素材每天都在微微风等着你。

更多推荐:

微信字 签到 java_java微信签到功能实现:java做的一个简易的微信签到系统相关推荐

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

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

  2. 微信签到 表单 mysql_java做的一个简易的微信签到系统

    1.发送签到会提示你签到成功,并获得2积分 2.一天只能签到一次 3.连续一星期签到会额外送12个积分 4.可以查询你当前积分总数 效果图:本订阅好还在完善中,可能还不能用,不久后将会一步步完善功能, ...

  3. Java一周签到一次_java做的一个简易的微信签到系统

    1.发送签到会提示你签到成功,并获得2积分 2.一天只能签到一次 3.连续一星期签到会额外送12个积分 4.可以查询你当前积分总数 效果图:本订阅好还在完善中,可能还不能用,不久后将会一步步完善功能, ...

  4. 简单java socket_基于Java Socket实现一个简易在线聊天功能(一)

    最近做了一个项目,其中有一个在线网页交流的需求,好久没写代码了,手都生疏了,于是先写demo练练手,分享到脚本之家平台,以此做个记录,方便自己和大家使用. 先给大家说下实现步骤分这样几大步: 1.使用 ...

  5. 利用java swing编写一个简易的计算器,实现了括号,优先级,三角函数,阶乘等功能

    利用java swing编写一个简易的计算器 背景 效果图 一.默认图 二.计算三角函数 三.阶乘运算 四.常见的四则运算(实现了优先级) 代码 本文借鉴了"初识Java,实现简易计算器(带 ...

  6. java实现日历对话框,JAVA做的一个钟表日历提醒等功能的系统。

    [实例简介] JAVA做的一个钟表日历提醒等功能的系统.很简单的应用希望对你有帮助 [实例截图] [核心代码] 3901295e-9086-4662-ae0c-8c3922f0a8b9 └── Dem ...

  7. 朋友圈产品文档_企业微信上线朋友圈等新功能,超250万企业接入企业微信

    12月23日,企业微信团队宣布在最新版本中升级群聊功能.开放客户朋友圈内测以及推出高效协同工具套装等重磅能力,进一步强化企业微信与微信生态互通能力. 腾讯微信事业群副总裁黄铁鸣介绍说,目前企业微信已经 ...

  8. 用java编写一个简易功能画板_用Java语言编写一个简易画板

    讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...

  9. onenetsim定位功能吗_微信小程序新增后台定位功能,你会卸载地图APP用微信导航吗...

    [PConline]8月8日,根据微信官方发布的消息显示,小程序新增后台定位功能,并对自动化测试功能进行了升级.据介绍,为了满足线路导航.路线记录等服务场景下,小程序需要长时间持续定位来提供服务.当用 ...

最新文章

  1. 【Linux】一步一步学Linux——dpkg命令(269)
  2. Android应用程序组件Content Provider在应用程序之间共享数据的原理分析(2)
  3. oracle同步恢复目录,Oracle创建恢复目录(catalog)
  4. mexw32与mexw64
  5. 编程输出2的90次方的精确值
  6. ASP.NET MVC:Razor 引入命名空间
  7. mybatis plus 入门
  8. 为什么优秀的程序员也是优秀的设计师
  9. android--------自定义控件ListView实现下拉刷新和上拉加载
  10. 阿里云服务器可以搭建游戏吗?
  11. TCL与京东方比拼技术创新,前者的发明专利首次居于领先地位
  12. c++语言如何判断奇偶数,C++ 判断奇数偶数
  13. 如何解决读写txt文件中文乱码问题
  14. O2O、C2C、B2B、B2C是什么意思 有什么区别
  15. 前端移动端刻度尺实现
  16. Spring4:AOP
  17. No Xcode or CLT version detected
  18. QQ,浏览器,还有这些版本?
  19. [ML]归纳学习与机器学习概述
  20. Nervos 双周报第 9 期:CKB Testnet 要上线?

热门文章

  1. BATCH: A Scalable Asymmetric DiscreteCross-Modal Hashing--文献翻译
  2. 浅谈IC卡与ID卡重大区别
  3. 潮起潮落,自助餐还是被“吃”垮了
  4. OpenSUSE 内核编译教程 (kernel 2.6.x)
  5. pyecharts源码解读(10)渲染包render之templates目录:渲染模板
  6. IDEA连接达梦数据库
  7. Launcher进程启动流程
  8. 通过加速度计和陀螺仪解算姿态
  9. MMA-符号学运算的奥妙
  10. BLE Mesh(六)配网流程