HTTP请求方式:

		POST:表示新增数据,
		PUT:表示修改或编辑数据,
		DELETE:表示删除数据,
		GET:表示获取或查询数据,
			当url后边带“'s”表示获取多条数据,
			当url后边带“$”表示统计类数据
		
参数名称中文标题描述
status状态码200:成功,300:错误,301:登陆超时,302:警告
data数据集后台返回数据结果集,数组[],对象{}
massage信息描述当 status 不等于 200 时此属性有内容
layer树型数据层级默认从 0 开始,不取子节点,只对树型表有有效
pageno当前页码默认从 1 开始
pagesize每页数据集默认每页 20 条
fields需要返回的属性
1、返回表中字段集
A、指定返回字段:字段名1,字段名2,字段名3,字段名n
B、不返回指定字段:-字段名1,-字段名2,-字段名3,-字段名n 
2、返回父/子表内容 
   是否合并,():合并,[]:独立对象
A、返回单条父表记录:父表1(父表字段1,父表字段2,父表字段n),父表2,父表n 
B、返回多条子表记录:子表1[子表字段1,子表字段2,子表字段n],子表2[],子表n[] 
3、返回多级关联表属性
A、常规方式,如:drug[*],map_rule[rule_id,rule_name],drug.drug_classify[*]
	drug[*]:表示返回一级关联表drug中的所有属性;
	map_rule[rule_id,rule_name]:表示返回一级关联表map_rule中的两个属性(rule_id,rule_name)
	map_rule[rule_id,rule_name,map(map_title,map_type)]:表示返回一级关联表map_rule中的两个属性(rule_id,rule_name),
	                                                     同时包含父表map中的两个字段(map_title,map_type)
	drug.drug_classify[*]:表示返回一级关联表drug中的关联表drug_classify中的属性属性
	
	注:1)取多级数据是返回的数据容器属性名称默认为最后一级的名称,如需要自定义别名时用“->”转换
			如:drug.drug_classify[*]默认别名为“drug_classify”,drug.drug_classify->drugcls[*]别名转换为“drugcls”
	    2)当取多级数据关联方式都为“关联父表”时最多只返回1条数据,其他返回多条数据。
B、JSON方式,如下与常规方式中的示例一致:
	{
		"fields": "*",
		"map_rule": {
			"alias":"别名,默认为关联名称,如:map_rule",
			"fields": "*"
		},
		"drug": {
			"alias":"别名,默认为关联名称,如:drug",
			"fields": "*",
			"drug_classify": {
				"fields": "*"
			}
		}
	}
					
orderby排序字段字段名,字段名-
默认为按指定字段升序排序,字段名后边跟“-”表示降序排序。支持按关联表中的字段进行排序,按关联表中的字段排序时,返回的字段方式必须为合并"()"方式
distinct过虑重复数据默认为false,distinct=true时系统自动过虑掉重复数据,此时统计数据总数可能不准
@api接口描述返回接口对应的 API 描述,与数据库中的备注作息一致
{aggregate}统计类参数

根据字段分组统计

分组可以是单个字段,也可是多个字段组合,字段可以是本表中的字段与关联子表中的字段组合。当字段类型为date或datetime类型时,需要指定格式化,默认为yyyy-MM-dd
	例1:根据状态字段(state)分组统计,state的值有【1,2,3,4,5,6,7,8,9】
		 fields=state
	例2:根据状态字段(state)与日期字段(log_date)分组统计,state的值有【1,2,3,4,5,6,7,8,9】,
							  日期字段需要按月进行分组统计
		 fields=state,log_date|yyyy-MM
		 注:日期字段需要指定格式化字符串,格式化方式参照Java中的SimpleDateFormat
					

统计函数规则

统计类参数只支持GET请求方式,可用在单条取数据、多条数据、统计数据接口中,目前只支持这几个方法:
注:统计类函数中的条件支持等号(=)、不等号(!=或<>)、大于(>)、小于(<)、大于等于(>=)、小于等于(<=),条件值参照{fieldname}中的value
当接口为获取单条数据或多条数据时,统计类函数中的条件只能是对应子表的条件;
当接口为统计接口时,统计函数中的条件支持本表与子表条件。

