['first_level', 'second_level', 'three_level'], '%like%' => ['code', 'brand', 'name'], ]; } /** * @notes 获取自购材料列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2024/01/04 10:59 */ public function lists(): array { return Material::where($this->searchWhere) ->field(['id', 'first_level', 'second_level', 'three_level', 'code', 'brand', 'name', 'specs', 'unit', 'parameter_description', 'inventory', 'sales_price', 'cost_price', 'annex']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function($item){ $classify = MaterialClassify::where('id','in',[$item['first_level'],$item['second_level'],$item['three_level']])->column('name','id'); $item['first_level_name'] = $classify[$item['first_level']]; $item['second_level_name'] = !empty($classify[$item['second_level']]) ? $classify[$item['second_level']] : ''; $item['three_level_name'] = !empty($classify[$item['three_level']]) ? $classify[$item['three_level']] : ''; return $item; }) ->toArray(); } /** * @notes 获取自购材料数量 * @return int * @author likeadmin * @date 2024/01/04 10:59 */ public function count(): int { return Material::where($this->searchWhere)->count(); } }