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("暂时无此服务");}
}

时间: 2024-12-19 23:31:10

java做的一个简易的微信签到系统的相关文章

我用JAVA做了个简易图像相似度计算器

简单说两句: 笔主利用这个七夕前后两天的寂寞时光,用JAVA磨了一个简单的图像相似度计算小程序,就在刚才终于纠结完毕,输出了1.0版本,小小的满足了一下可怜的虚荣心..→_→ 原理是使用最简单最基础的感知哈希算法,算法原理戳这里,绝对比笔主讲的要好: http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html UI设计图: 实际运行效果图: 关键算法: 1 // 全流程 2 public static

用Java语言编写一个简易画板

讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目需要满足怎样的需求. 那么,画板需要满足怎样的需要呢?换句话说,在画板上,我们应该赋予它什么功能呢?从我们熟悉的画板来看,我们需要实现诸如铅笔.橡皮.喷枪.刷子的功能,我们可以画出一些规则的图形,比如直线.矩形.圆.最好我们还能调整画笔的颜色和粗细.以上,我们希望的是,当我们点击一个按钮的时候,我们

用JAVAFX做的一个简易复读机~送给亲爱的老婆~

有段时间没有写博客了,原因一个是最近工作很忙,各种出差,一个是去年就答应老婆给她做一个简易的复读机,用来学习英语的,要求是本地的,具备最基本的AB复读和最近几秒的复读.其实去年就默默的研究过一段时间,先后尝试过JMF还有JAVA SOUND,无奈实在是不好用...不好用就算了,java sound感觉都完不成这些功能...结果最近无意中看到JDK1.8集成了JAVAFX,应该是oracle试图改善SWING的恶劣形象吧...别的没有研究,至少在音频播放这块,已经功能很强大了.所以短短续续做了2个

使用新浪云 Java 环境搭建一个简单的微信处理后台

前一段时间,写了一篇在新浪云上搭建自己的网站的教程,通过简单构建了一个 maven 的项目,展示部署的整个流程,具体的操作可以参看这里. 新浪云服务器除了可以搭建自己的网站以外,也非常的适合作为微信公众号回调地址来使用(熟悉微信公众号开发的朋友可能已经了解了,如果不太清楚请参看微信公众平台),微信公众号的开发需要一个公网可以访问的服务器,用于处理消息的 token 的验证,以及自身业务的定制开发.在这里,写了一些简单操作的例子,给大家参考. 准备 开发微信公众号首先要申请自己的公众号,或者获得相

jsp做的一个简易留言板功能

1.先登录才能留言 2.可以留言 3.可以回复 4.自己写的留言可以自己删除 5.留言进行分页显示,避免留言只能显示一部分 1.登录后会有 2.写留言 提交按钮在你没写东西前是不能提交的,用了onkeyup()方法 提交后马上显示在留言列表,ajax技术 相关代码: function sendtext(){ var text1=form1.textfield.value; if(text1!=""){ createRequest1("insert1.jsp?textfield

做了一个简易的git 代码自动部署脚本

项目是THINKPHP写的 用了 oschina git 进行版本管理. 公网服务器是CentOS.每次用FTP上传很麻烦. 所以想到了在服务器上安装一个GIT进行 pull代码.因为我的远程服务器数据库和本地不一样,所以代码pull后还需要修改 几个config.php数据库配置文件. 所以想再git 代码更新后,要自动执行config.php文件的替换或者修改. 其中看到这里讨论http://www.v2ex.com/t/81173  git hook 然后看了下比较麻烦.也看不懂. 所以就

java做的一个xml转Excel工具,基于maven工程

说明:适合数据库导出为xml时转成Excel 本工具将上传至GitHub:https://github.com/xiaostudy/xiaostudyAPI3 doc4j的maven依赖 1 <!--xml解析的dom4j--> 2 <!-- https://mvnrepository.com/artifact/dom4j/dom4j --> 3 <dependency> 4 <groupId>dom4j</groupId> 5 <arti

基于原生的 html css js php ajax做的一个 web登录和注册系统

完整代码下载: 百度网盘地址 https://pan.baidu.com/s/1qFsRoODkccF1VkEsGLsQTw 提取码 :p4zr 永久有效 有疑问可以给我发邮件:[email protected] || [email protected] 1 注册页面 2 登录页面 3 登录成功主页 原文地址:https://www.cnblogs.com/weihexinCode/p/12340033.html

夏日葵电商:了解这些,让你的微信分销系统更强大

夏日葵电商:了解这些,让你的微信分销系统更强大 随着网购的不断普及,很多传统企业都开始转向互联网销售,其中微信分销系统是经常被选择的对象.但是你真的知道微信分销系统的可以做什么不可以做什么?今天就让夏日葵电商为你总结一下. 微信分销系统不可以做的: ①不可以全部照搬他人的模式.微信分销系统不一定具有普适性,适合其他企业的不一定就适合本企业,要从实际出发,具体问题具体分析. ②不可以盲目走促销模式.不停的做促销似乎已经是现在电商行业的一种普遍现象了,一味的追求销量而不考虑成本问题是行不通的,关键还