12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace app\admin\model;
- use think\Model;
- class Cat extends Base
- {
- //设置字段信息
- protected $schema = [
- 'id' =>'int',//
- 'cat_name' =>'varchar',//分类名称
- 'pid' =>'int',//父级id
- 'level' =>'int',//级别
- // 'rate' =>'varchar',//主管利率
- // 'order_rate' =>'varchar',//预算成本
- // 'money_rate' =>'varchar',//财务利率
- // 'low_rate' =>'varchar',//最低利率
- // 'sale_rate' =>'varchar',//成本售价(标准)
- // 'lower_rate' =>'varchar',//BOSS利率
- 'creater' =>'varchar',//创建人
- 'createrid' =>'bigint',//创建人id
- 'cat_desc' =>'text',//分类描述(售后)
- 'fund_code' =>'varchar',//财务核算码
- 'weight' =>'int',//权重排序
- 'search' =>'varchar',//搜索关键字
- 'status' =>'int',//使用状态
- 'is_del' =>'tinyint',//
- 'addtime' =>'datetime',//
- 'updatetime' =>'datetime',//
- ];
- protected $createTime='addtime';
- protected $updateTime='updatetime';
- protected $disuse=["rate",'order_rate','money_rate','low_rate','sale_rate','lower_rate'];
- public function specs(){
- return $this->hasMany(CatSpecs::class,'cat_id','id');
- }
- public static function onBeforeWrite(Model $model) : void{
- if($model->pid>0){
- $parent = self::findOrEmpty($model->pid);
- if($parent->isEmpty()){
- $model->level = 1;
- $model->search = $parent->cat_name;
- }else{
- $model->level = $parent->level+1;
- $model->search = $parent->search.'_'.$model->cat_name;
- }
- }
- }
- /** 获取分类列表
- * @param $cat_id
- * @param array $catArr
- * @return array|mixed
- */
- public static function GetCatListByChildId($cat_id,&$catArr=[]){
- $cat = self::where(['id'=>$cat_id,'is_del'=>0])->field("id,cat_name,pid,status")->findOrEmpty();
- if($cat->isEmpty())return [];
- array_unshift($catArr,$cat->toArray() );
- if($cat->pid>0){
- self::GetCatListByChildId($cat->pid,$catArr);
- }
- return $catArr;
- }
- /** 获取分类列表
- * @param $pid
- * @return array
- */
- public static function GetCatListByPid($pid=0){
- $cat = self::field("id,cat_name,pid,status")->where(["pid"=>$pid,"is_del"=>0])->select();
- return $cat;
- }
- }
|