exists($key)) { $admin_info = $redis->hgetall($key); } else { $db_data = $this->where(['admin_id' => $admin_id, 'business_line' => $business_line])->find(); if (!empty($db_data)) { $db_data = $db_data->toArray(); $redis->hmset($key, $db_data); $redis->expire($key, 86400); $admin_info = $db_data; } } if (!$admin_info) { $kl = new \app\main\model\object\AdminKl(); $kl->admin_id = $admin_id; $kl->business_line = $business_line; $admin_info = $kl->toArray(); $admin_info = array_merge([ 'vip_num' => 0, 'normal_num' => 0, 'is_blacklist' => 0, 'agent_vip_num' => 0, 'agent_normal_num' => 0, 'agent_is_blacklist' => 0, 'kl_rate' => 0, ], $admin_info); } return $admin_info; } /** * 更新缓存 * @param $admin_id * @param $business_line */ public function resetCache($admin_id, $business_line = PayConstants::BUSINESS_APP) { $key = implode(':', ['AdminKl', $business_line, $admin_id]); Redis::instance()->del($key); $this->getAdminKl($admin_id, $business_line); } /** * @param \app\main\model\object\AdminKl $adminKl * @return array */ public function checkExistsParams(\app\main\model\object\AdminKl $adminKl) { return [ 'admin_id' => $adminKl->admin_id, 'business_line' => $adminKl->business_line, ]; } /** * @param \app\main\model\object\AdminKl $adminKl * @return array */ public function getUpdateParams(\app\main\model\object\AdminKl $adminKl) { $update = []; foreach ($this->updateFields as $field) { if ($adminKl->{$field} !== null) { $update[$field] = $adminKl->{$field}; } } return $update; } }