拼装数据和链式操作
在做管理后台开发的时候很多时候都是在筛选,搜索,日期范围,排序的条件来搜索数据,这个时候最好能对数据做一些处理和拼装数据。
后端需要的数据格式
fieldList :字段
"fieldList": [ { "fieldName": "userName", "fieldValue": "Jerry", "comparatorOperator": "EQUAL" },{ "fieldName": "password", "fieldValue": "123456", "comparatorOperator": "EQUAL" }
{
"fieldList": [
{ "fieldName": "flowType", "fieldValue": "dataflow", "comparatorOperator": "EQUAL" },
{ "fieldName": "flowName", "fieldValue": "flow", "comparatorOperator": "EQUAL" },
{ "fieldName": "createTime", "fieldValue": 1536883200000, "comparatorOperator": "GREATER_THAN" },
{ "fieldName": "createTime", "fieldValue": 1540252800000, "comparatorOperator": "LESS_THAN" }],
"sortObject": { "field": "lastModifiedTime", "orderDirection": "DESC" },
"offset": 0,
"limit": 8,
"groupBy": "day"
}
不进行处理每次都需要重新定义很难处理比如: 添加一项都这么麻烦;
var parameters = {};
parameters.fieldList[0].fieldName = 'userName';
parameters.fieldList[0].fieldValue = 'Jerry';
parameters.fieldList[0].comparatorOperator = 'EQUAL';
进入正题
首先声明一个类,来存储默认值,new 一个实例的时候须传入 fieldList 的三个值;
class RequseParmeter {
constructor (fieldName, fieldValue, comparatorOperator) {
// 初始化默认值
this.fieldList = [];
this.sortObject = {
field: 'lastModifiedTime',
orderDirection: 'DESC', //value:{ ASC, DESC }
}
this.offset = 0;
this.limit = 8
this.And(fieldName, fieldValue, comparatorOperator)
}
}
}
我们对外暴露几个方法接收修改默认值操作的方法。
class RequseParmeter {
constructor (fieldName, fieldValue, comparatorOperator) {
// 初始化默认值
this.fieldList = [];
this.sortObject = {
field: 'lastModifiedTime',
orderDirection: 'DESC', //value:{ ASC, DESC }
}
this.offset = 0;
this.limit = 8
this.And(fieldName, fieldValue, comparatorOperator)
}
And (fieldName, fieldValue, comparatorOperator) {
this.fieldList.push({
fieldName: fieldName,
fieldValue: fieldValue,
comparatorOperator: comparatorOperator
});
return this
}
Sort (field, orderDirection) {
this.sortObject.field = field
this.sortObject.orderDirection = orderDirection
return this
}
Offset (offset) {
this.offset = offset
return this
}
Limit (limit) {
this.limit = limit
return this
}
}
链式操作的具体使用方法
var parmerter = new RequseParmeter ('userName', '156****1485', 'EQUAL').And('password', '123456', 'EQUAL').Limint(10).Offset(1)