'ID', 'mall_id' => 'Mall ID', 'user_id' => 'User ID', 'status' => 'Status', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'score' => 'Score', ]; } /** * 分数记录 * @param int $mall_id * @param int $user_id * @param int $log_type * @return void * @throws \Exception */ public static function setData(int $mall_id, int $user_id, int $log_type) { $score = CardEnums::USER_SCORES[$log_type] ?? 0; if ($score <= 0) return; $model = BusinessCardSecretUserScore::find() ->where(['mall_id' => $mall_id]) ->andWhere(['user_id' => $user_id]) ->andWhere(['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]) ->one(); if (empty($model)) { $model = new BusinessCardSecretUserScore(); $model->mall_id = $mall_id; $model->user_id = $user_id; $model->score = 0; } $model->score = $model->score + $score; if (!$model->save()) throw new \Exception($model->getErrorMessage()); } /** * 获取用户分数 * @param int $mall_id * @param int $user_id * @return false|int|string */ public static function getScoreByUserId(int $mall_id, int $user_id) { return BusinessCardSecretUserScore::find() ->where(['mall_id' => $mall_id]) ->andWhere(['user_id' => $user_id]) ->andWhere(['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]) ->select('score')->scalar() ?? 0; } }