|
|
var path = require("path"); // 引入Node.js的path模块,用于处理文件和目录的路径
|
|
|
|
|
|
// 引入自定义的 DAO 模块,可能用于数据访问操作,具体功能取决于其内部实现
|
|
|
daoModule = require("./DAO"); // 引入当前目录下的DAO模块
|
|
|
|
|
|
// 引入位于 modules/database 目录下的数据库模块,使用 path.join 拼接当前工作目录与相对路径
|
|
|
databaseModule = require(path.join(process.cwd(), "modules/database")); // 引入数据库模块,路径根据当前工作目录动态确定
|
|
|
|
|
|
/**
|
|
|
* 清除商品属性
|
|
|
*
|
|
|
* @param {[type]} goods_id 商品的唯一标识符,用于确定要清除属性的商品
|
|
|
* @param {Function} cb 回调函数,用于处理清除操作的结果
|
|
|
* 当操作完成时,将调用此函数。若操作出现错误,第一个参数将包含错误信息;若操作成功,第一个参数为 null
|
|
|
*/
|
|
|
module.exports.clearGoodAttributes = function (goods_id, cb) {
|
|
|
// 从数据库模块中获取数据库对象
|
|
|
db = databaseModule.getDatabase(); // 获取数据库实例
|
|
|
|
|
|
// 定义 SQL 语句,用于删除 sp_goods_attr 表中 goods_id 匹配的记录
|
|
|
sql = "DELETE FROM sp_goods_attr WHERE goods_id =?"; // SQL删除语句
|
|
|
|
|
|
// 执行 SQL 查询操作,将 goods_id 作为参数传递给 SQL 语句
|
|
|
database.driver.execQuery( // 执行SQL查询的方法
|
|
|
sql // SQL语句
|
|
|
, [goods_id], // 参数数组,包含要删除的goods_id
|
|
|
function (err) { // 回调函数,处理执行结果
|
|
|
// 如果执行查询时出现错误,调用回调函数并传递错误信息
|
|
|
if (err) return cb("删除出错"); // 错误处理
|
|
|
|
|
|
// 若操作成功,调用回调函数,将第一个参数设为 null
|
|
|
cb(null); // 成功处理,无返回值
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询商品属性列表
|
|
|
*
|
|
|
* @param {[type]} goods_id 商品的唯一标识符,用于确定要查询属性的商品
|
|
|
* @param {Function} cb 回调函数,用于处理查询操作的结果
|
|
|
* 当操作完成时,将调用此函数。若操作出现错误,第一个参数将包含错误信息;若操作成功,第一个参数为 null,第二个参数为查询结果
|
|
|
*/
|
|
|
module.exports.list = function (goods_id, cb) {
|
|
|
// 从数据库模块中获取数据库对象
|
|
|
db = databaseModule.getDatabase(); // 获取数据库实例
|
|
|
|
|
|
// 定义 SQL 语句,使用 LEFT JOIN 连接 sp_goods_attr 和 sp_attribute 表进行查询
|
|
|
// 查询内容包括多个属性,从 sp_goods_attr 表中查询一些属性,从 sp_attribute 表中查询一些属性
|
|
|
// 并根据 good_attr.goods_id 进行筛选
|
|
|
sql = "SELECT good_attr.goods_id,good_attr.attr_id,good_attr.attr_value,good_attr.add_price,attr.attr_name,attr.attr_sel,attr.attr_write,attr.attr_vals FROM sp_goods_attr as good_attr LEFT JOIN sp_attribute as attr ON attr.attr_id = good_attr.attr_id WHERE good_attr.goods_id =?"; // SQL查询语句
|
|
|
|
|
|
// 执行 SQL 查询操作,将 goods_id 作为参数传递给 SQL 语句
|
|
|
database.driver.execQuery( // 执行SQL查询的方法
|
|
|
sql // SQL语句
|
|
|
, [goods_id], // 参数数组,包含要查询的goods_id
|
|
|
function (err, attrs) { // 回调函数,处理执行结果
|
|
|
// 如果执行查询时出现错误,调用回调函数并传递错误信息
|
|
|
if (err) return cb("删除出错"); // 注意:这里的错误信息提示为“删除出错”可能是个笔误,应为“查询出错”
|
|
|
|
|
|
// 若操作成功,调用回调函数,将第一个参数设为 null,第二个参数为查询结果
|
|
|
cb(null, attrs); // 成功处理,返回查询结果
|
|
|
});
|
|
|
} |