instance_ls optimized
This commit is contained in:
+1
-1
@@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
//variables.framework.docs={};
|
//variables.framework.docs={};
|
||||||
variables.framework.docs.APIName="Deck API";
|
variables.framework.docs.APIName="Deck API";
|
||||||
variables.framework.docs.APIVersion="0.059";
|
variables.framework.docs.APIVersion="0.060";
|
||||||
|
|
||||||
variables.framework.globalHeaders = structNew();
|
variables.framework.globalHeaders = structNew();
|
||||||
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
|
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
|
||||||
|
|||||||
@@ -79,6 +79,28 @@
|
|||||||
<!--- Такая бодяга. Кастомные сериализаторы не умеют вложенных структур (поразительно, или я не нашел как). Стандартный сериализатор не умеет выводить дату в ISO 8601. Приходится колхозить и форматировать на стороне БД (насилу подобрал формат). Также на стороне БД приходится конвертировать GUID, потому что драйвер pg jdbc его представляет как структуру из 2 чисел.
|
<!--- Такая бодяга. Кастомные сериализаторы не умеют вложенных структур (поразительно, или я не нашел как). Стандартный сериализатор не умеет выводить дату в ISO 8601. Приходится колхозить и форматировать на стороне БД (насилу подобрал формат). Также на стороне БД приходится конвертировать GUID, потому что драйвер pg jdbc его представляет как структуру из 2 чисел.
|
||||||
И то сказать, jsonb как-то странно сериализуется, в 3 поля, вместо одного Value
|
И то сказать, jsonb как-то странно сериализуется, в 3 поля, вместо одного Value
|
||||||
--->
|
--->
|
||||||
|
<cfquery name="local.qCnt" result="local.result">
|
||||||
|
select count(*) as cnt
|
||||||
|
from (
|
||||||
|
select 1
|
||||||
|
from instance e
|
||||||
|
join specification_item i on (e.specification_item_id=i.specification_item_id)
|
||||||
|
join specification s on (i.specification_id=s.specification_id)
|
||||||
|
join contract d on (s.contract_id=d.contract_id)
|
||||||
|
join contragent k on (d.contragent_id=k.contragent_id)
|
||||||
|
join svc v on (e.service_id=v.svc_id)
|
||||||
|
left outer join usr u on (e.updater_id=u.usr_id)
|
||||||
|
where s.specification_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.specificationId#/>
|
||||||
|
<cfif len(arguments.search)>
|
||||||
|
AND (
|
||||||
|
lower(e.display_name) like lower(<cfqueryparam cfsqltype="cf_sql_varchar" value='%#arguments.search#%'/>)
|
||||||
|
OR lower(v.svc) like lower(<cfqueryparam cfsqltype="cf_sql_varchar" value='%#arguments.search#%'/>)
|
||||||
|
)
|
||||||
|
</cfif>
|
||||||
|
) inr
|
||||||
|
where 1=1 <m:filter_build filter=#filter#/>
|
||||||
|
</cfquery>
|
||||||
|
|
||||||
<cfquery name="local.qRead" result="local.result">
|
<cfquery name="local.qRead" result="local.result">
|
||||||
select
|
select
|
||||||
<cfif listLen(local.fields)>#local.fields#<cfelse>*</cfif>
|
<cfif listLen(local.fields)>#local.fields#<cfelse>*</cfif>
|
||||||
@@ -159,7 +181,7 @@
|
|||||||
where 1=1 <m:filter_build filter=#filter#/>
|
where 1=1 <m:filter_build filter=#filter#/>
|
||||||
<!--- order by <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/> ---><!--- из-за нефиксированного числа колонок труднее становится использовать цифровую нотацию --->
|
<!--- order by <m:order_build sortCollection=#this.helper.parseNumericOrder(local.titleMap, arguments.orderBy)# fieldCount=0/> ---><!--- из-за нефиксированного числа колонок труднее становится использовать цифровую нотацию --->
|
||||||
order by <m:order_build sortCollection=#order# fieldCount=0 defaultOrder="1 desc"/><!---no sort length limit--->
|
order by <m:order_build sortCollection=#order# fieldCount=0 defaultOrder="1 desc"/><!---no sort length limit--->
|
||||||
--limit #maxrows#
|
limit #maxrows#
|
||||||
</cfquery>
|
</cfquery>
|
||||||
<!---<cfdump var=#local.qRead#/><cfabort/> --->
|
<!---<cfdump var=#local.qRead#/><cfabort/> --->
|
||||||
<!--- formatter=#function(x){if (isNull(x)) {return x} else {return (x NEQ 0)}}# --->
|
<!--- formatter=#function(x){if (isNull(x)) {return x} else {return (x NEQ 0)}}# --->
|
||||||
@@ -171,7 +193,6 @@
|
|||||||
join specification s on (i.specification_id=s.specification_id)
|
join specification s on (i.specification_id=s.specification_id)
|
||||||
join contract d on (s.contract_id=d.contract_id)
|
join contract d on (s.contract_id=d.contract_id)
|
||||||
join contragent k on (d.contragent_id=k.contragent_id)
|
join contragent k on (d.contragent_id=k.contragent_id)
|
||||||
--join usr u on (k.contragent_id=u.contragent_id)
|
|
||||||
join svc v on (e.service_id=v.svc_id)
|
join svc v on (e.service_id=v.svc_id)
|
||||||
<!--- specificationId инжектируется в arguments scope в Application.cfc --->
|
<!--- specificationId инжектируется в arguments scope в Application.cfc --->
|
||||||
where s.specification_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.specificationId#/>
|
where s.specification_id=<cfqueryparam cfsqltype="cf_sql_integer" value=#arguments.specificationId#/>
|
||||||
@@ -182,7 +203,7 @@
|
|||||||
|
|
||||||
<cfset "out.queryDurationMs"=getTickCount() - request.startTickCount/>
|
<cfset "out.queryDurationMs"=getTickCount() - request.startTickCount/>
|
||||||
<cfset "out.total"=#local.qTotal.cnt#/>
|
<cfset "out.total"=#local.qTotal.cnt#/>
|
||||||
<cfset "out.resultSetSize"=#local.qRead.recordCount#/>
|
<cfset "out.resultSetSize"=#local.qCnt.cnt#/>
|
||||||
<cfset "out.pageSize"=#arguments.pageSize*1#/>
|
<cfset "out.pageSize"=#arguments.pageSize*1#/>
|
||||||
<cfset "out.page"=#arguments.page*1#/>
|
<cfset "out.page"=#arguments.page*1#/>
|
||||||
<cfset "out.orderBy"=#arguments.orderBy#/>
|
<cfset "out.orderBy"=#arguments.orderBy#/>
|
||||||
|
|||||||
Reference in New Issue
Block a user