查看: 59|回复: 0

分享个帝国CMS函数,会员发布数量统计爽得不要不要的

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式

分享个帝国CMS函数,会员发布数量统计爽得不要不要的undefined都认为小编长期灌水。都没有来点实际的,现在现在小编分享个自定义函数,会员发布数量统计爽得不要不要的。代码如下
  1. function get_user_article_stat($uid, $type = 'all', $cache_ttl =3600*24*1){
  2. global $dbtbpre;
  3. $userid = intval($uid);$sql = '';
  4. switch ($type) {
  5. case 'month': //近30天投稿数
  6. $first_days_ago = strtotime(date('Y-m-d 00:00:00') . ' -30 days');//最近30天
  7. $sql = "select count(*) as total from {$dbtbpre}ecms_article where userid='$userid' and ismember=1 and newstime>$first_days_ago";
  8. break;
  9. case 'mqiandao': //本月签到数(自然月)
  10. $month_start = strtotime(date('Y-m-01', time()) . ' 00:00:00'); // 获取当前月份的第一天(00:00:00)的UNIX时间戳
  11. $end = time();
  12. $sql = "select sum(qdcs) as total from {$dbtbpre}enewsmemberqiandao where userid='$userid' and time >= {$month_start} and time <= {$end}";
  13. break;
  14. case 'all': //总投稿数
  15. $sql = "select count(*) as total from {$dbtbpre}ecms_article where userid='$userid' and ismember=1";
  16. break;
  17. case 'qiandao': //总签到数
  18. $sql = "select sum(qdcs) as total from {$dbtbpre}enewsmemberqiandao where userid='$userid'";
  19. break;
  20. case 'allmoney': //总消费金额(自己)
  21. $sql = "select sum(money) as total from {$dbtbpre}enewspayrecord where status=1 and userid='$userid'";
  22. break;
  23. case 'allorder': //总订单数(自己)
  24. $sql = "select count(*) as total from {$dbtbpre}enewspayrecord where status=1 and userid='$userid'";
  25. break;
  26. case 'allallmoney': //总消费金额(全站)
  27. $sql = "select sum(money) as total from {$dbtbpre}enewspayrecord where status=1";
  28. break;
  29. case 'allallorder': //总订单数(全站)
  30. $sql = "select count(*) as total from {$dbtbpre}enewspayrecord where status=1";
  31. break;
  32. case 'plall': //总评论数
  33. $sql = "select count(*) as total from {$dbtbpre}enewspl_1 where userid='$userid'";
  34. break;
  35. case 'websiteeditor': //审稿编辑名
  36. $sql = "select username from {$dbtbpre}enewsuser where userid='$userid'";
  37. break;
  38. case 'todayonlinetime': //今日在线时长
  39. $today_date = date('Y-m-d', time());
  40. $sql = "select total_online_time from {$dbtbpre}user_total_online where userid = '$userid' and record_date = '$today_date' limit 1";
  41. break;
  42. case 'totalonlinetime': //在线总时长
  43. $sql = "select sum(total_online_time) as total from {$dbtbpre}user_total_online where userid = '$userid'";
  44. break;
  45. case 'myaiask': //我的AI提问总数
  46. $sql = "select count(*) as total from {$dbtbpre}chatgpt_list where userid='$userid'";
  47. break;
  48. case 'myredbaoinfo': //发送红包总数
  49. $sql = "select count(*) as total from {$dbtbpre}hongbao_info where sender_userid='$userid'";
  50. break;
  51. case 'myredbaohistory': //领取红包总数
  52. $sql = "select count(*) as total from {$dbtbpre}hongbao_history where receiver_userid='$userid'";
  53. break;
  54. case 'mydanmu': //我的弹幕总数
  55. $sql = "select count(*) as total from {$dbtbpre}danmaku_list where userid='$userid'";
  56. break;
  57. case 'myjiangall': //我抽奖总数
  58. $sql = "select count(*) as total from {$dbtbpre}dazhuanpan_list where userid='$userid'";
  59. break;
  60. case 'myjiangallzj': //我中奖总数
  61. $sql = "select count(*) as total from {$dbtbpre}dazhuanpan_list where userid='$userid' and jiangstatus=1";
  62. break;
  63. case 'mydashangfen': //我打赏总数
  64. $sql = "select count(*) as total from {$dbtbpre}ecmsshop_dasang where userid='$userid'";
  65. break;
  66. default:
  67. return [];
  68. }
  69. if ($type === 'websiteeditor') {
  70. $row = fetch_memcache_cache($sql,'redis','userinfocount‌',$cache_ttl,true);
  71. } else {
  72. $row = fetch_memcache_cache($sql,'memcached','userinfocount‌',$cache_ttl,true);
  73. }
  74. return (is_array($row) && isset($row[0])) ? $row[0] : [];
  75. }
复制代码
注释得明明白白的!看懂了吧!方便吧!(本函数已经生产用于文韵坊阅读网几年稳稳的)只能说明会员调用发布数量统计爽得不要不要的,一个字爽,两个字很爽,三个字非常爽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖
关注公众号
返回顶部