ИЛ
Size: a a a
ИЛ
S
NM
MA
NM
local json = require('json')
local function dump(o)
if type(o) == 'table' then
local s = '{ '
for k,v in pairs(o) do
if type(k) ~= 'number' then k = '"'..k..'"' end
s = s .. '['..k..'] = ' .. dump(v) .. ','
end
return s .. '} '
else
return tostring(o)
end
end
local function insert(raw_json)
local entity = json.decode(raw_json)
log.info('dumping as raw json: ' .. dump(raw_json))
log.info('dumping as map: ' .. dump(entity))
entity.bucket_id = shard2bucket(entity.mdm_customer_id)
local func_name = sharded_space_func(space_name, 'insert')
local func_args = { entity }
return call_rw_func(entity.mdm_customer_id, func_name, func_args)
end
NM
MA
NM
{"mdm_customer_id":"mdmCustomerId22121331231231232","offer_id":"offerId","product_sub_id":"productSubId","variant_no":10,"variant_nm":"variantNm","commission_annual_amt":100.0,"max_limit_amt":1000.0,"opercash_rate":10.0,"operpos_rate":10.0,"processed_dttm":1605050483912}
2020-11-11 02:05:13.563 [367736] main/131/main I> dump of offer as json: {"mdm_customer_id":"mdmCustomerId22121331231231232","offer_id":"offerId","product_sub_id":"productSubId","variant_no":10,"variant_nm":"variantNm","commission_annual_amt":100.0,"max_limit_amt":1000.0,"opercash_rate":10.0,"operpos_rate":10.0,"processed_dttm":1605049506543}
2020-11-11 02:05:13.564 [367736] main/131/main I> dump of offer as map: { ["product_sub_id"] = productSubId,["commission_annual_amt"] = 100,["variant_nm"] = variantNm,["opercash_rate"] = 10,["processed_dttm"] = 1605049506543,["max_limit_amt"] = 1000,["offer_id"] = offerId,["operpos_rate"] = 10,["mdm_customer_id"] = mdmCustomerId22121331231231232,["variant_no"] = 10,}
ИЛ
ИЛ
AT
AT
AT
json.encode(ffi.cast('double', 1))
. Фиксится просто, но не стрипает незначащие нули; вероятно, влияет на что-то еще и, возможно, должно быть под опцией.diff --git a/src/lib/core/util.c b/src/lib/core/util.c
index dfce317f0..fa30f45e7 100644
--- a/src/lib/core/util.c
+++ b/src/lib/core/util.c
@@ -330,8 +330,8 @@ json_escape(char *buf, int size, const char *data)
}
const char *precision_fmts[] = {
- "%.0lg", "%.1lg", "%.2lg", "%.3lg", "%.4lg", "%.5lg", "%.6lg", "%.7lg",
- "%.8lg", "%.9lg", "%.10lg", "%.11lg", "%.12lg", "%.13lg", "%.14lg"
+ "%.0lf", "%.1lf", "%.2lf", "%.3lf", "%.4lf", "%.5lf", "%.6lf", "%.7lf",
+ "%.8lf", "%.9lf", "%.10lf", "%.11lf", "%.12lf", "%.13lf", "%.14lf"
};
void
AT
AM
AM
TS
AT
AT
N
json:"id" binding:"required"
json:"telegram_id" binding:"required"
json:"email" binding:"required"
json:"password" binding:"required"
json:"settings" binding:"required"