/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = MemberStack::find()->joinWith(['member' => function ($query) { $query->from(['member' => 'member']); }])->joinWith(['stack' => function ($query) { $query->from(['stack' => 'stack']); }])->orderBy(['created_at' => SORT_DESC]); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!Yii::$app->user->identity->isAdmin()) { $this->member_id = Yii::$app->user->identity->id; } if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'member_id' => $this->member_id, 'stack_id' => $this->stack_id, 'sell_volume' => $this->sell_volume, 'lock_volume' => $this->lock_volume, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at])->andFilterWhere(['like', 'member.username', $this->membername])->andFilterWhere(['like', 'stack.code', $this->stackcode])->andFilterWhere(['like', 'stack.name', $this->stackname])->orderBy(['created_at' => SORT_DESC]); return $dataProvider; }
public static function getMemberStack($transaction, $calculeteVolume = true) { $volume = $transaction->volume; $member_id = $transaction->member_id; $stack_id = $transaction->stack_id; $model = MemberStack::find()->where(['=', 'member_id', $member_id])->andWhere(['=', 'stack_id', $stack_id])->one(); if ($model && $model->id) { if ($calculeteVolume) { if ($transaction->type === 0) { $model->lock_volume += $volume; } else { $model->lock_volume -= $volume; } } } else { if ($transaction->type === 0) { $model = new MemberStack(); $data = array('member_id' => $member_id, 'stack_id' => $stack_id, 'lock_volume' => $calculeteVolume ? $volume : 0, 'sell_volume' => 0); $model->load($data, ''); } } return $model; }
public function getMemberStack($stack_id) { return MemberStack::find()->where(['member_id' => Yii::$app->user->identity->id, 'stack_id' => $stack_id])->one(); }