This commit is contained in:
@@ -311,7 +311,7 @@ class CategoryController {
|
||||
}
|
||||
|
||||
// Build query conditions
|
||||
const where = { category_id: id };
|
||||
const where = { id: id };
|
||||
if (is_active !== undefined) where.is_active = is_active === 'true';
|
||||
|
||||
// Query subjects
|
||||
|
||||
@@ -67,6 +67,7 @@ exports.createVocab = async (req, res) => {
|
||||
vi,
|
||||
category,
|
||||
topic,
|
||||
grade_number = 0,
|
||||
image_small,
|
||||
image_square,
|
||||
image_normal,
|
||||
@@ -103,6 +104,7 @@ exports.createVocab = async (req, res) => {
|
||||
syntax: syntax || null,
|
||||
semantics: semantics || null,
|
||||
constraints: constraints || null,
|
||||
grade_number: grade_number || 0,
|
||||
is_active: true
|
||||
});
|
||||
|
||||
@@ -166,6 +168,8 @@ exports.getAllVocabs = async (req, res) => {
|
||||
base_word,
|
||||
text,
|
||||
search,
|
||||
grade_start,
|
||||
grade_end,
|
||||
is_active = true
|
||||
} = req.query;
|
||||
|
||||
@@ -202,6 +206,21 @@ exports.getAllVocabs = async (req, res) => {
|
||||
];
|
||||
}
|
||||
|
||||
// Grade number range filter
|
||||
if (grade_start !== undefined && grade_end !== undefined) {
|
||||
const s = parseInt(grade_start);
|
||||
const e = parseInt(grade_end);
|
||||
if (s === e) {
|
||||
where.grade_number = s;
|
||||
} else if (s < e) {
|
||||
where.grade_number = { [Op.between]: [s, e] };
|
||||
}
|
||||
} else if (grade_start !== undefined) {
|
||||
where.grade_number = { [Op.gte]: parseInt(grade_start) };
|
||||
} else if (grade_end !== undefined) {
|
||||
where.grade_number = { [Op.lte]: parseInt(grade_end) };
|
||||
}
|
||||
|
||||
const { count, rows } = await Vocab.findAndCountAll({
|
||||
where,
|
||||
limit: parseInt(limit),
|
||||
@@ -786,6 +805,8 @@ exports.searchVocabs = async (req, res) => {
|
||||
form_key,
|
||||
text,
|
||||
vi,
|
||||
grade_start,
|
||||
grade_end,
|
||||
v_type,
|
||||
shuffle_pos,
|
||||
page = 1,
|
||||
@@ -825,6 +846,21 @@ exports.searchVocabs = async (req, res) => {
|
||||
where.vi = { [Op.like]: `%${vi}%` };
|
||||
}
|
||||
|
||||
// Grade number range filter
|
||||
if (grade_start !== undefined && grade_end !== undefined) {
|
||||
const s = parseInt(grade_start);
|
||||
const e = parseInt(grade_end);
|
||||
if (s === e) {
|
||||
where.grade_number = s;
|
||||
} else if (s < e) {
|
||||
where.grade_number = { [Op.between]: [s, e] };
|
||||
}
|
||||
} else if (grade_start !== undefined) {
|
||||
where.grade_number = { [Op.gte]: parseInt(grade_start) };
|
||||
} else if (grade_end !== undefined) {
|
||||
where.grade_number = { [Op.lte]: parseInt(grade_end) };
|
||||
}
|
||||
|
||||
// Handle v_type: find variants of same base_word
|
||||
if (v_type === true) {
|
||||
// Nếu có v_type, cần tìm tất cả các từ có cùng base_word
|
||||
|
||||
Reference in New Issue
Block a user