hasOne(ProductPlatformAmount::class, 'product_platform_id','product_platform_id'); } /** * 获取信息-单条 * @param array $params * @param array $fields * @return object|null */ public static function getOne(array $params, array $fields = ['*']): object|null { return self::where($params)->first($fields); } /** * 获取库存信息-单条 * @param array $params * @param array $fields * @return object|null */ public static function getWithAmountOne(array $params, array $fields = ['*']): object|null { return self::with([ 'ProductPlatformAmount' ]) ->where($params) ->first($fields); } /** * 获取数据-多 * @param array $params * @param array $fields * @return Collection|array */ public static function getList(array $params = [], array $fields = ['*']): Collection|array { return self::where($params)->get($fields); } /** * 获取关键字搜索列表 * @param array $params * @param string $keyword * @param array $fields * @return Collection|array */ public static function getSearchKeywordList(array $params = [],string $keyword = '',array $fields = ['*']): Collection|array { return self::with([ 'ProductPlatformAmount:amount_id,product_platform_id,stock' ]) ->when($keyword, function ($query, $keyword) { $query->where(function ($query) use ($keyword) { $query->orwhere("product_name", 'like', '%' . $keyword . '%'); $query->orwhere("common_name", 'like', '%' . $keyword . '%'); $query->orwhere("mnemonic_code", 'like', '%' . $keyword . '%'); }); }) ->where($params) ->get($fields); } /** * 修改 * @param array $params * @param array $data * @return int */ public static function edit(array $params = [], array $data = []): int { return self::where($params)->update($data); } /** * 获取数量 * @param array $params * @return int */ public static function getCount(array $params): int { return self::where($params)->count(); } /** * 获取列表-分页 * @param array $params 条件 * @param array $fields 字段 * @param int|null $page 页码 * @param int|null $per_page 每页个数 * @return array */ public static function getPage(array $params, array $fields = ["*"], int $page = null, ?int $per_page = 10): array { $raw = self::where($params)->paginate($per_page, $fields, "page", $page); $data = array(); $data['current_page'] = $raw->currentPage();// 当前页码 $data['total'] = $raw->total();//数据总数 $data['data'] = $raw->items();//数据 $data['per_page'] = $raw->perPage();//每页个数 $data['last_page'] = $raw->lastPage();//最后一页 return $data; } /** * 新增 * @param array $data * @return \Hyperf\Database\Model\Model|Product */ public static function addProduct(array $data): \Hyperf\Database\Model\Model|Product { return self::create($data); } }