public function actionDelete($seed_id, $reason = "", $penalty = 0) { if (!is_numeric($penalty) || !is_numeric($seed_id)) { return ['result' => 'failed', 'extra' => 'illegal param']; } $penalty = intval($penalty); $seed_id = intval($seed_id); /** @var User $user */ $user = User::findOne(Yii::$app->user->identity->getId()); if ($user->priv != 'Admin') { return ['result' => 'failed', 'extra' => 'permission denied']; } /** @var Seed $seed */ $seed = Seed::findOne($seed_id); if (empty($seed) || !$seed->is_valid) { return ['result' => 'failed', 'extra' => 'not exists']; } $ret['result'] = 'success'; $publisher = $seed->publisher; $record = new SeedOperationRecord(); $record->admin_id = $user->user_id; $record->publisher_id = $publisher->user_id; $record->seed_id = $seed->seed_id; $record->operation_type = "DELETE"; $record->detail_info = json_encode(['penalty' => $penalty, 'reason' => $reason]); $record->insert(); $seed->is_valid = false; $seed->save(); $publisher->stat_up -= intval($penalty) * (1 << 30); $publisher->save(); $tmp = $seed->attributes; $tmp['discuz_pub_uid'] = $publisher->discuz_user_id; //查询所有下载过这个种子的人 $res = History::find()->leftJoin(User::tableName(), User::tableName() . '.user_id=' . History::tableName() . ".user_id")->where(['seed_id' => $seed->seed_id])->groupBy([History::tableName() . ".user_id", "history_id"])->all(); Yii::info($res); foreach ($res as $r) { $tmp['discuz_use_uid'][] = $r->user->discuz_user_id; } $ret['extra'] = $tmp; Yii::info($ret); return $ret; }