20261008
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 此函数名称
|
||||
* @url template/db_api/user/pub/Promise.all 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let dbName = "vk-test";
|
||||
let runTime1 = new Date().getTime();
|
||||
let addNum = 200;
|
||||
console.log(new Date(runTime1),"开始运行,添加"+addNum+"条数据");
|
||||
// 承载所有读操作的 promise 的数组
|
||||
let tasks = [];
|
||||
for(let i = 1; i <= addNum; i++){
|
||||
let promise = vk.baseDao.add({
|
||||
dbName:dbName,
|
||||
dataJson:{
|
||||
"money": 10.02+i,
|
||||
"_add_time": 1597456395010+i,
|
||||
"user_id": "001"
|
||||
}
|
||||
});
|
||||
tasks.push(promise);
|
||||
}
|
||||
// 等待所有
|
||||
let ids = [];
|
||||
try {
|
||||
res = await Promise.all(tasks).then((values) => {
|
||||
return {
|
||||
//ids:values,
|
||||
total:values.length
|
||||
};
|
||||
});
|
||||
} catch (e) {
|
||||
//console.log("异常:",e,res);
|
||||
console.log("异常:运行超时");
|
||||
res.msg = "运行超时";
|
||||
}
|
||||
let runTime2 = new Date().getTime();
|
||||
let runTime = (runTime2 - runTime1) / 1000 + "秒";
|
||||
console.log(new Date(runTime2),"运行结束,耗时:"+runTime);
|
||||
res.runTime = runTime;
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 添加单条数据
|
||||
* @url template/db_api/pub/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 随机定位开始-----------------------------------------------------------
|
||||
// 为了方便测试,这里固定在杭州市西湖区附近
|
||||
let longitude = 120.12792 + Math.floor(Math.random() * 500) / 10000;
|
||||
let latitude = 30.228932 + Math.floor(Math.random() * 500) / 10000;
|
||||
// 随机定位结束-----------------------------------------------------------
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName:"vk-test",
|
||||
dataJson:{
|
||||
"money": Math.floor(Math.random() * 9 + 1),
|
||||
"user_id": "00"+Math.floor(Math.random() * 2 + 1),
|
||||
"location":new db.Geo.Point(longitude, latitude),
|
||||
"position":{
|
||||
"longitude":longitude,
|
||||
"latitude":latitude,
|
||||
},
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 批量添加数据
|
||||
* @url template/db_api/pub/adds 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let dbName = "vk-test";
|
||||
let runTime1 = new Date().getTime();
|
||||
let addNum = 10;
|
||||
console.log(new Date(runTime1),"开始运行,添加"+addNum+"条数据");
|
||||
// 承载所有读操作的 promise 的数组
|
||||
let dataArr = [];
|
||||
|
||||
for(let i = 1; i <= addNum; i++){
|
||||
// 随机定位开始-----------------------------------------------------------
|
||||
// 为了方便测试,这里固定在杭州市西湖区附近
|
||||
let longitude = 120.12792 + Math.floor(Math.random() * 500) / 10000;
|
||||
let latitude = 30.228932 + Math.floor(Math.random() * 500) / 10000;
|
||||
// 随机定位结束-----------------------------------------------------------
|
||||
dataArr.push({
|
||||
"money": Math.floor(Math.random() * 9 + 1),
|
||||
"user_id": "00"+Math.floor(Math.random() * 2 + 1),
|
||||
"location":new db.Geo.Point(longitude, latitude),
|
||||
"position":{
|
||||
"longitude":longitude,
|
||||
"latitude":latitude,
|
||||
},
|
||||
});
|
||||
}
|
||||
await vk.baseDao.adds({
|
||||
dbName:dbName,
|
||||
dataJson:dataArr
|
||||
});
|
||||
|
||||
let runTime2 = new Date().getTime();
|
||||
let runTime = ((runTime2 - runTime1) / 1000 + "秒");
|
||||
console.log(new Date(runTime2),"运行结束,耗时:"+runTime);
|
||||
res.runTime = runTime;
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* avg求平均值
|
||||
* @url template/db_api/pub/avg 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.avg = await vk.baseDao.avg({
|
||||
dbName:"vk-test",
|
||||
fieldName:"money",
|
||||
whereJson:{
|
||||
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* count求总记录条数
|
||||
* @url template/db_api/pub/count 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.num = await vk.baseDao.count({
|
||||
dbName:"vk-test",
|
||||
whereJson:{
|
||||
|
||||
}
|
||||
});
|
||||
// 对应的sql:
|
||||
// count * from vk-test
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url template/db_api/pub/del 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
/**
|
||||
* 这里为了防止误删,故vk.baseDao.del API
|
||||
* 会判断如果whereJson为空,则不执行删除操作
|
||||
* 所以这里加了个_id: _.exists(true)条件来达到删除全部的功能(实际开发时慎用删除全部功能)
|
||||
*/
|
||||
res.num = await vk.baseDao.del({
|
||||
dbName:"vk-test",
|
||||
whereJson:{
|
||||
_id: _.exists(true)
|
||||
}
|
||||
});
|
||||
// 对应的sql:
|
||||
// delete from vk-test where user_id != '___'
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url template/db_api/pub/del 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { _id } = data;
|
||||
res.num = await vk.baseDao.deleteById({
|
||||
dbName:"vk-test",
|
||||
id:_id
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 根据id获取记录
|
||||
* @url template/db_api/pub/findById 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let startTime = new Date().getTime();
|
||||
res.item = await vk.baseDao.findById({
|
||||
dbName:"vk-test",
|
||||
id:data._id,
|
||||
fieldJson:{
|
||||
|
||||
}
|
||||
});
|
||||
let endTime = new Date().getTime();
|
||||
res.runTime = (endTime - startTime);
|
||||
// 上面的 fieldJson 可以设置 显示什么字段或设置不显示什么字段 如 money:false 代表不显示money字段
|
||||
// 对应的sql:
|
||||
// select * from vk-test where _id = "5f3a125b3d11c6000106d338"
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 根据where条件获取单条记录(首条)
|
||||
* @url template/db_api/pub/findByWhereJson 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.item = await vk.baseDao.findByWhereJson({
|
||||
dbName:"vk-test",
|
||||
fieldJson:{
|
||||
|
||||
},
|
||||
whereJson:{
|
||||
_id:data._id,
|
||||
}
|
||||
});
|
||||
// 上面的 fieldJson 可以设置 显示什么字段或设置不显示什么字段 如 money:false 代表不显示money字段
|
||||
// 对应的sql:
|
||||
// select * from vk-test where _id = "5f3a125b3d11c6000106d338"
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 根据地理位置获取列表数据信息
|
||||
* @url template/db_api/pub/geo 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res = await vk.baseDao.selects({
|
||||
dbName:"vk-test",
|
||||
pageIndex:1,
|
||||
pageSize:100,
|
||||
whereJson:{
|
||||
location: _.geoNear({
|
||||
geometry: new db.Geo.Point(120.12792, 30.228932), // 点的地理位置,为了方便测试,这里固定在杭州市西湖区
|
||||
maxDistance: 4000, // 选填,最大距离,米为单位
|
||||
minDistance: 0 // 选填,最小距离,米为单位
|
||||
})
|
||||
},
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url template/db_api/pub/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @params {String} tableName 表名
|
||||
* @params {String} addTime 搜索开始时间
|
||||
* @params {String} endTime 搜索截止时间
|
||||
* @params {String} searchvalue 搜索指定内容
|
||||
* @params {Number} pageIndex 当前页码
|
||||
* @params {Number} pageSize 每页显示数量
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 可写与数据库的交互逻辑等等
|
||||
let { pageIndex, pageSize, searchvalue, timeArr = [], addTimeLong, endTimeLong, sortRule } = data;
|
||||
let dbName = "vk-test";
|
||||
let fieldJson = {};
|
||||
let whereJson = {};
|
||||
let sortArr = [];
|
||||
// 排序规则开始-----------------------------------------------------------
|
||||
sortArr.push({
|
||||
"name":"_add_time",
|
||||
"type":"desc"
|
||||
});
|
||||
if(sortRule) sortArr = sortRule;
|
||||
// 排序规则结束-----------------------------------------------------------
|
||||
// 查询条件开始-----------------------------------------------------------
|
||||
if(searchvalue){
|
||||
// 查询searchvalue开头的数据
|
||||
try{
|
||||
// 如果查询需要用到正则,建议将正则用try catch 包起来。
|
||||
//whereJson["title"] = new RegExp('^'+searchvalue);
|
||||
whereJson["money"] = Number(searchvalue);
|
||||
}catch(err){
|
||||
return { code : -1, msg : '请输入合法的查询内容' };
|
||||
}
|
||||
}
|
||||
if(timeArr.length >=2 ){
|
||||
addTimeLong = timeArr[0];
|
||||
endTimeLong = timeArr[1];
|
||||
}
|
||||
if(addTimeLong && endTimeLong){
|
||||
whereJson["_add_time"] = _.gte(addTimeLong).lte(endTimeLong);
|
||||
}else if(addTimeLong && !endTimeLong){
|
||||
whereJson["_add_time"] = _.gte(addTimeLong);
|
||||
}else if(!addTimeLong && endTimeLong){
|
||||
whereJson["_add_time"] = _.lte(endTimeLong);
|
||||
}
|
||||
// 这里可以写必须满足的查询条件,如whereJson["user_id"] = uid;代表只查自己的记录
|
||||
// whereJson["user_id"] = uid;
|
||||
// 查询条件结束-----------------------------------------------------------
|
||||
res = await vk.baseDao.select({
|
||||
dbName:dbName,
|
||||
getCount:true,
|
||||
pageIndex:pageIndex,
|
||||
pageSize:pageSize,
|
||||
fieldJson:fieldJson,
|
||||
whereJson:whereJson,
|
||||
sortArr:sortArr
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 分组求count
|
||||
* @url template/db_api/pub/groupCount 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { _id = "___" } = data;
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "vk-test",
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
// 主表where条件
|
||||
whereJson: {
|
||||
|
||||
},
|
||||
groupJson: {
|
||||
_id: "$money", // _id是分组id, $ 后面接字段名,如按money字段进行分组
|
||||
count: _.$.addToSet("$user_id"), // $ 后面接字段名,如把user_id原样输出(去重)
|
||||
},
|
||||
sortArr: [{ name: "money",type: "desc" }], // 对分组后的结果进行排序
|
||||
addFields:{
|
||||
count: _.$.size("$count")
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* max求最大值
|
||||
* @url template/db_api/pub/max 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.max = await vk.baseDao.max({
|
||||
dbName:"vk-test",
|
||||
fieldName:"money",
|
||||
whereJson:{
|
||||
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* min求最小值
|
||||
* @url template/db_api/pub/min 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.min = await vk.baseDao.min({
|
||||
dbName:"vk-test",
|
||||
fieldName:"money",
|
||||
whereJson:{
|
||||
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* sample随机获取N条数据
|
||||
* @url template/db_api/pub/sample 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.list = await vk.baseDao.sample({
|
||||
dbName:"vk-test",
|
||||
size:1,
|
||||
whereJson:{
|
||||
|
||||
},
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录
|
||||
* @url template/db_api/pub/select 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk, db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code: 0, msg: 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res = await vk.baseDao.select({
|
||||
dbName: "vk-test",
|
||||
getCount: true,
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
whereJson: {
|
||||
|
||||
}
|
||||
});
|
||||
// 对应的sql:
|
||||
// select * from vk-test limit 0,100;
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 连表查询(仅限两表查询)(VK版本)
|
||||
* @url template/db_api/pub/select2 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 想要两表以上的连接,请使用vk.baseDao.selects
|
||||
res = await vk.baseDao.selects({
|
||||
dbName:"uni-id-users",
|
||||
foreignKey:"_id",
|
||||
getCount:false,
|
||||
pageIndex:1,
|
||||
pageSize:10,
|
||||
// 主表where条件
|
||||
whereJson:{
|
||||
|
||||
},
|
||||
// 主表字段显示规则
|
||||
fieldJson:{token:false, password:false},
|
||||
// 主表排序规则
|
||||
sortArr:[{"name":"_id", "type":"desc"}],
|
||||
// 副表列表
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"vk-test",
|
||||
foreignKey:"user_id",
|
||||
as:"testList",
|
||||
limit:1,
|
||||
// 副表where条件
|
||||
whereJson:{ },
|
||||
// 副表字段显示规则
|
||||
fieldJson:{ },
|
||||
// 副表排序规则
|
||||
sortArr:[{"name":"money", "type":"desc"}],
|
||||
}
|
||||
]
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 多表查询(支持多张表连接查询)(VK版本)
|
||||
* @url template/db_api/pub/selects 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 演示3表连接
|
||||
res = await vk.baseDao.selects({
|
||||
dbName:"uni-id-users",
|
||||
getCount:false,
|
||||
pageIndex:1,
|
||||
pageSize:10,
|
||||
// 主表where条件
|
||||
whereJson:{
|
||||
|
||||
},
|
||||
// 主表字段显示规则
|
||||
fieldJson:{ token:false, password:false },
|
||||
// 主表排序规则
|
||||
sortArr:[{ "name":"_id", "type":"desc" }],
|
||||
// 副表列表
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"vk-test",
|
||||
localKey:"_id",
|
||||
foreignKey:"user_id",
|
||||
as:"testList",
|
||||
limit:1
|
||||
},
|
||||
{
|
||||
dbName:"gy-shop",
|
||||
localKey:"_id",
|
||||
foreignKey:"user_id",
|
||||
as:"shopList",
|
||||
limit:1
|
||||
},
|
||||
]
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 连表查询地理位置就近搜索示例
|
||||
* @url template/db_api/pub/selects_geo 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 演示3表连接
|
||||
res = await vk.baseDao.selects({
|
||||
dbName:"vk-test",
|
||||
getCount:true,
|
||||
pageIndex:1,
|
||||
pageSize:10,
|
||||
// 主表where条件
|
||||
whereJson:{
|
||||
location: _.geoNear({
|
||||
geometry: new db.Geo.Point(120.12792, 30.228932), // 点的地理位置,为了方便测试,这里固定在杭州市西湖区
|
||||
maxDistance: 4000, // 选填,最大距离,米为单位
|
||||
minDistance: 0 , // 选填,最小距离,米为单位
|
||||
distanceMultiplier:1, // 返回时在距离上乘以该数字 1代表米 100 代表厘米 0.001 代表千米
|
||||
distanceField:"distance", // 输出的每个记录中 distance 即是与给定点的距离
|
||||
}),
|
||||
money:_.gt(0)
|
||||
},
|
||||
// 副表列表
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"uni-id-users",
|
||||
localKey:"user_id",
|
||||
foreignKey:"_id",
|
||||
as:"userInfo",
|
||||
limit:1
|
||||
}
|
||||
]
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 连表查询,并返回第一条数据
|
||||
* @url template/db_api/pub/selects_getOne 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 演示3表连接
|
||||
res.info = await vk.baseDao.selects({
|
||||
dbName:"uni-id-users",
|
||||
getOne:true,
|
||||
getMain:true,
|
||||
// 主表where条件
|
||||
whereJson:{
|
||||
_id:"001"
|
||||
},
|
||||
// 主表字段显示规则
|
||||
fieldJson:{ token:false, password:false },
|
||||
// 副表列表
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"vk-test",
|
||||
localKey:"_id",
|
||||
foreignKey:"user_id",
|
||||
as:"testList",
|
||||
limit:1
|
||||
},
|
||||
{
|
||||
dbName:"gy-shop",
|
||||
localKey:"_id",
|
||||
foreignKey:"user_id",
|
||||
as:"shopList",
|
||||
limit:1
|
||||
},
|
||||
]
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 多表查询(支持多张表连接查询)(VK2.0版本)
|
||||
* @url template/db_api/pub/selects_mode_2 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
/**
|
||||
* 此为简化版
|
||||
* 此版本支持无限张表和主表进行连接
|
||||
*/
|
||||
res = await vk.baseDao.selects({
|
||||
dbName:"opendb-mall-comments",
|
||||
// 副表列表
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"opendb-mall-goods",
|
||||
localKey:"goods_id",
|
||||
foreignKey:"_id",
|
||||
as:"goodsInfo",
|
||||
limit:1
|
||||
},
|
||||
{
|
||||
dbName:"uni-id-users",
|
||||
localKey:"user_id",
|
||||
foreignKey:"_id",
|
||||
as:"userInfo",
|
||||
limit:1
|
||||
}
|
||||
]
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 多表查询(支持多张表连接查询)(VK3.0版本)
|
||||
* @url template/db_api/pub/selects_mode_3 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
/**
|
||||
* 此为演示竖向无限层连接
|
||||
*/
|
||||
res = await vk.baseDao.selects({
|
||||
dbName:"opendb-mall-comments",
|
||||
// 副表列表
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"uni-id-users",
|
||||
localKey:"user_id",
|
||||
foreignKey:"_id",
|
||||
as:"userInfo",
|
||||
limit:1,
|
||||
foreignDB:[
|
||||
{
|
||||
dbName:"opendb-mall-orders",
|
||||
localKey:"_id",
|
||||
foreignKey:"user_id",
|
||||
as:"orderList",
|
||||
limit:3,
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* sum求和
|
||||
* @url template/db_api/pub/sum 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.sum = await vk.baseDao.sum({
|
||||
dbName:"vk-test",
|
||||
fieldName:"money",
|
||||
whereJson:{
|
||||
|
||||
}
|
||||
});
|
||||
// 对应的sql:
|
||||
// select sum(money) from vk-test
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据
|
||||
* @url template/db_api/pub/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { _id = "___" } = data;
|
||||
res.num = await vk.baseDao.update({
|
||||
dbName:"vk-test",
|
||||
whereJson:{
|
||||
_id:_id,
|
||||
},
|
||||
dataJson:{
|
||||
money:1
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据,并返回修改后的数据
|
||||
* @url template/db_api/pub/updateAndReturn 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk, db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code: 0, msg: 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { _id = "___" } = data;
|
||||
|
||||
// 非事务版本开始-----------------------------------------------------------
|
||||
res.info = await vk.baseDao.updateAndReturn({
|
||||
dbName: "vk-test",
|
||||
whereJson: {
|
||||
_id: _id
|
||||
},
|
||||
dataJson: {
|
||||
money: _.inc(1)
|
||||
},
|
||||
});
|
||||
// 非事务版本结束-----------------------------------------------------------
|
||||
|
||||
|
||||
// 事务版本开始-----------------------------------------------------------
|
||||
/*
|
||||
const transaction = await vk.baseDao.startTransaction();
|
||||
try {
|
||||
res.info = await vk.baseDao.updateAndReturn({
|
||||
db:transaction,
|
||||
dbName:"vk-test",
|
||||
whereJson:{
|
||||
_id:_id
|
||||
},
|
||||
dataJson:{
|
||||
money:_.inc(1)
|
||||
},
|
||||
});
|
||||
// 提交事物
|
||||
await transaction.commit();
|
||||
console.log(`transaction succeeded`);
|
||||
return res;
|
||||
}catch (err) {
|
||||
// 事务回滚
|
||||
return await vk.baseDao.rollbackTransaction({
|
||||
db:transaction,
|
||||
err
|
||||
});
|
||||
}
|
||||
*/
|
||||
// 事务版本结束-----------------------------------------------------------
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据,并返回修改后的数据
|
||||
* @url template/db_api/pub/updateById 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, originalParam } = event;
|
||||
let { uniID, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let { _id = "___" } = data;
|
||||
res.info = await vk.baseDao.updateById({
|
||||
dbName:"vk-test",
|
||||
id:_id,
|
||||
dataJson:{
|
||||
money:1
|
||||
},
|
||||
getUpdateData:true
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 添加单条数据
|
||||
* @url template/db_api/sys/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
user_id,
|
||||
money,
|
||||
remark,
|
||||
} = data;
|
||||
let dbName = "vk-test";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson:{
|
||||
user_id,
|
||||
money,
|
||||
remark,
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url template/db_api/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 这里id不传默认设置成"___" 是为了防止因未传_id导致误删所有数据.
|
||||
let { _id } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
let dbName = "vk-test";
|
||||
await vk.baseDao.deleteById({
|
||||
dbName,
|
||||
id:_id
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url template/db_api/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @params {Number} pageIndex 当前页码
|
||||
* @params {Number} pageSize 每页显示数量
|
||||
* @params {Array<Object>} sortRule 排序规则
|
||||
* @params {object} formData 查询条件数据源
|
||||
* @params {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : '' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 可写与数据库的交互逻辑等等
|
||||
let dbName = "vk-test";
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName,
|
||||
data
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据
|
||||
* @url template/db_api/sys/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @params {Number} code 错误码,0表示成功
|
||||
* @params {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk , db, _ } = util;
|
||||
let { uid } = data;
|
||||
let res = { code : 0, msg : 'ok' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
_id,
|
||||
user_id,
|
||||
money,
|
||||
remark,
|
||||
} = data;
|
||||
if(vk.pubfn.isNullOne(_id)){
|
||||
return { code : -1, msg : '参数错误' };
|
||||
}
|
||||
let dbName = "vk-test";
|
||||
await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id:_id,
|
||||
dataJson:{
|
||||
user_id,
|
||||
money,
|
||||
remark,
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user