255], [['extra'], 'string'], ]; } /** * {@inheritdoc} */ public function attributeLabels() { return [ 'id' => 'ID', 'mall_id' => '商城ID', 'is_enable' => '是否独立设置:0:否;1是', 'item_id' => '项目id', 'item_type' => '项目类型:商品goods', 'commission_type' => '分佣类型:积分score;佣金:commission', 'is_percent' => '类型 0百分比 1 固定金额', 'status' => '状态[-1:删除;0:禁用;1启用]', 'created_at' => 'Created At', 'updated_at' => 'Updated At', 'extra' => '额外信息', 'is_enable_regular_bonus' => '是否启用返佣设置[0: 否,1:是]' ]; } public function getDetail() { return $this->hasMany(DistributionCommissionItemSettingDetail::class, ['distribution_commission_item_setting_id' => 'id'])->indexBy('level'); } public static function setData($params, $data) { $t = \Yii::$app->db->beginTransaction(); try{ foreach ($data as $key => $item) { // 如理设置复购等于报单 if ($key == 'distribution_is_alone') { $model = DistributionGoodsRepurchase::findOne([ 'mall_id' => $params['mall_id'], 'item_id' => $params['item_id'], 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED] ]); if (empty($model)) { $model = new DistributionGoodsRepurchase(); $model->mall_id = $params['mall_id']; $model->item_id = $params['item_id']; } $model->status = $item ? StatusEnum::ENABLED : StatusEnum::DISABLED; if (!$model->save()) throw new \Exception($model->getErrorMessage()); continue; } $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(); } is_array($item['extra']) && $item['extra'] = json_encode($item['extra']); if(!$model->load($item,'') || !$model->save()){ throw new \Exception($model->getErrorMessage()); } // 插入配置详情 $detail = ['mall_id' => $params['mall_id'], 'distribution_commission_item_setting_id' => $model->id]; $res = DistributionCommissionItemSettingDetail::setData($detail, $item['detail']); if ($res == false) throw new \Exception(DistributionCommissionItemSettingDetail::getStaticError()); } $t->commit(); return true; }catch(\Exception $e){ $t->rollBack(); self::$static_error = $e->getMessage(); return false; } } /** * 全局调用 * @param array $params * @param bool $is_array * @return void */ public static function globalLists(array $params = [], bool $is_array = true) { $lists = self::lists($params, $is_array); if (empty($lists)) $lists = []; foreach($lists as &$item){ $item['extra'] = $item['extra'] ? json_decode($item['extra'], true) : []; } unset($item); // 报单等于复购 $distribution_is_alone = DistributionGoodsRepurchase::lists([ 'where' => $params['where'] ], $is_array); return array_merge($lists, ['distribution_is_alone' => !empty($distribution_is_alone) ? StatusEnum::ENABLED : StatusEnum::DISABLED]); } }