예제 #1
0
 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;
 }