import { query } from '../util/db.js'; /** * YJBDC 模型 */ class YJBDC { /** * 获取用户信息(通过OpenID) * @param {Object} obj 查询参数 * @returns {Promise} 用户信息 */ static async GetUsersInfo(obj) { try { const sql = "SELECT * FROM YJBDC_WXUsers WHERE OpenID=?"; return await query(sql, [obj.OpenID]); } catch (error) { console.error('获取用户信息失败:', error); throw error; } } /** * 获取用户信息(通过UserID) * @param {Object} obj 查询参数 * @returns {Promise} 用户信息 */ static async GetUsersInfoByUserID(obj) { try { const sql = "SELECT * FROM YJBDC_WXUsers WHERE UserID=?"; return await query(sql, [obj.UserID]); } catch (error) { console.error('获取用户信息失败:', error); throw error; } } /** * 添加用户 * @param {Object} obj 用户信息 * @returns {Promise} 插入结果 */ static async AddUsers(obj) { try { const sql = "INSERT INTO YJBDC_WXUsers SET ?"; return await query(sql, [obj]); } catch (error) { console.error('添加用户失败:', error); throw error; } } /** * 更新用户信息(通过OpenID) * @param {Object} obj 更新参数 * @returns {Promise} 更新结果 */ static async UpdateUsers(obj) { try { const sql = "UPDATE YJBDC_WXUsers SET ? WHERE OpenID=?"; return await query(sql, [obj, obj.OpenID]); } catch (error) { console.error('更新用户信息失败:', error); throw error; } } /** * 更新用户信息(通过UserID) * @param {Object} obj 更新参数 * @returns {Promise} 更新结果 */ static async UpdateUsersByUserID(obj) { try { const sql = "UPDATE YJBDC_WXUsers SET ? WHERE UserID=?"; return await query(sql, [obj, obj.UserID]); } catch (error) { console.error('更新用户信息失败:', error); throw error; } } static async AddOCRInfo(obj) { try { const sql = "INSERT INTO YJBDC_OCRs SET ?"; return await query(sql, [obj]); } catch (error) { onsole.error('添加OCR失败:', error); throw error; } } static async AddArticleInfo(obj) { try { const sql = "INSERT INTO YJBDC_Articles SET ?"; return await query(sql, [obj]); } catch (error) { console.error('添加OCR失败:', error); throw error; } } static async GetYJBDCArticleList(obj) { try { if (obj.ID>0 || obj.ID=="MAX"){ if (obj.ID=="MAX"){ let sql = "SELECT * FROM YJBDC_Articles WHERE UserID=? order by ID desc limit 1;"; return await query(sql, [obj.UserID]); } else if (obj.UserID<4){ let sql = "SELECT * FROM YJBDC_Articles WHERE ID=? and Flag=0;"; return await query(sql, [obj.ID]); } else{ let sql = "SELECT * FROM YJBDC_Articles WHERE UserID=? and ID=? and Flag=0;"; return await query(sql, [obj.UserID,obj.ID]); } } else if (obj.IsFine){ let sql = "SELECT `ID`,`CreateTime`,`Words`,`Level`,`ArticleStyle`,`ArticleStart`,`ArticleTitle`,`ArticleTitleCHN`,`ArticleImage`,`WordSource`,`Flag` FROM YJBDC_Articles WHERE IsFine=1 and Flag=0 order by ID desc;"; return await query(sql, null); } else{ let sql = "SELECT `ID`,`UserID`,`CreateTime`,`Words`,`Level`,`ArticleStyle`,`IsFine`,`ArticleTitle`,`ArticleStart`,`ReadCount`,`Flag` FROM YJBDC_Articles WHERE UserID=? order by ID desc;"; return await query(sql, [obj.UserID]); } } catch (error) { console.error('获取信息失败:', error); throw error; } } static async UpdateYJBDCArticle(obj) { try { if (obj.Flag==-1){ const sql = "UPDATE YJBDC_Articles SET Flag=-1 WHERE ID=? and UserID=?"; return await query(sql, [obj.ID,obj.UserID]); } else if (obj.Source=="web"){ delete obj.Source; const sql = "UPDATE YJBDC_Articles SET ? WHERE ID=?"; return await query(sql, [obj,obj.ID]); } else if (obj.ReadCount==1){ const sql = "UPDATE YJBDC_Articles SET ReadCount=ReadCount+1 WHERE ID=? and UserID=?"; return await query(sql, [obj.ID,obj.UserID]); } } catch (error) { console.error('更新信息失败:', error); throw error; } } static async GetWordChinese(obj) { try { // 直接在数据库层面过滤出特定单词,获取包含BookID的数据 const sql = "SELECT Word, Translate, BookID FROM kylx365_db.Words w WHERE w.Word = ? AND ((w.BookID>=111 AND w.BookID<=136) OR (w.BookID>=151 AND w.BookID<=153) OR (w.BookID>=169 AND w.BookID<=183)) ORDER BY w.BookID;"; return await query(sql, [obj.Word]); } catch (error) { console.error('获取单词信息失败:', error); throw error; } } } export default YJBDC;