/
TagCatalog.cpp
62 lines (48 loc) · 1.37 KB
/
TagCatalog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "TagCatalog.h"
#include <QDebug>
TagCatalog *TagCatalog::getInstance()
{
static TagCatalog *instance = new TagCatalog();
return instance;
}
void TagCatalog::add(Tag &tag)
{
DB *db = DB::getInstance();
QString query = QString("INSERT INTO `Tag` VALUES (NULL,'%1')").
arg(tag.getText());
QSqlQuery *res = db->executeQuery(query);
tag.setId(res->lastInsertId().toInt());
}
bool TagCatalog::exist(Tag tag)
{
DB *db = DB::getInstance();
QString query = QString("SELECT * from `Tag` where `text` like '%1'").
arg(tag.getText());
QSqlQuery *res = db->executeQuery(query);
if ( res->next() )
return true;
return false;
}
void TagCatalog::relateTagToKnowledge(Tag tag, KnowledgeItem knowledge)
{
if ( !exist(tag) )
add(tag);
DB *db = DB::getInstance();
QString query = QString("INSERT INTO `KnowledgeTag` VALUES (NULL,'%1','%2')").
arg(knowledge.getId()).
arg(tag.getId());
db->executeQuery(query);
}
void TagCatalog::relateTagToKnowledgeReq(Tag tag, KnowledgeRequest request)
{
if ( !exist(tag) )
add(tag);
DB *db = DB::getInstance();
QString query = QString("INSERT INTO `KnowledgeRequestTag` VALUES (NULL,'%1','%2')").
arg(request.getId()).
arg(tag.getId());
db->executeQuery(query);
}
TagCatalog::TagCatalog()
{
}