Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 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]);
 }
Пример #3
0
 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];
 }