规则:接收参数名=函数名({字段名}[:{字段名}{操作符}{条件值}]),[]中的内容表示可选项,字段名可以是本表中的字段名或关联子表中的字段名。
1)count()-求总数
	例1:求状态(state)等于1的总数,count_state1=count(state=1)
	例2:求状态(state)等于1、2、3的总数,count_state1=count(state=1,2,3)
	例3:求关联子表中的数量,count1=count(子表名.字段名)
		说明:count1->变量名,根据你自己的喜好或业务需要自己取名,但第一个字符不能是符号或数字
			 子表名->每个数据接口的参数中除了“基础数据”外的其他数据中标注为“[关联子表]或[通过中间表(*)关联]”的名称
			 字段名->为子表中的字段名
	例4:求关联子表中字段a的值为1的数量,count1=count(子表名.字段a=1)
	例5:求关联子表中字段a的值为1或2的数量,count1=count(子表名.字段a=1,2)
	例6:求关联子表中字段a的值为大于10小于等30的数量,count1=count(子表名.字段a=(10,30]),
		 注意:()表示开区间,[]表示闭区间,(]表示开闭区间,[)表示闭开区间
	例7:求关联子表中字段a的值为大于10小于等30,并且字段b的值等5的数量        
		 count1=count(子表名.字段a=(10,30];子表名.字段b=5)
		 注意:多个条件间用英文状态下的分号“;”或者“&”隔开,多个条件为并且关系
	例8:求关联子表中字段a的值为大于10小于等30,并且字段b的值大于5的数量
		 count1=count(子表名.字段a=(10,30];子表名.字段b>5)
		 注意:多个条件间用英文状态下的分号“;”或者“&”隔开
	
注:非count函数,其他函数表达式为:函数名(字段名[:条件表达式]),中括号[]表示可选
2)sum()-求和
	实例与count()一致,将count替换为sum即可。
3)avg()-求平均数
	实例与count()一致,将count替换为avg即可。
4)max()-求最大值
	实例与count()一致,将count替换为max即可。
5)min()-求最小值
	实例与count()一致,将count替换为min即可。
注:除了上述聚合函数外,还支持如下函数:[length|abs|round|ceiling|floor](字段名)
length:返回字符串的长度(以字符为单位)。
abs:返回指定数值表达式的绝对值(正值)的数学函数。 (ABS 将负值更改为正值。ABS 对零或正值没有影响。)
round:返回与参数最接近的整数。 如果有多个这样的数,将返回最接近正无穷的那个数。 例如:
       如果参数为 2.5, 则 round () 返回 3。
       如果参数为 2.4999, round () 返回 2。
       如果参数为 -2.5, round () 返回 -2。
       如果 参数为空序列, 则 round () 返回空序列。
ceiling:返回不带小数部分并且不小于其参数值的最小数字。 如果参数是一个空序列,则返回空序列。
floor:返回小于或等于指定数值表达式的最大整数。
	

通用统计中日期使用说明:

统计类函数中的日期字段通用条件
	$ym-年中的月份,1-12
	$yw-年中的周,1-54,新年第一天为第一周的第一天
	$md-月中的天数,1-31
	$mw-月中的周,1-5,1号为本月第一周的第一天
	$wd-周中的天数,0-6
	$hh-天中的小时数,0-23
	$mm-小时中的分钟数,0-59
	$q-年中的季度,1-4
	
	如:周$wd=count(log_date=$wd)
		表示按每周中的天数统计,系统自动生成7天的统计结果
	结果示例:
		{
			"data": [
				{
					"周一": 26,
					"周二": 17,
					"周三": 17,
					"周四": 34,
					"周五": 32,
					"周六": 6,
					"周日": 2,
					"log_date": "2023年04月"
				}
			],
			"status": 200
		}
	
{fieldname}字段名称
按字段查询,所有字段的查询都是 “并且” 关系 
1、精确匹配,{fieldname}=value
   当value=时表示为null或为空字符串
   当value=null时表示为null的内容
   当value=""或''时表示空字符串
2、模糊匹配,只对字符串类型字段有效
	{fieldname}=*value*,左右模糊匹配
	{fieldname}=*value,左模糊匹配
	{fieldname}=value*,右模糊匹配
	{fieldname}=abc*bcd,中间模糊匹配
	{fieldname}=带“*”号,通配符模糊匹配,
		a.如匹配所有地址为“体育西”的,eg:{fieldname}=*体育西*,可匹配“广东省广州市体育东路38号”
		b.如匹配所有姓名为“陈”开始,“丰”结尾的所有人,eg:name=陈*丰,匹配到陈大丰,陈二丰,陈张三丰
	{fieldname1|fieldname2|fieldname3}=*,多个字段查询,或的关系
