「java积分签到」积分商城签到
今天给各位分享java积分签到的知识,其中也会对积分商城签到进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java代码怎么实现连续签到和积分增加 积分等级功能
- 2、求救,JAVA大神,请教这个程序该怎么写
- 3、用Java写一个签到功能,每天签到送积分10,连续签到7天额外送25积分,如何知道连续签到7天!
- 4、如何实现一个签到的逻辑
java代码怎么实现连续签到和积分增加 积分等级功能
把签到信息存到一个签到表里,签到表关联用户ID,有签到日期,每天的签到就是一条记录,积分挂在用户信息表中,再来个积分日志表,积分发生变动就记录进去,比如获得积分或花了积分了。积分等级想复杂点了就来个积分等级表,里面存的是规则,想简单了就在积分余额字段后面再加个字段标记当前积分等级,甚至在前端当场计算都行
求救,JAVA大神,请教这个程序该怎么写
1.定义bean
public class Checkin {
private String optsn;//流水号
private String userid;//积分
private String addpoint;//一次添加值
private String curpoint;//当前积分
private String efftime;//生效时间
private String expirytime;//失效时间
private String type;//是否签到
private String remark; //备注 经验获取方式(初始化,一次签到成功、连续签到成功)
//省略get、set
}
2.设置初始化时静态数据
public class StaticUtil {
public static String CONFIG = "积分获取规则";
public static String POINTACQSTATICCONFIG = "pointrule";
public static String POINTACQINIT = "初始化";
public static String POINTCHECKIN = "一次签到";
public static String POINTCHECKINS = "连续签到";
}
3.实现类
public class checkinService{
/**
* 实现签到
* 一次签到: 签到成功, 将签到状态修改成功
*
* @param userPoint
* @return
*/
public ReturnValueDomainString add(Checkin checkin ) {
ReturnValueDomainString ret = new ReturnValueDomainString();
try {
StringBuffer sql = new StringBuffer(
"INSERT INTO tb_userpoint (……)");
sql.append(" VALUES (……)");
//生成流水号
logger.info("签到成功SQL"+sql.toString());
this.jdbcTemplate.update(sql.toString(), answer);
//签到,增加积分
String addpoint = jdbcTemplate.queryForObject(" select * from AA a ,BB b " +"where a.type='"+StaticUtil.POINTCONFIG+"' and b.attrname='"+StaticUtil.POINTCHECKIN+"' ", new HashMapString,String(), String.class);
sql.setLength(0);
Checkin checkin= new Checkin ();
this.jdbcTemplate.update(sql.toString(),uptrace);
//修改个人的积分值
this.jdbcTemplate.update(" update tb_aqzw_usermessage set point=point+:addpoint where userid=:userid", uptrace);
/**
* 下面的sql, 如果是执行条数为 1条, 如果不是执行条数 为0 条
*/
MapString,String checkinmap = new HashMapString,String();
ataskmap.put("questionid", answer.getQuestionid());
sql.setLength(0);
sql.append(" update tb_checkin set type='1', expirytime=now() where 条件");
// logger.info("--"+sql.toString());
this.jdbcTemplate.update(sql.toString(), ataskmap);
} catch (Exception e) {
logger.error("签到失败:" + e.getMessage());
return ret.setFail("签到失败,请联系管理员");
}
return ret.setSuccess("签到成功!");
}
}
注: 伪代码,只提供参考!!
用Java写一个签到功能,每天签到送积分10,连续签到7天额外送25积分,如何知道连续签到7天!
签到的时候,把这7天的签到记录查出来,只要全部都签到了,就再加25积分
不过循环遍历时候要判断是不是一天内重复的记录
最后统计少了一条签到记录就不算
sql大概可以这么统计吧,查询七天内的签到记录以签到时间的年月日格式分组(不太懂mysql,大概意思意思)
select count(1) from xxxxxxx where signin_time= date_add(now(), interval 6 day) group by date_format(signi_time,'%Y%m%d');
如何实现一个签到的逻辑
点击签到,如果当天已经签过到了,提示已经签过到了;如果从来没有签过到,插入数据,把积分设置为1,连续签到次数设置为1,
最后修改时间设置为当天,历史为1;如果今天没有签过到,首先计算出有多少天没签到了,如果是昨天签了的,连续签到次数加1,
历史左移一位,积分按照积分规则加上;如果超过两天没有签到,连续签到次数设置为1,历史左移天数位,积分加上签到单次的积分
,时间为当前的修改时间;
或者是这样:
建一个签到数据表,两列,一列日期,一列用户外键。点击签到触发controller,存入签到表。为了方便记录连续签到情况,可以建
一个计数表,一列用户外键,一列签到计数,连续签到时加1,断签了就归1。
java积分签到的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于积分商城签到、java积分签到的信息别忘了在本站进行查找喔。
发布于:2022-12-12,除非注明,否则均为
原创文章,转载请注明出处。