// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\common\model; use app\common\enum\goods\Status as GoodsStatusEnum; use app\common\library\helper; /** * 商品PACKAGE模型 * Class GoodsSku * @package app\common\model */ class GoodsPackage extends BaseModel { // 定义表名 protected $name = 'goods_package'; // 定义主键 protected $pk = 'id'; // /** // * 规格图片 // * @return \think\model\relation\HasOne // */ // public function image() // { // return $this->hasOne('UploadFile', 'file_id', 'image_id'); // } public function goods() { return $this->belongsTo('Goods'); } // /** // * 获取器:规格值ID集 // * @param $value // * @return array // */ // public function getSpecValueIdsAttr($value) // { // return helper::jsonDecode($value); // } // /** // * 获取器:规格属性 // * @param $value // * @return array // */ // public function getGoodsPropsAttr($value) // { // return helper::jsonDecode($value); // } /** * 设置器:规格值ID集 * @param $value * @return string */ public function setSpecValueIdsAttr($value) { return helper::jsonEncode($value); } /** * 设置器:规格属性 * @param $value * @return string */ public function setGoodsPropsAttr($value) { return helper::jsonEncode($value); } /** * 获取sku信息详情 * @param int $goodsId * @param string $goodsSkuId * @return array|null|static */ public static function detail(int $goodsId, $goodsSkuId) { return static::get(['goods_id' => $goodsId, 'goods_sku_id' => $goodsSkuId]); } public function getPickerList(array $param = [], int $listRows = 15) { // 筛选条件 $query = $this->getQueryFilter($param); // 执行查询 $list = $query->with(['goods']) ->alias($this->name) ->leftJoin('goods', "goods.goods_id = {$this->name}.goods_id") ->field($this->getAliasFields($this->name, ['content'])) ->where('goods.is_delete', '=', 0) ->where('goods.status', '=', GoodsStatusEnum::ON_SALE) ->order('goods.goods_id', 'asc') ->paginate($listRows); return $list; } /** * 检索查询条件 * @param array $param * @return \think\db\BaseQuery */ private function getQueryFilter(array $param) { // 商品列表获取条件 $params = $this->setQueryDefaultValue($param, [ 'goods_name' => null, // 商品名称 'is_gift'=>10 //普通商品 or赠品 ]); // 实例化新查询对象 $query = $this->getNewQuery(); // 筛选条件 $filter = []; // 商品名称 !empty($params['goods_name']) && $filter[] = ['goods.goods_name|goods.goods_no|goods.goods_id', 'like', "%{$params['goods_name']}%"]; //普通商品还是赠品 in_array($params['is_gift'],[10,20]) && $filter[] = ['is_gift','=',$params['is_gift']]; // 实例化新查询对象 return $query->where($filter); } }