当前位置:网站首页>tp6 实现佣金排行榜
tp6 实现佣金排行榜
2022-07-07 17:29:00 【坚持与努力的成果】
参考数据(表)
CREATE TABLE `user_money` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gid` int(10) DEFAULT NULL COMMENT '商品id',
`tid` int(10) DEFAULT NULL COMMENT '用户id',
`money` int(11) DEFAULT NULL COMMENT '佣金',
`add_time` datetime DEFAULT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
排行榜逻辑代码
public function rankingList($time)
{
//连接redis
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
//查询数据
$data = UserMoney::with('UserCommander')->select()->toArray();
//数组处理 累加佣金
$newArr = array();
foreach ($data as $v)
{
if (array_key_exists($v['tid'], $newArr))
{
$newArr[$v['tid']]['money'] += $v['money'];
}
else {
$newArr[$v['tid']] = $v;
}
}
//添加到redis有序集合
foreach ($data as $k =>$v)
{
$redis->zincrby('tag1',$v['money'],$v['tid']);
}
$data = $redis->zrevrange('tag1', 0, -1);
$ids = implode(',', $data);
$score = $redis->zRevRange('tag1', 0, -1, true);
//判断数据时间排行
if(!empty($time))
{
$data = UserMoney::with('UserCommander')->whereTime('add_time',$time)->whereIn('tid', $data)->order(Db::raw("FIELD(tid,$ids)"))->select()->toArray();
$newArr = array();
foreach ($data as $v)
{
if (array_key_exists($v['tid'], $newArr))
{
$newArr[$v['tid']]['money'] += $v['money'];
}
else {
$newArr[$v['tid']] = $v;
}
}
}else{
$data = UserMoney::whereIn('tid', $data)->order(Db::raw("FIELD(tid,$ids)"))->select()->toArray();
$newArr = array();
foreach ($data as $v)
{
if (array_key_exists($v['tid'], $newArr))
{
$newArr[$v['tid']]['money'] += $v['money'];
}
else {
$newArr[$v['tid']] = $v;
}
}
}
$res = [];
foreach ($newArr as $key => $val) {
$res[] = [
'tid' => $val['tid'],
'money' => $val['money'],
'id' => $val['id'],
'name' => $val['UserCommander']['name'],
];
}
return $res;
}
边栏推荐
- Experiment 1 of Compilation Principle: automatic implementation of lexical analyzer (Lex lexical analysis)
- How to estimate the value of "not selling pens" Chenguang?
- 鸿蒙智能家居【1.0】
- 索引总结(突击版本)
- [Base64 notes] [suggestions collection]
- Tips and tricks of image segmentation summarized from 39 Kabul competitions
- 【Base64笔记】「建议收藏」
- Matplotlib drawing 3D graphics
- 2022.07.02
- How to share the same storage among multiple kubernetes clusters
猜你喜欢
J ü rgen schmidhub reviews the 25th anniversary of LSTM papers: long short term memory All computable metaverses. Hierarchical reinforcement learning (RL). Meta-RL. Abstractions in generative adversar
Experiment 1 of Compilation Principle: automatic implementation of lexical analyzer (Lex lexical analysis)
转置卷积理论解释(输入输出大小分析)
杰理之关于 TWS 配对方式配置【篇】
从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
PMP每日一练 | 考试不迷路-7.7
State mode - Unity (finite state machine)
[information security laws and regulations] review
Empowering smart power construction | Kirin Xin'an high availability cluster management system to ensure the continuity of users' key businesses
Jürgen Schmidhuber回顾LSTM论文等发表25周年:Long Short-Term Memory. All computable metaverses. Hierarchical reinforcement learning (RL). Meta-RL. Abstractions in generative adversarial RL. Soccer learn
随机推荐
R语言ggplot2可视化:使用ggpubr包的ggviolin函数可视化小提琴图、设置palette参数自定义不同水平小提琴图的填充色、add参数在小提琴图添加箱图
CMD command enters MySQL times service name or command error (fool teaching)
实训九 网络服务的基本配置
648. 单词替换
Initial experience of cache and ehcache "suggestions collection"
How much does it cost to develop a small program mall?
MySQL、sqlserver oracle数据库连接方式
【RT-Thread env 工具安装】
Tips and tricks of image segmentation summarized from 39 Kabul competitions
Seize Jay Chou
编译原理 实验一:词法分析器的自动实现(Lex词法分析)
杰理之手动配对方式【篇】
[tpm2.0 principle and Application guide] Chapter 9, 10 and 11
位运算介绍
浏览积分设置的目的
Uvalive – 4621 CAV greed + analysis "suggestions collection"
5billion, another master fund was born in Fujian
[information security laws and regulations] review
ASP.NET幼儿园连锁管理系统源码
爬虫实战(七):爬王者英雄图片