You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.8 KiB
96 lines
2.8 KiB
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;
|
|
}
|
|
|
|
}
|