// 获取100条数据
$list = $redis->lrange($key, 0, 100); //myvar_dump($list);
// 开始redis事务
$redis->multi();
Db::startTrans();
try {
// 从list表头取出佣金订单,开始给用户增加佣金
foreach ($list as $k=>$v){
$data = json_decode($v, true);
if (!$data) {
continue;
}
$confirmTime = strtotime($data['confirm_time']);
if (!$confirmTime) {
continue;
}
// 如果不是待转账状态,或者确认收货后未满7天
$offsetDay = (time() - $confirmTime) / 3600 / 24;
if ($data['status'] > 0 || $offsetDay < 6) {
continue;
}
// 用到的字段
$oid = $data['id']; // 佣金订单ID
$userid = $data['parent_user_id']; // 收款人ID
$money = $data['real_yongjin']; // 收款金额
// 执行增加佣金
Db::execute('update user_user set yongjin_money=yongjin_money +? where user_id =?',
[$money, $userid]);
// 执行变更佣金订单的状态
Db::execute('update yongjin_order set status =1 where id=?', [$oid]);
// 删除表头的数据
$redis->lPop($key);
}
// 提交redis事务
$redis->exec();
Db::commit();
} catch (\Exception $e) {
// redis事务回滚
$redis->discard();
Db::rollback();
Log::error($e->getMessage());
}
redis事务
最新推荐文章于 2022-05-10 15:55:34 发布