255], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => '商城ID', 'is_partake' => '是否参与运营中心:0:否;1是', 'is_enable' => '是否独立设置:0:否;1是', 'item_id' => '项目id', 'item_type' => '项目类型:商品goods', 'settings' => '分销佣金设置:0:按商品设置;1:按规格设置', 'commission_type' => '分佣类型:积分score;佣金:commission', 'is_percent' => '类型 0百分比 1 固定金额', 'status' => '状态[-1:删除;0:禁用;1启用]', 'created_at' => 'Created At', 'updated_at' => 'Updated At', ]; } /** * 关联设置 * @Author: lun * @DateTime: 2023/8/16 0016 16:34 * @Copyright: copyright (c) 2021 广东七件事集团 * @return \yii\db\ActiveQuery */ public function getDetail() { return $this->hasMany(CommissionItemSettingDetail::class, ['commission_item_setting_id' => 'id'])->where(['status' => StatusEnum::ENABLED])->indexBy('level'); } /** * 保存数据 * @Author: lun * @DateTime: 2023/8/16 0016 16:35 * @Copyright: copyright (c) 2021 广东七件事集团 * @param $params * @param $data * @return bool */ public static function setData($params, $data) { try{ foreach ($data as $item) { $model = self::findOne([ 'mall_id' => $params['mall_id'], 'item_type' => $item['item_type'], 'commission_type' => $item['commission_type'], 'item_id' => $params['item_id'], 'status' => [StatusEnum::ENABLED] ]); if (empty($model)) { $model = new self(); $model->mall_id = $params['mall_id']; $model->item_id = $params['item_id']; $model->loadDefaultValues(); } if(!$model->load($item,'') || !$model->save()){ throw new \Exception($model->getErrorMessage()); } // 插入配置详情 $detail = ['mall_id' => $params['mall_id'], 'commission_item_setting_id' => $model->id]; $res = CommissionItemSettingDetail::setData($detail, $item['detail']); if ($res == false) throw new \Exception(CommissionItemSettingDetail::getStaticError()); } return true; }catch(\Exception $e){ self::$static_error = $e->getMessage(); return false; } } /** * 通过等级获取详情 * * @return CommissionItemSettingDetail */ public function getCommissionDetailByLevel(int $level) { return CommissionItemSettingDetail::find() ->andWhere(['level' => $level, 'commission_item_setting_id' => $this->id, 'status' => 1]) ->one(); } }