/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Coupon::find(); $query->orderBy(['created_at' => SORT_DESC]); $dataProvider = new ActiveDataProvider(['query' => $query]); if ($this->load($params) && !$this->validate()) { return $dataProvider; } $query->andFilterWhere(['id' => $this->id, 'user_id' => $this->user_id, 'coupon_type_id' => $this->coupon_type_id, 'money' => $this->money, 'min_amount' => $this->min_amount, 'started_at' => $this->started_at, 'ended_at' => $this->ended_at, 'order_id' => $this->order_id, 'used_at' => $this->used_at, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'created_by' => $this->created_by, 'updated_by' => $this->updated_by]); $query->andFilterWhere(['like', 'sn', $this->sn]); return $dataProvider; }
public function actionCoupon($type = 1) { $now = time(); if ($type == 1) { $query = Coupon::find()->where(['and', 'user_id = ' . Yii::$app->user->id, 'used_at = 0', 'ended_at >= ' . $now]); } elseif ($type == 2) { $query = Coupon::find()->where(['and', 'user_id = ' . Yii::$app->user->id, 'used_at > 0']); } elseif ($type == 3) { $query = Coupon::find()->where(['and', 'user_id = ' . Yii::$app->user->id, 'ended_at < ' . $now]); } $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['defaultPageSize' => Yii::$app->params['defaultPageSizeOrder']], 'sort' => ['defaultOrder' => ['created_at' => SORT_DESC]]]); return $this->render('coupon', ['models' => $dataProvider->getModels(), 'pagination' => $dataProvider->pagination]); }
public function actionAjaxCouponCode($sn) { $sn = trim($sn); Yii::$app->response->format = Response::FORMAT_JSON; if (!$sn) { return ['status' => -1]; } $coupon = Coupon::find()->where(['sn' => $sn])->one(); if (!$coupon) { return ['status' => -1]; } if ($coupon->used_at > 0) { return ['status' => -2]; } elseif ($coupon->ended_at < time()) { return ['status' => -3]; } return ['status' => 1, 'sn' => $coupon->sn, 'money' => $coupon->money]; }