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() 方法详解

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【复杂系统迁移 .NET Core平台系列】之认证和授权

源宝导读&#xff1a;微软跨平台技术框架—.NET Core已经日趋成熟&#xff0c;已经具备了支撑大型系统稳定运行的条件。本文将介绍明源云ERP平台从.NET Framework向.NET Core迁移过程中的实践经验。一、背景随着ERP的产品线越来越多&#xff0c;业务关联也日益复杂&#xff0c;…

《C++ Primer》13.1.3节练习

练习13.9: 析构函数完成与构造函数相反的工作&#xff1a;释放对象使用的资源&#xff0c;销毁非静态数据成员。从语法上看&#xff0c;它是类的一个成员函数&#xff0c;名字是波浪号接类名&#xff0c;没有返回值&#xff0c;也不接受参数。 当一个类没有定义析构函数时&…

php冒泡程序讲解,PHP冒泡排序程序代码与源代码

冒泡排序是php中众多排序中的一个最简单的排序方法了下面一聚教程小伙伴就同各位介绍一个冒泡排序的例子&#xff0c;希望能帮助到各位。冒泡排序简介&#xff1a;冒泡排序(Bubble Sort)&#xff0c;是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列&#…

.NET Core开发实战(第30课:领域事件:提升业务内聚,实现模块解耦)--学习笔记...

30 | 领域事件&#xff1a;提升业务内聚&#xff0c;实现模块解耦我们在领域的抽象层定义了领域事件和领域事件处理的接口IDomainEventnamespace GeekTime.Domain {public interface IDomainEvent : INotification{} }这是一个空接口&#xff0c;它只是标记出来某一个对象是否是…

《C++ Primer》8.1.2节练习

练习8.1: #include <iostream> #include <stdexcept> using namespace std;istream &f(istream &in) {int v;while (in >> v, !in.eof()) {if (in.bad())throw runtime_error("IO流错误");if (in.fail()) {cerr << "数据错误&…

mac升级php7,MAC更新自带php版本到7.0

说一下我最近更新mac自带php版本的经历&#xff0c;我是按照网上的教程更新的&#xff0c;主要参考的是这篇博客http://blog.csdn.net/takunha/article/details/52484769&#xff0c;通过Homebrew来安装&#xff0c;安装过程除了速度有点慢之外&#xff0c;其他都还算顺利。可装…

.NET 5 Preview 1的深度解读和跟进

这几天微软.NET 团队发布了.NET 5 Preview 1, 如约而至。很兴奋&#xff0c;因为.NET Core和.NET Framework终于实现了大一统&#xff0c;同时也很期待&#xff0c;期待.NET 5能给我们带来哪些好的新特性。让我们先把时间拨回到2019年...一、2019年.NET 5的提前剧透去年2019年 …

程序员羽化之路--假如需要一百万个对象

点击上方蓝字关注我们菜菜哥&#xff0c;救命呀又被产品经理砍了&#xff1f;这次搞不好真要被砍了&#xff0c;线上一个用户系统内存溢出了&#xff0c;占用内存太高了用户基数大&#xff0c;内存占用高正常高的不太正常了&#xff0c;我觉得可能和我的设计有关那说说你的用户…

iis php打开空白页,windows+IIS+php 访问显示空白页 php版本信息访问正常

10:48:46 A session had already been started - ignoring session_start() in E:\zentaopms\module\common\model.php on line 24 when visiting10:48:46 ERROR: 鎮ㄨ闂殑鍩熷悕 172.25.8.82:8080 娌℃湁瀵瑰簲鐨勫叕鍙搞€&#xfffd; in E:\zentaopms\module\common\mo…

《C++ Primer》8.2.1节练习(部分)

练习8.4: #include <iostream> #include <fstream> #include <string> #include <vector> using namespace std;int main() {//打开文件ifstream in("D:\\CCCCCCCCCCCCCCCCCCC\\yyhaif.txt");if (!in) {cerr << "无法打开输入文…

