makeUpdateBikesProfitLock($yesterday); if($lock){ // $order = Order::query()->where('status', Order::STATUS_COMPLETE_ORDER) ->with(['bikes']) ->where('pay_time', '>', $yesterday) ->where('pay_time', '<', $today) ->groupBy(['bike_id']) ->select('bike_id', DB::raw('sum(pay_money) as total_sum')) ->orderByDesc('total_sum') ->get(); if(!empty($order)){ foreach ($order as $v){ Bike::query()->where('id',$v->bike_id)->increment('total_money',$v->total_sum); } } $order_rent = OrderRent::query()->where('status', OrderRent::STATUS_COMPLETE_ORDER) ->with(['bikes']) ->where('pay_time', '>', $yesterday) ->where('pay_time', '<', $today) ->groupBy(['bike_id']) ->select('bike_id', DB::raw('sum(order_total_money) as total_sum')) ->orderByDesc('total_sum') ->get(); if(!empty($order_rent)){ foreach ($order_rent as $v){ Bike::query()->where('id',$v->bike_id)->increment('total_money',$v->total_sum); } } }else{ Log::error('已执行过更新昨日车辆总收益'); } } public function makeUpdateBikesProfitLock($yesterday) { $key = sprintf(RedisKeys::LOCK_EVERYDAY_UPDATE_BIKES_PROFIT_DAY, $yesterday); $res = app()->redis->incr($key); app()->redis->Expire($key, RedisKeys::LOCK_EVERYDAY_UPDATE_BIKES_PROFIT_DAY_EXPRIRE); return $res > 1 ? false : true; } }