简要描述:
处理一个用户有不同账号,通过合并账号方式,共享账号添加的数据
接口审核通过后,前端用户先退出后登录再生效
/// <summary>
///当前用户拥有的其它用户id sql里面使用 user_id in @_mergeUserId
/// (create_user_id=@_userId or create_user_id in @_mergeUserId)
/// </summary>
public const string CURRENT_MERGE_USER_ID = "_mergeUserId";
配置文件使用和替换:
(create_user_id=@_userId or create_user_id in @_mergeUserId)
(tb_f.create_user_id=@_userId or tb_f.create_user_id in @_mergeUserId)
(tb_i.create_user_id=@_userId or tb_i.create_user_id in @_mergeUserId)
接口版本:
版本号 | 制定人 | 制定日期 | 修订日期 |
---|---|---|---|
v3 | 陈碧贵 | 2021-08-01 | xxxx-xx-xx |
请求URL:
- http://{url参数}/bo/api/v3/bo-user-merge/list/res/else?_nodejs=common-data&pushName=111&ignore=true&pageSize=1
关键mapper 拼接sql语句
//合并外的其它账号
"else": {
"dataFromType": 0,
"isList": true,
"auth": true,
"show": "'00000000000000000' push_name,user_id,nike_name,real_name,head_icon",
"field": {
//多名字情况,按优先基本有数据展示
"doName": {
"pushName": [
{
"name": "push_name",
"path": "real_name",
"sortId": 1
},
{
"key": "user_id", //主键别名 使用于 1对1
"path": "nike_name", // : 前面为主表列 , 后面为1对1里面表列
"sortId": 2
},
{
"key": "user_id", //主键别名 使用于 1对1
"path": "user_id", // : 前面为主表列 , 后面为1对1里面表列
"value": "-",
"sortId": 3
}
]
}
},
"selectSql": {
"auth": false,
//where tb_um.user_id=@_userId
"sqlList": [
{
"value": "select user_id,nike_name,real_name,head_icon from bo_user where user_status=1",
"sortId": 1
},
{
"value": " and (real_name like CONCAT('%', @pushName, '%') or email like CONCAT('%', @pushName, '%') or user_name like CONCAT('%', @pushName, '%') or nike_name like CONCAT('%', @pushName, '%') or pin_yin like CONCAT('%', @pushName, '%') or id_card_suffix like CONCAT('%', @pushName, '%')) ",
"sortId": 5
},
{
"value": " and user_id not in @_filterUser ",
"sortId": 10
},
{
"value": " and user_id not in (select merge_user_id user_id from bo_user_merge where user_id=@_userId)",
"sortId": 10
},
{
"value": " order by sort_id",
"sortId": 10
}
],
//"list": "",
"listField": "*",
"pageField": "*",
"detailField": "*"
}
}
请求方式:
- GET
请求头:
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
XownerId | 是 | string | 项目唯一ID,对应bo_project {ownerId} |
XsysId | 否 | string | 所属系统 对应 bo_system 表 |
XuserFromFirstShareId | string | 否 | 一级分享用户ID, bo_user user_id |
XuserFromSecondShareId | string | 否 | 二级分享用户ID, bo_user user_id |
XverifyApi | 是 | string | 加密规则encryptByDES(`${newGuid()} |
XfilterAreaCode | 否 | string | 行政区编码, 对应 bo_sys_area area_code |
Content-Type: | 是 | string | application/json; charset=utf-8 请求类型 |
Authorization | 是 | string | 当前用户认证信息,通过登录接口获取 Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6 |
请求参数:
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
_nodejs | 是 | string | common-data 对应/Config/AppNodeJs/Plugins/fn- common-data.js, 通过nodejs插件,对响应结果进行二次处理 common-data 普通数据(小写驼峰)common-data-under 普通数据下划线 |
pushName | 是 | string | and (real_name like CONCAT(‘%’, @pushName, ‘%’) or email like CONCAT(‘%’, @pushName, ‘%’) or user_name like CONCAT(‘%’, @pushName, ‘%’) or nike_name like CONCAT(‘%’, @pushName, ‘%’) or pin_yin like CONCAT(‘%’, @pushName, ‘%’) or id_card_suffix like CONCAT(‘%’, @pushName, ‘%’)) |
返回示例:
正确时返回:
{
"data": [
{
"userId": "rg-g-deve-rg-20200-1fda7997-4bfb-441",
"realName": "111",
"headIcon": "头像地址",
"diffTableNo": 0,
"pushName": "111"
}
],
"code": "0",
"retCode": "0",
"success": true
}
错误时返回:
{
"code": 0,
"message": ""
"error":{
errorCode:null,
errorText:null
}
"success": false,
}
返回参数说明:
参数名 | 类型 | 说明 |
---|---|---|
success | bool | true 表示数据请求成功(跟code=0一致),调用者优先使用 |
code | int | true 表示数据请求成功(跟code=0一致),调用者优先使用 |
data | array | |
cacheType | string | redis/sqlite/local 数据来源缓存 的类型(便于开发调试和性能优化) |
cacheDate | date | 最后数据获取时间 |
文档更新时间: 2021-08-04 08:00 作者:admin