WTM 3.5发布,VUE来了!

千呼万唤中&#xff0c;WTM的Vue前后端分离版本终于和大家见面了&#xff0c;我曾经跟群里1000多位用户保证过Vue版本会在春天到来&#xff0c;吹过的牛逼总算是圆上了。卧槽&#xff0c;NB啊!我等到花都谢了风太大&#xff0c;吹瞎了朕的双眼我是谁&#xff0c;我在哪儿&#…

《C++ Primer》8.3.1节练习

练习8.9: #include <iostream> #include <sstream> #include <string> #include <stdexcept>using namespace std;istream &f(istream &in) {string v;while (in >> v, !in.eof())//直到遇到文件结束符才停止读取{if (in.bad())throw r…

java 第三方序列化,11.既然有第三方的序列化方式,说明java官方提供的序列化方式应该有一些很明显或者很致命的缺点……...

序列化是什么&#xff1a;把一个java对象转化为二进制对象&#xff0c;并保存到硬盘&#xff0c;或在网络上传输。反序列化就是把序列化的二进制对象读到内存中。 作用&#xff1a;1、减少内存占用或网络传输。比如web容器中的session&#xff0c;当session数量过大比如10W连接…

2020年,我来盘点下微服务架构技术栈

2020年了&#xff0c;很多小伙伴儿对微服务还比较陌生&#xff0c;说起来很多人可能不敢相信&#xff0c;其实微服务这个概念早在2012年就提出来了&#xff0c;经过了这些年的发展&#xff0c;现在已经成为企业非常主流的架构选项了。今天&#xff0c;我就来带大家一起探讨下微…

2.5w字长文爆肝 C++动态内存与智能指针一篇搞懂!太顶了!!!

动态内存与智能指针1.动态内存与智能指针2.shared_ptr类2.1.make_shared函数2.2.shared_ptr的拷贝和赋值2.3.shared_ptr自动销毁所管理的对象2.4. shared_ptr会自动释放相关联的内存2.5.使用了动态生存期的资源的类2.6.定义StrBlob类2.7. StrBlob构造函数2.8.元素访问成员函数2…

ASP.NET Core应用的7种依赖注入方式

ASP.NET Core框架中的很多核心对象都是通过依赖注入方式提供的&#xff0c;如用来对应用进行初始化的Startup对象、中间件对象&#xff0c;以及ASP.NET Core MVC应用中的Controller对象和View对象等&#xff0c;所以我们可以在定义它们的时候采用注入的形式来消费已经注册的服务…

javascript php 传值,js 传值到 PHP 有关问题

js 传值到 PHP 问题说一下我的需求&#xff1a;通过点击button的时候&#xff0c;去通过php查找指定日期的数据库当中的数据&#xff0c;function load_point(date) {// Change this depending on the name of your PHP filedownloadUrl("phpsqlajax_genxml2.php", f…

ASP.NET Core 3.x - 为什么采用新的 Endpoint Routing 路由系统

Endpoint Routing 路由系统ASP.NET Core 3.x 使用了一套叫做 Endpoint Routing 的路由系统。这套路由系统在ASP.NET Core 2.2 的时候就开始露面了。这套Endpoint Routing路由系统提供了更强大的功能和灵活性&#xff0c;以便能更好的处理请求。早期ASP.NET Core的路由系统我们先…

php 接口缓存,php写的一个缓存接口demo,兼容redis和memcache

/*** 工厂方法模式* -------------* author zhangqian* version v1.0*///缓存接口interface cache {public function init($conf);public function setVal($key , $val);public function getVal($key);public function delVal($key);public function autoIncreament($key);}//m…

《C++ Primer》10.1节练习

练习10.1: #include <iostream> #include <vector> #include <algorithm> using namespace std;int main() {vector<int>vi;int val;vi.push_back(45);vi.push_back(45);vi.push_back(45);vi.push_back(45);for (int i 1; i < 45; i) {vi.push_ba…