提交 ce25badf 编写于 作者: VK1688's avatar VK1688

补全userDao方法

上级 eb00412e
/** // 涉及的表名
* 用户相关表操作 const dbName = {
*/ user: "uni-id-users", // 用户
const dbName_user = "uni-id-users"; // 用户 };
var dao = {}; var dao = {};
var util = {}; var util = {};
// 初始化 // 初始化
dao.init = function(obj){ dao.init = function(obj) {
util = obj; util = obj;
} }
/** /**
...@@ -14,21 +14,42 @@ dao.init = function(obj){ ...@@ -14,21 +14,42 @@ dao.init = function(obj){
* 调用示例 * 调用示例
* await vk.daoCenter.userDao.findById(user_id); * await vk.daoCenter.userDao.findById(user_id);
* data 请求参数说明 * data 请求参数说明
* @params {String} user_id 用户ID * @param {String} user_id 用户ID
*/ */
dao.findById = async (user_id) => { dao.findById = async (user_id) => {
let { vk , db, _ } = util; let { vk, db, _ } = util;
let res = {}; let res = {};
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.findById({ res = await vk.baseDao.findById({
dbName:dbName_user, dbName: dbName.user,
id:user_id, id: user_id,
fieldJson:{ token:false, password:false }, fieldJson: { token: false, password: false },
}); });
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
}; };
/**
* 查 - 根据whereJson获取单条记录
* @param {Object} whereJson 条件
* @param {Object} fieldJson 字段显示规则
* 调用示例
let userInfo = await vk.daoCenter.userDao.findByWhereJson({
});
*/
dao.findByWhereJson = async (whereJson, fieldJson={ token: false, password: false }) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.findByWhereJson({
dbName: dbName.user,
whereJson,
fieldJson
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/** /**
* 根据邀请码获取用户信息 * 根据邀请码获取用户信息
...@@ -40,7 +61,7 @@ dao.findByInviteCode = async (invite_code) => { ...@@ -40,7 +61,7 @@ dao.findByInviteCode = async (invite_code) => {
let res = {}; let res = {};
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.findByWhereJson({ res = await vk.baseDao.findByWhereJson({
dbName: dbName_user, dbName: dbName.user,
whereJson: { whereJson: {
my_invite_code: invite_code my_invite_code: invite_code
}, },
...@@ -50,8 +71,110 @@ dao.findByInviteCode = async (invite_code) => { ...@@ -50,8 +71,110 @@ dao.findByInviteCode = async (invite_code) => {
return res; return res;
}; };
/** /**
* 改 * 增 - 添加一条记录
* @param {Object} dataJson 添加的数据
* 调用示例
await vk.daoCenter.userDao.add({
});
* 调用示例
await vk.daoCenter.userDao.add({
db: transaction,
dataJson: {
}
});
*/
dao.add = async (obj) => {
let { vk, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
if (obj.db && obj.dataJson) {
// 支持事务
res = await vk.baseDao.add({
...obj,
cancelAddTime: true, // 因为user表使用了register_date作为创建时间
dbName: dbName.user,
});
} else {
// 不支持事务
res = await vk.baseDao.add({
dbName: dbName.user,
cancelAddTime: true, // 因为user表使用了register_date作为创建时间
dataJson: obj
});
}
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 增 - 添加多条记录
* @param {Object} dataJson 添加的数据
* 调用示例
await vk.daoCenter.userDao.adds(dataArr);
*/
dao.adds = async (dataArr) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.adds({
dbName: dbName.user,
cancelAddTime: true, // 因为user表使用了register_date作为创建时间
dataJson: dataArr
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 删 - 删除多条记录
* @param {Object} whereJson 条件
* 调用示例
await vk.daoCenter.userDao.del({
});
*/
dao.del = async (whereJson) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.del({
dbName: dbName.user,
whereJson
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 删 - 据ID删除单条数据
* @param {String} _id
* 调用示例
await vk.daoCenter.userDao.deleteById(_id);
await vk.daoCenter.userDao.deleteById(_id, transaction);
*/
dao.deleteById = async (_id, db) => {
let { vk, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.deleteById({
db,
dbName: dbName.user,
id: _id
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 改 - 批量修改
* @param {Object} whereJson 条件 * @param {Object} whereJson 条件
* @param {Object} dataJson 修改的数据 * @param {Object} dataJson 修改的数据
* 调用示例 * 调用示例
...@@ -70,7 +193,7 @@ dao.update = async (obj = {}) => { ...@@ -70,7 +193,7 @@ dao.update = async (obj = {}) => {
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.update({ res = await vk.baseDao.update({
...obj, ...obj,
dbName: dbName_user dbName: dbName.user
}); });
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
...@@ -78,7 +201,7 @@ dao.update = async (obj = {}) => { ...@@ -78,7 +201,7 @@ dao.update = async (obj = {}) => {
/** /**
* 改 * 改 - 根据id修改
* @param {Object} whereJson 条件 * @param {Object} whereJson 条件
* @param {Object} dataJson 修改的数据 * @param {Object} dataJson 修改的数据
* 调用示例 * 调用示例
...@@ -95,7 +218,7 @@ dao.updateById = async (obj = {}) => { ...@@ -95,7 +218,7 @@ dao.updateById = async (obj = {}) => {
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.updateById({ res = await vk.baseDao.updateById({
...obj, ...obj,
dbName: dbName_user dbName: dbName.user
}); });
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
...@@ -122,7 +245,7 @@ dao.updateAndReturn = async (obj = {}) => { ...@@ -122,7 +245,7 @@ dao.updateAndReturn = async (obj = {}) => {
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.updateAndReturn({ res = await vk.baseDao.updateAndReturn({
...obj, ...obj,
dbName: dbName_user dbName: dbName.user
}); });
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
...@@ -139,7 +262,7 @@ dao.count = async (whereJson) => { ...@@ -139,7 +262,7 @@ dao.count = async (whereJson) => {
let res = {}; let res = {};
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.count({ res = await vk.baseDao.count({
dbName: dbName_user, dbName: dbName.user,
whereJson whereJson
}); });
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
...@@ -147,10 +270,170 @@ dao.count = async (whereJson) => { ...@@ -147,10 +270,170 @@ dao.count = async (whereJson) => {
}; };
/**
* 查 - 求和
* @param {String} fieldName 需要求和的字段名
* @param {Object} whereJson 筛选条件
* 调用示例
let userSum = await vk.daoCenter.userDao.sum({
fieldName: "",
whereJson: {
}
});
*/
dao.sum = async (obj) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.sum({
...obj,
dbName: dbName.user,
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 查 - 求最大值
* @param {String} fieldName 需要求最大值的字段名
* @param {Object} whereJson 筛选条件
* 调用示例
let userMax = await vk.daoCenter.userDao.max({
fieldName: "",
whereJson: {
}
});
*/
dao.max = async (obj) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.max({
...obj,
dbName: dbName.user,
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 查 - 求最小值
* @param {String} fieldName 需要求最小值的字段名
* @param {Object} whereJson 筛选条件
* 调用示例
let userMin = await vk.daoCenter.userDao.min({
fieldName: "",
whereJson: {
}
});
*/
dao.min = async (obj) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.min({
...obj,
dbName: dbName.user,
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 查 - 求最平均值
* @param {String} fieldName 需要求最平均值的字段名
* @param {Object} whereJson 筛选条件
* 调用示例
let userAvg = await vk.daoCenter.userDao.avg({
fieldName: "",
whereJson: {
}
});
*/
dao.avg = async (obj) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.avg({
...obj,
dbName: dbName.user,
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/** /**
* 查 - 获取数据列表 * 查 - 获取数据列表
* 调用示例 * 调用示例
res = await vk.daoCenter.userDao.getTableData({ data }); let userList = await vk.daoCenter.userDao.select({
pageIndex:1,
pageSize:20,
getMain:false,
whereJson:{
},
fieldJson:{},
sortArr:[{ "name":"_id", "type":"desc" }],
});
*/
dao.select = async (obj = {}) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.select({
...obj,
dbName: dbName.user
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 查 - 获取数据列表
* 调用示例
let userList = await vk.daoCenter.userDao.selects({
pageIndex:1,
pageSize:20,
getMain:false,
whereJson:{
},
fieldJson:{},
sortArr:[{ "name":"_id", "type":"desc" }],
// 副表列表
foreignDB:[
{
dbName:"副表表名",
localKey:"主表外键名",
foreignKey:"副表外键名",
as:"副表as字段",
limit:1
}
]
});
*/
dao.selects = async (obj = {}) => {
let { vk, db, _ } = util;
let res = {};
// 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.selects({
...obj,
dbName: dbName.user
});
// 数据库操作结束-----------------------------------------------------------
return res;
};
/**
* 查 - 获取数据列表
* 调用示例
res = await vk.daoCenter.userDao.getTableData({
data
});
*/ */
dao.getTableData = async (obj = {}) => { dao.getTableData = async (obj = {}) => {
let { vk, db, _ } = util; let { vk, db, _ } = util;
...@@ -158,7 +441,7 @@ dao.getTableData = async (obj = {}) => { ...@@ -158,7 +441,7 @@ dao.getTableData = async (obj = {}) => {
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
res = await vk.baseDao.getTableData({ res = await vk.baseDao.getTableData({
...obj, ...obj,
dbName: dbName_user dbName: dbName.user
}); });
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
...@@ -166,7 +449,7 @@ dao.getTableData = async (obj = {}) => { ...@@ -166,7 +449,7 @@ dao.getTableData = async (obj = {}) => {
/** /**
* 获取用户信息,根据 * 获取用户信息(旧版)
* _id * _id
* username * username
* mobile * mobile
...@@ -181,10 +464,10 @@ dao.getTableData = async (obj = {}) => { ...@@ -181,10 +464,10 @@ dao.getTableData = async (obj = {}) => {
mobile:mobile mobile:mobile
}); });
* data 请求参数说明 * data 请求参数说明
* @params {Object} userInfo 用户信息 * @param {Object} userInfo 用户信息
*/ */
dao.findByUserInfo = async (userInfo) => { dao.findByUserInfo = async (userInfo) => {
let { vk , db, _ } = util; let { vk, db, _ } = util;
let res; let res;
// 数据库操作开始----------------------------------------------------------- // 数据库操作开始-----------------------------------------------------------
let whereJson = {}; let whereJson = {};
...@@ -200,20 +483,20 @@ dao.findByUserInfo = async (userInfo) => { ...@@ -200,20 +483,20 @@ dao.findByUserInfo = async (userInfo) => {
"my_invite_code" "my_invite_code"
]; ];
let orArr = []; let orArr = [];
for(let i=0; i<list.length; i++){ for (let i = 0; i < list.length; i++) {
let keyName = list[i]; let keyName = list[i];
let orObj = {}; let orObj = {};
if(vk.pubfn.isNotNull(userInfo[keyName])) orObj[keyName] = userInfo[keyName]; if (vk.pubfn.isNotNull(userInfo[keyName])) orObj[keyName] = userInfo[keyName];
if(vk.pubfn.isNotNull(orObj)){ if (vk.pubfn.isNotNull(orObj)) {
orArr.push(orObj); orArr.push(orObj);
} }
} }
if(orArr.length > 0){ if (orArr.length > 0) {
whereJson = _.or(orArr); whereJson = _.or(orArr);
res = await vk.baseDao.findByWhereJson({ res = await vk.baseDao.findByWhereJson({
dbName:dbName_user, dbName: dbName.user,
fieldJson:{ token:false, password:false }, fieldJson: { token: false, password: false },
whereJson:whereJson whereJson: whereJson
}); });
} }
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
...@@ -224,28 +507,27 @@ dao.findByUserInfo = async (userInfo) => { ...@@ -224,28 +507,27 @@ dao.findByUserInfo = async (userInfo) => {
* 调用示例 * 调用示例
* await vk.daoCenter.userDao.listByIds(userIdArr); * await vk.daoCenter.userDao.listByIds(userIdArr);
* data 请求参数说明 * data 请求参数说明
* @params {Array} userIdArr 用户ID数组 * @param {Array} userIdArr 用户ID数组
*/ */
dao.listByIds = async (userIdArr) => { dao.listByIds = async (userIdArr) => {
let { vk , db, _ } = util; let { vk, db, _ } = util;
let res = {}; let res = await vk.baseDao.select({
let selectRes = await vk.baseDao.select({ dbName: dbName.user,
dbName:dbName_user, pageIndex: 1,
pageIndex:1, pageSize: 500,
pageSize:500, getMain: true,
fieldJson:{ token:false, password:false }, fieldJson: { token: false, password: false },
whereJson:{ whereJson: {
_id:_.in(userIdArr) _id: _.in(userIdArr)
}, },
}); });
res = selectRes.rows;
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
}; };
/** /**
* 根据手机号直接注册账号并登录 * 根据手机号直接注册账号并登录
* 若手机号已存在,则直接登录 * 若手机号已存在,则直接登录
* @params {Object} data 参数 * @param {Object} data 参数
* mobile 手机号 必填 * mobile 手机号 必填
* password 初始密码 * password 初始密码
* inviteCode 邀请人的邀请码 * inviteCode 邀请人的邀请码
...@@ -257,7 +539,7 @@ dao.listByIds = async (userIdArr) => { ...@@ -257,7 +539,7 @@ dao.listByIds = async (userIdArr) => {
}); });
*/ */
dao.registerUserByMobile = async (data) => { dao.registerUserByMobile = async (data) => {
let { vk , db, _, uniID } = util; let { vk, db, _, uniID } = util;
let res = {}; let res = {};
let { let {
mobile, mobile,
...@@ -272,8 +554,8 @@ dao.registerUserByMobile = async (data) => { ...@@ -272,8 +554,8 @@ dao.registerUserByMobile = async (data) => {
await uniID.setVerifyCode({ await uniID.setVerifyCode({
mobile, mobile,
code, code,
expiresIn:60, expiresIn: 60,
type:"login" type: "login"
}); });
// 若手机号不存在,则注册并登录。存在,则直接登录。 // 若手机号不存在,则注册并登录。存在,则直接登录。
res = await uniID.loginBySms({ res = await uniID.loginBySms({
...@@ -284,11 +566,35 @@ dao.registerUserByMobile = async (data) => { ...@@ -284,11 +566,35 @@ dao.registerUserByMobile = async (data) => {
myInviteCode, myInviteCode,
needPermission needPermission
}); });
if(res.uid && vk.pubfn.isNull(res.userInfo)){ if (res.uid && vk.pubfn.isNull(res.userInfo)) {
res.userInfo = await vk.daoCenter.userDao.findById(res.uid); res.userInfo = await vk.daoCenter.userDao.findById(res.uid);
} }
// 数据库操作结束----------------------------------------------------------- // 数据库操作结束-----------------------------------------------------------
return res; return res;
}; };
/**
* 重置用户密码
* data 请求参数说明
* @param {String} uid 用户ID
* @param {String} password 需要重置的密码
* 调用示例
await vk.daoCenter.userDao.resetPwd({
uid: uid,
password: "123456"
});
*/
dao.resetPwd = async (data) => {
let { vk, db, _, uniID } = util;
let res = {};
let {
uid,
password
} = data;
// 数据库操作开始-----------------------------------------------------------
res = await uniID.resetPwd({ uid, password });
// 数据库操作结束-----------------------------------------------------------
return res;
};
module.exports = dao; module.exports = dao;
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册