package com.qianwen.smartman.modules.system.handler.field; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.toolkit.JdbcUtils; import java.util.List; import com.qianwen.core.tool.utils.Func; import com.qianwen.smartman.modules.cps.vo.ConfigVO; import com.qianwen.smartman.modules.system.constant.FieldConstant; import com.qianwen.smartman.modules.system.handler.field.provider.AbstractSqlParseProvider; import com.qianwen.smartman.modules.system.vo.CustomFieldValueVO; import org.springframework.stereotype.Service; @Service /* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/handler/field/HandlerFieldSqlParse.class */ public class HandlerFieldSqlParse { private final ConfigVO configVO; private final List sqlParseProviders; private final ExtendFieldResultParse extendFieldResultParse; public HandlerFieldSqlParse(final ConfigVO configVO, final List sqlParseProviders, final ExtendFieldResultParse extendFieldResultParse) { this.configVO = configVO; this.sqlParseProviders = sqlParseProviders; this.extendFieldResultParse = extendFieldResultParse; } public String getExtraFiledSql(Boolean condition, List fieldValues, String joinTableName, Integer busType) { if (!condition.booleanValue() || Func.isEmpty(fieldValues)) { return ""; } AbstractSqlParseProvider extraFieldProvider = getExtraFieldProvider(); extraFieldProvider.setJoinTableName(joinTableName); extraFieldProvider.setExtraFieldColumnName(FieldConstant.FIELD_COLUMN); return extraFieldProvider.handler(fieldValues, busType); } public String getExtraFiledSql(List fieldValues, Integer busType) { return getExtraFiledSql(Boolean.TRUE, fieldValues, "", busType); } public String getExtraFiledSql(List fieldValues, String joinTableName, Integer busType) { return getExtraFiledSql(Boolean.TRUE, fieldValues, joinTableName, busType); } public String handlerFieldQueryResult(Long templateId, String resultJson) { return this.extendFieldResultParse.handlerFieldQueryResult(templateId, resultJson); } public String handlerFieldDetailResult(Long templateId, String resultJson) { return this.extendFieldResultParse.handlerFieldDetailResult(templateId, resultJson); } public void handlerFieldSaveOrUpdateCheck(String resultJson, Integer busType) { this.extendFieldResultParse.handlerFieldSaveOrUpdateCheck(resultJson, busType); } private AbstractSqlParseProvider getExtraFieldProvider() { DbType dbType = JdbcUtils.getDbType(this.configVO.getMysqlUrl()); return this.sqlParseProviders.stream().filter(provider -> { return provider.support(dbType).booleanValue(); }).findFirst().orElseThrow(() -> { return new UnsupportedOperationException("不支持的数据源"); }); } }