1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- {{ "<?php" }}
-
- /**
- * AUTO GENERATED BY LUTICATE GENERATOR
- * ANY CHANGES WILL BE OVERWRITTEN
- */
-
- namespace {{ sp_namespace.as_it }};
-
- use Luticate\Utils\DataAccess\LuStoredProcedure;
- use Luticate\Utils\Dbo\LuMultipleDbo;
- use Luticate\Utils\Business\LuStringUtils;
- use Luticate\Utils\Business\LuArrayUtils;
- use Illuminate\Database\Capsule\Manager as Capsule;
- use {{ dbo_namespace.as_it }}\{{ dboName.camel_upper }};
- use {{ dbo_namespace.as_it }}\{{ dboName.camel_upper }}Array;
-
- class {{ sp.sp_name.camel_upper }} extends LuStoredProcedure {
- {% set spcall %}{{ sp.sp_name.as_it }}({% for arg in args.in %}:{{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %}){% endset %}
- {% set argsarray %}{% for arg in args.in %}":{{ arg.name.as_it }}" => ${{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %}{% endset %}
-
- /**
- {% for arg in args.in %}
- * @param ${{ arg.name.as_it }} {{ arg.data_type.php.as_it }}
- {% endfor %}
- * @return {{ dboName.camel_upper }}{% if sp.proretset %}[]{% endif %}
- */
- public static function execute({% for arg in args.in %}${{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %})
- {
- $values = static::getConnection()->select('SELECT {% for arg in args.out %}to_json(data.{{ arg.name.as_it }}) AS {{ arg.name.as_it }}{{ loop.last ? "" : ", " }}{% endfor %} FROM {{ spcall }} data', array({{ argsarray }}));
-
- {% if sp.proretset %}
- $dboValues = array();
- foreach ($values as $value) {
- $json = LuArrayUtils::objectToArray($value);
- $dboValues[] = {{ dboName.camel_upper }}::jsonDeserialize($json);
- }
- return $dboValues;
- {% else %}
- $json = LuArrayUtils::objectToArray($values[0]);
- return {{ dboName.camel_upper }}::jsonDeserialize($json);
- {% endif %}
- }
-
- {% if sp.proretset %}
- /**
- {% for arg in args.in %}
- * @param ${{ arg.name.as_it }} {{ arg.data_type.php.as_it }}
- {% endfor %}
- * @param $page int The page number, 0 based
- * @param $perPage int The number of items per page
- * @return LuMultipleDbo
- */
- public static function getMultipleJson({% for arg in args.in %}${{ arg.name.as_it }}, {% endfor %}$page, $perPage)
- {
- $values = static::getConnection()->select('SELECT (SELECT count(*) FROM {{ spcall }}) as count, (SELECT json_agg(q) FROM (SELECT * FROM {{ spcall }} OFFSET (:page::int * :perPage::int) LIMIT :perPage) q) as data',
- array({{ argsarray }}, ":page" => $page, ":perPage" => $perPage));
- $value = $values[0];
- if (is_null($value->data))
- {
- $value->data = '[]';
- }
- $json = LuStringUtils::convertJsonString($value->data);
- $data = {{ dboName.camel_upper }}Array::jsonDeserialize($json);
- return new LuMultipleDbo($value->count, $data->getArray());
- }
- {% endif %}
- }
|