hasOne(Goods::class, ['id' => 'goods_id']); } // 分类关系 public function getGoodsCateRelate() { return $this->hasMany(GoodsCateRelate::class, ['goods_id' => 'goods_id']); } // 分类 public function getCats() { return $this->hasMany(GoodsCate::class, ['id' => 'cate_id']) // ->where(['mch_id' => 0]) ->via('goodsCateRelate'); } public function getAttr() { return $this->hasMany(GoodsAttr::class, ['goods_id' => 'goods_id'])->select('id as attr_id,goods_id,name,price,stock')->where(['is_show'=> 1, 'status' => 1]); } /** * @desc:保存数据 * @Author: hua * @Date: 2021/10/23 * @Time: 18:07 * @Copyright: copyright (c) 2021 广东七件事集团 * @param array $params * @return StoreClerk|false|null */ public static function setData(array $params) { try { if (!empty($params['mall_id']) && (!empty($params['goods_id']) || !empty($params['id']))) { if (!empty($params['id'])) { $model = self::findOne(['mall_id' => $params['mall_id'], 'id' => $params['id'], 'status' => StatusEnum::ENABLED]); } else { $model = self::findOne(['mall_id' => $params['mall_id'], 'goods_id' => $params['goods_id'], 'status' => StatusEnum::ENABLED]); } if (empty($model)) { $model = new self(); $model->loadDefaultValues(); } } else { $model = new self(); $model->loadDefaultValues(); } if (!$model->load($params, '')) throw new \Exception($model->getErrorMessage()); if (!$model->save()) throw new \Exception($model->getErrorMessage()); if (isset($params['is_on_sale']) && $params['is_on_sale'] == 0 && !empty($model->goods_id)) { HappinessStoreGoods::updateAll(['is_on_sale' => $params['is_on_sale']], ['mall_id' => $params['mall_id'], 'goods_id' => $model->goods_id]); HappinessStoreGoodsAttr::updateAll(['is_on_sale' => $params['is_on_sale']], ['mall_id' => $params['mall_id'], 'goods_id' => $model->goods_id]); } return $model; } catch (\Exception $e) { self::$static_error = $e->getMessage(); return false; } } }