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

1.4.7

上级 ab605e22
### uniCloud云函数路由框架研究Q群:22466457 如有问题或建议可以在群内讨论。 ### uniCloud云函数路由框架研究Q群:22466457 如有问题或建议可以在群内讨论。
### 插件名称:`vk-unicloud-router` ### 插件名称:`vk-unicloud-router`
### 作者:VK ### 作者:VK
### 更新时间:2020-10-23 ### 更新时间:2020-10-26
## 主要功能 以及 对开发者的价值 ## 主要功能 以及 对开发者的价值
#### 1、实现云函数路由模式 #### 1、实现云函数路由模式
......
...@@ -63,7 +63,7 @@ res.item = await vk.baseDao.findByWhereJson({ ...@@ -63,7 +63,7 @@ res.item = await vk.baseDao.findByWhereJson({
// 分页查询多条数据 sql: select * from vk-test where money >= 0 limit 0,20; // 分页查询多条数据 sql: select * from vk-test where money >= 0 limit 0,20;
let res = await vk.baseDao.select({ let res = await vk.baseDao.select({
dbName:"vk-test", // 表名 dbName:"vk-test", // 表名
pageKey:true, // 是否分页 getCount:true, // 是否同时返回总数(会执行count)
pageIndex:1, // 当前第几页 pageIndex:1, // 当前第几页
pageSize:20, // 每页条数 pageSize:20, // 每页条数
whereJson:{ // 条件 whereJson:{ // 条件
...@@ -95,7 +95,7 @@ let res = await vk.baseDao.select2({ ...@@ -95,7 +95,7 @@ let res = await vk.baseDao.select2({
foreignKey:"kehuid", // 主表用于和副表连接的外键字段名 foreignKey:"kehuid", // 主表用于和副表连接的外键字段名
foreignKey2:"_id", // 副表用于和主表连接的外键字段名 foreignKey2:"_id", // 副表用于和主表连接的外键字段名
as:"kehuInfo", // 副表信息插入到主表里的字段名称,如果输入记录中本来就已有该字段,则该字段会被覆写 as:"kehuInfo", // 副表信息插入到主表里的字段名称,如果输入记录中本来就已有该字段,则该字段会被覆写
pageKey:true, // 是否分页 getCount:true, // 是否同时返回总数(会执行count)
pageIndex:1, // 当前第几页 pageIndex:1, // 当前第几页
pageSize:10, // 每页显示数量 pageSize:10, // 每页显示数量
whereJson:{ // 主表筛选条件 whereJson:{ // 主表筛选条件
......
...@@ -13,7 +13,7 @@ let res = await vk.baseDao.select2({ ...@@ -13,7 +13,7 @@ let res = await vk.baseDao.select2({
foreignKey:"kehuid", // 主表外键字段名 foreignKey:"kehuid", // 主表外键字段名
foreignKey2:"_id", // 副表外键字段名 foreignKey2:"_id", // 副表外键字段名
as:"kehuInfo", // 副表数据插入到主表的字段名 as:"kehuInfo", // 副表数据插入到主表的字段名
pageKey:true, // 是否分页(会返回count和hasMore) getCount:true, // 是否同时返回总数(会执行count)
pageIndex:1, // 当前第几页 pageIndex:1, // 当前第几页
pageSize:10, // 每页显示数据 pageSize:10, // 每页显示数据
whereJson:{ // 主表where条件 whereJson:{ // 主表where条件
...@@ -61,7 +61,7 @@ let res = await vk.baseDao.select2({ ...@@ -61,7 +61,7 @@ let res = await vk.baseDao.select2({
foreignKey:"_id", // 主表外键字段名 foreignKey:"_id", // 主表外键字段名
foreignKey2:"kehuid", // 副表外键字段名 foreignKey2:"kehuid", // 副表外键字段名
as:"kehuInfo", // 副表数据插入到主表的字段名 as:"kehuInfo", // 副表数据插入到主表的字段名
pageKey:true, // 是否分页(会返回count和hasMore) getCount:true, // 是否同时返回总数(会执行count)
pageIndex:1, // 当前第几页 pageIndex:1, // 当前第几页
pageSize:10, // 每页显示数据 pageSize:10, // 每页显示数据
fieldJson:{ // 主表字段显示规则 fieldJson:{ // 主表字段显示规则
......
### uniCloud 云函数路由研究群:22466457 如有问题或建议可以在群内讨论。
##### gitee公共仓库地址:https://gitee.com/vk-uni/vk-uni-cloud-router.git
### 更新内容
##### 1、【新增】API `vk.callFunctionUtil.updateRequestGlobalParam` 用于设置全局公共请求参数(即每次请求云函数都会额外带上这些参数)
##### 如: 多店系统中,每次请求都要带上`shop_id`,就可以将 `shop_id` 设置为全局请求参数。设置后,就不需要在每个请求中手动传 `shop_id`了。
### 你也可以在评论区发布留言交流心得。
\ No newline at end of file
...@@ -129,9 +129,9 @@ ...@@ -129,9 +129,9 @@
"version": "file:../common/uni-id" "version": "file:../common/uni-id"
}, },
"vk-unicloud": { "vk-unicloud": {
"version": "1.6.8", "version": "1.7.2",
"resolved": "https://registry.npmjs.org/vk-unicloud/-/vk-unicloud-1.6.8.tgz", "resolved": "https://registry.npmjs.org/vk-unicloud/-/vk-unicloud-1.7.2.tgz",
"integrity": "sha512-pTjCYrRFNkBjNaX3laK/Ck/an7JlnJcLfh9NK/2G80jsLcxVGEQCPL5DXxzl5oazCMZnS8jB1996LNj0SWhKRg==", "integrity": "sha512-Xe/Jn6zy9tlkX+5AVaI00R+Rpk7IJZ0ewgxEufZIRo0GSXZksIn3Tn4f7T1FBrG0MQrrOBUaHi5zWIeTfyk8/g==",
"requires": { "requires": {
"@alicloud/pop-core": "^1.7.9", "@alicloud/pop-core": "^1.7.9",
"form-data": "^3.0.0", "form-data": "^3.0.0",
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
"dependencies": { "dependencies": {
"config": "file:../common/config", "config": "file:../common/config",
"uni-id": "file:../common/uni-id", "uni-id": "file:../common/uni-id",
"vk-unicloud": "^1.6.8" "vk-unicloud": "^1.7.3"
}, },
"private": true "private": true
} }
...@@ -25,7 +25,7 @@ module.exports = { ...@@ -25,7 +25,7 @@ module.exports = {
// 根据ids获取组件动态数据列表 // 根据ids获取组件动态数据列表
let res_select = await vk.baseDao.select({ let res_select = await vk.baseDao.select({
dbName:"opendb-components-dynamic", dbName:"opendb-components-dynamic",
pageKey:false, getCount:false,
pageSize:100, pageSize:100,
whereJson:{ whereJson:{
data_id : _.in(ids) data_id : _.in(ids)
......
...@@ -32,7 +32,7 @@ module.exports = { ...@@ -32,7 +32,7 @@ module.exports = {
}; };
res = await vk.baseDao.select({ res = await vk.baseDao.select({
dbName:dbName, dbName:dbName,
pageKey:true, getCount:true,
pageIndex:1, pageIndex:1,
pageSize:100, pageSize:100,
whereJson:whereJson whereJson:whereJson
......
...@@ -29,7 +29,7 @@ module.exports = { ...@@ -29,7 +29,7 @@ module.exports = {
dataJson:{ dataJson:{
"money": 10.02+i, "money": 10.02+i,
"_add_time": 1597456395010+i, "_add_time": 1597456395010+i,
"kehuid": "001" "user_id": "001"
} }
}, event.util); }, event.util);
tasks.push(promise); tasks.push(promise);
......
...@@ -26,7 +26,7 @@ module.exports = { ...@@ -26,7 +26,7 @@ module.exports = {
dbName:"vk-test", dbName:"vk-test",
dataJson:{ dataJson:{
"money": Math.floor(Math.random() * 9 + 1), "money": Math.floor(Math.random() * 9 + 1),
"kehuid": "001", "user_id": "001",
"location":new db.Geo.Point(longitude, latitude), "location":new db.Geo.Point(longitude, latitude),
"position":{ "position":{
"longitude":longitude, "longitude":longitude,
......
...@@ -32,7 +32,7 @@ module.exports = { ...@@ -32,7 +32,7 @@ module.exports = {
// 随机定位结束----------------------------------------------------------- // 随机定位结束-----------------------------------------------------------
dataArr.push({ dataArr.push({
"money": Math.floor(Math.random() * 9 + 1), "money": Math.floor(Math.random() * 9 + 1),
"kehuid": "001", "user_id": "001",
"location":new db.Geo.Point(longitude, latitude), "location":new db.Geo.Point(longitude, latitude),
"position":{ "position":{
"longitude":longitude, "longitude":longitude,
......
...@@ -20,16 +20,16 @@ module.exports = { ...@@ -20,16 +20,16 @@ module.exports = {
/** /**
* 这里为了防止误删,故vk.baseDao.del API * 这里为了防止误删,故vk.baseDao.del API
* 会判断如果whereJson为空,则不执行删除操作 * 会判断如果whereJson为空,则不执行删除操作
* 所以这里加了个kehuid:_.neq("___")条件来达到删除全部的功能(实际开发时慎用删除全部功能) * 所以这里加了个user_id:_.neq("___")条件来达到删除全部的功能(实际开发时慎用删除全部功能)
*/ */
res.num = await vk.baseDao.del({ res.num = await vk.baseDao.del({
dbName:"vk-test", dbName:"vk-test",
whereJson:{ whereJson:{
kehuid:_.neq("___") user_id:_.neq("___")
} }
},event.util); },event.util);
// 对应的sql: // 对应的sql:
// delete from vk-test where kehuid != '___' // delete from vk-test where user_id != '___'
// 业务逻辑结束----------------------------------------------------------- // 业务逻辑结束-----------------------------------------------------------
return res; return res;
} }
......
...@@ -19,7 +19,6 @@ module.exports = { ...@@ -19,7 +19,6 @@ module.exports = {
// 业务逻辑开始----------------------------------------------------------- // 业务逻辑开始-----------------------------------------------------------
res = await vk.baseDao.select({ res = await vk.baseDao.select({
dbName:"vk-test", dbName:"vk-test",
pageKey:true,
pageIndex:1, pageIndex:1,
pageSize:100, pageSize:100,
whereJson:{ whereJson:{
......
...@@ -21,11 +21,10 @@ module.exports = { ...@@ -21,11 +21,10 @@ module.exports = {
let { data = {}, util, originalParam } = event; let { data = {}, util, originalParam } = event;
let { uniID, pubFun, vk , db, _ } = util; let { uniID, pubFun, vk , db, _ } = util;
let { uid } = data; let { uid } = data;
let res = {code : -1, msg : ''}; let res = {code : 0, msg : ''};
// 业务逻辑开始----------------------------------------------------------- // 业务逻辑开始-----------------------------------------------------------
// 可写与数据库的交互逻辑等等 // 可写与数据库的交互逻辑等等
let {pageNum, pageSize, addTimeLong ,endTimeLong, searchvalue} = data; let { pageNum, pageSize, addTimeLong ,endTimeLong, searchvalue } = data;
// 仅限以下表允许不登录查看
let dbName = "vk-test"; let dbName = "vk-test";
let fieldJson = {}; let fieldJson = {};
let whereJson = {}; let whereJson = {};
...@@ -55,7 +54,6 @@ module.exports = { ...@@ -55,7 +54,6 @@ module.exports = {
// 查询条件结束----------------------------------------------------------- // 查询条件结束-----------------------------------------------------------
res = await vk.baseDao.select({ res = await vk.baseDao.select({
dbName:dbName, dbName:dbName,
pageKey:true,
pageIndex:pageNum, pageIndex:pageNum,
pageSize:pageSize, pageSize:pageSize,
fieldJson:fieldJson, fieldJson:fieldJson,
......
...@@ -19,15 +19,14 @@ module.exports = { ...@@ -19,15 +19,14 @@ module.exports = {
// 业务逻辑开始----------------------------------------------------------- // 业务逻辑开始-----------------------------------------------------------
res = await vk.baseDao.select({ res = await vk.baseDao.select({
dbName:"vk-test", dbName:"vk-test",
pageKey:true,
pageIndex:1, pageIndex:1,
pageSize:100, pageSize:100,
whereJson:{ whereJson:{
kehuid:"001" user_id:"001"
}, },
}, event.util); }, event.util);
// 对应的sql: // 对应的sql:
// select * from vk-test where kehuid == '001' limit 0,100; // select * from vk-test where user_id == '001' limit 0,100;
// 业务逻辑结束----------------------------------------------------------- // 业务逻辑结束-----------------------------------------------------------
return res; return res;
} }
......
module.exports = {
/**
* 连表查询(仅限两表查询)(VK版本)
* @url db_test/pub/select2-2 前端调用的url参数地址
* @description 此函数描述
* @params {Object} data 请求参数
* @params {String} uniIdToken 用户token
* @params {Object} util 公共工具包
* 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' };
// 业务逻辑开始-----------------------------------------------------------
const $ = _.aggregate;
let dbName = "gy-dp-kehu";
let dbName2 = "uni-id-users";
res = await db.collection(dbName).aggregate()
.lookup({
from: dbName2,
let: {
order_book: '$book',
order_quantity: '$quantity'
},
pipeline: $.pipeline()
.match(_.expr($.and([
$.eq(['$title', '$$order_book']),
$.gte(['$stock', '$$order_quantity'])
])))
.project({
_id: false,
title: false,
stock: true
})
.done(),
as: 'user_info',
})
.end();
// res = await vk.baseDao.select2({
// dbName:"vk-test",
// dbName2:"uni-id-users",
// foreignKey:"kehuid",
// foreignKey2:"_id",
// as:"kehuInfo",
// pageKey:true,
// pageIndex:1,
// pageSize:10,
// whereJson:{
// },
// fieldJson2:{
// token:false,
// password:false,
// }
// }, event.util);
//console.log(res.rows.length);
// 业务逻辑结束-----------------------------------------------------------
return res;
}
}
\ No newline at end of file
...@@ -21,10 +21,10 @@ module.exports = { ...@@ -21,10 +21,10 @@ module.exports = {
dbName:"vk-test", dbName:"vk-test",
dbName2:"uni-id-users", dbName2:"uni-id-users",
foreignKeyType:"many-to-one", // one-to-many 一对多 many-to-one 多对一 foreignKeyType:"many-to-one", // one-to-many 一对多 many-to-one 多对一
foreignKey:"kehuid", foreignKey:"user_id",
foreignKey2:"_id", foreignKey2:"_id",
as:"kehuInfo", as:"kehuInfo",
pageKey:true, getCount:true,
pageIndex:1, pageIndex:1,
pageSize:10, pageSize:10,
whereJson:{ whereJson:{
......
module.exports = { module.exports = {
/** /**
* 连表查询(仅限两表查询)(VK版本) * 连表查询(仅限两表查询)(VK版本)
* @url db_test/pub/select2 前端调用的url参数地址 * @url db_test/pub/select2_many-to-one 前端调用的url参数地址
* @description 此函数描述 * @description 此函数描述
* @params {Object} data 请求参数 * @params {Object} data 请求参数
* @params {String} uniIdToken 用户token * @params {String} uniIdToken 用户token
...@@ -21,17 +21,17 @@ module.exports = { ...@@ -21,17 +21,17 @@ module.exports = {
dbName:"vk-test", // 主表名 dbName:"vk-test", // 主表名
dbName2:"uni-id-users", // 副表名 dbName2:"uni-id-users", // 副表名
foreignKeyType:"many-to-one", // one-to-many 一对多 many-to-one 多对一 foreignKeyType:"many-to-one", // one-to-many 一对多 many-to-one 多对一
foreignKey:"kehuid", // 主表外键字段名 foreignKey:"user_id", // 主表外键字段名
foreignKey2:"_id", // 副表外键字段名 foreignKey2:"_id", // 副表外键字段名
as:"kehuInfo", // 副表数据插入到主表的字段名 as:"userInfo", // 副表数据插入到主表的字段名
pageKey:true, // 是否分页(会返回count和hasMore) getCount:false, // 是否同时返回总数(会执行count)
pageIndex:1, // 当前第几页 pageIndex:1, // 当前第几页
pageSize:10, // 每页显示数据 pageSize:10, // 每页显示数据
whereJson:{ // 主表where条件 whereJson:{ // 主表where条件
}, },
whereJson2:{ // 副表where条件 whereJson2:{ // 副表where条件
nickname : "测试客户1"
}, },
fieldJson:{ // 主表字段显示规则 fieldJson:{ // 主表字段显示规则
...@@ -40,7 +40,7 @@ module.exports = { ...@@ -40,7 +40,7 @@ module.exports = {
token : false, token : false,
password : false password : false
}, },
sortArr:[ // 排序规则 sortArr:[ // 主表排序规则(多对一,副表无排序规则)
{ {
"name":"money", "name":"money",
"type":"desc" "type":"desc"
......
module.exports = { module.exports = {
/** /**
* 连表查询(仅限两表查询)(VK版本) * 连表查询(仅限两表查询)(VK版本)
* @url db_test/pub/select2 前端调用的url参数地址 * @url db_test/pub/select2_one-to-many 前端调用的url参数地址
* @description 此函数描述 * @description 此函数描述
* @params {Object} data 请求参数 * @params {Object} data 请求参数
* @params {String} uniIdToken 用户token * @params {String} uniIdToken 用户token
...@@ -22,11 +22,17 @@ module.exports = { ...@@ -22,11 +22,17 @@ module.exports = {
dbName2:"vk-test", // 副表名 dbName2:"vk-test", // 副表名
foreignKeyType:"one-to-many", // one-to-many 一对多 many-to-one 多对一 foreignKeyType:"one-to-many", // one-to-many 一对多 many-to-one 多对一
foreignKey:"_id", // 主表外键字段名 foreignKey:"_id", // 主表外键字段名
foreignKey2:"kehuid", // 副表外键字段名 foreignKey2:"user_id", // 副表外键字段名
as:"kehuInfo", // 副表数据插入到主表的字段名 as:"testList", // 副表数据插入到主表的字段名
pageKey:true, // 是否分页(会返回count和hasMore) getCount:false, // 是否同时返回总数(会执行count)
pageIndex:1, // 当前第几页 pageIndex:1, // 当前第几页
pageSize:10, // 每页显示数据 pageSize:10, // 每页显示数据
whereJson:{ // 主表where条件
},
whereJson2:{ // 副表where条件
},
fieldJson:{ // 主表字段显示规则 fieldJson:{ // 主表字段显示规则
token:false, token:false,
password:false, password:false,
...@@ -34,13 +40,10 @@ module.exports = { ...@@ -34,13 +40,10 @@ module.exports = {
fieldJson2:{ // 副表字段显示规则 fieldJson2:{ // 副表字段显示规则
}, },
whereJson:{ // 主表where条件 sortArr:[ // 主表排序规则
}, ],
whereJson2:{ // 副表where条件 sortArr2:[ // 副表排序规则
money:1
},
sortArr:[ // 排序规则
{ {
"name":"money", "name":"money",
"type":"desc" "type":"desc"
......
...@@ -10,9 +10,9 @@ ...@@ -10,9 +10,9 @@
"integrity": "sha512-CpSWQyRlOYkPLOWWhFM5so6Epy3Wp+7HGPg2rGyMaC9kKHEv848a2T7xq6qgZsVjcYZOZwJCMJel7TiZZKNV8w==" "integrity": "sha512-CpSWQyRlOYkPLOWWhFM5so6Epy3Wp+7HGPg2rGyMaC9kKHEv848a2T7xq6qgZsVjcYZOZwJCMJel7TiZZKNV8w=="
}, },
"vk-unicloud-page": { "vk-unicloud-page": {
"version": "1.10.1", "version": "1.10.4",
"resolved": "https://registry.npmjs.org/vk-unicloud-page/-/vk-unicloud-page-1.10.1.tgz", "resolved": "https://registry.npmjs.org/vk-unicloud-page/-/vk-unicloud-page-1.10.4.tgz",
"integrity": "sha512-rKU8ePoy5sx1v4H4cOog7JLxbM+7yoA+nzbxdzBqbkNd31WMY1ZzwMVyOP60wVUPmcdvPGWx9o4BV+9s1s6KJg==", "integrity": "sha512-8fkqo3O/N6JeDrsB5mDo9J6gDVe5NklpMf1g8lADT8BDoe9eTlf6lZiXCdZM9ep8xF3Ec8Jn7NfjQIhsiG84KQ==",
"requires": { "requires": {
"uview-ui": "~1.7.7" "uview-ui": "~1.7.7"
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"description": "【开箱即用】vk-uniCloud-router - 云函数路由模式 - uniCloud开发框架 - 已集成uni-id", "description": "【开箱即用】vk-uniCloud-router - 云函数路由模式 - uniCloud开发框架 - 已集成uni-id",
"main": "main.js", "main": "main.js",
"dependencies": { "dependencies": {
"vk-unicloud-page": "^1.10.1" "vk-unicloud-page": "^1.10.4"
}, },
"devDependencies": {}, "devDependencies": {},
"scripts": { "scripts": {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册