日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP自动判断用户会员过期,php,_定时扣除用户过期积分,但平台用户量比较大,有没有好的解决方法?,php - phpStudy...

發布時間:2023/12/4 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP自动判断用户会员过期,php,_定时扣除用户过期积分,但平台用户量比较大,有没有好的解决方法?,php - phpStudy... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定時扣除用戶過期積分,但平臺用戶量比較大,有沒有好的解決方法?

最近網站實行用戶積分過期制度,只保留用戶近三月積分,三月前未使用積分進行扣除

但平臺用戶量比較大,感覺這樣做會出問題,有沒有好的解決方法?(windows iis服務器)

代碼如下:

ignore_user_abort();

set_time_limit(0);

do{

$this->del_score();

sleep(24*3600);

}while (true);

private function del_score()

{

$date = to_date(to_timespan(to_date(TIME_UTC)." -3 month"),'Y-m-d');

// 近三月使用積分

$user_scores = $GLOBALS['db']->getAll("SELECT user_id,sum(score) as score FROM ".DB_PREFIX."user_score_log WHERE score<0 AND create_time_ymd > '".$date."' GROUP BY user_id");

// 扣除用戶過期積分

$update_sql = "UPDATE ".DB_PREFIX."user SET score = score - CASE id ";

// 添加過期積分扣除日志

$insert_sql = "INSERT INTO ".DB_PREFIX."user (`user_id`, `score`, `account_score`, `mome`, `type`, `create_time`, `create_time_ymd`, `create_time_ym`, `create_time_y`) VALUES ";

foreach ($user_scores as $k => $v) {

// 總過期積分

$old_account_score = $GLOBALS['db']->getOne("SELECT account_score FROM ".DB_PREFIX."user_score_log WHERE user_id=".$v['user_id']." AND create_time_ymd<=".$date." ORDER BY id DESC LIMIT 1");

if($old_account_score > abs($v['score'])) // 過期積分未消費完

{

$arr[$v['user_id']] = $v['score'];

// 應扣除積分

$score = intval($account_score - abs($v['score']));

$update_sql .= sprintf("WHEN %d THEN %d ", $v['user_id'], $score);

// 賬戶現有積分

$account_score = $GLOBALS['db']->getOne("SELECT score - {$score} FROM ".DB_PREFIX."user WHERE id=".$v['user_id']);

$create_time = TIME_UTC;

$create_time_ymd = to_date(TIME_UTC,"Y-m-d");

$create_time_ym = to_date(TIME_UTC,"Ym");

$create_time_y = to_date(TIME_UTC,"Y");

$insert_sql .= "(".$v['user_id'].",-".$score.",".$account_score.",'積分到期未使用部分扣除',26,".$create_time.",'".$create_time_ymd."','".$create_time_ym."','".$create_time_y."'),";

}

continue;

}

$ids = implode(',', array_keys($arr));

$update_sql .= " END WHERE id IN ($ids)";

$insert_sql = substr($insert_sql, 0, -1);

$GLOBALS['db']->query($update_sql);

$GLOBALS['db']->query($insert_sql);

}

相關閱讀:

php-fpm 加載php.ini失敗,明明有這個配置文件的啊

rxbus連續發送消息報錯

pycharm 自動刪除行尾空格

scala的泛型類型的下界定該如何理解》》

fs.writeFile 的問題 node 并發問題

vue的ui框架除了VUX用的比較多,還有什么UI是比較好的?

spring-data-mongo的mongoTemplate在spring的taskExecutor中異步執行異常

apacheds添加攔截器

esxi 6.5 虛擬內存如何設置?

大部分數據沒有行溢出的text字段是否需要拆表

前后端是如何進行協作交互的?

python 模擬操作 如何判斷某個窗口是否隱藏在托盤,如何最大化,最小化?

Django框架下如何實現非法登錄次數限制的功能?

transition 設置動畫是,用calss正常。用id 就沒有動畫,為什么?

請問jq有哪些方法檢測一個元素里面是否含有指定的元素

vuex組件里打印this.$store.state為undefined,求解?

mysql如何優化這條更新語句?

前端模塊化開發遇到的問題,zepto引入報錯

整數0賦值給字符型變量,再以整型輸出的結果為什么會出現48?【HDO 1002 A + B Problem II】

connection.ops.date_trunc_sql() 方法詳解

總結

以上是生活随笔為你收集整理的PHP自动判断用户会员过期,php,_定时扣除用户过期积分,但平台用户量比较大,有没有好的解决方法?,php - phpStudy...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。