3、大于查询:{fieldname}=>value,或者 {fieldname}=(value,],当类型为日期类型时,默认为当前时间
4、小于查询:{fieldname}=<value,或者 {fieldname}=[,value),当类型为日期类型时,默认为当前时间
5、不等查询:{fieldname}=!value
6、区间查询,{fieldname}=[value1,vaule2],{fieldname}=(value1,vaule2) 
	[]表示 fieldname>=value1 且 fieldname<=value2 
	()表示 fieldname>value1 且 fieldname<value2 
7、不等于空:{fieldname}=!
   等价于不为null或不为''字符串
8、不等于空字符串:{fieldname}=!''
   不等为空null:{fieldname}=!null
9、多值查询:{fieldname}=value1,value2,value3,valueN
10、日期区间快捷查询:只对日期类型字段或时间戳类型字段有效
	统一规则:(近|前|后)?(\\d+)?(分钟?|小?时|天|号|周|个?月份?|年度?)
	近:只包含当前,当前日期单位(年、月、周、天、日、时、分),没有前缀时为指定单位日期
	    如:近1个月,当前日期为2022年9月20号,那么就只取9月1号凌晨到20号的数据,不包含8月份
	前:不包含当前
	后:包含当前时间(很少用到)
    {fieldname}=value,value值参考如下:
	   当天:表示当天的[00:00:00.000~00:00:00.000)
	   当月:表示当月第一天的00:00:00.000~下个月的第一天的00:00:00.000,[00:00:00.000~00:00:00.000)
	   本年:当前年
	   近n天:表示当前时间前多少天,包含当天
	   前n天:表示当前时间前多少天,不包含当天
	   后n天:表示当前时间后多少天
	   n号|日:表示当月的几号日期(某一天)
	   n天:默认为近n天
	   近n月:表示当前时间前几个月,包含当月
	   前n月:表示当前时间前几个月,不包含当月
	   后n月:表示当前时间后几个月
	   n月:表示当前年份的第几个月(某一个月)
	   近n年:表示当前时间前几年,包含本年
	   前n年:表示当前时间前几年,不包含本年
	   后n年:表示当前时间后几年
	   n年:指定年份,如:2022年表示为[2022-01-01 00:00:00.000~2023-01-01 00:00:00.000)
			当n小于100时表示为最近n年
	   ……
	   前|后n分钟,前|后n小时,前|后n周
11、关联回返数据或查询时,可根据需要进行排除不需要的数据,在关联属性前加“@”符号
	A、返回关联表中存在的数据集:(@关联表属性名.主键=!)表示为联表中的数据不为空时返回
	B、返回关联表中不存在的数据集:(@关联表属性名.主键=)表示为联表中的数据为空时返回
注:	1)大于、小于、区间只针对Number类型,日期类型有效;
	2)bit类型数据可传入对应的二进制位字符串(如:1001),或二进制对应的十进制(如:9)。
		

批量新增操作

		使用系统自带API系统测试时,需要选中“使用JSON数据提交”,在“使用JSON数据提交:”内容中输入批量新增的内容,内容为数组,数组中每项数据项名称必须保持一致,当数组中的字段内容与数量不一致是,以第一个数组字段与数量为准。如下:
		[
			{"org_id":"abcd", "account_id":"account_id1"},
			{"org_id":"abcd", "account_id":"account_id2"},
			{"org_id":"abcd", "account_id":"account_id3"}
		]
	

级联更新操作

	1)单条增加,如下,在user表中增加一第数据,同时在对应关系子表user_info中增加两条数据
	{
		"name":"batch_test",
		"age":345,
		"_create":{
			"user_info":[{
				"content":"131223123fds"
			},{
				"content":"131223123asdf"
			}]
		}
	}
	
	2)更新操作(_replace:全部替换,_create:只做新增操作,_update:更新式新增操作),更新user表的同时更新或替换子表user_info中的数据
	如果_replace下存在_exist时,只替换指定按条件查询存在的数据,条件中可以包含关联表中的条件
	_create时,如果存在时忽略,_update:如果存在数据时做更新操作,不存在是做新增制作。
	{
		"user_id": "2C9B70D5C3DBFE101F0OE3DAD99908345F7439F8FFABDFFC4",
		"_replace":{
			"user_info":[{
				"content":"中文1fds"
			},{
				"content":"中文人手动阀手动阀"
			}],
		},
		#只替换指定条件的数据,_exist只有_replace有效
		"_exist":{
			"user_info":{
				k:v
			}
		}
	}