| 
							
								 | 
							
							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); // 成功处理,返回查询结果
 | 
						
						
						
						
							 | 
							
								 | 
							
							        });
 | 
						
						
						
						
							 | 
							
								 | 
							
							} |