const {handle} = require('../tools/handle_cjs'); const log = require("../logger").logger("c_user","info"); const d_user = require("../database/d_user"); const codeMap = require("../map/rcodeMap"); const dbField = require("../map/dbField"); const {searchHandle} = require("../tools/searchSql"); /** * 检测账号是否合法 * @param err * @param res * @returns {[{eMsg: string, eCode: number},null]|*[]} * @private */ function _checkAccount(err,res){ let userData; if(err){ log.warn(`[用户登录] 登陆失败 ${err.message}`); return [err,null]; } if(!res.length){ return [ { eCode:codeMap.NotFound, eMsg:`账号或者密码错误` },null]; } userData = res[0]; if(userData.status === dbField.db_user.status.disable){ log.info(`[账号检测] 账号已被禁用`); return [ { eCode:codeMap.NotPermission, eMsg:`账号已被禁用` },null]; } return [null,userData]; } async function login(owner,passwd){ let err,res,userData; [err,res] = await handle(d_user.login(owner,passwd)); [err,userData] = _checkAccount(err,res); if(err){ return [err,null]; } log.info(`[用户登录] 登陆成功 ${userData.name}`) return [null,userData]; } async function loadAccount(accountId,p, l){ let err,res; let userData; let _params = {}; p = p || 1; l = l || 10; // 判断账号是否存在 [err,res] = await handle(d_user.checkAccount(accountId)); [err,userData] = _checkAccount(err,res); if(err){ return [err,null]; } return await searchHandle( '加载账号失败', d_user.loadAccounts, _params, p, l); } module.exports = { login, loadAccount }