where(['store_id'=>$this->store_id]) ->andWhere(['OR', ['delete_time' => 0], ['IS', 'delete_time', NULL]])->asArray()->select(['id','name','sort'])->orderBy('sort ASC, id DESC')->all(); array_unshift($list,['id'=>-1,'name'=>'全部','sort' => 0]); return ['code' => 0, 'data' => $list]; } public function getMaterialList():array { $query = Material::find()->with(['materialResource','goods'])->alias('m')->where(['m.store_id'=>$this->store_id,'m.status' => Material::STATUS_ON])->andWhere(['OR', ['m.delete_time' => 0], ['IS', 'm.delete_time', NULL]])->orderBy('is_top DESC,sort ASC,create_time DESC'); if($this->material_category_id != -1){ $query->andWhere(['m.material_category_id'=>$this->material_category_id]); } if(!empty($this->promotion)){ $query->andWhere(['like','m.promotion',$this->promotion]); } $result = pagination_make($query); foreach($result['list'] as &$item){ $item['resource_model_text'] = Material::RESOURCE_MODEL_TEXT[$item['resource_model']]; } return ['code' => 0,'data' => $result,'msg' => '获取数据成功']; } public function getMaterialItem():array { $model = Material::find()->alias('m')->where(['m.store_id'=>$this->store_id,'m.id'=>$this->id])->andWhere(['OR', ['m.delete_time' => 0], ['IS', 'm.delete_time', NULL]])->with(['materialResource','goods'])->one(); if(!$model){ return ['code' => 1,'msg' => '数据不存在']; } $model->browsing_number = $model->browsing_number + 1; $model->save(); $model = ArrayHelper::toArray($model); $model['materialResource'] = MaterialResource::find()->where(['material_id'=>$model['id']])->asArray()->all(); $model['goods'] = Goods::find()->where(['id' => $model['goods_id']])->select('id,name,cover_pic,price')->one(); $model['resource_model_text'] = Material::RESOURCE_MODEL_TEXT[$model['resource_model']]; $model['download_number'] = $model['download_number'] > 10000 ? bcmul($model['download_number'] / 10000,1,2).'万' : $model['download_number']; // 生成浏览记录 并浏览量+1 return ['code' => 0,'data' => $model,'msg' => '获取数据成功']; } public function getDownloadStatistics(){ $model = Material::findOne($this->id); $model->download_number += 1; $model->save(); $downloadNumber = $model->download_number > 10000 ? bcmul($model->download_number / 10000,1,2).'万' : $model->download_number; return ['code' => 0,'msg' => '记录成功','data' => (string)$downloadNumber]; } }