/** * Finds the RaiseCard model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return RaiseCard the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = RaiseCard::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * Auther:langxi * $member_id:用户id、$coupon_id:加息劵id * (仅)用户使用加息劵,使用时间,结束时间,能否使用加息劵判断。 */ public static function useRaise($member_id, $coupon_id) { //判断加息是否达到每日加息最大值,若达到则提示用户,加息劵不可使用 $Raise = (new \yii\db\Query())->select(['sum(rate)'])->from(['activity_raise_card'])->where(['member_id' => $member_id, 'status' => 1])->createCommand(); $TotalRaise = $Raise->queryAll(); $max_raise = self::getRaise(); if ($TotalRaise['0']['sum(rate)'] > $max_raise) { throw new ErrorException('今日加息已达到最大值,请明日再用', 7001); } else { $card = Card::find()->where(['id' => $coupon_id])->asArray()->one(); $validity_time = $card['validity_time']; $Raise = RaiseCard::find()->where(['member_id' => $member_id, 'id' => $coupon_id])->asArray()->one(); $raise_id = $Raise['id']; $Raise = RaiseCard::findOne($raise_id); $Raise->use_at = time(); $Raise->use_end_time = time() + $validity_time * 3600 * 24; $Raise->status = '1'; $Raise = $Raise->save(); if (!$Raise) { throw new ErrorException('加息劵使用失败', 5002); } } }
/** * Auther:langxi * $member_id:用户id、$coupon_id:加息劵id * (仅)用户使用加息劵,使用时间,结束时间,能否使用加息劵判断。 */ public static function useRaise($member_id, $coupon_id) { if (!$member_id || !is_numeric($member_id) || !is_int($member_id) || !$coupon_id || !is_numeric($coupon_id) || !is_int($coupon_id)) { $result = array('errorNum' => '1', 'errorMsg' => '参数错误', 'data' => null); return $result; } $is_user = Info::find()->where(['member_id' => $member_id])->asArray()->one(); if (!$is_user) { $result = array('errorNum' => '1', 'errorMsg' => '参数错误', 'data' => null); return $result; } $is_coupon = RaiseCard::find()->where(['id' => $coupon_id, 'member_id' => $member_id])->asArray()->one(); if (!$is_coupon) { $result = array('errorNum' => '1', 'errorMsg' => '参数错误', 'data' => null); return $result; } //判断加息是否达到每日加息最大值,若达到则提示用户,加息劵不可使用 $Raise = (new \yii\db\Query())->select(['sum(rate)'])->from(['activity_raise_card'])->where(['member_id' => $member_id, 'status' => 1])->createCommand(); $TotalRaise = $Raise->queryAll(); $max_raise = self::getRaise(); if ($TotalRaise['0']['sum(rate)'] > $max_raise) { $result = array('errorNum' => '1', 'errorMsg' => '今日加息已达到最大值,请明日再用', 'data' => null); return $result; } else { $card = Card::find()->where(['id' => $coupon_id])->asArray()->one(); $validity_time = $card['validity_time']; $Raise = RaiseCard::find()->where(['member_id' => $member_id, 'id' => $coupon_id])->asArray()->one(); $raise_id = $Raise['id']; $Raise = RaiseCard::findOne($raise_id); $Raise->use_at = time(); $Raise->use_end_time = time() + $validity_time * 3600 * 24; $Raise->status = '1'; $Raise = $Raise->save(); if (!$Raise) { $result = array('errorNum' => '1', 'errorMsg' => '加息劵使用失败', 'data' => null); return $result; } else { $result = array('errorNum' => '0', 'errorMsg' => 'success', 'data' => null); return $result; } } }