| | |
| | | return this.conditions; |
| | | } |
| | | |
| | | public addCondition(condition: string, colName: string, ...values: any[]) { |
| | | private addCondition(condition: string, colName: string, ...values: any[]) { |
| | | const split = Criteria.CONDITION_SPLIT; // '||' |
| | | this.conditions.push(condition + split + colName + split + values.join(split)); |
| | | let conditionStr = condition + split + colName; |
| | | if (!!values && values.length > 0) { |
| | | conditionStr += split + values.join(split); |
| | | } |
| | | this.conditions.push(conditionStr); |
| | | } |
| | | public andCondition(condition: string) { |
| | | this.addCondition('andCondition', condition); |
| | | } |
| | | public andLike(col: { name: string, value: any}): Criteria { |
| | | this.addCondition('andLike', col.name, col.value); |
| | |
| | | this.addCondition('andEqualTo', col.name, col.value); |
| | | return this; |
| | | } |
| | | public andNotEqualTo(col: { name: string, value: any}): Criteria { |
| | | this.addCondition('andNotEqualTo', col.name, col.value); |
| | | return this; |
| | | } |
| | | public andGreaterThanOrEqualTo(col: { name: string, value: any}): Criteria { |
| | | this.addCondition('andGreaterThanOrEqualTo', col.name, col.value); |
| | | return this; |
| | | } |
| | | } |
| | | |
| | | @Injectable() |
| | |
| | | private static OR_SPLIT = 'or|'; |
| | | private static CRITERIA_SPLIT = '|||'; |
| | | private criterion: Criteria[] = []; |
| | | |
| | | public clear(): void { |
| | | this.criterion = []; |
| | | } |
| | | public getSqlParam(): string { |
| | | let whereSql = ''; |
| | | for (const cri of this.criterion) { |
| | |
| | | return encodeURI(whereSql); |
| | | } |
| | | constructor() { } |
| | | public or() { |
| | | public or(): Criteria { |
| | | const cri = new Criteria(); |
| | | this.criterion.push(cri); |
| | | return cri; |