'ID', 'mall_id' => '商城ID', 'user_id' => '用户ID', 'community_id' => '自提点ID', 'is_checked' => '是否选中[0未选中 1选中]', 'status' => '状态[-1:删除;0:禁用;1启用]', 'created_at' => '创建时间', 'updated_at' => '更新时间', ]; } public function getCommunity() { return $this->hasOne(CommunityHead::class, ['id' => 'community_id']); } public static function setData(array $params) { $connection = Yii::$app->db; $transaction = $connection->beginTransaction(); try { $model = self::findOne(['mall_id' => $params['mall_id'], 'user_id' => $params['user_id'], 'community_id' => $params['community_id'], 'status' => StatusEnum::ENABLED]); if (!$model) { $model = new self(); $model->loadDefaultValues(); } if (!$model->load($params, '') || !$model->save()) { throw new \Exception($model->getErrorMessage()); } if (isset($params['is_checked']) && $params['is_checked'] == StatusEnum::ENABLED) { $old_data = self::findAll(['mall_id' => $params['mall_id'], 'user_id' => $params['user_id'], 'status' => StatusEnum::ENABLED, 'is_checked' => StatusEnum::ENABLED]); foreach ($old_data as $data) { if ($data->id == $model->id) continue; $data->is_checked = StatusEnum::DISABLED; $data->save(); } } $transaction->commit(); return $model; } catch (\Exception $e) { $transaction->rollBack(); self::$static_error = $e->getMessage() . $e->getLine() . $e->getFile(); return false; } } }