cshenfu
2024-06-27 58aa6e282bb343503be3cb198948328ea3ed7b79
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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 whereJson = {};
        let sortArr = [];
        // 排序规则开始-----------------------------------------------------------
        sortArr.push({
            "name":"register_date",
            "type":"desc"
        });
 
        // 排序规则结束-----------------------------------------------------------
        // 查询条件开始-----------------------------------------------------------
        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;
  }
 
}