| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- <?php
- namespace addons\Happiness\common\models;
- use common\enums\StatusEnum;
- use common\models\base\BaseActiveRecord;
- use common\models\goods\Goods;
- use common\models\goods\GoodsAttr;
- use common\models\goods\GoodsCate;
- use common\models\goods\GoodsCateRelate;
- use common\models\user\User;
- use Yii;
- /**
- * This is the model class for table "qimall_addons_store_clerk".
- */
- class HappinessGoods extends BaseActiveRecord
- {
- /**
- * {@inheritdoc}
- */
- public static function tableName()
- {
- return '{{%addons_happiness_goods}}';
- }
- /**
- * {@inheritdoc}
- */
- public function rules()
- {
- return [
- [['mall_id', 'goods_id','label_id','min_num','warn_day', 'sales_num', 'is_on_sale', 'created_at', 'updated_at', 'status'], 'integer'],
- [['store_scale'],'number'],
- [['freight_type'], 'string'],
- ];
- }
- public function getGoods()
- {
- return $this->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;
- }
- }
- }
|