同学们,打卡程序有不少缺陷,导致很多同学没有拿到应有的薪酬。怎么办?
先看看打卡的好处,每天奖励分数为 1+ 2n,其中n为连续打卡天数,那么连续打卡N天会得多少金币呢?
金币数=[ix]\sum_{n=1}^N (1+2n) = (2+N)N[/ix]
如果连续打卡365天,那么.....
所以,我们必须修正这个打卡程序,使之公平、公正、正确,我翻出其确定连续打卡天数的PHP代码(系统数据库为MySQL),如下:
(不会PHP但学过计算机编程的同学只要记住PHP语言的变量名是 $后面接ID即可)
function fetch_by_uid($uid){
return DB :: result_first("select count(*) from DAKATABLE where uid=$uid and curdate()=FROM_UNIXTIME(timestamp,'%Y-%m-%d')");
}
function fetch_by_uid_yesterday($uid,$mytime){
return DB :: result_first("select alldays from DAKATABLE where uid=$uid and FROM_UNIXTIME(timestamp,'%Y-%m-%d')='" . $mytime . "'");
}
$check = fetch_by_uid($uid);
if (!$check) {
$timestamp = $_G['timestamp'];
$jljifen = $config['jljifen'];
$zhouqi = $config['zhouqi'];
$beishu = $config['beishu'];
$mytime = $timestamp-86400;
$mytime = date('Y-m-d', $mytime);
$alldays = fetch_by_uid_yesterday($uid,$mytime);
$countday=intval($alldays+1);
if (!$alldays || ($alldays == $zhouqi&&$zhouqi)) {
$alldays = 0;
}
$jljifen1 = ($alldays + 1) * $beishu + $jljifen;
$money=intval($jljifen1);
$creditname = $_G['setting']['extcredits'][$config['leixing']]['title'];
$jljifen2 = $jljifen1 . $creditname;
$leixing = 'extcredits' . $config['leixing'];
updatemembercount($uid , array($leixing => $jljifen1));
$myall = $alldays + 1;
$mall = ($myall + 1) * $beishu + $jljifen;
$mall .= $creditname;
$record = array('uid' => $uid, 'timestamp' => $timestamp, 'jinbi' => $jljifen1, 'alldays' => $myall);
DB :: insert('DAKATABLE', $record);