'ID', 'mall_id' => 'Mall ID', 'status' => 'Status', 'order_id' => 'Order ID', 'created_at' => 'Created At', 'updated_at' => 'Updated At', ]; } /** * @param array $params * * @return bool|self */ public static function setData(array $params) { try { $model = self::findOne(['order_id' => $params['order_id'], 'status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]]); if (!$model) { $model = new self(); $model->loadDefaultValues(); } if (!$model->load($params, '')) { throw new RuntimeException($model->getErrorMessage()); } if (!$model->save()) { throw new RuntimeException($model->getErrorMessage()); } return $model; } catch (Exception $e) { self::$static_error = $e->getMessage(); return false; } } /** * @param array $insertData * * @return bool */ public static function batchInsertData(array $insertData): bool { if (empty($insertData)) { return true; } $time = time(); $batchInsertData = []; foreach ($insertData as $insertDataItem) { $batchInsertData[] = array_merge($insertDataItem, [ 'created_at' => $time, 'updated_at' => $time, ]); } try { Yii::$app ->db ->createCommand() ->batchInsert(self::tableName(), array_keys($batchInsertData[0]), $batchInsertData) ->execute(); } catch (Exception $e) { Yii::$app->custom->logs(FormatHelper::exception($e, sprintf('【区域管理】同步已结算订单到%s表失败', self::tableName()))); return false; } return true; } /** * @return void */ public static function fixData() { $commission_wallet_type = 'commission'; CapitalLog::$capitalType = "{$commission_wallet_type}_frozen"; $find = CapitalLog::find(); $params = [ 'where' => [ ['from_type' => AddonsEnum::ADDONS_NAME_AREA] ], 'select' => 'order_no' ]; CapitalLog::paramPack($params, $find); foreach ($find->asArray()->batch(2000) as $batchItem) { self::batchInsertData( Order::find() ->where([ 'order_no' => array_column($batchItem, 'order_no') ]) ->select('id order_id, mall_id') ->asArray() ->all() ); } } }