'ID', 'mall_id' => 'Mall ID', 'scratch_id' => 'Scratch ID', 'user_id' => 'User ID', 'status' => ' 0预领取 1 未领取 2 已领取', 'type' => '1.红包2.优惠券3.积分4.实物', 'num' => '积分数量', 'detail' => '详情', 'coupon_id' => '优惠券id', 'goods_id' => '赠品', 'attr_id' => '赠品规格', 'price' => '价格', 'order_id' => 'Order ID', 'raffled_at' => 'Raffled At', 'created_at' => 'Created At', ]; } /** * @return \yii\db\ActiveQuery */ public function getUser() { return $this->hasOne(User::className(), ['id' => 'user_id'])->alias('u'); } /** * @return \yii\db\ActiveQuery */ public function getGoods() { return $this->hasOne(Goods::className(), ['id' => 'goods_id']); } /** * @return \yii\db\ActiveQuery */ public function getCoupon() { return $this->hasOne(ScratchCouponModel::className(), ['id' => 'coupon_id']); } /** * @return \yii\db\ActiveQuery */ public function getScratch() { return $this->hasOne(ScratchModel::className(), ['id' => 'scratch_id']); } /** * 获取数据 * @param $params * @param $fields 字段 * @return \app\models\BaseActiveQuery|array|\yii\db\ActiveRecord|\yii\db\ActiveRecord[]|null */ public static function getData($params,$fields = []){ $query = self::find()->where(["is_delete" => self::NO]); if(isset($params["id"]) && !empty($params["id"])){ $params["is_one"] = 1; $query->andWhere(["id" => $params["id"]]); } if(isset($params["mall_id"]) && !empty($params["mall_id"])){ $query->andWhere(["mall_id" => $params["mall_id"]]); } if(isset($params["user_id"]) && !empty($params["user_id"])){ $query->andWhere(["user_id" => $params["user_id"]]); } if(isset($params["not_user_id"]) && !empty($params["not_user_id"])){ $query->andWhere(['!=',"user_id" , $params["not_user_id"]]); } if(isset($params["status"]) && !empty($params["status"])){ $query->andWhere(["status" => $params["status"]]); } if(isset($params["type"]) && !empty($params["type"])){ $query->andWhere(["type" => $params["type"]]); } if(isset($params["filter_time_start"]) && isset($params["filter_time_end"]) && !empty($params["filter_time_start"]) && !empty($params["filter_time_end"])){ $query->andFilterWhere(['between','created_at',$params["filter_time_start"], $params["filter_time_end"]]); } //排序 $orderByColumn = isset($params["sort_key"]) ? $params["sort_key"] : "id"; $orderByType = isset($params["sort_val"]) ? $params["sort_val"] : " desc"; $orderBy = $orderByColumn.$orderByType; if(!empty($fields)){ $query->select($fields); } if(isset($params["return_count"])){ return $query->count(); } $pagination = null; if(isset($params["limit"]) && isset($params["page"])){ $query->page($pagination, $params['limit'], $params['page']); } $query->with(["user"])->asArray()->orderBy($orderBy); //查询单条数据 if(isset($params["is_one"]) && $params["is_one"] == 1){ $list = $query->one(); $returnData = $list; }else{ $list = $query->all(); if(isset($params["limit"]) && isset($params["page"])) { $returnData["list"] = $list; $returnData["pagination"] = $pagination; }else{ $returnData = $list; } } return $returnData; } /** * 操作数据库 * @param $data * @return bool */ public static function operateData($data){ $scratchModel = new ScratchLog(); if(isset($data["id"]) && !empty($data["id"])){ $scratchModel = self::findOne($data["id"]); if(empty($scratchModel)){ return false; } if($scratchModel->is_delete == self::YES){ return false; } $data["user_id"] = $scratchModel->user_id; $data["mall_id"] = $scratchModel->mall_id; } $scratchModel->user_id = $data["user_id"]; $scratchModel->mall_id = $data["mall_id"]; if(isset($data["status"])){ $scratchModel->status = $data["mall_id"]; } if(isset($data["type"])){ $scratchModel->type = $data["type"]; } if(isset($data["num"])){ $scratchModel->num = $data["num"]; } if(isset($data["detail"])){ $scratchModel->detail = $data["detail"]; } if(isset($data["price"])){ $scratchModel->price = $data["price"]; } if(isset($data["order_id"])){ $scratchModel->order_id = $data["order_id"]; } if(isset($data["goods_id"])){ $scratchModel->goods_id = $data["goods_id"]; } if(isset($data["raffled_at"])){ $scratchModel->raffled_at = $data["raffled_at"]; } if(isset($data["is_delete"])){ $scratchModel->is_delete = $data["is_delete"]; } if(!$scratchModel->save()){ return false; } return $scratchModel->id; } /** * @param $mallId * @param $params * @return ScratchLogModel * @throws \Exception */ public static function setData($mallId, $params) { try { $id = $params['id'] ?? 0; $data = self::findOne([ 'id' => $id, 'status' => ScratchEnum::ENABLED, ]); if (!empty($data)) { return $data; } $model = new self(); $model->mall_id = $mallId; $model->name = $params['name'] ?? ''; $model->pic = $params['pic'] ?? ''; $model->type = $params['type'] ?? ''; $model->goods_id = $params['goods_id'] ?? 0; $model->num = $params['num'] ?? 0; $model->price = $params['price'] ?? 0; $model->coupon_id = $params['coupon_id'] ?? 0; $model->stock = $params['stock'] ?? 0; $model->balance = $params['balance'] ?? 0; $model->status = $params['status'] ?? 1; return $model; } catch (\Exception $exception) { throw new \Exception($exception->getMessage()); } } }