20261008
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-album',
|
||||
dataJson: data
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-album',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: 'jjx-album',
|
||||
pageIndex,
|
||||
pageSize,
|
||||
getCount: true,
|
||||
sortArr: sortRule && sortRule.length ? sortRule : [
|
||||
{name: "sort", type: "asc"},
|
||||
{name: "_add_time", type: "desc"},
|
||||
],
|
||||
});
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
if (res.rows[i].companyId) {
|
||||
res.rows[i].company = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'uni-id-users',
|
||||
whereJson: {
|
||||
_id: res.rows[i].companyId
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-album',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-article-category',
|
||||
dataJson: data
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-article-category',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName: 'jjx-article-category',
|
||||
sortArr: [
|
||||
{ name: "sort", type: "asc" },
|
||||
{ name: "_id", type: "desc" },
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-article-category',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-article',
|
||||
dataJson: {
|
||||
...data, ...{
|
||||
viewNum: 0,
|
||||
downloadNum: 0,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-article',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: 'jjx-article',
|
||||
pageIndex,
|
||||
pageSize,
|
||||
getCount: true,
|
||||
sortArr: sortRule && sortRule.length ? sortRule : [{"name": "_add_time", "type": "desc"}]
|
||||
});
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
if (res.rows[i].parentId) {
|
||||
res.rows[i].category = await vk.baseDao.findById({
|
||||
dbName: "jjx-article-category",
|
||||
id: res.rows[i].parentId
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-article',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../utils/sortRule.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { pageIndex, pageSize, formData, sortRule } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {}
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.transactionId)) whereJson.transactionId = new RegExp(formData.transactionId)
|
||||
if (vk.pubfn.isNotNull(formData.type)) whereJson.type = formData.type
|
||||
if (vk.pubfn.isNotNull(formData.status)) whereJson.status = formData.status
|
||||
|
||||
}
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-contract",
|
||||
getCount: true,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
sortArr: normalizeSortRule(sortRule, [{"name": "_add_time", "type":"desc" }], ["_add_time"]),
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true
|
||||
},
|
||||
person: {
|
||||
personName: true
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
dbName: "jjx-user-contract",
|
||||
localKey: "_id",
|
||||
foreignKey: "contractId",
|
||||
as: "userContract",
|
||||
limit: 500, // limit=1则以对象形式返回
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true,
|
||||
mobile: true,
|
||||
},
|
||||
person: {
|
||||
personName: true,
|
||||
mobile: true,
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
mobile: true,
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 添加单条数据
|
||||
* @url admin/kong/sys/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 {
|
||||
name,
|
||||
field,
|
||||
isOn,
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-contract-template";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson: {
|
||||
name,
|
||||
field,
|
||||
isOn,
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/changeField 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-contract-template",
|
||||
id: data.id,
|
||||
dataJson: {
|
||||
[data.field]: data.value
|
||||
}
|
||||
});
|
||||
|
||||
if (data.field === "isOn" && data.value) {
|
||||
await vk.baseDao.update({
|
||||
dbName: "jjx-contract-template",
|
||||
whereJson: {
|
||||
_id: _.neq(data.id),
|
||||
},
|
||||
dataJson: {
|
||||
"isOn": 0
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url admin/kong/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
let dbName = "jjx-contract-template";
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: dbName,
|
||||
id:_id
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url admin/kong/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} pageIndex 当前页码
|
||||
* @param {Number} pageSize 每页显示数量
|
||||
* @param {Array<Object>} sortRule 排序规则
|
||||
* @param {object} formData 查询条件数据源
|
||||
* @param {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 = "jjx-contract-template";
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName,
|
||||
data
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据
|
||||
* @url admin/kong/sys/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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,
|
||||
name,
|
||||
field,
|
||||
isOn,
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
if (vk.pubfn.isNullOne(_id)) {
|
||||
return {code: -1, msg: '参数错误'};
|
||||
}
|
||||
let dbName = "jjx-contract-template";
|
||||
await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id: _id,
|
||||
dataJson: {
|
||||
name,
|
||||
field,
|
||||
isOn,
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/coopExplore/config/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-coop-config',
|
||||
dataJson: data
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/coopExplore/config/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-coop-config',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/coopExplore/config/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName: 'jjx-coop-config',
|
||||
sortArr: [
|
||||
{ name: "sort", type: "asc" },
|
||||
{ name: "_add_time", type: "desc" },
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/coopExplore/config/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-coop-config',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-dict',
|
||||
dataJson: data
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.select({
|
||||
dbName: 'jjx-dict',
|
||||
getCount: true,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
sortArr: [{"name": "_add_time", "type": "desc"}],
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-dict',
|
||||
dataJson: {
|
||||
content: data.content,
|
||||
name: data.name,
|
||||
},
|
||||
id: data._id
|
||||
});
|
||||
|
||||
console.log('id', data._id, data._id === '657d36befe975f63af1f24e7')
|
||||
if (data._id === '657d36befe975f63af1f24e7') {
|
||||
const template_id = vk.pubfn.createOrderNo("CT", 20)
|
||||
const uploaddocs = await pubFun.fadada('uploadtemplate.api', {
|
||||
template_id,
|
||||
doc_url: data.content,
|
||||
})
|
||||
console.log('uploaddocs', uploaddocs)
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-dict',
|
||||
dataJson: {
|
||||
content: template_id
|
||||
},
|
||||
id: "80e3bed065a5560e075799d24532b14f"
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增询价模板
|
||||
* @url admin/enquiry/template/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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 {
|
||||
label,
|
||||
enable,
|
||||
sort,
|
||||
values
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-enquiry-attributes";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson:{
|
||||
label,
|
||||
enable,
|
||||
sort,
|
||||
values
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url admin/kong/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
let dbName = "jjx-enquiry-attributes";
|
||||
await vk.baseDao.deleteById({
|
||||
dbName,
|
||||
id:_id
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url admin/kong/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} pageIndex 当前页码
|
||||
* @param {Number} pageSize 每页显示数量
|
||||
* @param {Array<Object>} sortRule 排序规则
|
||||
* @param {object} formData 查询条件数据源
|
||||
* @param {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 = "jjx-enquiry-attributes";
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName,
|
||||
data
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增询价模板
|
||||
* @url admin/enquiry/template/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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,
|
||||
label,
|
||||
enable,
|
||||
sort,
|
||||
values
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-enquiry-attributes";
|
||||
res.id = await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id: _id,
|
||||
dataJson:{
|
||||
label,
|
||||
enable,
|
||||
sort,
|
||||
values
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增询价模板
|
||||
* @url admin/enquiry/template/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-enquiry-package";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson: data
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url admin/kong/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
let dbName = "jjx-enquiry-package";
|
||||
await vk.baseDao.deleteById({
|
||||
dbName,
|
||||
id:_id
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url admin/kong/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} pageIndex 当前页码
|
||||
* @param {Number} pageSize 每页显示数量
|
||||
* @param {Array<Object>} sortRule 排序规则
|
||||
* @param {object} formData 查询条件数据源
|
||||
* @param {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {String} msg 详细信息
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize} = data;
|
||||
let res = {code: 0, msg: ''};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let dbName = "jjx-enquiry-package";
|
||||
res = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
getCount: true,
|
||||
sortArr: [{"name": "sort", "type": "asc"}],
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增询价模板
|
||||
* @url admin/enquiry/template/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-enquiry-package";
|
||||
res.id = await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id: _id,
|
||||
dataJson: data
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
var isBetween = require('dayjs/plugin/isBetween')
|
||||
dayjs.extend(isBetween)
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/changeField 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const sheet = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-enquiry-sheet",
|
||||
whereJson: {
|
||||
_id: data.id
|
||||
},
|
||||
})
|
||||
if (data.field === 'isShow' && data.value === 1) {
|
||||
const messageUserList = await vk.baseDao.select({
|
||||
dbName: "jjx-message-config",
|
||||
whereJson: {
|
||||
enquiry: true,
|
||||
productList: _.in(sheet.productList.map(item => item.goodsName))
|
||||
}
|
||||
})
|
||||
const messageList = []
|
||||
const messageTitle = sheet.productList.map(item => `${item.goodsName}${item.materialQuality ? `(${item.materialQuality})` : ''}`).join("/")
|
||||
for (let i = 0; i < messageUserList.rows.length; i++) {
|
||||
const config = messageUserList.rows[i]
|
||||
const date = dayjs().format("YYYY-MM-DD")
|
||||
// if (config.doNotDisturbRange && config.doNotDisturbRange[0]) {
|
||||
// const doNotDisturbRangeStart = dayjs(config.doNotDisturbRange[0]).format("HH:mm")
|
||||
// const doNotDisturbRangeEnd = dayjs(config.doNotDisturbRange[1]).format("HH:mm")
|
||||
// if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
// continue
|
||||
// }
|
||||
if (config.doNotDisturbStart && config.doNotDisturbStart.length) {
|
||||
const doNotDisturbRangeStart = dayjs(`${date} ${config.doNotDisturbStart[0]}:${config.doNotDisturbStart[1]}`).format("HH:mm")
|
||||
const doNotDisturbRangeEnd = dayjs(`${date} ${config.doNotDisturbEnd[0]}:${config.doNotDisturbEnd[1]}`).format("HH:mm")
|
||||
if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
continue
|
||||
}
|
||||
let inAddress = false
|
||||
if (config.addressList && config.addressList.length > 0) {
|
||||
for (let j = 0; j < config.addressList.length; j++) {
|
||||
if (config.addressList[j].province.code === sheet.addressRegion.province.code) {
|
||||
if (config.addressList[j].city === null) inAddress = true
|
||||
else if (config.addressList[j].city.code === sheet.addressRegion.city.code) {
|
||||
if (config.addressList[j].area === null) inAddress = true
|
||||
else if (config.addressList[j].area.code === sheet.addressRegion.area.code) {
|
||||
inAddress = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else inAddress = true
|
||||
if (!inAddress) continue
|
||||
if (!config.tradeSelf && sheet.tradeMethod === 0) continue
|
||||
if (!config.tradePlatform && sheet.tradeMethod === 1) continue
|
||||
if (messageUserList.rows[i].uid !== sheet.uid) {
|
||||
messageList.push({
|
||||
uid: messageUserList.rows[i].uid,
|
||||
title: `找买家:${messageTitle}`,
|
||||
content: `新的找买家信息发布,赶紧去看看吧`,
|
||||
type: 'enquiry',
|
||||
hasRead: false,
|
||||
pk: res.id
|
||||
})
|
||||
await pubFun.sendNotifySms(messageUserList.rows[i].uid, 'SMS_474510001')
|
||||
}
|
||||
}
|
||||
if (messageList.length > 0) {
|
||||
await vk.baseDao.adds({
|
||||
dbName: "jjx-message",
|
||||
dataJson: messageList
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-enquiry-sheet",
|
||||
id: data.id,
|
||||
dataJson: {
|
||||
[data.field]: data.value
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../utils/sortRule.js');
|
||||
const DEFAULT_NOTARY_SERVICE_RATE = 0.1;
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {pageIndex, pageSize, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {};
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.title)) whereJson.title = new RegExp(formData.title);
|
||||
if (vk.pubfn.isNotNull(formData.status)) whereJson.status = formData.status;
|
||||
if (vk.pubfn.isNotNull(formData.signMethod)) whereJson.signMethod = formData.signMethod;
|
||||
}
|
||||
|
||||
// 区域限制
|
||||
if (userInfo.allowArea && userInfo.allowArea.length > 0) {
|
||||
whereJson['addressRegion.city.code'] = _.in(userInfo.allowArea.map(item => item.area.city.code));
|
||||
}
|
||||
console.log('whereJson', whereJson)
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-enquiry-sheet",
|
||||
getCount: true,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
sortArr: normalizeSortRule(sortRule, [{"name": "_add_time", "type": "desc"}], ["_add_time"]),
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true
|
||||
},
|
||||
person: {
|
||||
personName: true
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
dbName: "jjx-enquiry-quote",
|
||||
localKey: "_id",
|
||||
foreignKey: "sheetId",
|
||||
as: "quoteList",
|
||||
limit: 500, // limit=1则以对象形式返回
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
if (res.rows[i].tradeMethod === 1 && (res.rows[i].notaryServiceRate === undefined || res.rows[i].notaryServiceRate === null || res.rows[i].notaryServiceRate === '')) {
|
||||
res.rows[i].notaryServiceRate = DEFAULT_NOTARY_SERVICE_RATE
|
||||
}
|
||||
const order = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-order',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id
|
||||
}
|
||||
})
|
||||
if (order) {
|
||||
res.rows[i].order = order
|
||||
const payList = await vk.baseDao.select({
|
||||
dbName: 'jjx-order-pay-list',
|
||||
whereJson: {
|
||||
orderId: order._id
|
||||
}
|
||||
})
|
||||
res.rows[i].payList = null
|
||||
if (payList) {
|
||||
res.rows[i].payList = payList.rows
|
||||
}
|
||||
}
|
||||
|
||||
res.rows[i].contract = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-contract',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增询价模板
|
||||
* @url admin/enquiry/template/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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 {
|
||||
name,
|
||||
enable,
|
||||
sort,
|
||||
attributes,
|
||||
extraAttributes
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-enquiry-template";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson:{
|
||||
name,
|
||||
enable,
|
||||
sort,
|
||||
attributes,
|
||||
extraAttributes
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url admin/kong/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
let dbName = "jjx-enquiry-template";
|
||||
await vk.baseDao.deleteById({
|
||||
dbName,
|
||||
id:_id
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url admin/kong/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} pageIndex 当前页码
|
||||
* @param {Number} pageSize 每页显示数量
|
||||
* @param {Array<Object>} sortRule 排序规则
|
||||
* @param {object} formData 查询条件数据源
|
||||
* @param {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 = "jjx-enquiry-template";
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName,
|
||||
data,
|
||||
sortArr: [{"name": "sort", "type": "asc"}, {"name": "_add_time", "type": "desc"}],
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增询价模板
|
||||
* @url admin/enquiry/template/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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,
|
||||
name,
|
||||
enable,
|
||||
sort,
|
||||
attributes,
|
||||
extraAttributes
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "jjx-enquiry-template";
|
||||
res.id = await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id: _id,
|
||||
dataJson:{
|
||||
name,
|
||||
enable,
|
||||
sort,
|
||||
attributes,
|
||||
extraAttributes
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 添加单条数据
|
||||
* @url admin/kong/sys/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 dbName = "jjx-ensure-config";
|
||||
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson: {
|
||||
...data
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url admin/kong/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 } = data;
|
||||
if(vk.pubfn.isNull(_id)){
|
||||
return { code : -1, msg : 'id不能为空' };
|
||||
}
|
||||
let dbName = "jjx-ensure-config";
|
||||
await vk.baseDao.deleteById({
|
||||
dbName,
|
||||
id:_id
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { pageIndex, pageSize } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-ensure-config",
|
||||
pageIndex,
|
||||
pageSize,
|
||||
getCount: true,
|
||||
sortArr: [{"name": "sort", "type":"asc" }, {"name": "_add_time", "type":"desc" }],
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据
|
||||
* @url admin/kong/sys/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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' };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
|
||||
let dbName = "jjx-ensure-config";
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id: data._id,
|
||||
dataJson:{
|
||||
...data
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* 认证审核
|
||||
* @url admin/system/user/sys/changeStatus 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const {id, status, refuseReason} = data
|
||||
const factoryData = await vk.baseDao.updateAndReturn({
|
||||
dbName: 'jjx-factory',
|
||||
whereJson: {
|
||||
_id: id
|
||||
},
|
||||
dataJson: {
|
||||
status,
|
||||
refuseReason,
|
||||
isShow: status === 1
|
||||
}
|
||||
})
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "uni-id-users",
|
||||
id: factoryData.uid,
|
||||
dataJson: {
|
||||
factoryStatus: status
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {};
|
||||
if (vk.pubfn.isNotNull(formData.keyword)) {
|
||||
whereJson['user.nickname'] = new RegExp(formData.keyword);
|
||||
}
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: 'jjx-factory',
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
getCount: true,
|
||||
sortArr: sortRule && sortRule.length ? sortRule : [{"name": "_add_time", "type": "desc"}],
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "uid",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1,
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/fadada/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const dbName = "fadada-verify-record";
|
||||
res = await vk.baseDao.selects({
|
||||
dbName,
|
||||
getCount: true,
|
||||
whereJson: {
|
||||
type: data.type
|
||||
},
|
||||
sortArr: [{name: "authenticationSubmitTime", type: "desc"}],
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "_id",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
'use strict';
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 新增资金流水
|
||||
* @url admin/finance/balance/sys/add 前端调用的url参数地址
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util } = event;
|
||||
let { vk } = util;
|
||||
const transaction = await vk.baseDao.startTransaction();
|
||||
|
||||
try {
|
||||
const description = String(data.description || '').trim();
|
||||
if (!description) {
|
||||
throw new Error('说明不能为空');
|
||||
}
|
||||
const logData = {
|
||||
description,
|
||||
amount: balanceUtil.normalizeAmount(data.amount),
|
||||
type: balanceUtil.normalizeType(data.type),
|
||||
logTime: balanceUtil.normalizeTime(data.logTime),
|
||||
operatorId: userInfo && userInfo.uid ? userInfo.uid : '',
|
||||
source: data.source || 'manual'
|
||||
};
|
||||
const changeAmount = balanceUtil.buildBalanceChange(logData);
|
||||
await balanceUtil.checkBalanceAvailable({
|
||||
transaction,
|
||||
vk,
|
||||
changeAmount
|
||||
});
|
||||
|
||||
const addRes = await vk.baseDao.add({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
dataJson: logData
|
||||
});
|
||||
|
||||
await balanceUtil.updateBalanceWithDelta({
|
||||
transaction,
|
||||
vk,
|
||||
delta: changeAmount,
|
||||
lastLogId: addRes.id
|
||||
});
|
||||
|
||||
await transaction.commit();
|
||||
return { code: 0, msg: '' };
|
||||
} catch (err) {
|
||||
return await balanceUtil.rollbackTransaction({
|
||||
transaction,
|
||||
err
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 删除资金流水
|
||||
* @url admin/finance/balance/sys/delete 前端调用的url参数地址
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, util } = event;
|
||||
let { vk } = util;
|
||||
const transaction = await vk.baseDao.startTransaction();
|
||||
|
||||
try {
|
||||
if (vk.pubfn.isNull(data._id)) {
|
||||
throw new Error('流水ID不能为空');
|
||||
}
|
||||
const oldLog = await vk.baseDao.findByWhereJson({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
whereJson: {
|
||||
_id: data._id
|
||||
}
|
||||
});
|
||||
if (!oldLog) {
|
||||
throw new Error('流水不存在');
|
||||
}
|
||||
|
||||
const revertDelta = Number((-balanceUtil.buildBalanceChange(oldLog)).toFixed(2));
|
||||
await balanceUtil.checkBalanceAvailable({
|
||||
transaction,
|
||||
vk,
|
||||
changeAmount: revertDelta
|
||||
});
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
await balanceUtil.updateBalanceWithDelta({
|
||||
transaction,
|
||||
vk,
|
||||
delta: revertDelta
|
||||
});
|
||||
|
||||
await transaction.commit();
|
||||
return { code: 0, msg: '' };
|
||||
} catch (err) {
|
||||
return await balanceUtil.rollbackTransaction({
|
||||
transaction,
|
||||
err
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,91 @@
|
||||
'use strict';
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询状态
|
||||
* @url admin/finance/balance/sys/getActionLog 前端调用的url参数地址
|
||||
* @param {String} accNo 账号
|
||||
* @param {String} reqDate 请求日期,格式:yyyyMMdd
|
||||
* @param {String} reqJournalNo 请求流水号
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, util } = event;
|
||||
let { vk } = util;
|
||||
let { accNo, reqDate, reqJournalNo } = data;
|
||||
|
||||
accNo = String(accNo || '').trim();
|
||||
reqDate = String(reqDate || '').trim();
|
||||
reqJournalNo = String(reqJournalNo || '').trim();
|
||||
|
||||
if (!accNo) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'accNo不能为空'
|
||||
};
|
||||
}
|
||||
|
||||
if (!reqDate) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'reqDate不能为空'
|
||||
};
|
||||
}
|
||||
|
||||
if (!/^\d{8}$/.test(reqDate)) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'reqDate格式不正确'
|
||||
};
|
||||
}
|
||||
|
||||
if (!reqJournalNo) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'reqJournalNo不能为空'
|
||||
};
|
||||
}
|
||||
|
||||
let res = await vk.request({
|
||||
url: 'http://jjx-union-pay.gxwebsoft.com/api/union-pay-jjx/getActionLog',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
header: {
|
||||
'content-type': 'application/json; charset=utf-8'
|
||||
},
|
||||
data: {
|
||||
accNo,
|
||||
reqDate,
|
||||
reqJournalNo
|
||||
},
|
||||
timeout: 60000
|
||||
});
|
||||
|
||||
if (res && typeof res === 'object' && typeof res.code === 'undefined') {
|
||||
res.code = 0;
|
||||
}
|
||||
|
||||
const responseObjects = balanceUtil.getRemoteResponseObjects(res);
|
||||
const list = balanceUtil.pickFirstDefined([
|
||||
Array.isArray(res.list) ? res.list : undefined,
|
||||
Array.isArray(res.rows) ? res.rows : undefined,
|
||||
Array.isArray(res.data) ? res.data : undefined,
|
||||
Array.isArray(res.data && res.data.list) ? res.data.list : undefined,
|
||||
Array.isArray(res.data && res.data.rows) ? res.data.rows : undefined,
|
||||
Array.isArray(res.info && res.info.list) ? res.info.list : undefined,
|
||||
Array.isArray(res.info && res.info.rows) ? res.info.rows : undefined,
|
||||
Array.isArray(res.content && res.content.list) ? res.content.list : undefined,
|
||||
Array.isArray(res.content && res.content.rows) ? res.content.rows : undefined
|
||||
]) || [];
|
||||
|
||||
if (responseObjects.data && typeof responseObjects.data === 'object' && !Array.isArray(responseObjects.data)) {
|
||||
responseObjects.data.list = list;
|
||||
} else if (res && typeof res === 'object') {
|
||||
res.data = {
|
||||
list
|
||||
};
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,81 @@
|
||||
'use strict';
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询余额明细
|
||||
* @url admin/finance/balance/sys/getFlow 前端调用的url参数地址
|
||||
* @param {String} accNo 账号
|
||||
* @param {String} transDate 交易日期,格式:yyyyMMdd
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, util } = event;
|
||||
let { vk } = util;
|
||||
let { accNo, transDate } = data;
|
||||
|
||||
accNo = String(accNo || '').trim();
|
||||
transDate = String(transDate || '').trim();
|
||||
|
||||
if (!accNo) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'accNo不能为空'
|
||||
};
|
||||
}
|
||||
|
||||
if (!transDate) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'transDate不能为空'
|
||||
};
|
||||
}
|
||||
|
||||
if (!/^\d{8}$/.test(transDate)) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'transDate格式不正确'
|
||||
};
|
||||
}
|
||||
|
||||
let res = await vk.request({
|
||||
url: 'http://jjx-union-pay.gxwebsoft.com/api/union-pay-jjx/getFlow',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
header: {
|
||||
'content-type': 'application/json; charset=utf-8'
|
||||
},
|
||||
data: {
|
||||
accNo,
|
||||
transDate
|
||||
},
|
||||
timeout: 60000
|
||||
});
|
||||
|
||||
if (res && typeof res === 'object' && typeof res.code === 'undefined') {
|
||||
res.code = 0;
|
||||
}
|
||||
|
||||
const responseObjects = balanceUtil.getRemoteResponseObjects(res);
|
||||
const list = balanceUtil.pickFirstDefined([
|
||||
Array.isArray(res.list) ? res.list : undefined,
|
||||
Array.isArray(res.rows) ? res.rows : undefined,
|
||||
Array.isArray(res.data) ? res.data : undefined,
|
||||
Array.isArray(res.data && res.data.list) ? res.data.list : undefined,
|
||||
Array.isArray(res.data && res.data.rows) ? res.data.rows : undefined,
|
||||
Array.isArray(res.info && res.info.list) ? res.info.list : undefined,
|
||||
Array.isArray(res.info && res.info.rows) ? res.info.rows : undefined,
|
||||
Array.isArray(res.content && res.content.list) ? res.content.list : undefined,
|
||||
Array.isArray(res.content && res.content.rows) ? res.content.rows : undefined
|
||||
]) || [];
|
||||
|
||||
if (responseObjects.data && typeof responseObjects.data === 'object' && !Array.isArray(responseObjects.data)) {
|
||||
responseObjects.data.list = list;
|
||||
} else if (res && typeof res === 'object') {
|
||||
res.data = {
|
||||
list
|
||||
};
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,63 @@
|
||||
'use strict';
|
||||
const dayjs = require('dayjs');
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询余额
|
||||
* @url admin/finance/balance/sys/getInfo 前端调用的url参数地址
|
||||
* @param {String} accNo 账号
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, util } = event;
|
||||
let { vk } = util;
|
||||
let { accNo } = data;
|
||||
|
||||
accNo = String(accNo || '').trim();
|
||||
if (!accNo) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: 'accNo不能为空'
|
||||
};
|
||||
}
|
||||
|
||||
let res = await balanceUtil.requestMerchantBalance({
|
||||
vk,
|
||||
accNo
|
||||
});
|
||||
|
||||
if (res && typeof res === 'object' && typeof res.code === 'undefined') {
|
||||
res.code = 0;
|
||||
}
|
||||
|
||||
const merchantBalance = balanceUtil.getRemoteMerchantBalance(res);
|
||||
if (merchantBalance !== null) {
|
||||
const updateTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
const syncRes = await balanceUtil.syncMerchantBalance({
|
||||
vk,
|
||||
accNo,
|
||||
merchantBalance,
|
||||
updateTime
|
||||
});
|
||||
const nextMerchantBalance = syncRes.merchantBalance;
|
||||
|
||||
if (res.data && typeof res.data === 'object') {
|
||||
res.data.balance = nextMerchantBalance;
|
||||
res.data.updateTime = updateTime;
|
||||
} else if (res.info && typeof res.info === 'object') {
|
||||
res.info.balance = nextMerchantBalance;
|
||||
res.info.updateTime = updateTime;
|
||||
} else if (res.content && typeof res.content === 'object') {
|
||||
res.content.balance = nextMerchantBalance;
|
||||
res.content.updateTime = updateTime;
|
||||
} else {
|
||||
res.data = {
|
||||
balance: nextMerchantBalance,
|
||||
updateTime
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,53 @@
|
||||
'use strict';
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 资金流水列表
|
||||
* @url admin/finance/balance/sys/getList 前端调用的url参数地址
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, util } = event;
|
||||
let { vk, _ } = util;
|
||||
let { pageIndex, pageSize, formData = {} } = data;
|
||||
let res = { code: 0, msg: '' };
|
||||
|
||||
const andArr = [];
|
||||
|
||||
if (vk.pubfn.isNotNull(formData.type)) {
|
||||
andArr.push({ type: formData.type });
|
||||
}
|
||||
if (vk.pubfn.isNotNull(formData.logTime) && Array.isArray(formData.logTime) && formData.logTime.length === 2) {
|
||||
andArr.push({
|
||||
logTime: _.gte(Number(formData.logTime[0]))
|
||||
});
|
||||
andArr.push({
|
||||
logTime: _.lte(Number(formData.logTime[1]))
|
||||
});
|
||||
}
|
||||
|
||||
let whereJson = {};
|
||||
if (andArr.length > 0) {
|
||||
whereJson = _.and(andArr);
|
||||
}
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: 'jjx-balance-log',
|
||||
getCount: true,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
sortArr: [{ name: 'logTime', type: 'desc' }, { name: '_add_time', type: 'desc' }]
|
||||
});
|
||||
|
||||
res.rows = res.rows.map(item => ({
|
||||
...item,
|
||||
amount: balanceUtil.normalizeAmount(item.amount),
|
||||
merchantId: item.merchantId || '',
|
||||
merchantName: item.merchantName || '',
|
||||
srcReqId: item.srcReqId || '',
|
||||
status: typeof item.status === 'number' ? item.status : Number(item.status || 0)
|
||||
}));
|
||||
return res;
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
const { BALANCE_DOC_ID, getBalanceInfoList } = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 资金汇总
|
||||
* @url admin/finance/balance/sys/getSummary 前端调用的url参数地址
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { util } = event;
|
||||
let { vk } = util;
|
||||
|
||||
let info = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-balance',
|
||||
whereJson: {
|
||||
_id: BALANCE_DOC_ID
|
||||
}
|
||||
});
|
||||
|
||||
if (!info) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: `jjx-balance余额记录不存在: ${BALANCE_DOC_ID}`
|
||||
};
|
||||
}
|
||||
|
||||
const balanceInfoList = getBalanceInfoList(info.balanceInfo || {});
|
||||
|
||||
return {
|
||||
code: 0,
|
||||
msg: '',
|
||||
data: {
|
||||
balance: Number(Number(info.balance || 0).toFixed(2)),
|
||||
updateTime: info.updateTime || info._update_time_str || info._add_time_str || '',
|
||||
balanceInfoList
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,75 @@
|
||||
'use strict';
|
||||
const balanceUtil = require('./util.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 编辑资金流水
|
||||
* @url admin/finance/balance/sys/update 前端调用的url参数地址
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util } = event;
|
||||
let { vk } = util;
|
||||
const transaction = await vk.baseDao.startTransaction();
|
||||
|
||||
try {
|
||||
if (vk.pubfn.isNull(data._id)) {
|
||||
throw new Error('流水ID不能为空');
|
||||
}
|
||||
const oldLog = await vk.baseDao.findByWhereJson({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
whereJson: {
|
||||
_id: data._id
|
||||
}
|
||||
});
|
||||
if (!oldLog) {
|
||||
throw new Error('流水不存在');
|
||||
}
|
||||
|
||||
const description = String(data.description || '').trim();
|
||||
if (!description) {
|
||||
throw new Error('说明不能为空');
|
||||
}
|
||||
const newLog = {
|
||||
description,
|
||||
amount: balanceUtil.normalizeAmount(data.amount),
|
||||
type: balanceUtil.normalizeType(data.type),
|
||||
logTime: balanceUtil.normalizeTime(data.logTime),
|
||||
operatorId: userInfo && userInfo.uid ? userInfo.uid : oldLog.operatorId || '',
|
||||
source: oldLog.source || data.source || 'manual'
|
||||
};
|
||||
|
||||
const oldChange = balanceUtil.buildBalanceChange(oldLog);
|
||||
const newChange = balanceUtil.buildBalanceChange(newLog);
|
||||
const delta = Number((newChange - oldChange).toFixed(2));
|
||||
|
||||
await balanceUtil.checkBalanceAvailable({
|
||||
transaction,
|
||||
vk,
|
||||
changeAmount: delta
|
||||
});
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
id: data._id,
|
||||
dataJson: newLog
|
||||
});
|
||||
|
||||
await balanceUtil.updateBalanceWithDelta({
|
||||
transaction,
|
||||
vk,
|
||||
delta,
|
||||
lastLogId: data._id
|
||||
});
|
||||
|
||||
await transaction.commit();
|
||||
return { code: 0, msg: '' };
|
||||
} catch (err) {
|
||||
return await balanceUtil.rollbackTransaction({
|
||||
transaction,
|
||||
err
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,381 @@
|
||||
'use strict';
|
||||
const dayjs = require('dayjs');
|
||||
|
||||
const BALANCE_DOC_ID = 'e35392d069f2104f003790b271c67c6d';
|
||||
const MERCHANT_OPTIONS = [
|
||||
{ accNo: 'zg000002466577', label: '广西金久信电子商务有限公司' },
|
||||
{ accNo: 'zg000002460927', label: '南宁亿利通钢管有限公司' },
|
||||
{ accNo: 'zg000002494918', label: '广西冀旺贸易有限公司' },
|
||||
{ accNo: 'zg000002459804', label: '广西金久信电子商务有限公司' }
|
||||
];
|
||||
const MERCHANT_MAP = MERCHANT_OPTIONS.reduce((map, item) => {
|
||||
map[item.accNo] = item.label;
|
||||
return map;
|
||||
}, {});
|
||||
|
||||
function normalizeAmount(value) {
|
||||
const amount = Number(value || 0);
|
||||
if (!Number.isFinite(amount)) {
|
||||
throw new Error('金额格式不正确');
|
||||
}
|
||||
return Number(amount.toFixed(2));
|
||||
}
|
||||
|
||||
function normalizeFenToYuan(value) {
|
||||
const amount = Number(value || 0);
|
||||
if (!Number.isFinite(amount)) {
|
||||
throw new Error('金额格式不正确');
|
||||
}
|
||||
return Number((amount / 100).toFixed(2));
|
||||
}
|
||||
|
||||
function normalizeType(type) {
|
||||
if (!['income', 'expense'].includes(type)) {
|
||||
throw new Error('类型不正确');
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
function normalizeTime(value) {
|
||||
const time = Number(value || Date.now());
|
||||
if (!Number.isFinite(time) || time <= 0) {
|
||||
throw new Error('时间格式不正确');
|
||||
}
|
||||
return time;
|
||||
}
|
||||
|
||||
function buildBalanceChange(log = {}) {
|
||||
const type = normalizeType(log.type);
|
||||
const amount = normalizeAmount(log.amount);
|
||||
return type === 'income' ? amount : Number((-amount).toFixed(2));
|
||||
}
|
||||
|
||||
function getMerchantLabel(accNo) {
|
||||
return MERCHANT_MAP[accNo] || '';
|
||||
}
|
||||
|
||||
function buildBalanceInfoMap(source = {}) {
|
||||
const rawSource = source && typeof source === 'object' ? source : {};
|
||||
const balanceInfoMap = {};
|
||||
MERCHANT_OPTIONS.forEach(item => {
|
||||
const current = rawSource[item.accNo] || {};
|
||||
balanceInfoMap[item.accNo] = {
|
||||
accNo: item.accNo,
|
||||
merchantName: current.merchantName || current.label || item.label,
|
||||
balance: normalizeAmount(current.balance || 0),
|
||||
updateTime: current.updateTime || ''
|
||||
};
|
||||
});
|
||||
return balanceInfoMap;
|
||||
}
|
||||
|
||||
function getBalanceInfoList(source = {}) {
|
||||
const balanceInfoMap = buildBalanceInfoMap(source);
|
||||
return MERCHANT_OPTIONS.map(item => balanceInfoMap[item.accNo]);
|
||||
}
|
||||
|
||||
function sumBalanceInfoMap(source = {}) {
|
||||
const balanceInfoMap = buildBalanceInfoMap(source);
|
||||
return Number(
|
||||
Object.keys(balanceInfoMap).reduce((sum, accNo) => {
|
||||
return sum + Number(balanceInfoMap[accNo].balance || 0);
|
||||
}, 0).toFixed(2)
|
||||
);
|
||||
}
|
||||
|
||||
function getRemoteResponseObjects(res = {}) {
|
||||
return {
|
||||
root: res && typeof res === 'object' ? res : {},
|
||||
data: res && res.data && typeof res.data === 'object' ? res.data : {},
|
||||
info: res && res.info && typeof res.info === 'object' ? res.info : {},
|
||||
content: res && res.content && typeof res.content === 'object' ? res.content : {}
|
||||
};
|
||||
}
|
||||
|
||||
function pickFirstDefined(values = []) {
|
||||
return values.find(value => value !== undefined && value !== null && value !== '');
|
||||
}
|
||||
|
||||
function getRemoteMerchantBalance(res = {}) {
|
||||
const { root, data, info, content } = getRemoteResponseObjects(res);
|
||||
const canPayAmt = pickFirstDefined([
|
||||
root.canPayAmt,
|
||||
data.canPayAmt,
|
||||
info.canPayAmt,
|
||||
content.canPayAmt
|
||||
]);
|
||||
if (canPayAmt !== undefined) {
|
||||
return normalizeFenToYuan(canPayAmt);
|
||||
}
|
||||
|
||||
const balanceValue = pickFirstDefined([
|
||||
data.balance,
|
||||
info.balance,
|
||||
content.balance,
|
||||
data.availableBalance,
|
||||
info.availableBalance,
|
||||
content.availableBalance,
|
||||
data.amount,
|
||||
info.amount,
|
||||
content.amount
|
||||
]);
|
||||
if (balanceValue !== undefined) {
|
||||
return normalizeAmount(balanceValue);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
async function requestMerchantBalance({ vk, accNo }) {
|
||||
return await vk.request({
|
||||
url: 'http://jjx-union-pay.gxwebsoft.com/api/union-pay-jjx/getInfo',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
header: {
|
||||
'content-type': 'application/json; charset=utf-8'
|
||||
},
|
||||
data: {
|
||||
accNo
|
||||
},
|
||||
timeout: 60000
|
||||
});
|
||||
}
|
||||
|
||||
async function requestActionLog({ vk, accNo, reqDate, reqJournalNo }) {
|
||||
return await vk.request({
|
||||
url: 'http://jjx-union-pay.gxwebsoft.com/api/union-pay-jjx/getActionLog',
|
||||
method: 'POST',
|
||||
dataType: 'json',
|
||||
header: {
|
||||
'content-type': 'application/json; charset=utf-8'
|
||||
},
|
||||
data: {
|
||||
accNo,
|
||||
reqDate,
|
||||
reqJournalNo
|
||||
},
|
||||
timeout: 60000
|
||||
});
|
||||
}
|
||||
|
||||
function pickOrderSet(res = {}) {
|
||||
const candidates = [
|
||||
res && res.orderSet,
|
||||
res && res.data && res.data.orderSet,
|
||||
res && res.info && res.info.orderSet,
|
||||
res && res.content && res.content.orderSet,
|
||||
res && res.data && Array.isArray(res.data) && res.data[0] && res.data[0].orderSet,
|
||||
res && res.list && Array.isArray(res.list) && res.list[0] && res.list[0].orderSet,
|
||||
res && res.rows && Array.isArray(res.rows) && res.rows[0] && res.rows[0].orderSet,
|
||||
res && res.data && res.data.list && Array.isArray(res.data.list) && res.data.list[0] && res.data.list[0].orderSet,
|
||||
res && res.data && res.data.rows && Array.isArray(res.data.rows) && res.data.rows[0] && res.data.rows[0].orderSet
|
||||
];
|
||||
for (let i = 0; i < candidates.length; i++) {
|
||||
if (typeof candidates[i] === 'string' && candidates[i]) {
|
||||
return candidates[i];
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function parseOrderSet(res = {}) {
|
||||
const orderSet = pickOrderSet(res);
|
||||
if (!orderSet) {
|
||||
return [];
|
||||
}
|
||||
try {
|
||||
const orderList = JSON.parse(orderSet);
|
||||
return Array.isArray(orderList) ? orderList : [];
|
||||
} catch (err) {
|
||||
console.error('parseOrderSet error', err, orderSet);
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
function getActionStatus(res = {}) {
|
||||
const orderList = parseOrderSet(res);
|
||||
if (!orderList.length) {
|
||||
return null;
|
||||
}
|
||||
const firstOrder = orderList[0] || {};
|
||||
const status = Number(firstOrder.status);
|
||||
return Number.isFinite(status) ? status : null;
|
||||
}
|
||||
|
||||
function getActionStatusTextByStatus(status) {
|
||||
const statusMap = {
|
||||
1: '处理中',
|
||||
2: '成功',
|
||||
3: '处理失败',
|
||||
5: '退票',
|
||||
6: '退票重提'
|
||||
};
|
||||
return statusMap[Number(status)] || '';
|
||||
}
|
||||
|
||||
async function syncMerchantBalance({
|
||||
vk,
|
||||
accNo,
|
||||
merchantBalance,
|
||||
updateTime = dayjs().format('YYYY-MM-DD HH:mm:ss')
|
||||
}) {
|
||||
const balanceRecord = await ensureBalanceRecord({ vk });
|
||||
const balanceInfoMap = buildBalanceInfoMap(balanceRecord.balanceInfo || {});
|
||||
const currentMerchantInfo = balanceInfoMap[accNo] || {
|
||||
accNo,
|
||||
merchantName: getMerchantLabel(accNo),
|
||||
balance: 0,
|
||||
updateTime: ''
|
||||
};
|
||||
const currentMerchantBalance = normalizeAmount(currentMerchantInfo.balance || 0);
|
||||
const nextMerchantBalance = normalizeAmount(merchantBalance);
|
||||
const nextBalanceInfoMap = {
|
||||
...balanceInfoMap,
|
||||
[accNo]: {
|
||||
accNo,
|
||||
merchantName: currentMerchantInfo.merchantName || getMerchantLabel(accNo),
|
||||
balance: nextMerchantBalance,
|
||||
updateTime
|
||||
}
|
||||
};
|
||||
const nextTotalBalance = Number(
|
||||
(Number(balanceRecord.balance || 0) - currentMerchantBalance + nextMerchantBalance).toFixed(2)
|
||||
);
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-balance',
|
||||
id: balanceRecord._id,
|
||||
dataJson: {
|
||||
balance: nextTotalBalance,
|
||||
balanceInfo: nextBalanceInfoMap,
|
||||
updateTime
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
balance: nextTotalBalance,
|
||||
merchantBalance: nextMerchantBalance,
|
||||
updateTime,
|
||||
balanceInfoMap: nextBalanceInfoMap
|
||||
};
|
||||
}
|
||||
|
||||
async function ensureBalanceRecord({ transaction, vk }) {
|
||||
let balanceInfo = await vk.baseDao.findByWhereJson({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance',
|
||||
whereJson: {
|
||||
_id: BALANCE_DOC_ID
|
||||
}
|
||||
});
|
||||
if (!balanceInfo) {
|
||||
throw new Error(`jjx-balance余额记录不存在: ${BALANCE_DOC_ID}`);
|
||||
}
|
||||
return balanceInfo;
|
||||
}
|
||||
|
||||
async function recalculateBalance({ transaction, vk, logId }) {
|
||||
const res = await vk.baseDao.select({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
whereJson: {},
|
||||
sortArr: [{ name: '_add_time', type: 'desc' }],
|
||||
pageIndex: 1,
|
||||
pageSize: 5000
|
||||
});
|
||||
const balance = Number(res.rows.reduce((sum, item) => sum + buildBalanceChange(item), 0).toFixed(2));
|
||||
const balanceInfo = await ensureBalanceRecord({ transaction, vk });
|
||||
await vk.baseDao.updateById({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance',
|
||||
id: balanceInfo._id,
|
||||
dataJson: {
|
||||
balance,
|
||||
lastLogId: logId || balanceInfo.lastLogId || ''
|
||||
}
|
||||
});
|
||||
return balance;
|
||||
}
|
||||
|
||||
async function checkBalanceAvailable({ transaction, vk, changeAmount, excludeLogId = '' }) {
|
||||
const balanceInfo = await ensureBalanceRecord({ transaction, vk });
|
||||
let currentBalance = Number(balanceInfo.balance || 0);
|
||||
if (excludeLogId) {
|
||||
const oldLog = await vk.baseDao.findByWhereJson({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
whereJson: {
|
||||
_id: excludeLogId
|
||||
}
|
||||
});
|
||||
if (!oldLog) {
|
||||
throw new Error('原始流水不存在');
|
||||
}
|
||||
currentBalance = Number((currentBalance - buildBalanceChange(oldLog)).toFixed(2));
|
||||
}
|
||||
const nextBalance = Number((currentBalance + changeAmount).toFixed(2));
|
||||
if (nextBalance < 0) {
|
||||
throw new Error('余额不足');
|
||||
}
|
||||
return {
|
||||
currentBalance,
|
||||
nextBalance
|
||||
};
|
||||
}
|
||||
|
||||
async function updateBalanceWithDelta({ transaction, vk, delta, lastLogId = '' }) {
|
||||
const balanceInfo = await ensureBalanceRecord({ transaction, vk });
|
||||
const nextBalance = Number((Number(balanceInfo.balance || 0) + Number(delta || 0)).toFixed(2));
|
||||
await vk.baseDao.updateById({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance',
|
||||
id: balanceInfo._id,
|
||||
dataJson: {
|
||||
balance: nextBalance,
|
||||
lastLogId: lastLogId || balanceInfo.lastLogId || ''
|
||||
}
|
||||
});
|
||||
return nextBalance;
|
||||
}
|
||||
|
||||
async function rollbackTransaction({ transaction, err }) {
|
||||
try {
|
||||
await transaction.rollback();
|
||||
} catch (rollbackErr) {
|
||||
console.error(rollbackErr);
|
||||
}
|
||||
return {
|
||||
code: -1,
|
||||
msg: err.message || '操作失败'
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
BALANCE_DOC_ID,
|
||||
MERCHANT_OPTIONS,
|
||||
MERCHANT_MAP,
|
||||
normalizeAmount,
|
||||
normalizeFenToYuan,
|
||||
normalizeType,
|
||||
normalizeTime,
|
||||
buildBalanceChange,
|
||||
getMerchantLabel,
|
||||
buildBalanceInfoMap,
|
||||
getBalanceInfoList,
|
||||
sumBalanceInfoMap,
|
||||
getRemoteResponseObjects,
|
||||
pickFirstDefined,
|
||||
getRemoteMerchantBalance,
|
||||
requestMerchantBalance,
|
||||
requestActionLog,
|
||||
pickOrderSet,
|
||||
parseOrderSet,
|
||||
getActionStatus,
|
||||
getActionStatusTextByStatus,
|
||||
syncMerchantBalance,
|
||||
ensureBalanceRecord,
|
||||
recalculateBalance,
|
||||
checkBalanceAvailable,
|
||||
updateBalanceWithDelta,
|
||||
rollbackTransaction
|
||||
};
|
||||
@@ -0,0 +1,138 @@
|
||||
'use strict';
|
||||
const dayjs = require('dayjs');
|
||||
const balanceUtil = require('./util.js');
|
||||
const merchantMap = balanceUtil.MERCHANT_MAP;
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 提现
|
||||
* @url admin/finance/balance/sys/withdraw 前端调用的url参数地址
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util } = event;
|
||||
let { vk } = util;
|
||||
const transaction = await vk.baseDao.startTransaction();
|
||||
|
||||
try {
|
||||
const merchantId = String(data.merchantId || '').trim();
|
||||
if (!merchantMap[merchantId]) {
|
||||
throw new Error('提现商户不正确');
|
||||
}
|
||||
const amount = balanceUtil.normalizeAmount(data.amount);
|
||||
if (amount <= 0) {
|
||||
throw new Error('提现金额必须大于0');
|
||||
}
|
||||
const balanceRecord = await balanceUtil.ensureBalanceRecord({
|
||||
transaction,
|
||||
vk
|
||||
});
|
||||
const balanceInfoMap = balanceUtil.buildBalanceInfoMap(balanceRecord.balanceInfo || {});
|
||||
const merchantBalanceInfo = balanceInfoMap[merchantId] || {
|
||||
accNo: merchantId,
|
||||
merchantName: merchantMap[merchantId],
|
||||
balance: 0,
|
||||
updateTime: ''
|
||||
};
|
||||
const merchantBalance = balanceUtil.normalizeAmount(merchantBalanceInfo.balance || 0);
|
||||
if (merchantBalance <= 0) {
|
||||
throw new Error('当前企业余额小于等于0,无法提现');
|
||||
}
|
||||
if (amount > merchantBalance) {
|
||||
throw new Error('提现金额不能大于当前企业余额');
|
||||
}
|
||||
const description = String(data.description || '').trim() || `余额提现-${merchantMap[merchantId]}`;
|
||||
|
||||
const requestRes = await vk.request({
|
||||
method: "POST",
|
||||
url: 'http://jjx-union-pay.gxwebsoft.com/api/union-pay-jjx/transByAmount',
|
||||
header: {
|
||||
"content-type": "application/json; charset=utf-8",
|
||||
},
|
||||
data: {
|
||||
accNo: merchantId,
|
||||
amount
|
||||
},
|
||||
timeout: 60000
|
||||
});
|
||||
console.log('requestRes', requestRes)
|
||||
const code = Number(requestRes && requestRes.code);
|
||||
const success = requestRes && (
|
||||
code === 0 ||
|
||||
code === 200 ||
|
||||
requestRes.success === true ||
|
||||
(typeof requestRes.code === 'undefined' && !requestRes.msg && !requestRes.message)
|
||||
);
|
||||
if (!success) {
|
||||
throw new Error(
|
||||
(requestRes && (requestRes.msg || requestRes.message)) ||
|
||||
(requestRes && requestRes.content && (requestRes.content.msg || requestRes.content.message)) ||
|
||||
'提现失败'
|
||||
);
|
||||
}
|
||||
|
||||
const logData = {
|
||||
description,
|
||||
amount,
|
||||
type: 'expense',
|
||||
logTime: Date.now(),
|
||||
operatorId: userInfo && userInfo.uid ? userInfo.uid : '',
|
||||
source: 'withdraw',
|
||||
merchantId,
|
||||
merchantName: merchantMap[merchantId],
|
||||
srcReqId: requestRes.srcReqId,
|
||||
status: 1
|
||||
};
|
||||
const changeAmount = balanceUtil.buildBalanceChange(logData);
|
||||
|
||||
await balanceUtil.checkBalanceAvailable({
|
||||
transaction,
|
||||
vk,
|
||||
changeAmount
|
||||
});
|
||||
|
||||
const addRes = await vk.baseDao.add({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance-log',
|
||||
dataJson: logData
|
||||
});
|
||||
|
||||
const updateTime = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
const nextMerchantBalance = Number((merchantBalance + changeAmount).toFixed(2));
|
||||
const nextBalance = Number((Number(balanceRecord.balance || 0) + changeAmount).toFixed(2));
|
||||
await vk.baseDao.updateById({
|
||||
db: transaction,
|
||||
dbName: 'jjx-balance',
|
||||
id: balanceRecord._id,
|
||||
dataJson: {
|
||||
balance: nextBalance,
|
||||
lastLogId: addRes.id,
|
||||
updateTime,
|
||||
balanceInfo: {
|
||||
...balanceInfoMap,
|
||||
[merchantId]: {
|
||||
accNo: merchantId,
|
||||
merchantName: merchantMap[merchantId],
|
||||
balance: nextMerchantBalance,
|
||||
updateTime
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
await transaction.commit();
|
||||
return {
|
||||
code: 0,
|
||||
msg: '',
|
||||
data: {
|
||||
balance: nextBalance,
|
||||
merchantBalance: nextMerchantBalance
|
||||
}
|
||||
};
|
||||
} catch (err) {
|
||||
return await balanceUtil.rollbackTransaction({
|
||||
transaction,
|
||||
err
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-goods-category',
|
||||
dataJson: data
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-goods-category',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName: 'jjx-goods-category',
|
||||
sortArr: [
|
||||
{ name: "sort", type: "asc" },
|
||||
{ name: "_id", type: "desc" },
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-goods-category',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-goods',
|
||||
dataJson: {
|
||||
...data, ...{
|
||||
viewNum: 0,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-goods',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, name, pageIndex, pageSize, pageNum, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {};
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.name)) {
|
||||
whereJson.name = new RegExp(formData.name);
|
||||
}
|
||||
if (vk.pubfn.isNotNull(formData.address)) {
|
||||
whereJson['address.area.code'] = formData.address.area.code;
|
||||
}
|
||||
}
|
||||
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName: 'jjx-goods',
|
||||
getCount: true,
|
||||
whereJson,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
pageNum,
|
||||
sortArr: sortRule && sortRule.length ? sortRule : [{"name": "_add_time", "type": "desc"}],
|
||||
// foreignDB: [
|
||||
// {
|
||||
// dbName: "jjx-goods-category",
|
||||
// localKey: "parentId",
|
||||
// foreignKey: "_id",
|
||||
// as: "category",
|
||||
// limit: 1,
|
||||
// },
|
||||
//
|
||||
// ]
|
||||
});
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
res.rows[i].category = vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-goods-category",
|
||||
whereJson: {
|
||||
_id: res.rows[i].parentId,
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-goods',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 添加单条数据
|
||||
* @url admin/kong/sys/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 {
|
||||
params1,
|
||||
params2,
|
||||
params3
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
let dbName = "vk-test";
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson:{
|
||||
params1,
|
||||
params2,
|
||||
params3
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 数据删除
|
||||
* @url admin/kong/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 } = 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,29 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url admin/kong/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} pageIndex 当前页码
|
||||
* @param {Number} pageSize 每页显示数量
|
||||
* @param {Array<Object>} sortRule 排序规则
|
||||
* @param {object} formData 查询条件数据源
|
||||
* @param {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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,40 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据
|
||||
* @url admin/kong/sys/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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,
|
||||
params1,
|
||||
params2,
|
||||
params3
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
if(vk.pubfn.isNullOne(_id)){
|
||||
return { code : -1, msg : '参数错误' };
|
||||
}
|
||||
let dbName = "vk-test";
|
||||
await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id:_id,
|
||||
dataJson:{
|
||||
params1,
|
||||
params2,
|
||||
params3
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-notice',
|
||||
dataJson: {
|
||||
...data, ...{
|
||||
viewNum: 0
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-notice',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName: 'jjx-notice'
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-notice',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/changeField 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-old",
|
||||
id: data.id,
|
||||
dataJson: {
|
||||
[data.field]: data.value
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../utils/sortRule.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { pageIndex, pageSize, formData, sortRule } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {};
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.title)) whereJson.title = new RegExp(formData.title);
|
||||
if (vk.pubfn.isNotNull(formData.status)) whereJson.status = formData.status;
|
||||
if (vk.pubfn.isNotNull(formData.type)) whereJson.type = formData.type;
|
||||
if (vk.pubfn.isNotNull(formData.rentType)) whereJson.rentType = formData.rentType;
|
||||
if (vk.pubfn.isNotNull(formData.signMethod)) whereJson.signMethod = formData.signMethod;
|
||||
}
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-old",
|
||||
getCount: true,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
sortArr: normalizeSortRule(sortRule, [{"name": "_add_time", "type":"desc" }], ["_add_time"]),
|
||||
});
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
|
||||
res.rows[i].contract = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-contract',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/changeField 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
// todo 订单退款成功处理
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-order",
|
||||
id: data.id,
|
||||
dataJson: {
|
||||
[data.field]: data.value
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../utils/sortRule.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {pageIndex, pageSize, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {}
|
||||
const setInvoiceWhere = (value) => {
|
||||
const invoiceStatus = Number(value)
|
||||
if (invoiceStatus === 1) {
|
||||
whereJson.isInvoice = _.or(_.eq(1), _.exists(false), _.eq(null), _.eq(''))
|
||||
} else {
|
||||
whereJson.isInvoice = Number.isNaN(invoiceStatus) ? value : invoiceStatus
|
||||
}
|
||||
}
|
||||
if (vk.pubfn.isNotNull(data.type)) {
|
||||
whereJson.type = data.type
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(data.orderNo)) {
|
||||
whereJson.orderNo = new RegExp(data.orderNo)
|
||||
}
|
||||
if (vk.pubfn.isNotNull(data.status)) {
|
||||
whereJson.status = data.status
|
||||
}
|
||||
if (vk.pubfn.isNotNull(data.orderStatus)) whereJson.orderStatus = data.orderStatus
|
||||
else whereJson.orderStatus = _.neq(-1)
|
||||
|
||||
if (vk.pubfn.isNotNull(data._add_time)) {
|
||||
whereJson.userId = data.userId
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(data.isInvoice)) {
|
||||
setInvoiceWhere(data.isInvoice)
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.orderStatus)) {
|
||||
if (Array.isArray(formData.orderStatus)) whereJson.orderStatus = _.in(formData.orderStatus)
|
||||
else whereJson.orderStatus = formData.orderStatus
|
||||
} else whereJson.orderStatus = _.neq(-1)
|
||||
if (vk.pubfn.isNotNull(formData.type)) whereJson.type = formData.type
|
||||
if (vk.pubfn.isNotNull(formData.subType)) whereJson.subType = formData.subType
|
||||
if (vk.pubfn.isNotNull(formData.orderNo)) whereJson.orderNo = new RegExp(formData.orderNo)
|
||||
if (vk.pubfn.isNotNull(formData.isInvoice)) setInvoiceWhere(formData.isInvoice)
|
||||
if (vk.pubfn.isNotNull(formData._add_time)) {
|
||||
whereJson._add_time = _.gte(formData._add_time[0])
|
||||
whereJson._add_time = _.lte(formData._add_time[1])
|
||||
}
|
||||
}
|
||||
|
||||
// 区域限制
|
||||
if (whereJson.type === 1 && userInfo.allowArea && userInfo.allowArea.length > 0) {
|
||||
whereJson['addressRegion.city.code'] = _.in(userInfo.allowArea.map(item => item.area.city.code));
|
||||
}
|
||||
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-order",
|
||||
getCount: true,
|
||||
whereJson,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
sortArr: normalizeSortRule(sortRule, [{"name": "_add_time", "type": "desc"}], ["_add_time"]),
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "uid",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
},
|
||||
{
|
||||
dbName: "jjx-order-goods",
|
||||
localKey: "_id",
|
||||
foreignKey: "orderId",
|
||||
as: "goods",
|
||||
limit: 100, // limit=1则以对象形式返回
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "companyId",
|
||||
foreignKey: "_id",
|
||||
as: "company",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
]
|
||||
});
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
if (vk.pubfn.isNull(res.rows[i].isInvoice)) {
|
||||
res.rows[i].isInvoice = 1
|
||||
}
|
||||
|
||||
if (res.rows[i].type === 14) {
|
||||
res.rows[i].amount = 0
|
||||
const payList = await vk.baseDao.select({
|
||||
dbName: "jjx-order-pay-list",
|
||||
whereJson: {
|
||||
orderId: res.rows[i]._id,
|
||||
hasPaid: true,
|
||||
sellerConfirm: true,
|
||||
buyerRefuse: false,
|
||||
}
|
||||
})
|
||||
for (const payRow of payList.rows) {
|
||||
res.rows[i].amount += parseFloat(payRow.amount)
|
||||
}
|
||||
}
|
||||
|
||||
if (res.rows[i].type === 0) {
|
||||
for (const goodsItem of res.rows[i].goods) {
|
||||
const goods = await vk.baseDao.findById({
|
||||
dbName: "jjx-goods",
|
||||
id: goodsItem.goodsId
|
||||
});
|
||||
if (goods && goods.sku && goods.sku.length > 0) {
|
||||
goodsItem.sku = goods.sku.find(item => item._index === goodsItem.skuId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (res.rows[i].type === 1 && res.rows[i].subType === 2) {
|
||||
const configList = await vk.baseDao.select({
|
||||
dbName: "jjx-coop-config",
|
||||
whereJson: {
|
||||
type: 2
|
||||
}
|
||||
})
|
||||
for (let j in res.rows[i].goods) {
|
||||
const goods = res.rows[i].goods[j]
|
||||
configList.rows.forEach(config => {
|
||||
if (config._id === goods.configId) {
|
||||
config.contents.forEach(content => {
|
||||
if (content._index === goods.contentIndex) {
|
||||
content.amountList.forEach(amountItem => {
|
||||
if (amountItem._index === goods.amountIndex) {
|
||||
res.rows[i].goods[j].amountItem = amountItem
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (res.rows[i].type === 7) {
|
||||
for (let j in res.rows[i].goods) {
|
||||
if (res.rows[i].goods[j].isSingleQuote) {
|
||||
switch(res.rows[i].goods[j].type){
|
||||
case 'enquiry' : {
|
||||
res.rows[i].goods[j].sheet = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-enquiry-sheet",
|
||||
whereJson: {
|
||||
_id: res.rows[i].goods[j].sheetId
|
||||
}
|
||||
})
|
||||
}
|
||||
break;
|
||||
case 'old' : {
|
||||
res.rows[i].goods[j].sheet = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-old",
|
||||
whereJson: {
|
||||
_id: res.rows[i].goods[j].sheetId
|
||||
}
|
||||
})
|
||||
}
|
||||
break;
|
||||
case 'process' : {
|
||||
res.rows[i].goods[j].sheet = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-process-sheet",
|
||||
whereJson: {
|
||||
_id: res.rows[i].goods[j].sheetId
|
||||
}
|
||||
})
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
const OpenSdk = require('../../../../util/base').default;
|
||||
|
||||
const sdk = new OpenSdk({
|
||||
appId: '8a81c1db8fc5238d01910b9e312d0692',
|
||||
appKey: 'a15ceac60f5b464eb758c4fe7800ee9f'
|
||||
})
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/refund 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, orderStatus, refundRefuseReason} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-order",
|
||||
id: data.id,
|
||||
dataJson: {
|
||||
orderStatus,
|
||||
refundRefuseReason
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
const order = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-order",
|
||||
whereJson: {
|
||||
_id: data.id
|
||||
}
|
||||
})
|
||||
|
||||
let refundData = {
|
||||
queryUrl: 'https://api-mop.chinaums.com/v1/netpay/bills/refund',
|
||||
timestamp: dayjs().format('YYYYMMDDHHmmss'),
|
||||
nonce: 'rp84ufhfn20yneo3tp',
|
||||
content: {
|
||||
requestTimestamp: dayjs().format('YYYY-MM-DD HH:mm:ss'),
|
||||
// mid: '8984501521190CF',
|
||||
// tid: '20713432',
|
||||
mid: '898450100002303',
|
||||
tid: 'G5SBN2XJ',
|
||||
instMid: 'QRPAYDEFAULT',
|
||||
billNo: order.orderNo,
|
||||
billDate: dayjs(order.payTime).format('YYYY-MM-DD'),
|
||||
refundAmount: order.payAmount * 100
|
||||
}
|
||||
}
|
||||
|
||||
console.log('退款数据', refundData)
|
||||
|
||||
if (orderStatus === 6) {
|
||||
console.log('退款执行')
|
||||
sdk.exec(refundData).then(res => {
|
||||
const result = JSON.parse(res);
|
||||
console.log('退款结果', result)
|
||||
// if (result.errCode === 'SUCCESS') {
|
||||
// }
|
||||
}).catch(err => {
|
||||
console.log('退款失败', err)
|
||||
}).finally(() => {
|
||||
console.log('退款最后执行')
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url client/order/kh/setExpress 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, id, expressName, expressNo, remark, expressPhoto,} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-order",
|
||||
id,
|
||||
dataJson: {
|
||||
expressName,
|
||||
expressNo,
|
||||
remark,
|
||||
expressPhoto,
|
||||
orderStatus: 2,
|
||||
expressTime: dayjs().valueOf(),
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-other-article-category',
|
||||
dataJson: data
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-other-article-category',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex = 1, pageSize = 500, name, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {}
|
||||
|
||||
if (vk.pubfn.isNotNull(name)) whereJson.name = new RegExp(name)
|
||||
if (vk.pubfn.isNotNull(formData)) whereJson.name = new RegExp(formData.name)
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: 'jjx-other-article-category',
|
||||
getCount: true,
|
||||
whereJson,
|
||||
pageIndex,
|
||||
pageSize,
|
||||
sortArr: sortRule && sortRule.length ? sortRule : [
|
||||
{name: "sort", type: "asc"},
|
||||
{name: "_id", type: "desc"},
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-other-article-category',
|
||||
dataJson: data,
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/add 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: 'jjx-other-article',
|
||||
dataJson: {
|
||||
...data, ...{
|
||||
viewNum: 0,
|
||||
downloadNum: 0,
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-other-article',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../../utils/sortRule.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const whereJson = {}
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.name)) whereJson.name = new RegExp(formData.name)
|
||||
if (vk.pubfn.isNotNull(formData.parentId)) whereJson.parentId = formData.parentId
|
||||
}
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: 'jjx-other-article',
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
getCount: true,
|
||||
sortArr: normalizeSortRule(sortRule, [
|
||||
{name: "sort", type: "asc"},
|
||||
{name: "_id", type: "desc"},
|
||||
], ["_add_time", "_update_time"]),
|
||||
// foreignDB: [
|
||||
// {
|
||||
// dbName: "jjx-other-article-category",
|
||||
// localKey: "parentId",
|
||||
// foreignKey: "_id",
|
||||
// as: "category",
|
||||
// limit: 1,
|
||||
// },
|
||||
// ]
|
||||
});
|
||||
|
||||
if (res.rows && res.rows.length > 0) {
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
let item = res.rows[i];
|
||||
if (item.parentId) {
|
||||
res.rows[i].category = await vk.baseDao.findById({
|
||||
dbName: "jjx-other-article-category",
|
||||
id: item.parentId
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
data._update_time = dayjs().format("YYYY-MM-DD HH:mm:ss")
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-other-article',
|
||||
dataJson: data,
|
||||
id: data._id,
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
const formRules = require("../util/formRules.js");
|
||||
module.exports = {
|
||||
/**
|
||||
* 添加单条数据
|
||||
* @url admin/kong/sys/add 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 formRulesRes = await formRules.add(event);
|
||||
if (formRulesRes.code !== 0) {
|
||||
return formRulesRes;
|
||||
}
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
let {
|
||||
name,
|
||||
icon,
|
||||
sort,
|
||||
remark,
|
||||
parent_id,
|
||||
level
|
||||
} = data;
|
||||
|
||||
let dbName = "jjx-process-category";
|
||||
|
||||
|
||||
if(parent_id) {
|
||||
const parent = await vk.baseDao.findById({
|
||||
dbName,
|
||||
id: parent_id
|
||||
})
|
||||
|
||||
if(parent.level >= 3) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: '最多支持三级分类'
|
||||
}
|
||||
}
|
||||
|
||||
level = parent.level + 1
|
||||
|
||||
} else {
|
||||
level = 1
|
||||
}
|
||||
res.id = await vk.baseDao.add({
|
||||
dbName,
|
||||
dataJson:{
|
||||
name,
|
||||
icon,
|
||||
sort,
|
||||
remark,
|
||||
parent_id,
|
||||
level
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/delete 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
await vk.baseDao.deleteById({
|
||||
dbName: 'jjx-process-category',
|
||||
id: data._id
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询多条记录 分页
|
||||
* @url admin/kong/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {Number} pageIndex 当前页码
|
||||
* @param {Number} pageSize 每页显示数量
|
||||
* @param {Array<Object>} sortRule 排序规则
|
||||
* @param {object} formData 查询条件数据源
|
||||
* @param {Array<Object>} columns 查询条件规则
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 = "jjx-process-category";
|
||||
res = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex: 1,
|
||||
pageSize: 500,
|
||||
whereJson: {
|
||||
parent_id: _.in([null, ""]),
|
||||
_id: _.exists(true)
|
||||
},
|
||||
sortArr: [{name: "sort", type: "asc"}],
|
||||
// 树状结构参数
|
||||
// treeProps: {
|
||||
// id: "_id", // 唯一标识字段,默认为 _id
|
||||
// parent_id: "parent_id", // 父级标识字段,默认为 parent_id
|
||||
// children: "children", // 自定义返回的下级字段名,默认为 children
|
||||
// level: 3, // 查询返回的树的最大层级。超过设定层级的节点不会返回。默认10级,最大15,最小1
|
||||
// limit: 500, // 每一级最大返回的数据。
|
||||
// whereJson: {}
|
||||
// }
|
||||
});
|
||||
for (const item of res.rows) {
|
||||
const children = await vk.baseDao.selects({
|
||||
dbName,
|
||||
pageIndex: 1,
|
||||
pageSize: 500,
|
||||
whereJson: {
|
||||
parent_id: item._id
|
||||
},
|
||||
sortArr: [
|
||||
// {name: "quoteNum", type: "desc"},
|
||||
{name: "sort", type: "asc"},
|
||||
]
|
||||
})
|
||||
item.children = children.rows
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/article/category/sys/list 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res = await vk.baseDao.getTableData({
|
||||
dbName: 'jjx-process-category',
|
||||
sortArr: [
|
||||
{name: "sort", type: "asc"},
|
||||
{name: "_id", type: "desc"},
|
||||
],
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "jjx-process-category",
|
||||
localKey: "parent_id",
|
||||
foreignKey: "_id",
|
||||
as: "parent",
|
||||
limit: 1,
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* 修改数据
|
||||
* @url admin/kong/sys/update 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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,
|
||||
name,
|
||||
icon,
|
||||
sort,
|
||||
remark,
|
||||
parent_id,
|
||||
level
|
||||
} = data;
|
||||
// 这里需要把 params1 params2 params3 改成你数据库里允许用户添加的字段
|
||||
if(vk.pubfn.isNullOne(_id)){
|
||||
return { code : -1, msg : '参数错误' };
|
||||
}
|
||||
let dbName = "jjx-process-category";
|
||||
|
||||
|
||||
if(parent_id) {
|
||||
const parent = await vk.baseDao.findById({
|
||||
dbName,
|
||||
id: parent_id
|
||||
})
|
||||
|
||||
if(parent.level >= 3) {
|
||||
return {
|
||||
code: -1,
|
||||
msg: '最多支持三级分类'
|
||||
}
|
||||
}
|
||||
|
||||
level = parent.level + 1
|
||||
|
||||
} else {
|
||||
level = 1
|
||||
}
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName,
|
||||
id:_id,
|
||||
dataJson:{
|
||||
name,
|
||||
icon,
|
||||
sort,
|
||||
remark,
|
||||
parent_id,
|
||||
level
|
||||
}
|
||||
});
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
'use strict';
|
||||
const dayjs = require("dayjs");
|
||||
var isBetween = require('dayjs/plugin/isBetween')
|
||||
dayjs.extend(isBetween)
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/changeField 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const dataJson = {}
|
||||
dataJson[data.field] = data.value
|
||||
if (data.field === 'showInAdmin') {
|
||||
dataJson['isShow'] = 0
|
||||
dataJson['status'] = 1
|
||||
} else if (data.field === 'isShow' && data.value === 1) {
|
||||
const sheet = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-process-sheet",
|
||||
whereJson: {
|
||||
_id: data.id
|
||||
},
|
||||
})
|
||||
|
||||
const messageUserList = await vk.baseDao.select({
|
||||
dbName: "jjx-message-config",
|
||||
whereJson: {
|
||||
process: true
|
||||
}
|
||||
})
|
||||
const messageList = []
|
||||
for (let i = 0; i < messageUserList.rows.length; i++) {
|
||||
if (messageUserList.rows[i].uid !== sheet.uid) {
|
||||
const config = messageUserList.rows[i]
|
||||
const date = dayjs().format("YYYY-MM-DD")
|
||||
// if (config.doNotDisturbRange && config.doNotDisturbRange[0]) {
|
||||
// const doNotDisturbRangeStart = dayjs(config.doNotDisturbRange[0]).format("HH:mm")
|
||||
// const doNotDisturbRangeEnd = dayjs(config.doNotDisturbRange[1]).format("HH:mm")
|
||||
// if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
// continue
|
||||
// }
|
||||
if (config.doNotDisturbStart && config.doNotDisturbStart.length) {
|
||||
const doNotDisturbRangeStart = dayjs(`${date} ${config.doNotDisturbStart[0]}:${config.doNotDisturbStart[1]}`).format("HH:mm")
|
||||
const doNotDisturbRangeEnd = dayjs(`${date} ${config.doNotDisturbEnd[0]}:${config.doNotDisturbEnd[1]}`).format("HH:mm")
|
||||
if (dayjs().isBetween(dayjs(`${date} ${doNotDisturbRangeStart}`), dayjs(`${date} ${doNotDisturbRangeEnd}`)))
|
||||
continue
|
||||
}
|
||||
let inAddress = false
|
||||
if (config.addressList && config.addressList.length > 0) {
|
||||
for (let j = 0; j < config.addressList.length; j++) {
|
||||
if (config.addressList[j].province.code === sheet.addressRegion.province.code) {
|
||||
if (config.addressList[j].city === null) inAddress = true
|
||||
else if (config.addressList[j].city.code === sheet.addressRegion.city.code) {
|
||||
if (config.addressList[j].area === null) inAddress = true
|
||||
else if (config.addressList[j].area.code === sheet.addressRegion.area.code) {
|
||||
inAddress = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else inAddress = true
|
||||
if (!inAddress) continue
|
||||
if (!config.tradeSelf && sheet.tradeMethod === 0) continue
|
||||
if (!config.tradePlatform && sheet.tradeMethod === 1) continue
|
||||
messageList.push({
|
||||
uid: messageUserList.rows[i].uid,
|
||||
title: `加工:${sheet.title}`,
|
||||
content: `新的加工信息发布,赶紧去看看吧`,
|
||||
type: 'process',
|
||||
hasRead: false,
|
||||
pk: res.id
|
||||
})
|
||||
await pubFun.sendNotifySms(messageUserList.rows[i].uid, 'SMS_474440033')
|
||||
}
|
||||
}
|
||||
if (messageList.length > 0) {
|
||||
await vk.baseDao.adds({
|
||||
dbName: "jjx-message",
|
||||
dataJson: messageList
|
||||
});
|
||||
}
|
||||
}
|
||||
await vk.baseDao.updateById({
|
||||
dbName: "jjx-process-sheet",
|
||||
id: data.id,
|
||||
dataJson
|
||||
});
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../utils/sortRule.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/old/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { pageIndex, pageSize, formData, sortRule } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = { };
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.title)) whereJson.title = new RegExp(formData.title)
|
||||
if (vk.pubfn.isNotNull(formData.status)) whereJson.status = formData.status
|
||||
if (vk.pubfn.isNotNull(formData.showInAdmin)) whereJson.showInAdmin = formData.showInAdmin
|
||||
if (vk.pubfn.isNotNull(formData.signMethod)) whereJson.signMethod = formData.signMethod
|
||||
if (vk.pubfn.isNotNull(formData.quoteNum)) {
|
||||
if (formData.quoteNum === 0) whereJson.quoteNum = formData.quoteNum
|
||||
else whereJson.quoteNum = _.neq(formData.quoteNum)
|
||||
}
|
||||
}
|
||||
|
||||
if (vk.pubfn.isNull(formData.showInAdmin)) whereJson.showInAdmin = 1
|
||||
console.log('whereJson', whereJson)
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-process-sheet",
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
getCount: true,
|
||||
sortArr: normalizeSortRule(sortRule, [{"name": "_add_time", "type":"desc" }], ["_add_time"]),
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true
|
||||
},
|
||||
person: {
|
||||
personName: true
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
},
|
||||
{
|
||||
dbName: "jjx-process-quote",
|
||||
localKey: "_id",
|
||||
foreignKey: "sheetId",
|
||||
as: "quoteList",
|
||||
limit: 500, // limit=1则以对象形式返回
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "userId",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true,
|
||||
mobile: true,
|
||||
},
|
||||
person: {
|
||||
personName: true,
|
||||
mobile: true,
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
res.rows[i].quote = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-process-quote',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id,
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
const order = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-order',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id
|
||||
}
|
||||
})
|
||||
if (order) {
|
||||
res.rows[i].order = order
|
||||
const payList = await vk.baseDao.select({
|
||||
dbName: 'jjx-order-pay-list',
|
||||
whereJson: {
|
||||
orderId: order._id
|
||||
}
|
||||
})
|
||||
res.rows[i].payList = null
|
||||
if (payList) {
|
||||
res.rows[i].payList = payList.rows
|
||||
}
|
||||
}
|
||||
|
||||
res.rows[i].contract = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-contract',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
module.exports = {
|
||||
/**
|
||||
* 查询用户列表(用于后端用户选择器的搜索数据)
|
||||
* @url admin/select/kh/user 前端调用的url参数地址
|
||||
* data 请求参数 说明
|
||||
* @param {String} searchvalue 搜索内容
|
||||
* res 返回参数说明
|
||||
* @param {Number} code 错误码,0表示成功
|
||||
* @param {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 { searchvalue } = data;
|
||||
if (!searchvalue) {
|
||||
return { code: 0, list: [] };
|
||||
}
|
||||
let dbName = "uni-id-users";
|
||||
let fieldJson = {
|
||||
_id: true,
|
||||
username: true,
|
||||
nickname: true,
|
||||
mobile: true,
|
||||
};
|
||||
let sortArr = [];
|
||||
// 排序规则开始-----------------------------------------------------------
|
||||
sortArr.push({
|
||||
"name": "register_date",
|
||||
"type": "desc"
|
||||
});
|
||||
// 排序规则结束-----------------------------------------------------------
|
||||
// 查询条件开始-----------------------------------------------------------
|
||||
let whereJson = {};
|
||||
let andArr = [];
|
||||
if (searchvalue) {
|
||||
// 查询包含searchvalue的数据
|
||||
try {
|
||||
let regExp = new RegExp(searchvalue);
|
||||
let orObj = _.or([
|
||||
{
|
||||
"username": regExp
|
||||
},
|
||||
{
|
||||
"nickname": regExp
|
||||
},
|
||||
{
|
||||
"mobile": regExp
|
||||
},
|
||||
{
|
||||
"_id": searchvalue
|
||||
}
|
||||
]);
|
||||
andArr.push(orObj);
|
||||
} catch (err) {
|
||||
return { code: -1, msg: '请输入合法的查询内容' };
|
||||
}
|
||||
}
|
||||
if (andArr.length > 0) {
|
||||
whereJson = _.and(andArr);
|
||||
}
|
||||
// 查询条件结束-----------------------------------------------------------
|
||||
let selectRes = await vk.baseDao.select({
|
||||
dbName: dbName,
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
fieldJson: fieldJson,
|
||||
whereJson: whereJson,
|
||||
sortArr: sortArr
|
||||
}, util);
|
||||
let list = [];
|
||||
for (let i in selectRes.rows) {
|
||||
let item = selectRes.rows[i];
|
||||
let value = item._id;
|
||||
let label = item.nickname || "未设置昵称";
|
||||
if (item.mobile) {
|
||||
item.mobile = vk.pubfn.hidden(item.mobile, 3, 4);
|
||||
label += `(${item.mobile})`;
|
||||
} else if (item.username) {
|
||||
item.username = vk.pubfn.hidden(item.username, 2, 3);
|
||||
label += `(${item.username})`;
|
||||
}
|
||||
list.push({
|
||||
value: value,
|
||||
label: label
|
||||
});
|
||||
}
|
||||
res.list = list;
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/selfProduct/order/sys/getDetail 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { uid, orderId} = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
res.data = await vk.baseDao.findByWhereJson({
|
||||
dbName: "jjx-order-selfProduct",
|
||||
whereJson: {
|
||||
orderId
|
||||
}
|
||||
})
|
||||
|
||||
if (res.data.companyId) {
|
||||
res.data.company = await vk.baseDao.findByWhereJson({
|
||||
dbName: "uni-id-users",
|
||||
whereJson: {
|
||||
_id: res.data.companyId
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/selfProduct/order/sys/setCompany 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let { data = {}, userInfo, util, filterResponse, originalParam } = event;
|
||||
let { customUtil, uniID, config, pubFun, vk, db, _ } = util;
|
||||
let { uid, orderId, companyId } = data;
|
||||
let res = { code: 0, msg: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
|
||||
await vk.baseDao.update({
|
||||
dbName: 'jjx-order-selfProduct',
|
||||
whereJson:{
|
||||
orderId
|
||||
},
|
||||
dataJson:{
|
||||
companyId,
|
||||
}
|
||||
})
|
||||
|
||||
await vk.baseDao.updateById({
|
||||
dbName: 'jjx-order',
|
||||
id: orderId,
|
||||
dataJson: {
|
||||
sellerUid: companyId,
|
||||
orderStatus: 11
|
||||
}
|
||||
})
|
||||
|
||||
await vk.baseDao.add({
|
||||
dbName: "jjx-message",
|
||||
dataJson: {
|
||||
uid: companyId,
|
||||
title: `您有新的自营增值服务派单`,
|
||||
content: `您有新的自营增值服务派单,赶紧去完成订单吧`,
|
||||
type: 'self-product',
|
||||
hasRead: false,
|
||||
}
|
||||
});
|
||||
await pubFun.sendNotifySms(companyId, 'SMS_474125515')
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
'use strict';
|
||||
const normalizeSortRule = require('../../../utils/sortRule.js');
|
||||
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/selfProduct/quote/sys/getList 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
main: async (event) => {
|
||||
let {data = {}, userInfo, util, filterResponse, originalParam} = event;
|
||||
let {customUtil, uniID, config, pubFun, vk, db, _} = util;
|
||||
let {uid, pageIndex, pageSize, formData, sortRule} = data;
|
||||
let res = {code: 0, msg: ""};
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
const whereJson = {};
|
||||
if (vk.pubfn.isNotNull(formData)) {
|
||||
if (vk.pubfn.isNotNull(formData.address)) whereJson['city.code'] = formData.address.city.code;
|
||||
}
|
||||
|
||||
// 区域限制
|
||||
if (userInfo.allowArea && userInfo.allowArea.length > 0) {
|
||||
whereJson['city.code'] = _.in(userInfo.allowArea.map(item => item.area.city.code));
|
||||
}
|
||||
|
||||
res = await vk.baseDao.selects({
|
||||
dbName: "jjx-self-support",
|
||||
pageIndex,
|
||||
pageSize,
|
||||
whereJson,
|
||||
getCount: true,
|
||||
sortArr: normalizeSortRule(sortRule, [{"name": "_add_time", "type": "desc"}], ["_add_time"]),
|
||||
foreignDB: [
|
||||
{
|
||||
dbName: "uni-id-users",
|
||||
localKey: "uid",
|
||||
foreignKey: "_id",
|
||||
as: "user",
|
||||
limit: 1, // limit=1则以对象形式返回
|
||||
fieldJson: {
|
||||
_id: true,
|
||||
company: {
|
||||
companyName: true
|
||||
},
|
||||
person: {
|
||||
personName: true
|
||||
},
|
||||
businessCard: true,
|
||||
accountType: true,
|
||||
},
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
for (let i = 0; i < res.rows.length; i++) {
|
||||
const order = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-order',
|
||||
whereJson: {
|
||||
sheetId: res.rows[i]._id
|
||||
}
|
||||
})
|
||||
if (order) {
|
||||
res.rows[i].order = order
|
||||
const payList = await vk.baseDao.select({
|
||||
dbName: 'jjx-order-pay-list',
|
||||
whereJson: {
|
||||
orderId: order._id
|
||||
}
|
||||
})
|
||||
res.rows[i].payList = null
|
||||
if (payList) {
|
||||
res.rows[i].payList = payList.rows
|
||||
}
|
||||
}
|
||||
res.rows[i].quote = await vk.baseDao.findByWhereJson({
|
||||
dbName: 'jjx-self-support-quote-list',
|
||||
whereJson: {
|
||||
quoteId: res.rows[i]._id,
|
||||
status: 1
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
'use strict';
|
||||
var vk; // 全局vk实例
|
||||
// 涉及的表名
|
||||
const dbName = {
|
||||
configSite: "jjx-config-site", // 测试表
|
||||
};
|
||||
|
||||
var db = uniCloud.database(); // 全局数据库引用
|
||||
var _ = db.command; // 数据库操作符
|
||||
var $ = _.aggregate; // 聚合查询操作符
|
||||
/**
|
||||
* 权限注意:访问以下链接查看
|
||||
* 文档地址:https://vkdoc.fsq.pub/client/uniCloud/cloudfunctions/cloudObject.html#内置权限
|
||||
*/
|
||||
var cloudObject = {
|
||||
isCloudObject: true, // 标记为云对象模式
|
||||
/**
|
||||
* 请求前处理,主要用于调用方法之前进行预处理,一般用于拦截器、统一的身份验证、参数校验、定义全局对象等。
|
||||
* 文档地址:https://vkdoc.fsq.pub/client/uniCloud/cloudfunctions/cloudObject.html#before-预处理
|
||||
*/
|
||||
_before: async function() {
|
||||
vk = this.vk; // 将vk定义为全局对象
|
||||
// let { customUtil, uniID, config, pubFun } = this.getUtil(); // 获取工具包
|
||||
},
|
||||
/**
|
||||
* 请求后处理,主要用于处理本次调用方法的返回结果或者抛出的错误
|
||||
* 文档地址:https://vkdoc.fsq.pub/client/uniCloud/cloudfunctions/cloudObject.html#after-后处理
|
||||
*/
|
||||
_after: async function(options) {
|
||||
let { err, res } = options;
|
||||
if (err) {
|
||||
return; // 如果方法抛出错误,直接return;不处理
|
||||
}
|
||||
return res;
|
||||
},
|
||||
/**
|
||||
* 获取列表
|
||||
* @url admin/config.getList 前端调用的url参数地址
|
||||
*/
|
||||
getList: async function(data) {
|
||||
let res = { code: 0, msg: '' };
|
||||
let { uid } = this.getClientInfo(); // 获取客户端信息
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
},
|
||||
/**
|
||||
* 模板函数
|
||||
* @url admin/config.test 前端调用的url参数地址
|
||||
*/
|
||||
test: async function(data) {
|
||||
let res = { code: 0, msg: '' };
|
||||
let { uid } = this.getClientInfo(); // 获取客户端信息
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
},
|
||||
/**
|
||||
* @param {Object} data更新网站配置
|
||||
*/
|
||||
sys_updateSiteInfo: async function(data) {
|
||||
let res = { code: 0, msg: '' };
|
||||
let { uid } = this.getClientInfo(); // 获取客户端信息
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
const {_id,siteLogo, siteTitle, siteDesc, siteCopyright, siteIcpNumber, companyName, companyAddress, companyPhone, companyEmail, companyServicePhone, companyGzhImage, companyMobileSiteImage} = data
|
||||
res.data = await vk.baseDao.setById({
|
||||
dbName: dbName.configSite,
|
||||
dataJson:{
|
||||
_id: 'jinjiuxingangcheng',
|
||||
siteLogo, siteTitle, siteDesc, siteCopyright, siteIcpNumber, companyName, companyAddress, companyPhone, companyEmail, companyServicePhone, companyGzhImage, companyMobileSiteImage
|
||||
},
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = cloudObject;
|
||||
@@ -0,0 +1,25 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/site_config/sys/detail 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
res.data = await vk.baseDao.findById({
|
||||
dbName: "jjx-site-config",
|
||||
id: 'jinjiuxingangcheng'
|
||||
})
|
||||
|
||||
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
'use strict';
|
||||
module.exports = {
|
||||
/**
|
||||
* XXXnameXXX
|
||||
* @url admin/site_config/sys/update 前端调用的url参数地址
|
||||
* data 请求参数
|
||||
* @param {String} params1 参数1
|
||||
*/
|
||||
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: "" };
|
||||
// 业务逻辑开始-----------------------------------------------------------
|
||||
|
||||
|
||||
const {_id,siteLogo, siteTitle, siteDesc, siteCopyright, siteIcpNumber, companyName, companyAddress, companyPhone, companyEmail, companyServicePhone, companyGzhImage, companyMobileSiteImage, registerPcBgImage, registerH5BgImage, registerSignPcBgImage, registerSignH5BgImage} = data
|
||||
res.data = await vk.baseDao.setById({
|
||||
dbName: "jjx-site-config",
|
||||
dataJson:{
|
||||
_id: 'jinjiuxingangcheng',
|
||||
siteLogo, siteTitle, siteDesc, siteCopyright, siteIcpNumber, companyName, companyAddress, companyPhone, companyEmail, companyServicePhone, companyGzhImage, companyMobileSiteImage, registerPcBgImage, registerH5BgImage, registerSignPcBgImage, registerSignH5BgImage
|
||||
},
|
||||
});
|
||||
|
||||
// 业务逻辑结束-----------------------------------------------------------
|
||||
return res;
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user