BOSS 系统 API
http://arch.smartmideazy.com/apidoc/main-entry/API.html
1 返回码
除统一登录返回码外,见: http://arch.smartmideazy.com/docs/account/account-doc.html
以下是BOSS系统网关的返回码,如下:
返回码 | 说明 | |
---|---|---|
401 | 没有权限 | |
403 | 拒绝访问 | |
200 | 正确返回 | |
其他 | 业务异常返回 |
2 登录接口及域名
注:登录接口使用的是统一登录的域名。
参见:
http://arch.smartmideazy.com/docs/account/account-doc.html
统一登录域名
环境 | 域名 | |
---|---|---|
SIT | https://gw-sit.remacsmart.com | |
POD | https://gw.remacsmart.com | |
编号 | API名称 | 路径 | 版本 | 适用范围 |
---|---|---|---|---|
2.1 | 登录 | /v1/user/sso/login | 1.0 | 所有 |
2.2 | 刷新token | /v1/oauth/sso/refreshtoken | 1.0 | 所有 |
2.3 | 平台统一登录切换接口 | /v1/user/auto/login | 1.0 | 所有 |
2.4 | 退出登录 | /v1/user/logout | 1.0 | 所有 |
3 本期BOSS系统API域名
域名 | 环境 |
---|---|
https://open.remacsmart.com/ | 生产 |
https://open-sit.remacsmart.com/ | SIT |
4 安全规范
除白名单接口外,所有的API接口HTTP头部必须带上 Authorization 和 tokenInfo
详见主数据API接口
http://arch.smartmideazy.com/apidoc/main-entry/API.html
中《Part II 前端(含H5、小程序、APP)请求Token 约定》章节的描述。
部分接口使用 remacToken 作为HTTP头部标识。
注:remacToken 与 Authorization + tokenInfo 互斥,请仔细阅读接口要求。
头部Authorization + tokenInfo 是为了能够访问社区主数据的接口。
4.1 h5 配置 client_id
超管登录后,跳转至BOSS 系统的WEB 页面。 需要在中台为BOSS 系统的WEB 工程配置client_id和client_secret、access_token/refresh_token过期时间。
测试环境:
client_id | client_secret | |
---|---|---|
boss-client | fduz4qNZAPssP9823zw0fCtLrUVX9bxImMqx3+llhZ+NJokBmCoN80Sgb5ATPy8K/paNKvNidJeNLa0g9Y4Pmub1YlTgVBLUmZqcBeB5KSx9N49dAmj7ZPTWz3fQhoh8weW1YvvMWoC1TlGc5WnGpILq7+GGvw9zfp43/gQfGwA= | |
5 接口列表
编号 | API名称 | 路径 | 版本 | 适用范围 |
---|---|---|---|---|
5.1 | 租户信息录入 | /v1/iot/main/supper/rent/record/save | 1.0 | 所有 |
5.1.1 | 租户信息校验 | /v1/iot/main/supper/rent/record/check | 1.0 | 所有 |
5.2 | 查询顶级业务组织已授权的应用树 | /v1/iot/main/supper/orgmenu/rel/trees/{org_id} | 1.0 | 所有 |
5.3 | 查询平台整棵应用树 | /v1/iot/main/supper/orgmenu/trees/{org_id} | 1.0 | 所有 |
5.4 | 租户详情加载 | /v1/iot/main/supper/rent/record/load/{org_id} | 1.0 | 所有 |
5.5 | 租户列表 | /v1/iot/main/supper/rent/record/list | 1.0 | 所有 |
5.6 | 保存租户超管 | /v1/iot/main/supper/rent/record/admin/save | 1.0 | 所有 |
5.7 | 重置租户超管密码 | /v1/iot/main/supper/admin/reset/pwd | 1.0 | 所有 |
5.8 | 设置租户启/禁用状态 | /v1/iot/main/supper/rent/record/enable | 1.0 | 所有 |
5.9 | 图像上传 | /v1/iot/file/multipart/upload | 1.0 | 所有 |
5.10 | 租户状态(feign-内部调用) | /v1/iot/main/inner/org/status | 1.0 | 所有 |
5.1 租户信息录入
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/rent/record/save
HTTP头: Authorization 和 tokenInfo
方法:POST
请求参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 否 | 业务组织表的主键ID,即org_id。为空代表新增,不为空代表修改。 |
company_name | string | 是 | 公司名称 |
company_logo | string | 是 | 公司logo |
company_province | string | 是 | 省。来源于业务组织扩展表 |
company_city | string | 是 | 市。来源于业务组织扩展表 |
company_district | string | 是 | 区 。来源于业务组织扩展表 |
company_adcode | String | 是 | 区级地区编码 。来源于业务组织扩展表 |
company_detail | String | 是 | 详细地址 。来源于业务组织扩展表 |
address | string | 是 | 公司地址 |
contact | string | 是 | 联系人 |
mobile | string | 是 | 联系人电话 |
org_name | String | 是 | 业务组织名称, 64个长度。 |
menu_ids | Array | 是 | 授权应用菜单集合 |
effective_time | String | 否 | yyyy-mm-dd: yyyy-mm-dd ,如:2022-09-01:2024-09-01 |
project_quantity | int | 否 | 项目数量 |
company_brief | String | 否 | 公司简介 |
返回
{
"code": "200",
"data": {
"create_by": null,
"update_by": null,
"create_by_id": null,
"update_by_id": null,
"create_time": 1665284898669,
"update_time": 1665284898669,
"id": 3272350,
"org_code": "100000432",
"org_name": "测试boss业务组织",
"parent_code": null,
"parentid": null,
"full_org_name": null,
"org_type": 2,
"sub_type": null,
"org_id": null,
"src": null,
"parent_org_id": null,
"logic_deleted": 1,
"tenant_id": null,
"defaul_experience": null,
"parent_name": null,
"children": null,
"list": null,
"pageNo": null,
"pageSize": null,
"status": null,
"selected": false,
"space_id": null,
"hasPropertyRelations": false,
"orderby": null,
"is_super": null,
"beRelByThisApp": false,
"beRelByOtherApp": false,
"cannotBeUnbind": false,
"community_id": null,
"community_name": null,
"community_code": null,
"authOrgId": null,
"communityStatus": null,
"bizOrgId": null,
"rel_business_org_ids": null,
"company_name": "测试boss业务组织",
"company_log": "1.jpg",
"orgName": "测试boss业务组织",
"company_adcode": "3333",
"address": "11231",
"contact": "abc",
"mobile": "13112345678",
"menu_ids": [
303576,
303587
],
"effective_time": "2023-01-01",
"project_quantity": null,
"company_brief": "abcd",
"adminName": null,
"admin": null,
"_only_sub": false
},
"message": "success"
}
5.1.1 租户信息校验
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/rent/record/check
HTTP头: Authorization 和 tokenInfo
方法:POST
请求参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 否 | 租户id |
org_name | string | 否 | 租户名称 |
company_name | string | 否 | 公司名称 |
job_number | string | 否 | 超管账号 |
返回
{
"code": "200",
"message": "success",
}
5.2 查询顶级业务组织已授权的应用树
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/orgmenu/rel/trees/{org_id}
HTTP头: Authorization 和 tokenInfo
方法:POST
路径参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
org_id | Int | 是 | 顶级业务组织ID |
BODY:空
5.3 查询平台整棵应用树
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/orgmenu/trees/{org_id}
HTTP头: Authorization 和 tokenInfo
方法:POST
路径参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
org_id | Int | 是 | 顶级业务组织ID |
BODY:空
5.4 租户详情加载
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/rent/record/load/{org_id}
HTTP头: Authorization 和 tokenInfo
方法: POST
路径参数:
id: 即org_id
返回属性:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 否 | 业务组织表的主键ID,即org_id。为空代表新增,不为空代表修改。 |
company_name | string | 是 | 公司名称 |
company_logo | string | 是 | 公司logo |
company_province | string | 是 | 省。来源于业务组织扩展表 |
company_city | string | 是 | 市。来源于业务组织扩展表 |
company_district | string | 是 | 区 。来源于业务组织扩展表 |
company_adcode | String | 是 | 区级地区编码 。来源于业务组织扩展表 |
company_detail | String | 是 | 详细地址 。来源于业务组织扩展表 |
address | string | 是 | 公司地址 |
contact | string | 是 | 联系人 |
mobile | string | 是 | 联系人电话 |
org_name | String | 是 | 业务组织名称, 64个长度。 |
menu_ids | Array | 是 | 授权应用菜单集合 |
effective_time | String | 否 | yyyy-mm-dd: yyyy-mm-dd ,如:2022-09-01:2024-09-01 |
project_quantity | int | 否 | 项目数量 |
company_brief | String | 否 | 公司简介 |
admin | Object | 否 | 租户超管 |
5.5 租户列表
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/rent/record/list
HTTP头: Authorization 和 tokenInfo
方法:POST
参数:
名称 | 层级 | 类型 | 必填 | 描述 |
---|---|---|---|---|
pageNo | 顶级 | Long | N | 页码;默认 1; |
pageSize | 顶级 | String | N | 每页记录条数;默认 20 条;最大100 ; |
enable | 顶级 | String | N | 是否启用 |
from | 顶级 | String | N | 起始时间 |
to | 顶级 | String | N | 结束时间 |
keyword | 顶级 | String | N | 支持手机号/姓名左模糊查询 |
返回属性:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 否 | 业务组织表的主键ID,即org_id。为空代表新增,不为空代表修改。 |
company_name | string | 是 | 公司名称 |
company_logo | string | 是 | 公司logo |
company_province | string | 是 | 省。来源于业务组织扩展表 |
company_city | string | 是 | 市。来源于业务组织扩展表 |
company_district | string | 是 | 区 。来源于业务组织扩展表 |
company_adcode | String | 是 | 区级地区编码 。来源于业务组织扩展表 |
company_detail | String | 是 | 详细地址 。来源于业务组织扩展表 |
address | string | 是 | 公司地址 |
contact | string | 是 | 联系人 |
mobile | string | 是 | 联系人电话 |
org_name | String | 是 | 业务组织名称, 64个长度。 |
menu_ids | Array | 是 | 授权应用菜单集合 |
effective_time | String | 否 | yyyy-mm-dd: yyyy-mm-dd ,如:2022-09-01:2024-09-01 |
project_quantity | int | 否 | 项目数量 |
company_brief | String | 否 | 公司简介 |
admin | Object | 否 | 租户超管 |
返回:
{
"result": {
"result": [
{
"create_by": null,
"update_by": null,
"create_by_id": null,
"update_by_id": null,
"create_time": 1665285328000,
"update_time": 1665285328000,
"id": 3272354,
"org_code": "100000432",
"org_name": "测试boss业务组织",
"parent_code": null,
"parentid": null,
"full_org_name": null,
"org_type": 2,
"sub_type": null,
"org_id": null,
"src": null,
"parent_org_id": null,
"logic_deleted": 1,
"tenant_id": null,
"defaul_experience": null,
"parent_name": null,
"children": null,
"list": null,
"pageNo": null,
"pageSize": null,
"status": null,
"selected": false,
"space_id": null,
"hasPropertyRelations": false,
"orderby": null,
"is_super": null,
"beRelByThisApp": false,
"beRelByOtherApp": false,
"cannotBeUnbind": false,
"community_id": null,
"community_name": null,
"community_code": null,
"authOrgId": null,
"communityStatus": null,
"bizOrgId": null,
"rel_business_org_ids": null,
"company_name": null,
"company_log": "1.jpg",
"orgName": null,
"company_adcode": null,
"address": null,
"contact": null,
"mobile": null,
"menu_ids": null,
"effective_time": null,
"project_quantity": null,
"company_brief": null,
"adminName": null,
"admin": null,
"_only_sub": false
}
],
"pageNo": 1,
"pageSize": 20,
"total": 1,
"totalPage": 1
},
"code": "200",
"message": "success"
}
5.6 保存租户超管
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/rent/record/admin/save
HTTP头: Authorization 和 tokenInfo
方法:POST
请求参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
org_id | Long | 是 | 业务组织表的主键ID,即org_id。 |
id | Long | 否 | 超管主键ID。为空代表新增,不为空代表修改。 |
job_number | string | 是 | 超管账号 |
name | string | 是 | 姓名 |
mobile | string | 是 | 手机号 |
String | 是 | 邮箱 | |
nickname | String | 是 | 昵称 |
ico | String | 是 | 头像 |
返回
{
"code": "200",
"data": {
"create_by": null,
"update_by": null,
"create_by_id": null,
"update_by_id": null,
"create_time": 1665296229078,
"update_time": 1665296229078,
"id": 3272491,
"user_id": null,
"org_id": 3272354,
"org_name": null,
"mobile": "13450834336",
"org_code": "100000432",
"src": null,
"nickname": "super_admin",
"per_signature": null,
"ico": "https://iot-xlink-xfile.oss-cn-hangzhou.aliyuncs.com/customer/2022-09-29/28793581664434900027.jpg",
"job_number": "super_admin",
"pwd": "$2a$10$ki3F8kizkdbFyh4/jFfmLOB5/utYueC382YrAL/A/mJ.GuqZQeN9e",
"name": "super_admin",
"sex": null,
"email": "super_admin@qq.com",
"identity": null,
"type": null,
"status": null,
"last_login_time": null,
"pwd_modify_time": null,
"lock_time": null,
"login_fail_times": null,
"birthday": null,
"last_login": null,
"staff_no": null,
"position": null,
"is_supper": 3,
"face_ico": null,
"is_effective": null,
"delivery_address": null,
"position_level": 0,
"random_bg": 0,
"roleNames": null,
"groupNames": null,
"ids": null,
"userIds": null,
"relationId": null,
"relationIds": null,
"groupId": null,
"adminOrgCodes": null,
"adminIds": null,
"pageNo": null,
"pageSize": null,
"client_id": null,
"client_secret": null,
"orgName": null,
"fullOrgName": null,
"org_type": null,
"rel_org_id": null,
"authOrgId": null,
"communityId": null,
"oldFlag": null,
"communitys": null,
"grant_type": null,
"refresh_token": null,
"full_org_name": null,
"searchCondition": null,
"topOrgCode": null,
"topOrgId": null,
"msgId": null,
"beginDate": null,
"endDate": null,
"keyword": null,
"businessCode": null,
"roleCode": null,
"roleIds": null,
"businessOrgIds": null,
"upperOrgAdmin": false
},
"message": "success"
}
5.7 重置租户超管密码
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/admin/reset/pwd
HTTP头: Authorization 和 tokenInfo
方法:POST
请求参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 是 | 超管主键ID。 |
pwd | String | 是 | 密码, 须遵循 《5.2 密码明文加密》完成明文的加密;且密码须遵循《5.2.3 密码规范》 |
返回
{
"code": "200",
"message": "success",
}
5.8 设置租户启/禁用状态
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/supper/rent/record/enable
HTTP头: Authorization 和 tokenInfo
方法:POST
请求参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 是 | 租户ID |
enable | Integer | 是 | 0:禁用,1:启用 |
返回
{
"code": "200",
"message": "success",
}
5.9 图像上传
HTTP协议:HTTP, HTTPS
HTTP头: remacToken
具体协议见: http://arch.smartmideazy.com/docs/components/file-component.html#12
/v1/iot/file/multipart/upload
/v1/iot/file/base64/upload
其中businessId 为员工ID
businessType固定为 community
需要遵循 《2.3 Http 请求头部约定》
返回示例:
{
"code": 200,
"data": {
"filePath": "https://iot-xlink-xfile.oss-cn-hangzhou.aliyuncs.com/community/2020-12-23/134354560.png",
"id":"主键",
"fileName":"文件名",
"businessId":"文件所关联的业务id",
"businessType":"文件所关联的业务类型",
"fileExt":"文件扩展名",
"contentType":"文件类型",
"remotePath":"文件远程地址",
"fileUri":"文件路径",
},
"message": "success"
}
curl -v POST -H "remacToken:eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJwbGF0Zm9ybV90aWNrZXQiLCJqdGkiOiIxYWZhY2EyMy05MWQzLTQ1ZmMtYmJkMS01Y2RiYzc0MGVkNTYiLCJ1c2VyX25hbWUiOiJiZXR0eSIsInJvbGVzIjpbIlNZU19BRE1JTiJdLCJuYW1lIjoiYmV0dHkiLCJpZCI6Ijg3MzA1IiwiY2xpZW50X2lkIjoiaDUtY2xpZW50IiwiaXNzIjoicmVtYWMiLCJpYXQiOjE2NjU0NjcyOTcsImV4cCI6MTY2NTQ3NDQ5N30.t8Vi9hPEzLkwElkkeAPLBk58liFtRhTEq4vJgA-Q7tmCCZMYvrFQxyB2ktJIqYvgtxG9v-y9e0CE_asd5uA47YSGdcMd3ueShvfzdUGHmePkdk3T62zttbkeDi2LCkv3HHGCsDrlwJBPkS9oxhYLRy20OLs2I6ynwSDg1r76tXg" 'https://open-sit.remacsmart.com/v1/iot/file/multipart/upload' -F "file=@main.jpg" -F "fileName=main.jpg" -F "businessId=1130" -F "businessType=community"
5.10 租户状态(feign 内部调用)
请求信息
HTTP协议:HTTP,HTTPS
/v1/iot/main/inner/org/status
HTTP头: Authorization 和 tokenInfo
方法:POST
请求参数:
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
id | Long | 是 | 租户ID |
返回
名称 | 类型 | 描述 |
---|---|---|
effective_time | String | 有效时间 |
expired | boolean | 是否过期, true:已过期,false:未过期 |
enable | int | 是否启用, 1:已启用, 0:已禁用 |
返回示例
{
"effective_time": "2021-10-27",
"expired": true,
"enable": "1"
}
5.11 家庭帐号开启/关闭分享
参考资料
BOSS 系统设计:
https://confluence.mideazy.com/pages/viewpage.action?pageId=378470471
统一登录接口文档 :
http://arch.smartmideazy.com/docs/account/account-doc.html
主数据API
http://arch.smartmideazy.com/apidoc/main-entry/API.html
SHA256 + salt
https://www.javaguides.net/2020/02/java-sha-256-hash-with-salt-example.html
Golang: