Files
jjx-admin/uniCloud-tcb/cloudfunctions/router/service/admin/select/kh/user.js
T
2026-10-08 18:19:39 +08:00

97 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}
}