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

作者:鱼爪创媒网 点击:254 发布时间:2022-01-14

  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做的一个简易的微信签到系统希望能够对大家有帮助,更多更热门的微信素材每天都在鱼爪创媒等着你。

  更多推荐:

  微信公众号的原创标签怎么用?

  微信公众号怎么对图文进行分类?

  微信公众号多了一个标签功能?标签功能是怎么样的?

鱼爪创媒是一家专业提供公众号交易、公众号迁移、公众号增粉、公众号买卖交易的平台,如果您有这方面的需求,欢迎电话咨询:13018202357。有任何疑问,可以 【立即咨询】 我们平台的客服或者添加微信号 【13018202357】 。此文章来源于网络,如有侵权,请联系删除

标签:

资金保障

提供买卖双方资金担保交易
更放心

法律保障

交易签订具有法律效益合同
提供法律支持

急速退款

专属资金通道,快速拿到
钱款

全资公司

全资控股公司,大平台交易
有保障

服务优质

3500+专业团队,为您提供24
小时一对一贴心服务