package com.qianwen.smartman.modules.system.handler.field.provider; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.log.StaticLog; import com.baomidou.mybatisplus.annotation.DbType; import java.util.List; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.CommonConstant; import com.qianwen.smartman.common.constant.DncConstant; import com.qianwen.core.tool.utils.Func; import com.qianwen.core.tool.utils.SpringUtil; import com.qianwen.smartman.modules.system.entity.CustomTemplateField; import com.qianwen.smartman.modules.system.enums.CustomFieldTypeEnums; import com.qianwen.smartman.modules.system.service.ICustomTemplateFieldService; import com.qianwen.smartman.modules.system.vo.CustomFieldValueVO; /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/handler/field/provider/AbstractSqlParseProvider.class */ public abstract class AbstractSqlParseProvider { private String joinTableName; private String extraFieldColumnName; public abstract Boolean support(DbType dbType); protected abstract String equalsTemplate(); protected abstract String likeTemplate(); protected abstract String dateTemplate(); public void setJoinTableName(final String joinTableName) { this.joinTableName = joinTableName; } public void setExtraFieldColumnName(final String extraFieldColumnName) { this.extraFieldColumnName = extraFieldColumnName; } public String getJoinTableName() { return this.joinTableName; } public String getExtraFieldColumnName() { return this.extraFieldColumnName; } public String handler(List fields, Integer busType) { if (CollectionUtil.isEmpty(fields)) { return ""; } StringBuilder conditionStr = new StringBuilder(); fields.forEach(field -> { if (Func.isEmpty(field.getValue()) && Func.isEmpty(field.getValues())) { return; } String condition = conditionBuild(field, busType); if (Func.isEmpty(condition)) { return; } conditionStr.append("AND ").append(condition); }); destroy(); return Func.isEmpty(conditionStr.toString()) ? conditionStr.toString() : conditionStr.substring(3); } private void destroy() { setJoinTableName(""); } private String getColumnName() { if (StrUtil.isNotEmpty(getJoinTableName())) { return getJoinTableName() + DncConstant.POINT + getExtraFieldColumnName(); } return getExtraFieldColumnName(); } protected String dateConditionBuild(CustomFieldValueVO field) { List values = field.getValues(); return (CollectionUtil.isNotEmpty(values) && values.size() == CommonConstant.TWO.intValue()) ? StrUtil.format(dateTemplate(), new Object[]{getColumnName(), field.getFieldCode(), "'" + values.get(CommonConstant.ZERO.intValue()) + "'", "'" + values.get(CommonConstant.ONE.intValue()) + "'"}) : ""; } protected String likeConditionBuild(CustomFieldValueVO field) { return StrUtil.format(likeTemplate(), new Object[]{getColumnName(), field.getFieldCode(), field.getValue()}); } protected String equalsConditionBuild(CustomFieldValueVO field) { return StrUtil.format(equalsTemplate(), new Object[]{getColumnName(), field.getFieldCode(), "'" + field.getValue() + "'"}); } protected String equalsNumberConditionBuild(CustomFieldValueVO field) { try { Double number = Double.valueOf(field.getValue()); return StrUtil.format(equalsTemplate(), new Object[]{getColumnName(), field.getFieldCode(), number}); } catch (Exception e) { StaticLog.info("[扩展字段].[数字类型].[入参与字段类型转换异常,fieldCode:{},value:{}]", new Object[]{field.getFieldCode(), field.getValue()}); return ""; } } protected String optionsConditionBuild(CustomFieldValueVO field) { StringBuilder condition = new StringBuilder("( "); int i = 0; while (i < field.getValues().size()) { String format = StrUtil.format(likeTemplate(), new Object[]{getColumnName(), field.getFieldCode(), field.getValues().get(i)}); condition.append(i != 0 ? "OR " : "").append(format); i++; } return condition.append(" )").toString(); } protected String cascadeConditionBuild(CustomFieldValueVO field) { return StrUtil.format(likeTemplate(), new Object[]{getColumnName(), field.getFieldCode(), field.getValue()}); } protected String businessEmpConditionBuild(CustomFieldValueVO field) { return StrUtil.format(likeTemplate(), new Object[]{getColumnName(), field.getFieldCode(), field.getValue()}); } private String conditionBuild(CustomFieldValueVO field, Integer busType) { CustomTemplateField customTemplateField = ((ICustomTemplateFieldService) SpringUtil.getBean(ICustomTemplateFieldService.class)).getField(field.getFieldCode(), busType); if (Func.isEmpty(customTemplateField) || Func.isEmpty(customTemplateField.getFieldCode())) { return ""; } CustomFieldTypeEnums fieldTypeEnum = CustomFieldTypeEnums.getEnum(customTemplateField.getFieldType()); switch (AnonymousClass1.$SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[fieldTypeEnum.ordinal()]) { case 1: return dateConditionBuild(field); case 2: return optionsConditionBuild(field); case 3: case 4: return likeConditionBuild(field); case RegionCache.VILLAGE_LEVEL /* 5 */: return equalsNumberConditionBuild(field); case 6: return cascadeConditionBuild(field); case 7: return businessEmpConditionBuild(field); default: return equalsConditionBuild(field); } } /* JADX INFO: Access modifiers changed from: package-private */ /* renamed from: org.springblade.modules.system.handler.field.provider.AbstractSqlParseProvider$1 reason: invalid class name */ /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/handler/field/provider/AbstractSqlParseProvider$1.class */ public static /* synthetic */ class AnonymousClass1 { static final /* synthetic */ int[] $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums = new int[CustomFieldTypeEnums.values().length]; static { try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.DATE.ordinal()] = 1; } catch (NoSuchFieldError e) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.MULTI_SELECT.ordinal()] = 2; } catch (NoSuchFieldError e2) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.INPUT.ordinal()] = 3; } catch (NoSuchFieldError e3) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.MULTI_TEXT.ordinal()] = 4; } catch (NoSuchFieldError e4) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.DIGITAL_INPUT.ordinal()] = 5; } catch (NoSuchFieldError e5) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.CASCADE_SELECT.ordinal()] = 6; } catch (NoSuchFieldError e6) { } try { $SwitchMap$org$springblade$modules$system$enums$CustomFieldTypeEnums[CustomFieldTypeEnums.BUSINESS.ordinal()] = 7; } catch (NoSuchFieldError e7) { } } } }