当前位置:网站首页>Tp6 realize Commission ranking
Tp6 realize Commission ranking
2022-07-07 19:39:00 【Results of persistence and efforts】
Reference data ( surface )
CREATE TABLE `user_money` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`gid` int(10) DEFAULT NULL COMMENT ' goods id',
`tid` int(10) DEFAULT NULL COMMENT ' user id',
`money` int(11) DEFAULT NULL COMMENT ' commission ',
`add_time` datetime DEFAULT NULL COMMENT ' Add the time ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
Leaderboard logic code
public function rankingList($time)
{
// Connect redis
$redis = new Redis();
$redis->connect('127.0.0.1', '6379');
// Query data
$data = UserMoney::with('UserCommander')->select()->toArray();
// Array processing Cumulative Commission
$newArr = array();
foreach ($data as $v)
{
if (array_key_exists($v['tid'], $newArr))
{
$newArr[$v['tid']]['money'] += $v['money'];
}
else {
$newArr[$v['tid']] = $v;
}
}
// Add to redis Ordered set
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);
// Judge data time ranking
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;
}
边栏推荐
- 时间工具类
- R语言ggplot2可视化:使用ggpubr包的ggdensity函数可视化分组密度图、使用stat_overlay_normal_density函数为每个分组的密度图叠加正太分布曲线
- Tapdata 的 2.0 版 ,开源的 Live Data Platform 现已发布
- Flipping game (enumeration)
- Unable to link the remote redis server (solution 100%
- 网易云信参与中国信通院《实时音视频服务(RTC)基础能力要求及评估方法》标准编制...
- Matplotlib drawing 3D graphics
- Former richest man, addicted to farming
- 杰理之相同声道的耳机不允许配对【篇】
- Borui data was selected in the 2022 love analysis - Panoramic report of it operation and maintenance manufacturers
猜你喜欢
cmd命令进入MySQL时报服务名或者命令错误(傻瓜式教学)
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
Former richest man, addicted to farming
5billion, another master fund was born in Fujian
How to estimate the value of "not selling pens" Chenguang?
ASP.NET幼儿园连锁管理系统源码
The top of slashdata developer tool is up to you!!!
【牛客网刷题系列 之 Verilog进阶挑战】~ 多bit MUX同步器
Pasqal首席技术官:模拟量子计算率先为工业带来量子优势
从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
随机推荐
杰理之测试盒配置声道【篇】
网易云信参与中国信通院《实时音视频服务(RTC)基础能力要求及评估方法》标准编制...
LeetCode 515(C#)
Make insurance more "safe"! Kirin Xin'an one cloud multi-core cloud desktop won the bid of China Life Insurance, helping the innovation and development of financial and insurance information technolog
从39个kaggle竞赛中总结出来的图像分割的Tips和Tricks
[mime notes]
SlashData开发者工具榜首等你而定!!!
现在股票开户可以直接在网上开吗?安全吗。
Numpy——2. Shape of array
吞吐量Throughout
杰理之关于 TWS 交叉配对的配置【篇】
关于ssh登录时卡顿30s左右的问题调试处理
Key points of anti reptile: identifying reptiles
2022.07.05
Command mode - unity
CMD command enters MySQL times service name or command error (fool teaching)
Classification and application of enterprise MES Manufacturing Execution System
Kirin Xin'an won the bid for the new generation dispatching project of State Grid!
解决rosdep的报错问题
How to buy stocks on your mobile phone and open an account? Is it safe to open an account