修改属性信息获取逻辑
This commit is contained in:
parent
2dd33f2280
commit
66a506c29b
|
|
@ -385,16 +385,37 @@ void AttributeTableModel::loadPageData()
|
|||
QString strSQL = "";
|
||||
bool isPublicGroup = SqlQueryExecutor::instance().isPublicAttributeGroup(m_connection, m_modelAttributeGroup.groupID);
|
||||
if(isPublicGroup)
|
||||
strSQL = QString("SELECT attribute_id FROM basic.model_attribute_public WHERE attribute_group_id = %1 ORDER BY id ASC LIMIT %2 OFFSET %3")
|
||||
/*strSQL = QString("SELECT attribute_id FROM basic.model_attribute_public WHERE attribute_group_id = %1 ORDER BY id ASC LIMIT %2 OFFSET %3")
|
||||
.arg(m_modelAttributeGroup.groupID)
|
||||
.arg(m_paginationInfo.entriesPerPage)
|
||||
.arg((m_paginationInfo.currentPage - 1) * m_paginationInfo.entriesPerPage);*/
|
||||
strSQL = QString("SELECT attribute_id FROM basic.model_attribute_public AS map "
|
||||
"INNER JOIN basic.attribute AS a ON map.attribute_id = a.id "
|
||||
"WHERE attribute_group_id = %1 "
|
||||
"AND a.attribute LIKE '%%2%' "
|
||||
"ORDER BY map.id ASC LIMIT %3 OFFSET %4")
|
||||
.arg(m_modelAttributeGroup.groupID)
|
||||
.arg(m_filterChars_attributeType)
|
||||
.arg(m_paginationInfo.entriesPerPage)
|
||||
.arg((m_paginationInfo.currentPage - 1) * m_paginationInfo.entriesPerPage);
|
||||
//利用短路机制,当attribute_group_id!=-1时,括号整体为false,需要进行内部条件判断,=-1时,整体为true,忽略整体,也就忽略了attribute_group_id的条件判断
|
||||
else strSQL = QString("SELECT attribute_id FROM basic.model_attribute WHERE model_type_id = %1 AND (attribute_group_id = %2 OR %2 = -1) ORDER BY id ASC LIMIT %3 OFFSET %4")
|
||||
else
|
||||
/*strSQL = QString("SELECT attribute_id FROM basic.model_attribute WHERE model_type_id = %1 AND (attribute_group_id = %2 OR %2 = -1) ORDER BY id ASC LIMIT %3 OFFSET %4")
|
||||
.arg(m_modelAttributeGroup.modelID)
|
||||
.arg(m_modelAttributeGroup.groupID)
|
||||
.arg(m_paginationInfo.entriesPerPage)
|
||||
.arg((m_paginationInfo.currentPage - 1) * m_paginationInfo.entriesPerPage);
|
||||
.arg((m_paginationInfo.currentPage - 1) * m_paginationInfo.entriesPerPage);*/
|
||||
strSQL = QString("SELECT attribute_id FROM basic.model_attribute AS map "
|
||||
"INNER JOIN basic.attribute AS a ON map.attribute_id = a.id "
|
||||
"WHERE model_type_id = %1 "
|
||||
"AND (attribute_group_id = %2 OR %2 = -1) "
|
||||
"AND a.attribute LIKE '%%3%' "
|
||||
"ORDER BY map.id ASC LIMIT %4 OFFSET %5")
|
||||
.arg(m_modelAttributeGroup.modelID)
|
||||
.arg(m_modelAttributeGroup.groupID)
|
||||
.arg(m_filterChars_attributeType)
|
||||
.arg(m_paginationInfo.entriesPerPage)
|
||||
.arg((m_paginationInfo.currentPage - 1) * m_paginationInfo.entriesPerPage);
|
||||
try
|
||||
{
|
||||
QSqlQuery query = SqlQueryExecutor::instance().executeSQL(m_connection, strSQL);
|
||||
|
|
@ -404,8 +425,8 @@ void AttributeTableModel::loadPageData()
|
|||
attribute.id = query.value(0).toInt();
|
||||
if(SqlQueryExecutor::instance().getAttributeInfo(m_connection, columns.join(", "), attribute))
|
||||
{
|
||||
if(!m_filterChars_attributeType.isEmpty() && !attribute.type.contains(m_filterChars_attributeType))
|
||||
continue;
|
||||
// if(!m_filterChars_attributeType.isEmpty() && !attribute.type.contains(m_filterChars_attributeType))
|
||||
// continue;
|
||||
|
||||
RowData data;
|
||||
data.values.append(attribute.type);
|
||||
|
|
@ -504,7 +525,7 @@ void AttributeTableModel::updateTotalCount()
|
|||
if(m_modelAttributeGroup.modelID == -1)
|
||||
m_paginationInfo.totalEntries = SqlQueryExecutor::instance().getAllAttributeCount(m_connection, m_filterChars_attributeType);
|
||||
else
|
||||
m_paginationInfo.totalEntries = SqlQueryExecutor::instance().getAttributeCount(m_connection, m_modelAttributeGroup.modelID, m_modelAttributeGroup.groupID);
|
||||
m_paginationInfo.totalEntries = SqlQueryExecutor::instance().getAttributeCount(m_connection, m_modelAttributeGroup.modelID, m_modelAttributeGroup.groupID, m_filterChars_attributeType);
|
||||
|
||||
m_paginationInfo.totalPages = totalPages();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue