|
|
@@ -0,0 +1,28 @@
|
|
|
+package com.lc.ibps.components.querybuilder.support.parser.sql;
|
|
|
+
|
|
|
+import com.lc.ibps.components.querybuilder.enums.EnumOperator;
|
|
|
+import com.lc.ibps.components.querybuilder.model.IRule;
|
|
|
+import com.lc.ibps.components.querybuilder.model.sql.Operation;
|
|
|
+import com.lc.ibps.components.querybuilder.support.parser.AbstractSqlRuleParser;
|
|
|
+import com.lc.ibps.components.querybuilder.support.parser.JsonRuleParser;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+public class FindInSetRuleParser extends AbstractSqlRuleParser {
|
|
|
+ public boolean canParse(IRule rule) {
|
|
|
+
|
|
|
+ return EnumOperator.FIND_IN_SET.equals(rule.getOperator());
|
|
|
+ }
|
|
|
+
|
|
|
+ public Operation parse(IRule rule, JsonRuleParser parser) {
|
|
|
+ StringBuffer operate = new StringBuffer();
|
|
|
+ List listUser = (List) rule.getValue();
|
|
|
+ for (int i=0;i<listUser.size(); i++) {
|
|
|
+ if(i==listUser.size()-1){
|
|
|
+ operate.append(" FIND_IN_SET(" + listUser.get(i) +","+ rule.getField()+")");
|
|
|
+ }else{
|
|
|
+ operate.append("FIND_IN_SET(" + listUser.get(i) +","+ rule.getField()+") or ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return new Operation(operate, rule.getValue());
|
|
|
+ }
|
|
|
+}
|