---
title: OMC v1.0.0
language_tabs:
- shell: Shell
- http: HTTP
- javascript: JavaScript
- ruby: Ruby
- python: Python
- php: PHP
- java: Java
- go: Go
toc_footers: []
includes: []
search: true
code_clipboard: true
highlight_theme: darkula
headingLevel: 2
generator: "@tarslib/widdershins v4.0.17"
---
# OMC
> v1.0.0
OMC Restful API服务接口
Base URLs:
# Authentication
# 通用模块
## GET 默认主页
GET /
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Referer|header|string| 是 |使用指定声明的Referer|
|User-Agent|header|string| 是 |用户浏览器代理|
|Accept-Language|header|string| 是 |zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "欢迎使用mask_api_midwayjs后台管理框架,当前版本:0.0.5,请通过前端管理地址访问。"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 获取验证码
GET /captchaImage
验证码有效期2分钟
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Referer|header|string| 是 |使用指定声明的Referer|
|User-Agent|header|string| 是 |用户浏览器代理|
|Accept-Language|header|string| 是 |zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"captchaEnabled": true,
"uuid": "os0t2l1532dhuvqv",
"img": "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40' viewBox='0%2c0%2c120%2c40'%3e%3crect width='100%25' height='100%25' fill='%23fafafa'/%3e%3cpath fill='%2364e6e6' d='M62.19 26.62L62.24 26.67L62.16 26.59Q65.43 27.87 69.20 27.87L69.20 27.88L69.26 27.94Q70.89 27.97 72.45 27.75L72.42 27.71L72.32 27.61Q71.98 28.18 71.33 29.36L71.26 29.29L71.29 29.32Q71.92 29.46 72.60 29.23L72.65 29.27L72.49 29.11Q72.23 30.03 72.23 30.83L72.28 30.89L72.19 30.79Q72.19 31.52 72.46 32.24L72.54 32.32L72.51 32.29Q70.98 31.95 69.20 31.99L69.29 32.08L69.23 32.02Q67.58 32.12 66.17 32.39L66.17 32.39L66.03 32.25Q66.46 31.46 66.35 30.47L66.36 30.48L66.36 30.49Q66.19 30.62 65.97 30.58L65.86 30.48L65.87 30.49Q65.69 30.47 65.39 30.47L65.37 30.44L65.49 30.57Q65.20 28.71 62.15 26.58ZM65.45 29.99L65.54 30.08L65.51 30.05Q67.04 30.25 68.18 30.21L68.22 30.25L68.13 30.16Q70.97 30.30 70.97 30.30L70.96 30.28L70.83 30.16Q71.02 29.20 71.74 28.18L71.68 28.11L71.59 28.03Q70.56 28.29 69.38 28.29L69.45 28.36L69.38 28.29Q66.36 28.35 63.47 27.40L63.43 27.36L63.37 27.30Q65.24 28.64 65.62 30.17ZM65.12 30.77L65.19 30.84L65.23 30.87Q65.53 30.79 66.21 30.83L66.19 30.81L66.15 30.77Q66.09 31.89 65.56 32.65L65.56 32.66L65.59 32.69Q67.19 32.57 67.03 32.57L67.07 32.60L67.07 32.60Q66.49 33.54 65.73 34.31L65.65 34.22L65.68 34.26Q67.75 33.97 69.69 33.97L69.55 33.83L69.64 33.91Q74.20 33.87 78.31 35.58L78.40 35.67L75.97 34.31L75.83 34.16Q73.52 32.73 73.52 30.52L73.38 30.39L73.46 30.46Q73.14 30.45 72.88 30.45L72.98 30.55L72.52 30.63L72.40 30.51Q72.58 29.78 73.15 28.83L73.13 28.81L73.05 28.72Q72.58 28.75 71.63 28.94L71.80 29.11L71.65 28.96Q72.26 28.05 73.25 27.29L73.21 27.25L73.11 27.15Q71.26 27.58 69.24 27.58L69.32 27.66L69.18 27.52Q64.54 27.64 60.77 25.77L60.70 25.70L60.78 25.78Q65.14 28.39 65.25 30.90ZM66.06 29.73L66.15 29.82L65.84 29.78L65.93 29.86Q65.64 29.61 65.53 29.61L65.71 29.79L65.72 29.80Q65.53 29.23 65.15 28.82L64.97 28.64L64.22 27.77L64.27 27.82Q66.75 28.66 69.49 28.66L69.36 28.54L69.46 28.64Q70.16 28.50 71.03 28.42L71.14 28.52L70.96 28.84L70.75 29.05L70.74 29.04Q69.46 29.09 68.17 29.06L68.18 29.06L68.33 29.22Q66.91 29.10 65.62 28.83L65.53 28.74L65.68 28.88Q66.05 29.26 66.20 29.87Z'/%3e%3cpath fill='%2371ade8' d='M44.80 18.31L44.89 18.39L44.82 18.33Q41.80 18.50 39.97 17.43L39.85 17.31L39.91 17.37Q42.41 15.99 47.28 11.77L47.20 11.68L47.21 11.69Q47.93 11.50 49.23 10.89L49.37 11.03L49.19 10.85Q47.99 16.93 47.88 23.28L47.82 23.23L47.74 23.15Q47.66 29.54 48.72 35.63L48.88 35.78L48.77 35.68Q47.12 34.97 44.98 34.86L45.00 34.87L44.91 34.78Q44.95 30.79 44.95 26.71L44.85 26.62L44.84 26.60Q44.89 22.55 44.93 18.43ZM44.49 20.62L44.51 35.22L44.60 35.31Q45.66 35.15 46.61 35.34L46.63 35.36L46.75 35.48Q46.71 36.05 46.90 37.42L46.91 37.43L46.92 37.44Q49.78 37.98 52.21 40.22L52.28 40.29L52.29 40.30Q49.82 33.19 49.79 25.73L49.66 25.60L49.66 25.60Q49.66 18.22 51.49 10.98L51.52 11.02L51.56 11.05Q50.92 11.37 49.32 12.47L49.37 12.52L49.39 12.53Q49.53 11.73 49.84 10.21L49.89 10.26L49.86 10.23Q48.47 10.94 47.02 11.32L47.11 11.40L47.16 11.45Q43.30 14.94 39.00 17.22L39.01 17.23L38.93 17.16Q40.33 18.25 42.69 18.59L42.75 18.65L42.72 18.62Q42.05 19.13 40.76 20.20L40.80 20.24L40.77 20.21Q42.38 20.71 44.58 20.71L44.48 20.61Z'/%3e%3cpath fill='%23328ce5' d='M21.38 18.49L21.29 18.40L21.25 18.35Q18.06 18.36 16.23 17.29L16.30 17.36L16.32 17.39Q18.86 16.04 23.73 11.82L23.69 11.77L23.72 11.80Q24.32 11.48 25.61 10.87L25.68 10.95L25.67 10.93Q24.27 16.80 24.15 23.16L24.27 23.28L24.25 23.25Q24.08 29.55 25.14 35.65L25.24 35.75L25.26 35.76Q23.44 34.90 21.31 34.78L21.45 34.93L21.33 34.80Q21.30 30.73 21.30 26.66L21.32 26.68L21.30 26.66Q21.18 22.44 21.22 18.33ZM21.01 20.74L20.85 35.16L20.88 35.19Q22.20 35.29 23.15 35.48L23.18 35.51L23.02 35.35Q23.15 36.09 23.34 37.46L23.40 37.53L23.34 37.46Q26.25 38.05 28.68 40.29L28.73 40.34L28.57 40.18Q26.18 33.15 26.15 25.69L26.07 25.61L26.20 25.74Q26.00 18.15 27.82 10.92L27.83 10.92L27.98 11.08Q27.25 11.30 25.65 12.40L25.78 12.53L25.79 12.54Q25.94 11.73 26.24 10.21L26.19 10.16L26.21 10.19Q24.96 11.03 23.51 11.41L23.43 11.32L23.48 11.37Q19.71 14.95 15.41 17.23L15.40 17.22L15.37 17.19Q16.80 18.32 19.16 18.66L19.09 18.60L19.19 18.70Q18.48 19.16 17.18 20.22L17.13 20.18L17.27 20.32Q18.61 20.55 20.82 20.55L20.86 20.59Z'/%3e%3cpath fill='%23ea5b7f' d='M99.33 32.82L99.48 32.98L99.49 32.99Q99.70 33.88 100.23 35.90L100.26 35.93L100.19 35.86Q95.96 34.53 91.36 34.79L91.43 34.87L91.36 34.79Q86.86 35.13 82.86 37.11L82.93 37.18L82.77 37.02Q83.04 36.37 83.08 36.45L83.03 36.40L83.12 36.49Q86.76 32.44 90.68 28.03L90.81 28.15L90.75 28.10Q95.13 23.07 96.31 18.39L96.27 18.35L96.37 18.45Q96.79 16.66 95.52 15.48L95.57 15.53L95.51 15.48Q94.32 14.38 92.53 14.53L92.55 14.55L92.54 14.55Q92.19 14.49 91.85 14.49L91.78 14.43L91.82 14.47Q90.33 14.50 89.08 15.42L88.92 15.26L89.03 15.38Q87.75 16.75 87.97 19.42L87.92 19.37L88.00 19.44Q86.06 18.95 84.84 18.50L84.84 18.49L84.86 18.51Q84.76 17.19 84.68 15.75L84.69 15.75L84.77 15.83Q84.61 14.11 85.22 12.97L85.20 12.95L85.12 12.87Q87.02 11.61 90.37 11.61L90.36 11.60L92.10 11.59L92.14 11.63Q94.30 11.54 95.25 11.66L95.24 11.65L95.25 11.65Q99.69 12.18 99.96 14.61L99.85 14.51L99.95 14.61Q100.04 15.19 99.96 15.99L99.88 15.90L100.03 16.05Q99.98 16.69 99.83 17.37L99.82 17.37L99.67 17.22Q98.08 25.38 90.51 32.23L90.53 32.26L90.51 32.23Q91.96 32.12 93.33 32.12L93.30 32.09L93.29 32.08Q96.57 32.13 99.43 32.93ZM98.92 12.16L98.80 12.04L98.93 12.17Q97.17 11.37 95.46 11.29L95.53 11.37L92.18 11.25L92.06 11.13Q87.59 10.85 85.38 11.96L85.41 11.98L85.34 11.91Q84.31 13.32 84.31 15.38L84.34 15.40L84.44 15.51Q84.32 16.07 84.63 18.89L84.76 19.02L84.72 18.98Q85.24 19.19 86.42 19.50L86.39 19.47L86.47 20.58L86.37 20.48Q86.42 21.03 86.50 21.56L86.48 21.54L86.42 21.48Q87.75 21.67 90.23 21.90L90.24 21.92L90.11 21.79Q90.23 21.56 90.23 21.22L90.21 21.20L90.17 21.16Q90.16 19.32 91.37 17.96L91.45 18.04L91.47 18.06Q92.64 16.66 94.43 16.78L94.36 16.71L94.33 16.67Q95.20 16.82 95.96 16.97L95.93 16.94L95.93 16.94Q95.99 17.27 96.06 17.69L96.08 17.71L96.00 17.62Q96.11 18.11 96.03 18.46L95.97 18.39L96.15 18.57Q94.71 23.15 90.30 27.99L90.36 28.05L90.40 28.09Q88.21 30.27 82.76 36.33L82.77 36.33L82.78 36.35Q82.53 37.12 82.18 37.69L82.19 37.70L82.23 37.73Q83.92 36.95 85.45 36.42L85.31 36.28L85.46 36.43Q84.62 36.88 83.67 38.37L83.80 38.50L83.77 38.47Q83.69 38.85 83.57 39.19L83.52 39.14L83.49 39.10Q88.27 36.96 93.76 37.15L93.88 37.28L93.90 37.29Q99.62 37.50 104.19 39.86L104.12 39.79L103.17 37.70L103.03 37.56Q102.53 36.37 102.26 35.57L102.12 35.43L102.24 35.55Q101.46 35.08 100.24 34.66L100.30 34.71L100.21 34.63Q100.03 33.87 99.65 32.50L99.78 32.63L99.64 32.49Q97.40 31.89 95.12 31.70L95.17 31.75L95.13 31.71Q99.98 27.32 101.51 19.05L101.48 19.03L101.62 16.09L101.67 16.13Q101.59 14.34 100.37 13.66L100.31 13.59L100.27 13.59L100.27 13.59Q100.18 13.47 100.11 13.47L100.09 13.45L100.11 13.47Q100.01 12.76 98.91 12.15Z'/%3e%3cpath d='M14 30 C59 18%2c65 9%2c110 17' stroke='%2363dddd' fill='none'/%3e%3cpath d='M13 24 C48 26%2c39 6%2c107 9' stroke='%23de77c4' fill='none'/%3e%3cpath d='M12 11 C50 25%2c80 39%2c113 8' stroke='%23e593bc' fill='none'/%3e%3cpath d='M19 17 C43 30%2c51 8%2c109 8' stroke='%23ddc16d' fill='none'/%3e%3c/svg%3e"
}
```
```json
{
"code": 200,
"msg": "成功",
"text": "9",
"captchaEnabled": true,
"uuid": "s7hf2j3erfpritqy",
"img": "data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='120' height='40' viewBox='0%2c0%2c120%2c40'%3e%3crect width='100%25' height='100%25' fill='%23fafafa'/%3e%3cpath fill='%23ec73ce' d='M85.44 24.04L85.53 24.13L85.51 24.11Q83.59 23.90 82.35 25.33L82.43 25.40L82.43 25.41Q81.15 26.79 80.96 28.70L81.02 28.76L81.00 28.73Q80.82 30.84 81.91 31.81L81.97 31.87L81.87 31.78Q83.04 32.83 85.13 32.72L84.98 32.56L85.02 32.61Q87.16 32.50 88.26 31.81L88.29 31.84L88.27 31.82Q89.38 30.68 89.38 29.12L89.37 29.11L89.44 29.19Q89.37 28.73 89.30 28.35L89.35 28.41L89.39 28.44Q89.39 26.69 88.28 25.34L88.23 25.29L88.35 25.40Q87.20 24.01 85.52 24.12ZM85.09 35.22L85.17 35.31L85.10 35.24Q80.72 35.24 79.32 34.48L79.34 34.50L79.28 34.44Q78.32 33.75 78.13 32.04L78.05 31.96L78.03 31.93Q78.01 31.27 78.05 30.55L78.11 30.61L78.16 30.65Q78.27 29.66 78.27 29.21L78.24 29.17L78.13 29.06Q78.70 26.32 78.85 25.64L78.79 25.57L78.85 25.64Q79.36 23.75 80.20 22.34L80.18 22.33L80.01 22.15Q82.70 17.80 88.64 11.44L88.62 11.42L88.67 11.48Q91.34 11.17 93.55 10.37L93.58 10.41L93.62 10.44Q86.67 17.81 83.47 22.04L83.47 22.03L83.48 22.04Q84.46 21.53 85.75 21.53L85.86 21.64L85.82 21.60Q89.14 21.61 90.67 23.56L90.71 23.60L90.75 23.64Q91.92 25.12 92.26 28.66L92.27 28.66L92.29 28.68Q92.39 29.43 92.39 30.04L92.36 30.01L92.47 30.12Q92.44 33.21 90.23 34.28L90.23 34.28L90.26 34.30Q88.98 34.86 85.10 35.24ZM87.47 37.72L87.43 37.68L87.35 37.60Q88.60 37.52 90.58 37.60L90.71 37.72L90.71 37.73Q92.28 37.73 93.84 37.01L93.93 37.09L93.82 36.99Q94.99 36.26 94.99 34.47L94.96 34.43L95.01 34.49Q95.03 34.01 94.86 33.02L94.88 33.04L94.82 32.98Q94.56 31.91 94.56 31.45L94.60 31.49L94.54 31.43Q93.75 26.79 92.15 24.88L92.04 24.78L92.07 24.81Q92.00 24.70 91.85 24.47L91.90 24.52L91.66 24.36L91.50 24.24L91.51 24.25Q91.11 23.69 90.50 22.74L90.55 22.79L90.49 22.74Q89.69 21.89 87.71 21.44L87.64 21.36L87.62 21.35Q88.95 19.86 91.92 16.17L91.82 16.07L96.16 10.89L96.12 10.85Q94.61 11.77 92.21 12.53L92.15 12.47L92.19 12.52Q93.08 11.51 94.87 9.53L94.82 9.48L94.81 9.46Q92.46 10.58 88.58 11.15L88.59 11.17L88.58 11.16Q82.94 17.12 79.97 22.07L79.85 21.95L79.89 21.99Q78.41 24.55 77.84 30.79L77.84 30.79L77.72 30.67Q77.67 31.27 77.74 32.22L77.69 32.17L77.72 32.20Q77.90 34.05 79.00 34.96L78.95 34.91L78.92 34.88Q79.37 35.10 79.33 35.14L79.29 35.10L79.36 35.17Q79.71 36.05 80.51 36.47L80.42 36.38L80.50 36.46Q81.90 37.10 83.84 37.29L83.84 37.29L83.85 37.30Q83.79 37.24 87.30 37.54ZM87.11 26.36L87.10 26.35L87.17 26.41Q87.77 26.33 88.72 26.83L88.63 26.74L88.77 26.87Q88.99 27.71 88.99 28.36L88.94 28.30L89.00 28.37Q89.12 30.16 88.17 31.15L88.28 31.26L88.28 31.26Q87.16 31.92 85.06 32.23L85.15 32.32L85.11 32.28Q83.59 32.20 83.05 31.93L83.20 32.08L83.03 31.91Q82.84 31.45 82.84 31.15L82.85 31.16L83.00 31.31Q82.76 28.03 85.69 26.73L85.62 26.66L85.62 26.65Q86.45 26.39 87.22 26.46Z'/%3e%3cpath d='M10 16 C70 25%2c49 8%2c114 10' stroke='%2378c4dd' fill='none'/%3e%3cpath fill='%23d24065' d='M23.39 35.44L23.31 35.35L23.31 35.35Q21.80 35.33 20.24 34.91L20.24 34.91L20.26 34.93Q19.14 34.12 18.99 32.48L18.89 32.38L18.88 32.38Q18.97 32.31 19.16 29.68L19.17 29.69L19.07 29.59Q20.06 29.37 22.08 28.99L22.06 28.97L21.89 29.75L22.00 29.86Q21.69 31.57 23.10 32.14L23.15 32.19L23.18 32.22Q23.98 32.57 26.08 32.57L26.01 32.50L25.93 32.42Q27.52 32.26 27.71 32.18L27.87 32.35L27.76 32.23Q28.67 32.08 29.39 31.58L29.52 31.71L29.51 31.70Q30.85 30.68 30.66 28.59L30.61 28.54L30.60 28.52Q30.46 26.14 28.73 24.58L28.78 24.63L28.81 24.66Q27.08 23.10 24.61 23.10L24.60 23.09L24.53 22.79L24.55 22.81Q24.82 22.67 25.69 22.59L25.87 22.76L25.67 22.57Q27.66 22.53 29.03 21.30L29.07 21.34L28.97 21.24Q30.46 20.12 30.61 18.26L30.65 18.29L30.63 18.27Q30.61 17.84 30.61 17.50L30.70 17.58L30.61 17.49Q30.67 16.03 29.29 15.11L29.30 15.12L29.23 15.05Q28.02 14.25 26.42 14.37L26.39 14.34L26.38 14.33Q25.06 14.15 23.84 14.57L23.94 14.67L23.85 14.58Q22.55 15.25 22.24 16.40L22.11 16.26L22.21 16.37Q21.98 17.09 22.06 17.85L22.16 17.96L22.17 17.96Q21.02 17.62 18.97 16.89L18.89 16.82L18.91 16.83Q18.81 15.28 18.85 14.45L18.82 14.42L18.84 14.44Q18.83 12.80 19.90 12.11L20.08 12.29L19.99 12.20Q21.48 11.67 23.08 11.67L22.93 11.53L22.93 11.53Q26.17 11.57 29.33 11.84L29.29 11.79L29.34 11.85Q34.43 12.29 34.12 16.06L34.06 16.00L34.04 15.97Q34.00 17.50 33.51 19.06L33.59 19.14L33.55 19.10Q32.65 22.20 30.29 23.12L30.22 23.04L30.14 22.97Q32.90 23.63 33.51 26.98L33.50 26.97L33.50 26.97Q33.63 28.02 33.71 30.03L33.80 30.12L33.74 30.06Q33.91 34.53 29.30 34.99L29.30 34.99L29.40 35.09Q28.57 35.06 23.28 35.33ZM28.53 37.60L28.57 37.65L28.41 37.49Q29.16 37.66 32.01 37.74L31.88 37.61L32.06 37.79Q33.81 37.86 35.45 37.22L35.45 37.22L35.35 37.11Q36.46 36.10 36.27 34.35L36.41 34.49L36.29 34.36Q36.31 33.16 36.00 31.41L35.88 31.29L35.94 31.36Q35.18 26.82 33.24 25.19L33.21 25.16L33.10 24.86L33.06 24.78L32.98 24.69Q34.87 23.39 35.63 19.01L35.50 18.88L35.45 18.84Q35.57 18.46 35.69 17.51L35.78 17.61L35.65 17.47Q35.78 16.76 35.70 16.08L35.80 16.17L35.71 16.08Q35.63 14.48 34.33 13.79L34.34 13.80L34.17 13.71L34.22 13.76Q33.85 12.70 32.71 12.17L32.80 12.26L32.68 12.14Q31.11 11.41 25.97 11.11L26.08 11.21L25.99 11.12Q24.41 11.14 22.81 11.14L22.83 11.16L22.87 11.20Q21.14 11.07 19.62 11.72L19.76 11.86L19.73 11.83Q18.52 12.60 18.52 14.35L18.51 14.34L18.41 14.24Q18.40 13.81 18.67 17.16L18.78 17.28L18.69 17.19Q18.99 17.26 20.63 17.87L20.60 17.84L20.62 17.86Q20.76 18.53 20.72 19.02L20.54 18.84L20.73 19.03Q20.54 19.34 20.58 19.87L20.63 19.93L20.66 19.95Q22.51 20.39 24.53 20.51L24.57 20.55L24.39 20.37Q24.38 18.42 25.48 17.58L25.50 17.59L25.44 17.54Q26.27 16.89 28.29 16.66L28.41 16.78L28.39 16.76Q29.52 16.75 30.09 16.94L30.06 16.90L30.08 16.92Q30.15 17.07 30.19 17.19L30.05 17.05L30.20 17.39L30.27 17.92L30.23 17.88Q30.30 18.13 30.26 18.28L30.18 18.21L30.31 18.34Q30.19 20.01 28.67 21.19L28.59 21.10L28.57 21.09Q27.71 22.06 25.69 22.25L25.72 22.28L25.69 22.24Q25.04 22.47 24.17 22.47L24.11 22.42L24.00 22.30Q24.03 22.64 24.19 23.33L24.35 23.49L24.35 23.50Q26.11 23.50 27.56 24.23L27.50 24.16L27.36 24.14L25.79 24.32L25.76 24.29Q25.76 24.59 25.87 25.20L26.02 25.36L25.90 25.23Q28.07 25.19 29.78 26.53L29.72 26.46L29.85 26.59Q30.02 26.92 30.33 28.55L30.36 28.59L30.35 28.58Q30.47 31.44 27.54 31.85L27.69 32.01L27.61 31.92Q25.48 32.16 24.91 32.12L24.88 32.09L24.98 32.19Q24.46 32.02 23.93 31.94L23.99 32.00L23.91 31.47L24.12 31.10L24.16 30.73L24.16 30.38L24.18 30.40Q23.17 30.42 22.37 30.61L22.44 30.68L22.41 30.65Q22.35 30.40 22.35 30.21L22.43 30.29L22.42 30.28Q22.46 30.09 22.46 29.86L22.33 29.73L22.34 29.74Q22.44 29.39 22.59 28.67L22.57 28.64L22.66 28.73Q20.80 28.96 18.93 29.30L18.88 29.26L18.80 29.18Q18.85 29.72 18.74 30.84L18.80 30.91L18.66 30.76Q18.64 31.99 18.64 32.59L18.55 32.50L18.55 32.50Q18.70 34.63 20.07 35.39L20.08 35.40L20.01 35.33Q21.56 37.68 26.28 37.49L26.31 37.52L26.24 37.45Q27.06 37.51 28.59 37.66Z'/%3e%3cpath d='M13 4 C51 9%2c65 6%2c110 4' stroke='%237590df' fill='none'/%3e%3cpath fill='%23d24b4b' d='M57.55 34.48L57.61 34.54L57.53 34.46Q56.76 34.34 56.08 34.38L56.14 34.44L56.20 34.50Q55.53 34.63 54.85 34.63L54.68 34.47L54.66 34.45Q55.13 31.03 55.13 27.61L55.18 27.66L55.14 27.61Q53.29 27.63 52.37 27.63L52.57 27.82L52.48 27.73Q51.54 27.64 49.72 27.56L49.69 27.54L49.80 27.64Q49.90 27.44 49.71 24.97L49.65 24.91L49.57 24.82Q52.15 25.39 55.12 25.39L55.18 25.45L55.19 25.46Q54.81 20.93 54.39 18.34L54.48 18.43L54.56 18.51Q55.36 18.62 56.16 18.62L56.03 18.49L57.67 18.50L57.78 18.61Q57.44 22.76 57.44 25.35L57.58 25.49L57.45 25.36Q59.72 25.46 62.92 25.12L62.84 25.04L62.84 25.03Q62.75 26.40 62.75 27.61L62.81 27.68L62.69 27.56Q62.58 27.71 61.78 27.75L61.75 27.72L61.70 27.66Q60.68 27.63 60.07 27.67L60.01 27.62L60.07 27.68Q60.10 27.71 57.44 27.71L57.51 27.78L57.34 31.04L57.51 31.21Q57.46 32.79 57.57 34.50ZM63.36 24.64L63.33 24.62L63.27 24.55Q61.46 24.95 59.59 25.03L59.54 24.98L59.53 24.97Q59.78 21.82 60.19 19.96L60.18 19.94L60.22 19.98Q59.51 20.03 58.10 20.18L58.10 20.18L58.31 18.15L58.19 18.03Q55.69 18.15 54.01 18.04L54.01 18.04L54.02 18.05Q54.54 21.12 54.73 25.00L54.70 24.97L54.67 24.94Q52.99 24.97 49.30 24.36L49.20 24.27L49.30 24.37Q49.53 25.51 49.53 28.14L49.55 28.16L51.02 28.11L50.96 28.05Q51.07 28.88 50.92 30.29L50.86 30.23L54.76 29.90L54.85 29.99Q54.64 33.17 54.34 35.00L54.38 35.04L54.33 34.99Q55.05 34.95 56.45 34.83L56.56 34.93L56.49 34.86Q56.55 35.62 56.52 36.95L56.41 36.85L56.39 36.83Q56.88 36.78 60.50 36.93L60.59 37.02L60.50 36.94Q59.71 33.98 59.48 30.02L59.38 29.92L59.45 29.99Q62.82 30.12 64.91 30.50L64.93 30.52L64.79 30.38Q64.61 29.43 64.61 28.48L64.58 28.46L64.74 26.71L64.69 26.66Q64.46 26.66 63.93 26.70L63.98 26.75L63.08 26.65L63.05 26.62Q63.09 25.86 63.20 24.49Z'/%3e%3cpath d='M6 19 C52 21%2c78 16%2c107 21' stroke='%2383ebb7' fill='none'/%3e%3cpath d='M8 38 C57 34%2c69 37%2c109 30' stroke='%237baddf' fill='none'/%3e%3c/svg%3e"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|number|true|none||none|
|» msg|string|true|none||none|
|» text|string|false|none|验证码值|仅开发模式返回显示|
|» captchaEnabled|boolean|true|none|是否启用|none|
|» uuid|string|true|none|uuid|none|
|» img|string|true|none|base64图片|none|
## GET 获取系统可暴露的配置信息
GET /sys-conf
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Accept-Language|header|string| 是 |zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"name": "System",
"path": "/system",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统管理",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/system/user",
"children": [
{
"name": "User",
"path": "user",
"component": "system/user/index",
"meta": {
"icon": "icon-pcduan",
"title": "用户管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Role",
"path": "role",
"component": "system/role/index",
"meta": {
"icon": "icon-pcduan",
"title": "角色管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "RoleinlineauthuserroleId",
"path": "role/inline/auth-user/:roleId",
"component": "system/role/auth-user",
"meta": {
"icon": "icon-pcduan",
"title": "角色分配用户",
"hide": true,
"cache": false,
"target": null
}
},
{
"name": "Menu",
"path": "menu",
"component": "system/menu/index",
"meta": {
"icon": "icon-pcduan",
"title": "菜单管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Dept",
"path": "dept",
"component": "system/dept/index",
"meta": {
"icon": "icon-pcduan",
"title": "部门管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Post",
"path": "post",
"component": "system/post/index",
"meta": {
"icon": "icon-pcduan",
"title": "岗位管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Dict",
"path": "dict",
"component": "system/dict/index",
"meta": {
"icon": "icon-pcduan",
"title": "字典管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "DictinlinedatadictId",
"path": "dict/inline/data/:dictId",
"component": "system/dict/data",
"meta": {
"icon": "icon-pcduan",
"title": "字典数据",
"hide": true,
"cache": false,
"target": null
}
},
{
"name": "Config",
"path": "config",
"component": "system/config/index",
"meta": {
"icon": "icon-pcduan",
"title": "参数设置",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Notice",
"path": "notice",
"component": "system/notice/index",
"meta": {
"icon": "icon-pcduan",
"title": "通知公告",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Log",
"path": "log",
"component": "BlankLayout",
"meta": {
"icon": "icon-pcduan",
"title": "日志管理",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/system/log/operlog",
"children": [
{
"name": "Operlog",
"path": "operlog",
"component": "monitor/operlog/index",
"meta": {
"icon": "icon-pcduan",
"title": "操作日志",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Logininfor",
"path": "logininfor",
"component": "monitor/logininfor/index",
"meta": {
"icon": "icon-pcduan",
"title": "登录日志",
"hide": false,
"cache": true,
"target": null
}
}
]
}
]
},
{
"name": "Monitor",
"path": "/monitor",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统监控",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/monitor/server",
"children": [
{
"name": "Server",
"path": "server",
"component": "monitor/server/index",
"meta": {
"icon": "icon-pcduan",
"title": "服务监控",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Cache",
"path": "cache",
"component": "monitor/cache/index",
"meta": {
"icon": "icon-pcduan",
"title": "缓存监控",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "CacheList",
"path": "cacheList",
"component": "monitor/cache/list",
"meta": {
"icon": "icon-pcduan",
"title": "缓存列表",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Online",
"path": "online",
"component": "monitor/online/index",
"meta": {
"icon": "icon-pcduan",
"title": "在线用户",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Job",
"path": "job",
"component": "monitor/job/index",
"meta": {
"icon": "icon-pcduan",
"title": "调度任务",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "JobinlinelogjobId",
"path": "job/inline/log/:jobId",
"component": "monitor/job/log",
"meta": {
"icon": "icon-pcduan",
"title": "调度日志",
"hide": true,
"cache": true,
"target": null
}
}
]
},
{
"name": "Tool",
"path": "/tool",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统工具",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/tool/swagger",
"children": [
{
"name": "Swagger",
"path": "swagger",
"component": "tool/swagger/index",
"meta": {
"icon": "icon-pcduan",
"title": "系统接口",
"hide": false,
"cache": true,
"target": null
}
}
]
},
{
"name": "HttpsLink4",
"path": "https://gitee.com/TsMask/mask_api_midwayjs",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "Gitee仓库",
"hide": false,
"cache": false,
"target": "_blank"
}
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none|路由数组|none|
|»» name|string|true|none|路由名称|none|
|»» path|string|true|none|路由地址|none|
|»» component|string|true|none|组件|- BasicLayout-基础布局组件标识 菜单类型-菜单D
- BlankLayout-空白布局组件标识 菜单类型-菜单M
- LinkLayout-内链接布局组件标识 菜单类型-菜单M
- 按钮菜单类型-菜单B 不会读取到路由中|
|»» meta|object|true|none|元数据|none|
|»»» icon|string|true|none|菜单图标|none|
|»»» title|string|true|none|菜单标题|none|
|»»» hide|boolean|true|none|是否隐藏|默认 false|
|»»» cache|boolean|true|none|是否缓存|默认 false|
|»»» target|string¦null|true|none|链接行为|- 非链接 null
- 内部跳转 _self
- 外部跳转 _blank|
|»» redirect|string|false|none|目录重定向|none|
|»» children|[object]|false|none|子菜单|none|
|»»» name|string|true|none||none|
|»»» path|string|true|none||none|
|»»» component|string|true|none||none|
|»»» meta|object|true|none|元数据|none|
|»»»» icon|string|true|none||none|
|»»»» title|string|true|none|标题|none|
|»»»» hide|boolean|true|none||none|
|»»»» cache|boolean|true|none||none|
|»»»» target|string¦null|true|none||none|
## POST 转存帮助文档
POST /help-doc
> Body 请求参数
```json
{
"uploadPath": "string",
"language": "string"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 是 |授权令牌|
|Referer|header|string| 是 |使用指定声明的Referer|
|User-Agent|header|string| 是 |用户浏览器代理|
|Accept-Language|header|string| 是 |zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 |none|
|» uploadPath|body|string| 是 |none|
|» language|body|string| 是 |none|
> 返回示例
> 成功
```json
{
"code": 1,
"data": "/static/helpDoc/zh_doc.pdf",
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 通用模块/文件操作
## POST 上传文件
POST /file/upload
> Body 请求参数
```yaml
file: string
subPath: "{% mock 'pick' , ['default', 'avatar', 'import', 'export', 'common',
'download', 'chunk'] %}"
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|Authorization|header|string| 是 |授权令牌|
|Referer|header|string| 是 |使用指定声明的Referer|
|User-Agent|header|string| 是 |用户浏览器代理|
|Accept-Language|header|string| 是 |zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 |none|
|» file|body|string(binary)| 是 |上传文件对象|
|» subPath|body|string| 是 |子路径,可选范围 ['default', 'avatar', 'import', 'export', 'common', 'download', 'chunk']|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"url": "http://127.0.0.1:6275/upload/common/2023/05/o_1d2bofn8f19dh5s11okpje61mipg_画板1_iq526uqv.png",
"fileName": "/upload/common/2023/05/o_1d2bofn8f19dh5s11okpje61mipg_画板1_iq526uqv.png",
"newFileName": "o_1d2bofn8f19dh5s11okpje61mipg_画板1_iq526uqv.png",
"originalFileName": "o_1d2bofn8f19dh5s11okpje61mipg_画板1.png"
}
}
```
```json
{
"code": 500,
"msg": "上传文件类型不支持,支持以下类型:bmp,gif,jpg,jpeg,png,doc,docx,xls,xlsx,ppt,pptx,html,htm,txt,rar,zip,gz,bz2,mp4,avi,rmvb,pdf"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» url|string|true|none||none|
|»» fileName|string|true|none||none|
|»» newFileName|string|true|none||none|
|»» originalFileName|string|true|none||none|
## POST 切片文件检查
POST /file/chunkCheck
> Body 请求参数
```json
{
"identifier": "string",
"fileName": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» identifier|body|string| 是 | 切片文件目录标识符|MD5(文件名+文件大小)|
|» fileName|body|string| 是 | 原始文件名称|检查格式是否允许上传|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": []
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[string]|true|none|已上传切片数据块的编号|none|
## POST 切片文件上传
POST /file/chunkUpload
```js
// 上传数据块
const formData = new FormData();
formData.append('file', chunk, 'xxx.pdf');
formData.append('index', chunksIndex);
formData.append('identifier', fileIdentifier);
```
chunk是切片块的数据需要给上传文件的名称带后缀
> Body 请求参数
```yaml
file: string
index: "{% mock 'increment' %}"
identifier: "{% mock 'id' %}"
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» file|body|string(binary)| 是 ||数据块Blob对象,需要给文件名称带后缀|
|» index|body|string| 是 ||数据块的编号|
|» identifier|body|string| 是 ||切片文件目录标识符|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": "/upload/chunk/2023/06/identifier/index"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|206|[Partial Content](https://tools.ietf.org/html/rfc7233#section-4.1)|成功|Inline|
### 返回数据结构
状态码 **206**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none|上传资源地址|none|
## POST 切片文件合并
POST /file/chunkMerge
> Body 请求参数
```json
{
"identifier": "string",
"fileName": "string",
"subPath": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» identifier|body|string| 是 | 切片文件目录标识符|MD5(文件名+文件大小)|
|» fileName|body|string| 是 | 原始文件名称|检查格式是否允许上传|
|» subPath|body|string| 是 | 子路径|可选范围 ['default', 'avatar', 'import', 'export', 'common', 'download', 'chunk']|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"url": "http://127.0.0.1:6275/upload/avatar/2023/06/gmircbr_48xqb8.png",
"fileName": "/upload/avatar/2023/06/gmircbr_48xqb8.png",
"newFileName": "gmircbr_48xqb8.png",
"originalFileName": "gmircbr.png"
}
}
```
```json
{
"code": 500,
"msg": "上传文件类型不支持,支持以下类型:bmp,gif,jpg,jpeg,png,doc,docx,xls,xlsx,ppt,pptx,html,htm,txt,rar,zip,gz,bz2,mp4,avi,rmvb,pdf"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[string]|true|none|已上传切片数据块的编号|none|
## GET 下载文件
GET /file/download/{filePath}
filePath参数需要进行base64编码,base64("文件存放资源路径,URL相对地址")
断点续传可以在请求头中加入下载数据块的区间,示例如单块5M大小 `Range: bytes=0-5242879`
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|filePath|path|string| 是 ||base64("文件存放资源路径,URL相对地址")|
|Range|header|string| 否 ||进行断点续传数据块下载|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 文件数据
> 206 Response
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|文件数据|Inline|
|206|[Partial Content](https://tools.ietf.org/html/rfc7233#section-4.1)|断点续传数据块|Inline|
### 返回数据结构
# 通用模块/通用请求
## POST 哈希加密
POST /common/hash
> Body 请求参数
```json
{
"type": "string",
"str": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» type|body|string| 是 | 加密类型|'sha1' | 'sha256' | 'sha512' | 'md5'|
|» str|body|string| 是 | 加密字符串|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": "9e9a253840ebd80b2160be621d2efc7c"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none||none|
## GET 多语言处理
GET /common/i18n
> Body 请求参数
```json
{
"type": "string",
"str": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Accept-Language|header|string| 否 ||en_US/zh_CN|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|body|body|object| 否 ||none|
|» type|body|string| 是 | 加密类型|'sha1' | 'sha256' | 'sha512' | 'md5'|
|» str|body|string| 是 | 加密字符串|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": "9e9a253840ebd80b2160be621d2efc7c"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none||none|
## POST 哈希加盐加密
POST /common/hmac
> Body 请求参数
```json
{
"type": "string",
"str": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» type|body|string| 是 | 加密类型|'sha1' | 'sha256' | 'sha512' | 'md5'|
|» str|body|string| 是 | 加密字符串|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": "6c44dbdf8d759c97dfd8c43a2974ba22"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none||none|
## POST 微信数据解密
POST /common/decryptWxData
> Body 请求参数
```json
{
"encryptedData": "string",
"key": "string",
"iv": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» encryptedData|body|string| 是 | 加密数据|none|
|» key|body|string| 是 | 键|none|
|» iv|body|string| 是 | 向量值|none|
> 返回示例
> 文件数据
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|文件数据|Inline|
### 返回数据结构
# 通用模块/账号身份操作
## GET 登录用户信息
GET /getInfo
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"permissions": [
"*:*:*"
],
"roles": [
"admin"
],
"user": {
"roles": [
{
"roleId": "1",
"roleName": "管理员",
"roleKey": "admin",
"roleSort": 1,
"dataScope": "1",
"status": "1"
}
],
"userId": "1",
"deptId": "103",
"userName": "maskAdmin",
"nickName": "管理员",
"userType": "sys",
"email": "",
"avatar": "",
"phonenumber": "",
"sex": "1",
"status": "1",
"delFlag": "0",
"loginIp": "127.0.0.1",
"loginDate": "1683968355811",
"createBy": "maskAdmin",
"createTime": "1682264526306",
"remark": "管理员",
"dept": {
"deptId": "103",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "研发部门",
"orderNum": 1,
"leader": "MASK",
"status": "1"
}
}
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» permissions|[string]|true|none|权限|字符数组|
|»» roles|[string]|true|none|角色|字符数组|
|»» user|object|true|none|用户信息|none|
|»»» roles|[object]|true|none||none|
|»»»» roleId|string|false|none||none|
|»»»» roleName|string|false|none||none|
|»»»» roleKey|string|false|none||none|
|»»»» roleSort|integer|false|none||none|
|»»»» dataScope|string|false|none||none|
|»»»» status|string|false|none||none|
|»»» userId|string|true|none||none|
|»»» deptId|string|true|none||none|
|»»» userName|string|true|none||none|
|»»» nickName|string|true|none||none|
|»»» userType|string|true|none||none|
|»»» email|string|true|none||none|
|»»» avatar|string|true|none||none|
|»»» phonenumber|string|true|none||none|
|»»» sex|string|true|none||none|
|»»» status|string|true|none||none|
|»»» delFlag|string|true|none||none|
|»»» loginIp|string|true|none||none|
|»»» loginDate|string|true|none||none|
|»»» createBy|string|true|none||none|
|»»» createTime|string|true|none||none|
|»»» remark|string|true|none||none|
|»»» dept|object|false|none||none|
|»»»» deptId|string|true|none||none|
|»»»» parentId|string|true|none||none|
|»»»» ancestors|string|true|none||none|
|»»»» deptName|string|true|none||none|
|»»»» orderNum|integer|true|none||none|
|»»»» leader|string|true|none||none|
|»»»» status|string|true|none||none|
## GET 登录路由信息
GET /getRouters
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"name": "System",
"path": "/system",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统管理",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/system/user",
"children": [
{
"name": "User",
"path": "user",
"component": "system/user/index",
"meta": {
"icon": "icon-pcduan",
"title": "用户管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Role",
"path": "role",
"component": "system/role/index",
"meta": {
"icon": "icon-pcduan",
"title": "角色管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "RoleinlineauthuserroleId",
"path": "role/inline/auth-user/:roleId",
"component": "system/role/auth-user",
"meta": {
"icon": "icon-pcduan",
"title": "角色分配用户",
"hide": true,
"cache": false,
"target": null
}
},
{
"name": "Menu",
"path": "menu",
"component": "system/menu/index",
"meta": {
"icon": "icon-pcduan",
"title": "菜单管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Dept",
"path": "dept",
"component": "system/dept/index",
"meta": {
"icon": "icon-pcduan",
"title": "部门管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Post",
"path": "post",
"component": "system/post/index",
"meta": {
"icon": "icon-pcduan",
"title": "岗位管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Dict",
"path": "dict",
"component": "system/dict/index",
"meta": {
"icon": "icon-pcduan",
"title": "字典管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "DictinlinedatadictId",
"path": "dict/inline/data/:dictId",
"component": "system/dict/data",
"meta": {
"icon": "icon-pcduan",
"title": "字典数据",
"hide": true,
"cache": false,
"target": null
}
},
{
"name": "Config",
"path": "config",
"component": "system/config/index",
"meta": {
"icon": "icon-pcduan",
"title": "参数设置",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Notice",
"path": "notice",
"component": "system/notice/index",
"meta": {
"icon": "icon-pcduan",
"title": "通知公告",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Log",
"path": "log",
"component": "BlankLayout",
"meta": {
"icon": "icon-pcduan",
"title": "日志管理",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/system/log/operlog",
"children": [
{
"name": "Operlog",
"path": "operlog",
"component": "monitor/operlog/index",
"meta": {
"icon": "icon-pcduan",
"title": "操作日志",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Logininfor",
"path": "logininfor",
"component": "monitor/logininfor/index",
"meta": {
"icon": "icon-pcduan",
"title": "登录日志",
"hide": false,
"cache": true,
"target": null
}
}
]
}
]
},
{
"name": "Monitor",
"path": "/monitor",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统监控",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/monitor/server",
"children": [
{
"name": "Server",
"path": "server",
"component": "monitor/server/index",
"meta": {
"icon": "icon-pcduan",
"title": "服务监控",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Cache",
"path": "cache",
"component": "monitor/cache/index",
"meta": {
"icon": "icon-pcduan",
"title": "缓存监控",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "CacheList",
"path": "cacheList",
"component": "monitor/cache/list",
"meta": {
"icon": "icon-pcduan",
"title": "缓存列表",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Online",
"path": "online",
"component": "monitor/online/index",
"meta": {
"icon": "icon-pcduan",
"title": "在线用户",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Job",
"path": "job",
"component": "monitor/job/index",
"meta": {
"icon": "icon-pcduan",
"title": "调度任务",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "JobinlinelogjobId",
"path": "job/inline/log/:jobId",
"component": "monitor/job/log",
"meta": {
"icon": "icon-pcduan",
"title": "调度日志",
"hide": true,
"cache": true,
"target": null
}
}
]
},
{
"name": "Tool",
"path": "/tool",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统工具",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/tool/swagger",
"children": [
{
"name": "Swagger",
"path": "swagger",
"component": "tool/swagger/index",
"meta": {
"icon": "icon-pcduan",
"title": "系统接口",
"hide": false,
"cache": true,
"target": null
}
}
]
},
{
"name": "HttpsLink4",
"path": "https://gitee.com/TsMask/mask_api_midwayjs",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "Gitee仓库",
"hide": false,
"cache": false,
"target": "_blank"
}
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none|路由数组|none|
|»» name|string|true|none|路由名称|none|
|»» path|string|true|none|路由地址|none|
|»» component|string|true|none|组件|- BasicLayout-基础布局组件标识 菜单类型-菜单D
- BlankLayout-空白布局组件标识 菜单类型-菜单M
- LinkLayout-内链接布局组件标识 菜单类型-菜单M
- 按钮菜单类型-菜单B 不会读取到路由中|
|»» meta|object|true|none|元数据|none|
|»»» icon|string|true|none|菜单图标|none|
|»»» title|string|true|none|菜单标题|none|
|»»» hide|boolean|true|none|是否隐藏|默认 false|
|»»» cache|boolean|true|none|是否缓存|默认 false|
|»»» target|string¦null|true|none|链接行为|- 非链接 null
- 内部跳转 _self
- 外部跳转 _blank|
|»» redirect|string|false|none|目录重定向|none|
|»» children|[object]|false|none|子菜单|none|
|»»» name|string|true|none||none|
|»»» path|string|true|none||none|
|»»» component|string|true|none||none|
|»»» meta|object|true|none|元数据|none|
|»»»» icon|string|true|none||none|
|»»»» title|string|true|none|标题|none|
|»»»» hide|boolean|true|none||none|
|»»»» cache|boolean|true|none||none|
|»»»» target|string¦null|true|none||none|
## POST 系统登录
POST /login
> Body 请求参数
```json
{
"username": "admin",
"password": "rootaa",
"code": "{{code-text}}",
"uuid": "{{code-uuid}}"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» username|body|string| 是 | 登录名|none|
|» password|body|string| 是 | 密码|none|
|» code|body|string| 是 | 验证码值|none|
|» uuid|body|string| 是 | 验证码唯一标识|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJsb2dpbl9rZXkiOiIwamJmM3J1anRyamdibHNtOW44Mnk4Z2gxcTZmN2s1OCIsInVzZXJfaWQiOiIxIiwiaWF0IjoxNjgzOTY1ODEwLCJleHAiOjE2ODQwMDQyMTB9.rOChRhSPUi7ps6F3QLGMBB8IIOgrfYv2S5ApgxHjtXo"
}
}
```
```json
{
"code": 500,
"msg": "验证码已失效"
}
```
```json
{
"code": 500,
"msg": "验证码错误"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|false|none||none|
|»» access_token|string|true|none|授权令牌|none|
## POST 系统登出
POST /logout
对IP进行限流
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 否 ||授权令牌,可有可无|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "退出成功"
}
```
```json
{
"code": 500,
"msg": "访问过于频繁,请稍候再试"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none|固定值|none|
|» msg|string|true|none|固定值|none|
# 通用模块/账号注册操作
## POST 系统注册
POST /register
> Body 请求参数
```json
{
"username": "string",
"password": "string",
"confirmPassword": "string",
"code": "string",
"uuid": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» username|body|string| 是 | 用户名|none|
|» password|body|string| 是 | 密码|none|
|» confirmPassword|body|string| 是 | 确认密码|none|
|» code|body|string| 是 | 验证码值|none|
|» uuid|body|string| 是 | 验证码唯一标识|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "当前系统没有开启注册功能!"
}
```
```json
{
"code": 500,
"msg": "注册用户【xxxx】失败,注册账号已存在"
}
```
```json
{
"code": 500,
"msg": "账号不能以数字开头,可包含大写小写字母,数字,且不少于5位"
}
```
```json
{
"code": 500,
"msg": "密码至少包含大小写字母、数字、特殊符号,且不少于6位"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/缓存信息
## GET 缓存监控信息
GET /monitor/cache
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"info": {
"server": {
"redis_version": "7.0.5",
"redis_git_sha1": "00000000",
"redis_git_dirty": "0",
"redis_build_id": "aab17434977410f1",
"redis_mode": "standalone",
"os": "Linux 5.4.0-137-generic x86_64",
"arch_bits": "64",
"monotonic_clock": "POSIX clock_gettime",
"multiplexing_api": "epoll",
"atomicvar_api": "c11-builtin",
"gcc_version": "10.2.1",
"process_id": "1",
"process_supervised": "no",
"run_id": "94ee88d0059383b5c1a29d292dbdcb228022c001",
"tcp_port": "6379",
"server_time_usec": "1683985833118338",
"uptime_in_seconds": "25513",
"uptime_in_days": "0",
"hz": "10",
"configured_hz": "10",
"lru_clock": "6264233",
"executable": "/data/redis-server",
"config_file": "/etc/redis/redis.conf",
"io_threads_active": "0"
},
"clients": {
"connected_clients": "11",
"cluster_connections": "0",
"maxclients": "10000",
"client_recent_max_input_buffer": "20565",
"client_recent_max_output_buffer": "0",
"blocked_clients": "3",
"tracking_clients": "0",
"clients_in_timeout_table": "3"
},
"memory": {
"used_memory": "1664304",
"used_memory_human": "1.59M",
"used_memory_rss": "9228288",
"used_memory_rss_human": "8.80M",
"used_memory_peak": "1917352",
"used_memory_peak_human": "1.83M",
"used_memory_peak_perc": "86.80%",
"used_memory_overhead": "978099",
"used_memory_startup": "863272",
"used_memory_dataset": "686205",
"used_memory_dataset_perc": "85.67%",
"allocator_allocated": "1851152",
"allocator_active": "2396160",
"allocator_resident": "4734976",
"total_system_memory": "2079748096",
"total_system_memory_human": "1.94G",
"used_memory_lua": "59392",
"used_memory_vm_eval": "59392",
"used_memory_lua_human": "58.00K",
"used_memory_scripts_eval": "5608",
"number_of_cached_scripts": "3",
"number_of_functions": "0",
"number_of_libraries": "0",
"used_memory_vm_functions": "32768",
"used_memory_vm_total": "92160",
"used_memory_vm_total_human": "90.00K",
"used_memory_functions": "184",
"used_memory_scripts": "5792",
"used_memory_scripts_human": "5.66K",
"maxmemory": "0",
"maxmemory_human": "0B",
"maxmemory_policy": "noeviction",
"allocator_frag_ratio": "1.29",
"allocator_frag_bytes": "545008",
"allocator_rss_ratio": "1.98",
"allocator_rss_bytes": "2338816",
"rss_overhead_ratio": "1.95",
"rss_overhead_bytes": "4493312",
"mem_fragmentation_ratio": "5.55",
"mem_fragmentation_bytes": "7565808",
"mem_not_counted_for_evict": "3584",
"mem_replication_backlog": "0",
"mem_total_replication_buffers": "0",
"mem_clients_slaves": "0",
"mem_clients_normal": "102107",
"mem_cluster_links": "0",
"mem_aof_buffer": "3584",
"mem_allocator": "jemalloc-5.2.1",
"active_defrag_running": "0",
"lazyfree_pending_objects": "0",
"lazyfreed_objects": "0"
},
"persistence": {
"loading": "0",
"async_loading": "0",
"current_cow_peak": "0",
"current_cow_size": "0",
"current_cow_size_age": "0",
"current_fork_perc": "0.00",
"current_save_keys_processed": "0",
"current_save_keys_total": "0",
"rdb_changes_since_last_save": "28",
"rdb_bgsave_in_progress": "0",
"rdb_last_save_time": "1683985267",
"rdb_last_bgsave_status": "ok",
"rdb_last_bgsave_time_sec": "0",
"rdb_current_bgsave_time_sec": "-1",
"rdb_saves": "18",
"rdb_last_cow_size": "901120",
"rdb_last_load_keys_expired": "0",
"rdb_last_load_keys_loaded": "0",
"aof_enabled": "1",
"aof_rewrite_in_progress": "0",
"aof_rewrite_scheduled": "0",
"aof_last_rewrite_time_sec": "-1",
"aof_current_rewrite_time_sec": "-1",
"aof_last_bgrewrite_status": "ok",
"aof_rewrites": "0",
"aof_rewrites_consecutive_failures": "0",
"aof_last_write_status": "ok",
"aof_last_cow_size": "0",
"module_fork_in_progress": "0",
"module_fork_last_cow_size": "0",
"aof_current_size": "52707266",
"aof_base_size": "88",
"aof_pending_rewrite": "0",
"aof_buffer_length": "0",
"aof_pending_bio_fsync": "0",
"aof_delayed_fsync": "0"
},
"stats": {
"total_connections_received": "139",
"total_commands_processed": "215944",
"instantaneous_ops_per_sec": "5",
"total_net_input_bytes": "6096966",
"total_net_output_bytes": "546971",
"total_net_repl_input_bytes": "0",
"total_net_repl_output_bytes": "0",
"instantaneous_input_kbps": "0.60",
"instantaneous_output_kbps": "0.01",
"instantaneous_input_repl_kbps": "0.00",
"instantaneous_output_repl_kbps": "0.00",
"rejected_connections": "0",
"sync_full": "0",
"sync_partial_ok": "0",
"sync_partial_err": "0",
"expired_keys": "1270",
"expired_stale_perc": "0.00",
"expired_time_cap_reached_count": "0",
"expire_cycle_cpu_milliseconds": "712",
"evicted_keys": "0",
"evicted_clients": "0",
"total_eviction_exceeded_time": "0",
"current_eviction_exceeded_time": "0",
"keyspace_hits": "1580",
"keyspace_misses": "27951",
"pubsub_channels": "3",
"pubsub_patterns": "0",
"pubsubshard_channels": "0",
"latest_fork_usec": "275",
"total_forks": "18",
"migrate_cached_sockets": "0",
"slave_expires_tracked_keys": "0",
"active_defrag_hits": "0",
"active_defrag_misses": "0",
"active_defrag_key_hits": "0",
"active_defrag_key_misses": "0",
"total_active_defrag_time": "0",
"current_active_defrag_time": "0",
"tracking_total_keys": "0",
"tracking_total_items": "0",
"tracking_total_prefixes": "0",
"unexpected_error_replies": "0",
"total_error_replies": "0",
"dump_payload_sanitizations": "0",
"total_reads_processed": "29542",
"total_writes_processed": "29425",
"io_threaded_reads_processed": "0",
"io_threaded_writes_processed": "0",
"reply_buffer_shrinks": "135",
"reply_buffer_expands": "9"
},
"replication": {
"role": "master",
"connected_slaves": "0",
"master_failover_state": "no-failover",
"master_replid": "08e7cd72f9ecda6c4fd3e1e8504571203bb61290",
"master_replid2": "0000000000000000000000000000000000000000",
"master_repl_offset": "0",
"second_repl_offset": "-1",
"repl_backlog_active": "0",
"repl_backlog_size": "1048576",
"repl_backlog_first_byte_offset": "0",
"repl_backlog_histlen": "0"
},
"cpu": {
"used_cpu_sys": "21.297760",
"used_cpu_user": "30.032301",
"used_cpu_sys_children": "0.033118",
"used_cpu_user_children": "0.030797",
"used_cpu_sys_main_thread": "20.252124",
"used_cpu_user_main_thread": "30.825211"
},
"modules": {},
"errorstats": {},
"cluster": {
"cluster_enabled": "0"
},
"keyspace": {
"db0": "keys=19,expires=0,avg_ttl=0",
"db1": "keys=22,expires=3,avg_ttl=21492323"
}
},
"dbSize": 22,
"commandStats": [
{
"name": "brpoplpush",
"value": "12044"
},
{
"name": "get",
"value": "545"
},
{
"name": "incr",
"value": "144"
},
{
"name": "smembers",
"value": "1207"
},
{
"name": "scan",
"value": "13"
},
{
"name": "subscribe",
"value": "36"
},
{
"name": "del",
"value": "147"
},
{
"name": "auth",
"value": "139"
},
{
"name": "exists",
"value": "2145"
},
{
"name": "lrange",
"value": "1207"
},
{
"name": "type",
"value": "28"
},
{
"name": "ttl",
"value": "189"
},
{
"name": "quit",
"value": "51"
},
{
"name": "keys",
"value": "22"
},
{
"name": "evalsha",
"value": "14200"
},
{
"name": "select",
"value": "139"
},
{
"name": "expire",
"value": "44"
},
{
"name": "info",
"value": "61"
},
{
"name": "zrevrange",
"value": "36"
},
{
"name": "config|get",
"value": "9"
},
{
"name": "zrangebyscore",
"value": "12087"
},
{
"name": "client|setname",
"value": "37"
},
{
"name": "ping",
"value": "1765"
},
{
"name": "zrange",
"value": "12087"
},
{
"name": "set",
"value": "1420"
},
{
"name": "dbsize",
"value": "2"
},
{
"name": "eval",
"value": "83"
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» info|object|true|none||none|
|»»» server|object|true|none|服务|none|
|»»»» redis_version|string|true|none|Redis版本|none|
|»»»» redis_git_sha1|string|true|none||none|
|»»»» redis_git_dirty|string|true|none||none|
|»»»» redis_build_id|string|true|none||none|
|»»»» redis_mode|string|true|none|运行模式|none|
|»»»» os|string|true|none|服务系统|none|
|»»»» arch_bits|string|true|none||none|
|»»»» monotonic_clock|string|true|none||none|
|»»»» multiplexing_api|string|true|none||none|
|»»»» atomicvar_api|string|true|none||none|
|»»»» gcc_version|string|true|none||none|
|»»»» process_id|string|true|none||none|
|»»»» process_supervised|string|true|none||none|
|»»»» run_id|string|true|none||none|
|»»»» tcp_port|string|true|none|端口|none|
|»»»» server_time_usec|string|true|none||none|
|»»»» uptime_in_seconds|string|true|none|运行时间(秒)|none|
|»»»» uptime_in_days|string|true|none|运行时间(天)|none|
|»»»» hz|string|true|none||none|
|»»»» configured_hz|string|true|none||none|
|»»»» lru_clock|string|true|none||none|
|»»»» executable|string|true|none||none|
|»»»» config_file|string|true|none|配置文件|none|
|»»»» io_threads_active|string|true|none||none|
|»»» clients|object|true|none|客户端|none|
|»»»» connected_clients|string|true|none|客户端数|none|
|»»»» cluster_connections|string|true|none||none|
|»»»» maxclients|string|true|none||none|
|»»»» client_recent_max_input_buffer|string|true|none||none|
|»»»» client_recent_max_output_buffer|string|true|none||none|
|»»»» blocked_clients|string|true|none||none|
|»»»» tracking_clients|string|true|none||none|
|»»»» clients_in_timeout_table|string|true|none||none|
|»»» memory|object|true|none|内存|none|
|»»»» used_memory|string|true|none|总内存|none|
|»»»» used_memory_human|string|true|none|使用内存|none|
|»»»» used_memory_rss|string|true|none||none|
|»»»» used_memory_rss_human|string|true|none||none|
|»»»» used_memory_peak|string|true|none||none|
|»»»» used_memory_peak_human|string|true|none||none|
|»»»» used_memory_peak_perc|string|true|none||none|
|»»»» used_memory_overhead|string|true|none||none|
|»»»» used_memory_startup|string|true|none||none|
|»»»» used_memory_dataset|string|true|none||none|
|»»»» used_memory_dataset_perc|string|true|none||none|
|»»»» allocator_allocated|string|true|none||none|
|»»»» allocator_active|string|true|none||none|
|»»»» allocator_resident|string|true|none||none|
|»»»» total_system_memory|string|true|none||none|
|»»»» total_system_memory_human|string|true|none||none|
|»»»» used_memory_lua|string|true|none||none|
|»»»» used_memory_vm_eval|string|true|none||none|
|»»»» used_memory_lua_human|string|true|none||none|
|»»»» used_memory_scripts_eval|string|true|none||none|
|»»»» number_of_cached_scripts|string|true|none||none|
|»»»» number_of_functions|string|true|none||none|
|»»»» number_of_libraries|string|true|none||none|
|»»»» used_memory_vm_functions|string|true|none||none|
|»»»» used_memory_vm_total|string|true|none||none|
|»»»» used_memory_vm_total_human|string|true|none||none|
|»»»» used_memory_functions|string|true|none||none|
|»»»» used_memory_scripts|string|true|none||none|
|»»»» used_memory_scripts_human|string|true|none||none|
|»»»» maxmemory|string|true|none||none|
|»»»» maxmemory_human|string|true|none||none|
|»»»» maxmemory_policy|string|true|none||none|
|»»»» allocator_frag_ratio|string|true|none||none|
|»»»» allocator_frag_bytes|string|true|none||none|
|»»»» allocator_rss_ratio|string|true|none||none|
|»»»» allocator_rss_bytes|string|true|none||none|
|»»»» rss_overhead_ratio|string|true|none||none|
|»»»» rss_overhead_bytes|string|true|none||none|
|»»»» mem_fragmentation_ratio|string|true|none||none|
|»»»» mem_fragmentation_bytes|string|true|none||none|
|»»»» mem_not_counted_for_evict|string|true|none||none|
|»»»» mem_replication_backlog|string|true|none||none|
|»»»» mem_total_replication_buffers|string|true|none||none|
|»»»» mem_clients_slaves|string|true|none||none|
|»»»» mem_clients_normal|string|true|none||none|
|»»»» mem_cluster_links|string|true|none||none|
|»»»» mem_aof_buffer|string|true|none||none|
|»»»» mem_allocator|string|true|none||none|
|»»»» active_defrag_running|string|true|none||none|
|»»»» lazyfree_pending_objects|string|true|none||none|
|»»»» lazyfreed_objects|string|true|none||none|
|»»» persistence|object|true|none||none|
|»»»» loading|string|true|none||none|
|»»»» async_loading|string|true|none||none|
|»»»» current_cow_peak|string|true|none||none|
|»»»» current_cow_size|string|true|none||none|
|»»»» current_cow_size_age|string|true|none||none|
|»»»» current_fork_perc|string|true|none||none|
|»»»» current_save_keys_processed|string|true|none||none|
|»»»» current_save_keys_total|string|true|none||none|
|»»»» rdb_changes_since_last_save|string|true|none||none|
|»»»» rdb_bgsave_in_progress|string|true|none||none|
|»»»» rdb_last_save_time|string|true|none||none|
|»»»» rdb_last_bgsave_status|string|true|none|RDB是否成功|none|
|»»»» rdb_last_bgsave_time_sec|string|true|none||none|
|»»»» rdb_current_bgsave_time_sec|string|true|none||none|
|»»»» rdb_saves|string|true|none||none|
|»»»» rdb_last_cow_size|string|true|none||none|
|»»»» rdb_last_load_keys_expired|string|true|none||none|
|»»»» rdb_last_load_keys_loaded|string|true|none||none|
|»»»» aof_enabled|string|true|none|AOF是否开启|none|
|»»»» aof_rewrite_in_progress|string|true|none||none|
|»»»» aof_rewrite_scheduled|string|true|none||none|
|»»»» aof_last_rewrite_time_sec|string|true|none||none|
|»»»» aof_current_rewrite_time_sec|string|true|none||none|
|»»»» aof_last_bgrewrite_status|string|true|none||none|
|»»»» aof_rewrites|string|true|none||none|
|»»»» aof_rewrites_consecutive_failures|string|true|none||none|
|»»»» aof_last_write_status|string|true|none||none|
|»»»» aof_last_cow_size|string|true|none||none|
|»»»» module_fork_in_progress|string|true|none||none|
|»»»» module_fork_last_cow_size|string|true|none||none|
|»»»» aof_current_size|string|true|none||none|
|»»»» aof_base_size|string|true|none||none|
|»»»» aof_pending_rewrite|string|true|none||none|
|»»»» aof_buffer_length|string|true|none||none|
|»»»» aof_pending_bio_fsync|string|true|none||none|
|»»»» aof_delayed_fsync|string|true|none||none|
|»»» stats|object|true|none||none|
|»»»» total_connections_received|string|true|none||none|
|»»»» total_commands_processed|string|true|none||none|
|»»»» instantaneous_ops_per_sec|string|true|none||none|
|»»»» total_net_input_bytes|string|true|none||none|
|»»»» total_net_output_bytes|string|true|none||none|
|»»»» total_net_repl_input_bytes|string|true|none||none|
|»»»» total_net_repl_output_bytes|string|true|none||none|
|»»»» instantaneous_input_kbps|string|true|none|网络入口|none|
|»»»» instantaneous_output_kbps|string|true|none|网络出口|none|
|»»»» instantaneous_input_repl_kbps|string|true|none||none|
|»»»» instantaneous_output_repl_kbps|string|true|none||none|
|»»»» rejected_connections|string|true|none||none|
|»»»» sync_full|string|true|none||none|
|»»»» sync_partial_ok|string|true|none||none|
|»»»» sync_partial_err|string|true|none||none|
|»»»» expired_keys|string|true|none||none|
|»»»» expired_stale_perc|string|true|none||none|
|»»»» expired_time_cap_reached_count|string|true|none||none|
|»»»» expire_cycle_cpu_milliseconds|string|true|none||none|
|»»»» evicted_keys|string|true|none||none|
|»»»» evicted_clients|string|true|none||none|
|»»»» total_eviction_exceeded_time|string|true|none||none|
|»»»» current_eviction_exceeded_time|string|true|none||none|
|»»»» keyspace_hits|string|true|none||none|
|»»»» keyspace_misses|string|true|none||none|
|»»»» pubsub_channels|string|true|none||none|
|»»»» pubsub_patterns|string|true|none||none|
|»»»» pubsubshard_channels|string|true|none||none|
|»»»» latest_fork_usec|string|true|none||none|
|»»»» total_forks|string|true|none||none|
|»»»» migrate_cached_sockets|string|true|none||none|
|»»»» slave_expires_tracked_keys|string|true|none||none|
|»»»» active_defrag_hits|string|true|none||none|
|»»»» active_defrag_misses|string|true|none||none|
|»»»» active_defrag_key_hits|string|true|none||none|
|»»»» active_defrag_key_misses|string|true|none||none|
|»»»» total_active_defrag_time|string|true|none||none|
|»»»» current_active_defrag_time|string|true|none||none|
|»»»» tracking_total_keys|string|true|none||none|
|»»»» tracking_total_items|string|true|none||none|
|»»»» tracking_total_prefixes|string|true|none||none|
|»»»» unexpected_error_replies|string|true|none||none|
|»»»» total_error_replies|string|true|none||none|
|»»»» dump_payload_sanitizations|string|true|none||none|
|»»»» total_reads_processed|string|true|none||none|
|»»»» total_writes_processed|string|true|none||none|
|»»»» io_threaded_reads_processed|string|true|none||none|
|»»»» io_threaded_writes_processed|string|true|none||none|
|»»»» reply_buffer_shrinks|string|true|none||none|
|»»»» reply_buffer_expands|string|true|none||none|
|»»» replication|object|true|none||none|
|»»»» role|string|true|none||none|
|»»»» connected_slaves|string|true|none||none|
|»»»» master_failover_state|string|true|none||none|
|»»»» master_replid|string|true|none||none|
|»»»» master_replid2|string|true|none||none|
|»»»» master_repl_offset|string|true|none||none|
|»»»» second_repl_offset|string|true|none||none|
|»»»» repl_backlog_active|string|true|none||none|
|»»»» repl_backlog_size|string|true|none||none|
|»»»» repl_backlog_first_byte_offset|string|true|none||none|
|»»»» repl_backlog_histlen|string|true|none||none|
|»»» cpu|object|true|none|CPU|none|
|»»»» used_cpu_sys|string|true|none||none|
|»»»» used_cpu_user|string|true|none||none|
|»»»» used_cpu_sys_children|string|true|none||none|
|»»»» used_cpu_user_children|string|true|none||none|
|»»»» used_cpu_sys_main_thread|string|true|none||none|
|»»»» used_cpu_user_main_thread|string|true|none||none|
|»»» modules|object|true|none||none|
|»»» errorstats|object|true|none||none|
|»»» cluster|object|true|none|集群|none|
|»»»» cluster_enabled|string|true|none||none|
|»»» keyspace|object|true|none||none|
|»»»» db0|string|true|none||none|
|»»»» db1|string|true|none||none|
|»» dbSize|integer|true|none|Key数量|none|
|»» commandStats|[object]|true|none|命令统计|none|
|»»» name|string|true|none||none|
|»»» value|string|true|none||none|
## GET 缓存名称列表
GET /monitor/cache/getNames
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"cacheName": "login_tokens",
"cacheKey": "",
"cacheValue": "",
"remark": "用户信息"
},
{
"cacheName": "sys_config",
"cacheKey": "",
"cacheValue": "",
"remark": "配置信息"
},
{
"cacheName": "sys_dict",
"cacheKey": "",
"cacheValue": "",
"remark": "数据字典"
},
{
"cacheName": "captcha_codes",
"cacheKey": "",
"cacheValue": "",
"remark": "验证码"
},
{
"cacheName": "repeat_submit",
"cacheKey": "",
"cacheValue": "",
"remark": "防重提交"
},
{
"cacheName": "rate_limit",
"cacheKey": "",
"cacheValue": "",
"remark": "限流处理"
},
{
"cacheName": "pwd_err_cnt",
"cacheKey": "",
"cacheValue": "",
"remark": "密码错误次数"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» cacheName|string|true|none|缓存名称|none|
|»» cacheKey|string|true|none|缓存键名|空字符串|
|»» cacheValue|string|true|none|缓存内容|空字符串|
|»» remark|string|true|none|备注|none|
## GET 缓存名称下键名列表
GET /monitor/cache/getKeys/{cacheName}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|cacheName|path|string| 是 ||缓存名称列表中得到的缓存名称|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"cacheName": "sys_config",
"cacheKey": "sys.user.initPassword",
"cacheValue": "",
"remark": ""
},
{
"cacheName": "sys_config",
"cacheKey": "sys.account.captchaEnabled",
"cacheValue": "",
"remark": ""
},
{
"cacheName": "sys_config",
"cacheKey": "sys.account.registerUser",
"cacheValue": "",
"remark": ""
},
{
"cacheName": "sys_config",
"cacheKey": "sys.account.captchaType",
"cacheValue": "",
"remark": ""
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» cacheName|string|true|none|缓存名称|缓存名称列表中得到的缓存名称|
|»» cacheKey|string|true|none|缓存键名|none|
|»» cacheValue|string|true|none|缓存内容|空字符串|
|»» remark|string|true|none|备注|空字符串|
## GET 缓存内容
GET /monitor/cache/getValue/{cacheName}/{cacheKey}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|cacheName|path|string| 是 ||键名列表中得到的缓存名称|
|cacheKey|path|string| 是 ||键名列表中得到的缓存键名|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"cacheName": "sys_config",
"cacheKey": "sys.account.captchaType",
"cacheValue": "math",
"remark": ""
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» cacheName|string|true|none|缓存名称|键名列表中得到的缓存名称|
|»» cacheKey|string|true|none|缓存名称|键名列表中得到的缓存键名|
|»» cacheValue|string|true|none|缓存内容|none|
|»» remark|string|true|none|备注|空字符串|
## DELETE 删除缓存键名
DELETE /monitor/cache/clearCacheKey/{cacheName}/{cacheKey}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|cacheName|path|string| 是 ||键名列表中得到的缓存名称|
|cacheKey|path|string| 是 ||键名列表中得到的缓存键名|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 删除缓存名称下键名列表
DELETE /monitor/cache/clearCacheName/{cacheName}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|cacheName|path|string| 是 ||缓存名称列表中得到的缓存名称|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 安全清理缓存名称
DELETE /monitor/cache/clearCacheSafe
指定可清理的缓存键名
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/调度任务日志信息
## POST 调度任务日志列表导出
POST /monitor/jobLog/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=jobLog_export_1_1684058366284.xlsx
content-length: 17079
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"jobName": "string",
"jobGroup": "string",
"status": "string",
"pageNum": 0,
"pageSize": 0,
"beginTime": "string",
"endTime": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» jobName|body|string| 否 | 任务名称|none|
|» jobGroup|body|string| 否 | 任务组名|none|
|» status|body|string| 否 | 执行状态|none|
|» pageNum|body|number| 否 | 页数,默认1|none|
|» pageSize|body|number| 否 | 单页记录数,默认10|none|
|» beginTime|body|string| 否 | 操作开始时间|none|
|» endTime|body|string| 否 | 操作结束时间|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 调度任务日志列表
GET /monitor/jobLog/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobName|query|string| 否 ||任务名称|
|jobGroup|query|string| 否 ||任务组名|
|status|query|string| 否 ||执行状态|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 4,
"rows": [
{
"jobLogId": "4",
"jobName": "2-20个字符",
"jobGroup": "DEFAULT",
"invokeTarget": "test",
"targetParams": "{\"a\":1,\"b\":1}",
"jobMsg": "{\"jobId\":\"103\",\"params\":\"{\\\"a\\\":1,\\\"b\\\":1}\"}",
"status": "1",
"createTime": "1684056232934"
},
{
"jobLogId": "3",
"jobName": "2-20个字符",
"jobGroup": "DEFAULT",
"invokeTarget": "test",
"targetParams": "{\"a\":1,\"b\":1}",
"jobMsg": "{\"jobId\":\"103\",\"params\":\"{\\\"a\\\":1,\\\"b\\\":1}\"}",
"status": "1",
"createTime": "1684056199482"
},
{
"jobLogId": "2",
"jobName": "2-20个字符",
"jobGroup": "DEFAULT",
"invokeTarget": "test",
"targetParams": "{\"a\":1,\"b\":1}",
"jobMsg": "{\"jobId\":\"103\",\"params\":\"{\\\"a\\\":1,\\\"b\\\":1}\"}",
"status": "1",
"createTime": "1684056090490"
},
{
"jobLogId": "1",
"jobName": "异常执行",
"jobGroup": "SYSTEM",
"invokeTarget": "bar",
"targetParams": "字符串参数",
"jobMsg": "{\"name\":\"Error\",\"message\":\"程序中途执行错误\"}",
"status": "0",
"createTime": "1683901320750"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» jobLogId|string|true|none|日志ID|none|
|»» jobName|string|true|none|任务名|none|
|»» jobGroup|string|true|none|任务组|none|
|»» invokeTarget|string|true|none|任务目标|none|
|»» targetParams|string|true|none|任务参数|none|
|»» jobMsg|string|true|none|日志记录|none|
|»» status|string|true|none|状态|none|
|»» createTime|string|true|none|记录时间|none|
## GET 调度任务日志信息
GET /monitor/jobLog/{jobLogId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobLogId|path|string| 是 ||日志ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"jobLogId": "3",
"jobName": "2-20个字符",
"jobGroup": "DEFAULT",
"invokeTarget": "test",
"targetParams": "{\"a\":1,\"b\":1}",
"jobMsg": "{\"jobId\":\"103\",\"params\":\"{\\\"a\\\":1,\\\"b\\\":1}\"}",
"status": "1",
"createTime": "1684056199482"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» jobLogId|string|true|none|日志ID|none|
|»» jobName|string|true|none|任务名|none|
|»» jobGroup|string|true|none|任务组|none|
|»» invokeTarget|string|true|none|任务目标|none|
|»» targetParams|string|true|none|任务参数|none|
|»» jobMsg|string|true|none|日志记录|none|
|»» status|string|true|none|状态|none|
|»» createTime|string|true|none|记录时间|none|
## DELETE 调度任务日志删除
DELETE /monitor/jobLog/{jobLogIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobLogIds|path|string| 是 ||日志ID,多个可用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 调度任务日志清空
DELETE /monitor/jobLog/clean
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/调度任务信息
## POST 调度任务列表导出
POST /monitor/job/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=job_export_6_1684058991890.xlsx
content-length: 19346
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"jobName": "string",
"jobGroup": "string",
"status": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» jobName|body|string| 否 | 任务名称|none|
|» jobGroup|body|string| 否 | 任务组名|none|
|» status|body|string| 否 | 执行状态|none|
|» pageNum|body|number| 否 | 页数,默认1|none|
|» pageSize|body|number| 否 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 调度任务列表
GET /monitor/job/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobName|query|string| 否 ||任务名称|
|jobGroup|query|string| 否 ||任务组名|
|status|query|string| 否 ||任务状态|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 3,
"rows": [
{
"jobId": "1",
"jobName": "触发执行",
"jobGroup": "SYSTEM",
"invokeTarget": "test",
"targetParams": "字符串参数",
"cronExpression": "0/10 * * * * ?",
"misfirePolicy": "3",
"concurrent": "0",
"status": "0",
"createBy": "maskAdmin",
"createTime": "1682264527348",
"remark": ""
},
{
"jobId": "2",
"jobName": "缓慢执行",
"jobGroup": "SYSTEM",
"invokeTarget": "foo",
"targetParams": "字符串参数",
"cronExpression": "0/15 * * * * ?",
"misfirePolicy": "3",
"concurrent": "0",
"status": "0",
"createBy": "maskAdmin",
"createTime": "1682264527355",
"remark": ""
},
{
"jobId": "3",
"jobName": "异常执行",
"jobGroup": "SYSTEM",
"invokeTarget": "bar",
"targetParams": "字符串参数",
"cronExpression": "0/20 * * * * ?",
"misfirePolicy": "3",
"concurrent": "0",
"status": "0",
"createBy": "maskAdmin",
"createTime": "1682264527364",
"remark": ""
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» jobId|string|true|none|任务id|none|
|»» jobName|string|true|none|任务名|none|
|»» jobGroup|string|true|none|任务组|同组内不可同任务名|
|»» invokeTarget|string|true|none|调用目标|需要代码中通过 @Processor('xxx') 注册任务目标|
|»» targetParams|string|true|none|传入参数|标准json格式字符串|
|»» cronExpression|string|true|none|cron表达式|6位,最后?号不使用|
|»» misfirePolicy|string|true|none|执行策略|计划执行错误策略(1立即执行 2执行一次 3放弃执行)|
|»» concurrent|string|true|none|是否并发|是否并发执行(0禁止 1允许)|
|»» status|string|true|none|状态|none|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none|创建时间|none|
|»» remark|string|true|none|备注|none|
## GET 调度任务信息
GET /monitor/job/{jobId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobId|path|string| 是 ||任务ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"jobId": "1",
"jobName": "触发执行",
"jobGroup": "SYSTEM",
"invokeTarget": "test",
"targetParams": "字符串参数",
"cronExpression": "0/10 * * * * ?",
"misfirePolicy": "3",
"concurrent": "0",
"status": "0",
"createBy": "maskAdmin",
"createTime": "1682264527348",
"remark": ""
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» jobId|string|true|none|任务id|none|
|»» jobName|string|true|none|任务名|none|
|»» jobGroup|string|true|none|任务组|同组内不可同任务名|
|»» invokeTarget|string|true|none|调用目标|需要代码中通过 @Processor('xxx') 注册任务目标|
|»» targetParams|string|true|none|传入参数|标准json格式字符串|
|»» cronExpression|string|true|none|cron表达式|6位,最后?号不使用|
|»» misfirePolicy|string|true|none|执行策略|计划执行错误策略(1立即执行 2执行一次 3放弃执行)|
|»» concurrent|string|true|none|是否并发|是否并发执行(0禁止 1允许)|
|»» status|string|true|none|状态|none|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none|创建时间|none|
|»» remark|string|true|none|备注|none|
## POST 调度任务新增
POST /monitor/job
> Body 请求参数
```json
{
"jobName": "2-20个字符",
"invokeTarget": "test1",
"cronExpression": "0/22 * * * * ?",
"misfirePolicy": "3",
"concurrent": "0",
"jobGroup": "DEFAULT",
"status": "ullamco minim Ut",
"targetParams": "{\"a\":1,\"b\":1}",
"remark": "asdf"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» jobName|body|string| 是 | 任务名称|none|
|» jobGroup|body|string| 是 | 任务组名|none|
|» invokeTarget|body|string| 是 | 调用目标字符串|需要代码中通过 @Processor('xxx') 注册任务目标|
|» targetParams|body|string| 是 | 调用目标传入参数|标准json格式字符串|
|» cronExpression|body|string| 是 | cron执行表达式|6位,最后?号不使用|
|» misfirePolicy|body|string| 是 | 计划执行错误策略|1立即执行 2执行一次 3放弃执行|
|» concurrent|body|string| 是 | 是否并发执行|0禁止 1允许|
|» status|body|string| 是 | 任务状态|0正常 1暂停|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "调度任务新增【xxx】失败,同任务组内有相同任务名称"
}
```
```json
{
"code": 500,
"msg": "调度任务新增【xxxx】失败,Cron表达式不正确"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 调度任务修改
PUT /monitor/job
> Body 请求参数
```json
{
"jobName": "大但任",
"invokeTarget": "test",
"cronExpression": "0/40 * * * * ?",
"misfirePolicy": "3",
"concurrent": "1",
"jobGroup": "SYSTEM",
"status": "0",
"targetParams": "{\"a\":1,\"b\":1}",
"remark": "据连思过维存斗维动南子听。",
"jobId": "2"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» jobId|body|string| 是 | 任务ID|none|
|» jobName|body|string| 是 | 任务名称|none|
|» jobGroup|body|string| 是 | 任务组名|none|
|» invokeTarget|body|string| 是 | 调用目标字符串|需要代码中通过 @Processor('xxx') 注册任务目标|
|» targetParams|body|string| 是 | 调用目标传入参数|标准json格式字符串|
|» cronExpression|body|string| 是 | cron执行表达式|6位,最后?号不使用|
|» misfirePolicy|body|string| 是 | 计划执行错误策略|1立即执行 2执行一次 3放弃执行|
|» concurrent|body|string| 是 | 是否并发执行|0禁止 1允许|
|» status|body|string| 是 | 任务状态|0正常 1暂停|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "调度任务修改【xxxx】失败,Cron表达式不正确"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 调度任务删除
DELETE /monitor/job/{jobIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobIds|path|string| 是 ||任务ID,多个可用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 调度任务修改状态
PUT /monitor/job/changeStatus
> Body 请求参数
```json
{
"jobId": "22",
"status": "0"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» jobId|body|string| 是 | 任务ID|none|
|» status|body|string| 是 | 变更的状态|0正常 1暂停|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 调度任务立即执行一次
PUT /monitor/job/run/{jobId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|jobId|path|string| 是 ||任务ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 调度任务重置刷新队列
PUT /monitor/job/resetQueueJob
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/操作日志信息
## GET 操作日志列表
GET /monitor/operlog/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|title|query|string| 否 ||操作模块名称|
|operName|query|string| 否 ||操作人员名称|
|businessType|query|string| 否 ||操作类型|
|status|query|string| 否 ||操作状态|
|beginTime|query|string| 否 ||操作开始时间|
|endTime|query|string| 否 ||操作结束时间|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 125,
"rows": [
{
"operId": "224",
"title": "通知公告信息",
"businessType": "3",
"method": "SysNoticeController.remove()",
"requestMethod": "DELETE",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice/17",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071705357"
},
{
"operId": "223",
"title": "通知公告信息",
"businessType": "1",
"method": "SysNoticeController.add()",
"requestMethod": "POST",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{\"noticeTitle\":\"常员报情\",\"noticeType\":\"1\",\"noticeContent\":\"记月为认交叫次去铁亲基天会产。气深情问值约于严火更思目部光交。在目部深效五己运设接本报资。论型治感标消当期再件始军品团命院写结。\",\"status\":\"1\"}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071683254"
},
{
"operId": "222",
"title": "通知公告信息",
"businessType": "1",
"method": "SysNoticeController.add()",
"requestMethod": "POST",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{\"noticeTitle\":\"常员报情\",\"noticeType\":\"1\",\"noticeContent\":\"记月为认交叫次去铁亲基天会产。气深情问值约于严火更思目部光交。在目部深效五己运设接本报资。论型治感标消当期再件始军品团命院写结。\",\"status\":\"1\"}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071682157"
},
{
"operId": "221",
"title": "通知公告信息",
"businessType": "3",
"method": "SysNoticeController.remove()",
"requestMethod": "DELETE",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice/201",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{}",
"operMsg": "{\"code\":500,\"msg\":\"失败\"}",
"status": "0",
"operTime": "1684071669833"
},
{
"operId": "220",
"title": "通知公告信息",
"businessType": "3",
"method": "SysNoticeController.remove()",
"requestMethod": "DELETE",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice/11,12,13",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071570065"
},
{
"operId": "219",
"title": "通知公告信息",
"businessType": "3",
"method": "SysNoticeController.remove()",
"requestMethod": "DELETE",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice/7,58,96,8,45",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{}",
"operMsg": "{\"code\":500,\"msg\":\"失败\"}",
"status": "0",
"operTime": "1684071537536"
},
{
"operId": "218",
"title": "通知公告信息",
"businessType": "1",
"method": "SysNoticeController.add()",
"requestMethod": "POST",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{\"noticeTitle\":\"常员报情\",\"noticeType\":\"1\",\"noticeContent\":\"记月为认交叫次去铁亲基天会产。气深情问值约于严火更思目部光交。在目部深效五己运设接本报资。论型治感标消当期再件始军品团命院写结。\",\"status\":\"1\"}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071459926"
},
{
"operId": "217",
"title": "通知公告信息",
"businessType": "1",
"method": "SysNoticeController.add()",
"requestMethod": "POST",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{\"noticeTitle\":\"结西基\",\"noticeType\":\"2\",\"noticeContent\":\"运素元低角工老风三易切员火组干。任下极你部万利求听在这年。见准需东经布资张口动太领员本。引果历常高划党却分造行火九影。干强百历但所可存各拉技白广强日如定提。整次段得受都着维东转律自化。\",\"status\":\"0\"}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071429311"
},
{
"operId": "216",
"title": "通知公告信息",
"businessType": "1",
"method": "SysNoticeController.add()",
"requestMethod": "POST",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{\"noticeTitle\":\"结西基\",\"noticeType\":\"2\",\"noticeContent\":\"运素元低角工老风三易切员火组干。任下极你部万利求听在这年。见准需东经布资张口动太领员本。引果历常高划党却分造行火九影。干强百历但所可存各拉技白广强日如定提。整次段得受都着维东转律自化。\",\"status\":\"0\"}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071426784"
},
{
"operId": "215",
"title": "通知公告信息",
"businessType": "1",
"method": "SysNoticeController.add()",
"requestMethod": "POST",
"operatorType": "1",
"operName": "maskAdmin",
"deptName": "研发部门",
"operUrl": "/system/notice",
"operIp": "127.0.0.1",
"operLocation": "内网IP",
"operParam": "{\"noticeTitle\":\"结西基\",\"noticeType\":\"2\",\"noticeContent\":\"运素元低角工老风三易切员火组干。任下极你部万利求听在这年。见准需东经布资张口动太领员本。引果历常高划党却分造行火九影。干强百历但所可存各拉技白广强日如定提。整次段得受都着维东转律自化。\",\"status\":\"0\"}",
"operMsg": "{\"code\":200,\"msg\":\"成功\"}",
"status": "1",
"operTime": "1684071419755"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» operId|string|true|none||none|
|»» title|string|true|none||none|
|»» businessType|string|true|none||none|
|»» method|string|true|none||none|
|»» requestMethod|string|true|none||none|
|»» operatorType|string|true|none|操作类型|字典类型中配置|
|»» operName|string|true|none|操作人名称|none|
|»» deptName|string|true|none|操作人部门|none|
|»» operUrl|string|true|none||none|
|»» operIp|string|true|none|IP地址|none|
|»» operLocation|string|true|none|IP地区|none|
|»» operParam|string|true|none|请求参数|none|
|»» operMsg|string|true|none|操作信息|none|
|»» status|string|true|none|状态|none|
|»» operTime|string|true|none|时间|none|
|»» costTime|string|true|none|消耗时间(毫秒)|none|
## POST 操作日志列表导出
POST /monitor/operlog/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=operlog_export_20_1684073261184.xlsx
content-length: 36500
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"title": "string",
"operName": "string",
"businessType": "string",
"status": "string",
"beginTime": "string",
"endTime": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» title|body|string| 否 | 操作模块名称|none|
|» operName|body|string| 否 | 操作人员名称|none|
|» businessType|body|string| 否 | 操作类型|none|
|» status|body|string| 否 | 操作状态|none|
|» beginTime|body|string| 否 | 操作开始时间|none|
|» endTime|body|string| 否 | 操作结束时间|none|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 操作日志清空
DELETE /monitor/operlog/clean
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 操作日志删除
DELETE /monitor/operlog/{operIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|operIds|path|string| 是 ||操作日志ID,多个可用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/登录访问信息
## GET 登录访问列表
GET /monitor/logininfor/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|ipaddr|query|string| 否 ||登录地址ip|
|userName|query|string| 否 ||用户名称|
|status|query|string| 否 ||登录状态 0失败 1成功|
|beginTime|query|string| 否 ||登录开始时间|
|endTime|query|string| 否 ||登录结束时间|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 130,
"rows": [
{
"infoId": "119",
"userName": "maskAdmin",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "登录成功",
"loginTime": "1683370928996"
},
{
"infoId": "118",
"userName": "liming",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "退出成功",
"loginTime": "1683370924042"
},
{
"infoId": "117",
"userName": "liming",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "登录成功",
"loginTime": "1683370402328"
},
{
"infoId": "116",
"userName": "liming",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "注册成功",
"loginTime": "1683370382877"
},
{
"infoId": "115",
"userName": "maskAdmin",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "退出成功",
"loginTime": "1683370352406"
},
{
"infoId": "114",
"userName": "maskAdmin",
"ipaddr": "192.168.56.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "登录成功",
"loginTime": "1683364801882"
},
{
"infoId": "113",
"userName": "maskUser",
"ipaddr": "192.168.56.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "退出成功",
"loginTime": "1683364794403"
},
{
"infoId": "112",
"userName": "maskUser",
"ipaddr": "192.168.56.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "登录成功",
"loginTime": "1683364764244"
},
{
"infoId": "111",
"userName": "wangdf",
"ipaddr": "192.168.56.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "注册成功",
"loginTime": "1683364746502"
},
{
"infoId": "110",
"userName": "maskAdmin",
"ipaddr": "192.168.56.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"status": "1",
"msg": "退出成功",
"loginTime": "1683364727385"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» infoId|string|true|none|登录记录ID|none|
|»» userName|string|true|none|登录用户名称|none|
|»» ipaddr|string|true|none|IP地址|none|
|»» loginLocation|string|true|none|IP地区|none|
|»» browser|string|true|none|浏览器|none|
|»» os|string|true|none|操作系统|none|
|»» status|string|true|none|状态|0失败 1成功|
|»» msg|string|true|none|操作行为|none|
|»» loginTime|string|true|none|登录时间|none|
## POST 登录访问列表导出
POST /monitor/logininfor/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=logininfor_export_124_1684076929742.xlsx
content-length: 24305
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"ipaddr": "string",
"userName": "string",
"status": "string",
"beginTime": "string",
"endTime": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» ipaddr|body|string| 否 | 登录地址ip|none|
|» userName|body|string| 否 | 用户名称|none|
|» status|body|string| 否 | 登录状态|0失败 1成功|
|» beginTime|body|string| 否 | 登录开始时间|none|
|» endTime|body|string| 否 | 登录结束时间|none|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 登录访问清空
DELETE /monitor/logininfor/clean
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 登录访问账户解锁
PUT /monitor/logininfor/unlock/{userName}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|userName|path|string| 是 ||登录用户名|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 登录访问删除
DELETE /monitor/logininfor/{infoIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|infoIds|path|string| 是 ||访问日志ID,多个可用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/在线用户信息
## GET 在线用户列表
GET /monitor/online/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|userName|query|string| 否 ||用户名称(登录账号)|
|ipaddr|query|string| 否 ||登录主机|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"rows": [
{
"tokenId": "vikufxmx625271bnddbe9t79p4pik5kv",
"userName": "maskAdmin",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "未知 未知",
"os": "未知 未知",
"loginTime": 1684046645462,
"deptName": "研发部门"
},
{
"tokenId": "lpatqefeohnxsnjpp28radugp0bovwt1",
"userName": "maskAdmin",
"ipaddr": "127.0.0.1",
"loginLocation": "内网IP",
"browser": "Chrome 86.0.4240.198",
"os": "Windows 10",
"loginTime": 1684046560517,
"deptName": "研发部门"
}
],
"total": 2
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» rows|[object]|true|none||none|
|»» tokenId|string|true|none||none|
|»» userName|string|true|none||none|
|»» ipaddr|string|true|none|登录主机|none|
|»» loginLocation|string|true|none||none|
|»» browser|string|true|none||none|
|»» os|string|true|none||none|
|»» loginTime|integer|true|none||none|
|»» deptName|string|true|none||none|
|» total|integer|true|none||none|
## DELETE 强退用户
DELETE /monitor/online/{tokenId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|tokenId|path|string| 是 ||授权标识|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 否 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 服务器模块/服务器监控信息
## GET 服务器服务信息
GET /monitor/system-info
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"project": {
"appDir": "E:\\Self\\Projects\\mask_api_midwayjs",
"env": "local",
"name": "mask_api_midwayjs",
"version": "0.0.5",
"dependencies": {
"@dropb/diskinfo": "^3.0.0",
"@midwayjs/bootstrap": "^3.0.0",
"@midwayjs/bull": "^3.0.0",
"@midwayjs/core": "^3.0.0",
"@midwayjs/decorator": "^3.0.0",
"@midwayjs/jwt": "^3.0.0",
"@midwayjs/koa": "^3.0.0",
"@midwayjs/cross-domain": "^3.0.0",
"@midwayjs/logger": "^2.0.0",
"@midwayjs/redis": "^3.0.0",
"@midwayjs/static-file": "^3.0.0",
"@midwayjs/typeorm": "^3.0.0",
"@midwayjs/upload": "^3.0.0",
"cron-parser": "^4.0.0",
"bcrypt": "^5.0.0",
"dayjs": "^1.0.0",
"mini-svg-data-uri": "^1.4.0",
"mysql2": "^2.0.0",
"nanoid": "^3.0.0",
"svg-captcha": "^1.4.0",
"typeorm": "^0.3.0",
"ua-parser-js": "^1.0.0",
"xlsx": "^0.18.0"
}
},
"cpu": {
"model": "Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz",
"speed": "2904MHz",
"core": 6,
"coreUsed": [
"12.94",
"16.88",
"14.15",
"14.48",
"13.20",
"15.08"
]
},
"memory": {
"usage": "71.57",
"freemem": "4.51GB",
"totalmem": "15.88GB",
"rss": "309.80MB",
"heapTotal": "252.49MB",
"heapUsed": "246.27MB",
"external": "6.54MB"
},
"network": {
"以太网 2": "IPv4 1.251.212.178",
"以太网": "IPv4 192.168.1.54 / IPv6 fe80::9906:92e5:b85e:3943",
"VirtualBox Host-Only Network": "IPv4 192.168.56.1 / IPv6 fe80::74da:97e8:b5e8:2c78",
"Loopback Pseudo-Interface 1": "IPv4 127.0.0.1 / IPv6 ::1"
},
"time": {
"current": "2023-02-01 17:20:07",
"uptime": "8h",
"timezone": "GMT+0800",
"timezoneName": "中国标准时间"
},
"system": {
"platform": "win32",
"node": "18.11.0",
"v8": "10.2.154.15-node.12",
"processId": 19988,
"arch": "x64",
"uname": "Windows_NT",
"release": "10.0.19045",
"hostname": "DESKTOP-QFRQUSF",
"homeDir": "C:\\Users\\LC1234",
"cmd": "E:\\Self\\Projects\\mask_api_midwayjs",
"execCommand": "D:\\Program Files\\nodejs\\node.exe E:\\Self\\Projects\\mask_api_midwayjs\\node_modules\\@midwayjs\\cli-plugin-dev\\dist\\child.js {\"baseDir\":\"E:\\\\Self\\\\Projects\\\\mask_api_midwayjs\\\\src\",\"_\":[\"dev\"],\"ts\":true,\"npm\":\"npm --registry=https://registry.npmmirror.com\",\"layers\":[],\"port\":\"6275\"} -r E:\\Self\\Projects\\mask_api_midwayjs\\node_modules\\ts-node\\register"
},
"disk": [
{
"size": "100.00GB",
"used": "91.22GB",
"avail": "8.78GB",
"pcent": "92%",
"target": "C:"
},
{
"size": "174.00GB",
"used": "114.02GB",
"avail": "59.98GB",
"pcent": "66%",
"target": "D:"
},
{
"size": "173.12GB",
"used": "138.62GB",
"avail": "34.50GB",
"pcent": "81%",
"target": "E:"
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» project|object|true|none|项目|none|
|»»» appDir|string|true|none||none|
|»»» env|string|true|none||none|
|»»» name|string|true|none||none|
|»»» version|string|true|none||none|
|»»» dependencies|object|false|none||none|
|»»»» xlsx|string|true|none||none|
|»» cpu|object|true|none|CPU|none|
|»»» model|string|true|none||none|
|»»» speed|string|true|none||none|
|»»» core|integer|true|none||none|
|»»» coreUsed|[string]|true|none||none|
|»» memory|object|true|none|内存|none|
|»»» usage|string|true|none||none|
|»»» freemem|string|true|none||none|
|»»» totalmem|string|true|none||none|
|»»» rss|string|true|none||none|
|»»» heapTotal|string|true|none||none|
|»»» heapUsed|string|true|none||none|
|»»» external|string|true|none||none|
|»» network|object|false|none|网络|none|
|»»» 以太网 2|string|false|none||none|
|»»» 以太网|string|false|none||none|
|»»» VirtualBox Host-Only Network|string|false|none||none|
|»»» Loopback Pseudo-Interface 1|string|false|none||none|
|»» time|object|true|none|时间|none|
|»»» current|string|true|none||none|
|»»» uptime|string|true|none||none|
|»»» timezone|string|true|none||none|
|»»» timezoneName|string|true|none||none|
|»» system|object|true|none|系统|none|
|»»» platform|string|true|none||none|
|»»» node|string|true|none||none|
|»»» v8|string|true|none||none|
|»»» processId|integer|true|none||none|
|»»» arch|string|true|none||none|
|»»» uname|string|true|none||none|
|»»» release|string|true|none||none|
|»»» hostname|string|true|none||none|
|»»» homeDir|string|true|none||none|
|»»» cmd|string|true|none||none|
|»»» execCommand|string|true|none||none|
|»» disk|[object]|true|none|磁盘|none|
|»»» size|string|true|none||none|
|»»» used|string|true|none||none|
|»»» avail|string|true|none||none|
|»»» pcent|string|true|none||none|
|»»» target|string|true|none||none|
## GET 资源监控信息加载
GET /monitor/load
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|type|query|string| 是 ||数据类型all/cpu/memory/io/network|
|startTime|query|number| 是 ||开始时间-时间戳毫秒|
|endTime|query|number| 是 ||结束时间-时间戳毫秒|
|neType|query|string| 否 ||网元类型|
|neId|query|string| 否 ||网元ID|
|name|query|string| 否 ||名称,networ和iok时有效|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"project": {
"appDir": "E:\\Self\\Projects\\mask_api_midwayjs",
"env": "local",
"name": "mask_api_midwayjs",
"version": "0.0.5",
"dependencies": {
"@dropb/diskinfo": "^3.0.0",
"@midwayjs/bootstrap": "^3.0.0",
"@midwayjs/bull": "^3.0.0",
"@midwayjs/core": "^3.0.0",
"@midwayjs/decorator": "^3.0.0",
"@midwayjs/jwt": "^3.0.0",
"@midwayjs/koa": "^3.0.0",
"@midwayjs/cross-domain": "^3.0.0",
"@midwayjs/logger": "^2.0.0",
"@midwayjs/redis": "^3.0.0",
"@midwayjs/static-file": "^3.0.0",
"@midwayjs/typeorm": "^3.0.0",
"@midwayjs/upload": "^3.0.0",
"cron-parser": "^4.0.0",
"bcrypt": "^5.0.0",
"dayjs": "^1.0.0",
"mini-svg-data-uri": "^1.4.0",
"mysql2": "^2.0.0",
"nanoid": "^3.0.0",
"svg-captcha": "^1.4.0",
"typeorm": "^0.3.0",
"ua-parser-js": "^1.0.0",
"xlsx": "^0.18.0"
}
},
"cpu": {
"model": "Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz",
"speed": "2904MHz",
"core": 6,
"coreUsed": [
"12.94",
"16.88",
"14.15",
"14.48",
"13.20",
"15.08"
]
},
"memory": {
"usage": "71.57",
"freemem": "4.51GB",
"totalmem": "15.88GB",
"rss": "309.80MB",
"heapTotal": "252.49MB",
"heapUsed": "246.27MB",
"external": "6.54MB"
},
"network": {
"以太网 2": "IPv4 1.251.212.178",
"以太网": "IPv4 192.168.1.54 / IPv6 fe80::9906:92e5:b85e:3943",
"VirtualBox Host-Only Network": "IPv4 192.168.56.1 / IPv6 fe80::74da:97e8:b5e8:2c78",
"Loopback Pseudo-Interface 1": "IPv4 127.0.0.1 / IPv6 ::1"
},
"time": {
"current": "2023-02-01 17:20:07",
"uptime": "8h",
"timezone": "GMT+0800",
"timezoneName": "中国标准时间"
},
"system": {
"platform": "win32",
"node": "18.11.0",
"v8": "10.2.154.15-node.12",
"processId": 19988,
"arch": "x64",
"uname": "Windows_NT",
"release": "10.0.19045",
"hostname": "DESKTOP-QFRQUSF",
"homeDir": "C:\\Users\\LC1234",
"cmd": "E:\\Self\\Projects\\mask_api_midwayjs",
"execCommand": "D:\\Program Files\\nodejs\\node.exe E:\\Self\\Projects\\mask_api_midwayjs\\node_modules\\@midwayjs\\cli-plugin-dev\\dist\\child.js {\"baseDir\":\"E:\\\\Self\\\\Projects\\\\mask_api_midwayjs\\\\src\",\"_\":[\"dev\"],\"ts\":true,\"npm\":\"npm --registry=https://registry.npmmirror.com\",\"layers\":[],\"port\":\"6275\"} -r E:\\Self\\Projects\\mask_api_midwayjs\\node_modules\\ts-node\\register"
},
"disk": [
{
"size": "100.00GB",
"used": "91.22GB",
"avail": "8.78GB",
"pcent": "92%",
"target": "C:"
},
{
"size": "174.00GB",
"used": "114.02GB",
"avail": "59.98GB",
"pcent": "66%",
"target": "D:"
},
{
"size": "173.12GB",
"used": "138.62GB",
"avail": "34.50GB",
"pcent": "81%",
"target": "E:"
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» project|object|true|none|项目|none|
|»»» appDir|string|true|none||none|
|»»» env|string|true|none||none|
|»»» name|string|true|none||none|
|»»» version|string|true|none||none|
|»»» dependencies|object|false|none||none|
|»»»» xlsx|string|true|none||none|
|»» cpu|object|true|none|CPU|none|
|»»» model|string|true|none||none|
|»»» speed|string|true|none||none|
|»»» core|integer|true|none||none|
|»»» coreUsed|[string]|true|none||none|
|»» memory|object|true|none|内存|none|
|»»» usage|string|true|none||none|
|»»» freemem|string|true|none||none|
|»»» totalmem|string|true|none||none|
|»»» rss|string|true|none||none|
|»»» heapTotal|string|true|none||none|
|»»» heapUsed|string|true|none||none|
|»»» external|string|true|none||none|
|»» network|object|false|none|网络|none|
|»»» 以太网 2|string|false|none||none|
|»»» 以太网|string|false|none||none|
|»»» VirtualBox Host-Only Network|string|false|none||none|
|»»» Loopback Pseudo-Interface 1|string|false|none||none|
|»» time|object|true|none|时间|none|
|»»» current|string|true|none||none|
|»»» uptime|string|true|none||none|
|»»» timezone|string|true|none||none|
|»»» timezoneName|string|true|none||none|
|»» system|object|true|none|系统|none|
|»»» platform|string|true|none||none|
|»»» node|string|true|none||none|
|»»» v8|string|true|none||none|
|»»» processId|integer|true|none||none|
|»»» arch|string|true|none||none|
|»»» uname|string|true|none||none|
|»»» release|string|true|none||none|
|»»» hostname|string|true|none||none|
|»»» homeDir|string|true|none||none|
|»»» cmd|string|true|none||none|
|»»» execCommand|string|true|none||none|
|»» disk|[object]|true|none|磁盘|none|
|»»» size|string|true|none||none|
|»»» used|string|true|none||none|
|»»» avail|string|true|none||none|
|»»» pcent|string|true|none||none|
|»»» target|string|true|none||none|
# 系统模块/参数配置信息
## GET 参数配置列表
GET /system/config/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|configName|query|string| 否 ||参数名称|
|configKey|query|string| 否 ||参数键名|
|configType|query|string| 否 ||系统内置-是Y 否N|
|beginTime|query|string| 否 ||创建时间-开始|
|endTime|query|string| 否 ||创建时间-结束|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 4,
"rows": [
{
"configId": 1,
"configName": "用户管理-账号初始密码",
"configKey": "sys.user.initPassword",
"configValue": "123456",
"configType": "Y",
"createBy": "maskAdmin",
"createTime": "1682264527266",
"updateBy": "",
"updateTime": "0",
"remark": "导入用户初始化密码 123456"
},
{
"configId": 2,
"configName": "账号自助-验证码开关",
"configKey": "sys.account.captchaEnabled",
"configValue": "true",
"configType": "Y",
"createBy": "maskAdmin",
"createTime": "1682264527271",
"updateBy": "",
"updateTime": "0",
"remark": "是否开启验证码功能(true开启,false关闭)"
},
{
"configId": 3,
"configName": "账号自助-验证码类型",
"configKey": "sys.account.captchaType",
"configValue": "math",
"configType": "Y",
"createBy": "maskAdmin",
"createTime": "1682264527277",
"updateBy": "",
"updateTime": "0",
"remark": "使用验证码类型(math数值计算,char字符验证)"
},
{
"configId": 4,
"configName": "账号自助-是否开启用户注册功能",
"configKey": "sys.account.registerUser",
"configValue": "true",
"configType": "Y",
"createBy": "maskAdmin",
"createTime": "1682264527280",
"updateBy": "maskAdmin",
"updateTime": "1683291796123",
"remark": "是否开启注册用户功能(true开启,false关闭)"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» configId|integer|true|none|配置ID|none|
|»» configName|string|true|none|配置名称|none|
|»» configKey|string|true|none|参数键名|none|
|»» configValue|string|true|none|配置值|none|
|»» configType|string|true|none|系统内置|Y是 N否|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» updateBy|string|true|none||none|
|»» updateTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## POST 参数配置列表导出
POST /system/config/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=config_export_10_1684131509100.xlsx
content-length: 18337
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"configName": "string",
"configKey": "string",
"beginTime": "string",
"endTime": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» configName|body|string| 否 | 参数名称|none|
|» configKey|body|string| 否 | 参数键名|none|
|» beginTime|body|string| 否 | 创建开始时间|none|
|» endTime|body|string| 否 | 创建结束时间|none|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 根据参数键名取值
GET /system/config/configKey/{configKey}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|configKey|path|string| 是 ||参数键名|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": "true"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none|配置值|none|
## GET 参数配置信息
GET /system/config/{configId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|configId|path|string| 是 ||配置ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"configId": 4,
"configName": "账号自助-是否开启用户注册功能",
"configKey": "sys.account.registerUser",
"configValue": "true",
"configType": "Y",
"createBy": "maskAdmin",
"createTime": "1682264527280",
"updateBy": "maskAdmin",
"updateTime": "1683291796123",
"remark": "是否开启注册用户功能(true开启,false关闭)"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» configId|integer|true|none|配置ID|none|
|»» configName|string|true|none|配置名称|none|
|»» configKey|string|true|none|参数键名|none|
|»» configValue|string|true|none|配置值|none|
|»» configType|string|true|none|系统内置|Y是 N否|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» updateBy|string|true|none||none|
|»» updateTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## POST 参数配置新增
POST /system/config
> Body 请求参数
```json
{
"configName": "string",
"configKey": "string",
"configValue": "string",
"configType": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» configName|body|string| 是 | 配置名称|none|
|» configKey|body|string| 是 | 参数键名|none|
|» configValue|body|string| 是 | 配置值|none|
|» configType|body|string| 是 | 系统内置|Y是 N否|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "参数配置新增【xxxx】失败,参数键名已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 参数配置修改
PUT /system/config
> Body 请求参数
```json
{
"configName": "string",
"configKey": "string",
"configValue": "string",
"configType": "string",
"remark": "string",
"configId": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» configName|body|string| 是 | 配置名称|none|
|» configKey|body|string| 是 | 参数键名|none|
|» configValue|body|string| 是 | 配置值|none|
|» configType|body|string| 是 | 系统内置|Y是 N否|
|» remark|body|string| 是 | 备注|none|
|» configId|body|integer| 是 | 配置ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问参数配置数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 根据参数键名改值
PUT /system/config/changeValue
> Body 请求参数
```json
{
"key": "sys.logo.filePathIcon",
"value": "核心网"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» key|body|string| 是 ||none|
|» value|body|string| 是 ||none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "参数配置新增【xxxx】失败,参数键名已存在"
}
```
```json
{
"code": 1,
"msg": "success"
}
```
```json
{
"code": 0,
"msg": "变更状态与旧值相等!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 参数配置删除
DELETE /system/config/{configIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|configIds|path|string| 是 ||配置ID,多个用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "内置参数 xxx 不能删除"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 参数缓存刷新
PUT /system/config/refreshCache
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 系统模块/部门信息
## GET 部门列表
GET /system/dept/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|status|query|string| 否 ||状态(0正常 1停用)|
|deptName|query|string| 否 ||部门名称|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"deptId": "100",
"parentId": "0",
"ancestors": "0",
"deptName": "MASK科技",
"orderNum": 0,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526241"
},
{
"deptId": "101",
"parentId": "100",
"ancestors": "0,100",
"deptName": "广西总公司",
"orderNum": 1,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526245"
},
{
"deptId": "102",
"parentId": "100",
"ancestors": "0,100",
"deptName": "广东分公司",
"orderNum": 2,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526248"
},
{
"deptId": "103",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "研发部门",
"orderNum": 1,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526251"
},
{
"deptId": "104",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "市场部门",
"orderNum": 2,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526254"
},
{
"deptId": "105",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "测试部门",
"orderNum": 3,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526257"
},
{
"deptId": "106",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "财务部门",
"orderNum": 4,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526261"
},
{
"deptId": "107",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "运维部门",
"orderNum": 5,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526264"
},
{
"deptId": "108",
"parentId": "102",
"ancestors": "0,100,102",
"deptName": "市场部门",
"orderNum": 1,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526268"
},
{
"deptId": "109",
"parentId": "102",
"ancestors": "0,100,102",
"deptName": "财务部门",
"orderNum": 2,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526271"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» deptId|string|true|none|部门ID|none|
|»» parentId|string|true|none|父部门ID|none|
|»» ancestors|string|true|none|祖级列表|none|
|»» deptName|string|true|none|部门名称|none|
|»» orderNum|integer|true|none|显示顺序|none|
|»» leader|string|true|none|负责人|none|
|»» phone|string|true|none|联系电话|none|
|»» email|string|true|none|邮箱|none|
|»» status|string|true|none|部门状态|0正常 1停用|
|»» delFlag|string|true|none|删除标志|0代表存在 1代表删除|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
## GET 部门列表(排除节点)
GET /system/dept/list/exclude/{deptId}
进行更新操作时,可选的上级应排除当前部门下的所有节点
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|deptId|path|string| 是 ||部门编号|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"deptId": "100",
"parentId": "0",
"ancestors": "0",
"deptName": "MASK科技",
"orderNum": 0,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526241"
},
{
"deptId": "102",
"parentId": "100",
"ancestors": "0,100",
"deptName": "广东分公司",
"orderNum": 2,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526248"
},
{
"deptId": "108",
"parentId": "102",
"ancestors": "0,100,102",
"deptName": "市场部门",
"orderNum": 1,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526268"
},
{
"deptId": "109",
"parentId": "102",
"ancestors": "0,100,102",
"deptName": "财务部门",
"orderNum": 2,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"delFlag": "0",
"createBy": "maskAdmin",
"createTime": "1682264526271"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» deptId|string|true|none|部门ID|none|
|»» parentId|string|true|none|父部门ID|none|
|»» ancestors|string|true|none|祖级列表|none|
|»» deptName|string|true|none|部门名称|none|
|»» orderNum|integer|true|none|显示顺序|none|
|»» leader|string|true|none|负责人|none|
|»» phone|string|true|none|联系电话|none|
|»» email|string|true|none|邮箱|none|
|»» status|string|true|none|部门状态|0正常 1停用|
|»» delFlag|string|true|none|删除标志|0代表存在 1代表删除|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
## GET 部门树结构列表
GET /system/dept/treeSelect
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|status|query|string| 否 ||状态(0正常 1停用)|
|deptName|query|string| 否 ||部门名称|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"id": "100",
"label": "MASK科技",
"children": [
{
"id": "101",
"label": "广西总公司",
"children": [
{
"id": "103",
"label": "研发部门",
"children": []
},
{
"id": "104",
"label": "市场部门",
"children": []
},
{
"id": "105",
"label": "测试部门",
"children": []
},
{
"id": "106",
"label": "财务部门",
"children": []
},
{
"id": "107",
"label": "运维部门",
"children": []
}
]
},
{
"id": "102",
"label": "广东分公司",
"children": [
{
"id": "108",
"label": "市场部门",
"children": []
},
{
"id": "109",
"label": "财务部门",
"children": []
}
]
}
]
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» id|string|true|none||none|
|»» label|string|true|none||none|
|»» children|[object]|true|none||none|
|»»» id|string|true|none||none|
|»»» label|string|true|none||none|
|»»» children|[object]|false|none||none|
## GET 部门树结构列表(指定角色)
GET /system/dept/roleDeptTreeSelect/{roleId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|roleId|path|string| 是 ||角色ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"depts": [
{
"id": "100",
"label": "MASK科技",
"children": [
{
"id": "101",
"label": "广西总公司",
"children": [
{
"id": "103",
"label": "研发部门",
"children": []
},
{
"id": "104",
"label": "市场部门",
"children": []
},
{
"id": "105",
"label": "测试部门",
"children": []
},
{
"id": "106",
"label": "财务部门",
"children": []
},
{
"id": "107",
"label": "运维部门",
"children": []
}
]
},
{
"id": "102",
"label": "广东分公司",
"children": [
{
"id": "108",
"label": "市场部门",
"children": []
},
{
"id": "109",
"label": "财务部门",
"children": []
}
]
}
]
}
],
"checkedKeys": []
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» depts|[object]|true|none|部门节点|none|
|»»» id|string|true|none|ID|none|
|»»» label|string|true|none|名称|none|
|»»» children|[object]|true|none|子节点|none|
|»»»» id|string|false|none|ID|none|
|»»»» label|string|false|none|名称|none|
|»»»» children|[object]|false|none|子节点|none|
|»» checkedKeys|[object]|true|none|已选ID数组|none|
## POST 部门新增
POST /system/dept
> Body 请求参数
```json
{
"orderNum": 0,
"deptName": "string",
"leader": "string",
"phone": "string",
"email": "string",
"status": "string",
"parentId": "string",
"parentName": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» orderNum|body|integer| 是 | 显示顺序|none|
|» deptName|body|string| 是 | 部门名称|none|
|» leader|body|string| 是 | 负责人|none|
|» phone|body|string| 是 | 联系电话|none|
|» email|body|string| 是 | 邮箱|none|
|» status|body|string| 是 | 部门状态|0正常 1停用|
|» parentId|body|string| 是 | 父部门ID|0为根节点|
|» parentName|body|string| 否 | 父部门名称|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "部门新增【xxx】失败,部门名称已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 部门修改
PUT /system/dept
> Body 请求参数
```json
{
"orderNum": 0,
"deptName": "string",
"leader": "string",
"phone": "string",
"email": "string",
"status": "string",
"parentId": "string",
"parentName": "string",
"deptId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» orderNum|body|integer| 是 | 显示顺序|none|
|» deptName|body|string| 是 | 部门名称|none|
|» leader|body|string| 是 | 负责人|none|
|» phone|body|string| 是 | 联系电话|none|
|» email|body|string| 是 | 邮箱|none|
|» status|body|string| 是 | 部门状态|0正常 1停用|
|» parentId|body|string| 是 | 父部门ID|none|
|» parentName|body|string| 否 | 父部门名称|none|
|» deptId|body|string| 是 | 部门ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问部门数据"
}
```
```json
{
"code": 500,
"msg": "部门修改【拉高济查】失败,上级部门不能是自己"
}
```
```json
{
"code": 500,
"msg": "该部门包含未停用的子部门!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 部门删除
DELETE /system/dept/{deptId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|deptId|path|string| 是 ||部门ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问部门数据"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 部门信息
GET /system/dept/{deptId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|deptId|path|string| 是 ||部门编号|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"deptId": "109",
"parentId": "102",
"ancestors": "0,100,102",
"deptName": "财务部门",
"orderNum": 2,
"leader": "MASK",
"phone": "15888888888",
"email": "mask@qq.com",
"status": "1",
"parentName": "广东分公司"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» deptId|string|true|none|部门ID|none|
|»» parentId|string|true|none|父部门ID|none|
|»» ancestors|string|true|none|祖级列表|none|
|»» deptName|string|true|none|部门名称|none|
|»» orderNum|integer|true|none|显示顺序|none|
|»» leader|string|true|none|负责人|none|
|»» phone|string|true|none|联系电话|none|
|»» email|string|true|none|邮箱|none|
|»» status|string|true|none|部门状态|0正常 1停用|
|»» parentName|string|true|none|父部门名称|none|
# 系统模块/字典数据信息
## POST 字典数据列表导出
POST /system/dict/data/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=dict_data_export_10_1684245668586.xlsx
content-length: 18236
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"dictLabel": "string",
"dictType": "string",
"status": "string",
"beginTime": "string",
"endTime": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dictLabel|body|string| 否 | 数据标签|none|
|» dictType|body|string| 否 | 字典类型|none|
|» status|body|string| 否 | 状态|0正常 1停用|
|» beginTime|body|string| 否 | 创建开始时间|none|
|» endTime|body|string| 否 | 创建结束时间|none|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 字典数据列表
GET /system/dict/data/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictType|query|string| 否 ||字典类型|
|dictLabel|query|string| 否 ||数据标签|
|status|query|string| 否 ||状态(0正常 1停用)|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 3,
"rows": [
{
"dictCode": "1",
"dictSort": 1,
"dictLabel": "未知",
"dictValue": "0",
"dictType": "sys_user_sex",
"tagClass": "",
"tagType": "",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527109",
"remark": "性别男"
},
{
"dictCode": "2",
"dictSort": 2,
"dictLabel": "男",
"dictValue": "1",
"dictType": "sys_user_sex",
"tagClass": "",
"tagType": "",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527118",
"remark": "性别女"
},
{
"dictCode": "3",
"dictSort": 3,
"dictLabel": "女",
"dictValue": "2",
"dictType": "sys_user_sex",
"tagClass": "",
"tagType": "",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527126",
"remark": "性别未知"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» dictCode|string|true|none|编码ID|none|
|»» dictSort|integer|true|none|排序|none|
|»» dictLabel|string|true|none|标签名称|none|
|»» dictValue|string|true|none|标签值|none|
|»» dictType|string|true|none|字典类型|从字典类型列表中获取|
|»» tagClass|string|true|none|样式属性(样式扩展)|预设的class样式|
|»» tagType|string|true|none|标签类型(预设颜色)|预设数据固定项|
|»» status|string|true|none|状态|0停用 1正常|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## GET 字典数据详情
GET /system/dict/data/{dictCode}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictCode|path|string| 是 ||编码ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"dictCode": "15",
"dictSort": 2,
"dictLabel": "公告",
"dictValue": "2",
"dictType": "sys_notice_type",
"tagClass": "",
"tagType": "processing",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527183",
"remark": "公告"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» dictCode|string|true|none|编码ID|none|
|»» dictSort|integer|true|none|排序|none|
|»» dictLabel|string|true|none|标签名称|none|
|»» dictValue|string|true|none|标签值|none|
|»» dictType|string|true|none|字典类型|从字典类型列表中获取|
|»» tagClass|string|true|none|样式属性(样式扩展)|预设的class样式|
|»» tagType|string|true|none|标签类型(预设颜色)|预设数据固定项|
|»» status|string|true|none|状态|0停用 1正常|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## GET 字典数据列表(指定字典类型)
GET /system/dict/data/type/{dictType}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictType|path|string| 是 ||字典类型,从字典类型列表中获取|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"dictCode": "1",
"dictSort": 1,
"dictLabel": "未知",
"dictValue": "0",
"dictType": "sys_user_sex",
"tagClass": "",
"tagType": "",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527109",
"remark": "性别男"
},
{
"dictCode": "2",
"dictSort": 2,
"dictLabel": "男",
"dictValue": "1",
"dictType": "sys_user_sex",
"tagClass": "",
"tagType": "",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527118",
"remark": "性别女"
},
{
"dictCode": "3",
"dictSort": 3,
"dictLabel": "女",
"dictValue": "2",
"dictType": "sys_user_sex",
"tagClass": "",
"tagType": "",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527126",
"remark": "性别未知"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» dictCode|string|false|none|编码ID|none|
|»» dictSort|integer|false|none|排序|none|
|»» dictLabel|string|false|none|标签名称|none|
|»» dictValue|string|false|none|标签值|none|
|»» dictType|string|false|none|字典类型|从字典类型列表中获取|
|»» tagClass|string|false|none|样式属性(样式扩展)|预设的class样式|
|»» tagType|string|false|none|标签类型(预设颜色)|预设数据固定项|
|»» status|string|false|none|状态|0停用 1正常|
|»» createBy|string|false|none||none|
|»» createTime|string|false|none||none|
|»» remark|string|false|none|备注|none|
## POST 字典数据新增
POST /system/dict/data
> Body 请求参数
```json
{
"dictType": "string",
"dictLabel": "string",
"dictValue": "string",
"dictSort": 0,
"tagClass": "string",
"tagType": "string",
"status": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dictType|body|string| 是 | 字典类型|从字典类型列表中获取|
|» dictLabel|body|string| 是 | 标签名称|none|
|» dictValue|body|string| 是 | 标签值|none|
|» dictSort|body|integer| 是 | 排序|none|
|» tagClass|body|string| 是 | 样式属性(样式扩展)|预设的class样式|
|» tagType|body|string| 是 | 标签类型(预设颜色)|预设数据固定项|
|» status|body|string| 是 | 状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "数据新增【xxxx】失败,该字典类型下标签名已存在"
}
```
```json
{
"code": 500,
"msg": "数据新增【x】失败,该字典类型下标签值已存在"
}
```
```json
{
"code": 500,
"msg": "没有权限访问字典类型数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 字典数据修改
PUT /system/dict/data
> Body 请求参数
```json
{
"dictCode": "string",
"dictType": "string",
"dictLabel": "string",
"dictValue": "string",
"dictSort": 0,
"tagClass": "string",
"tagType": "string",
"status": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dictCode|body|string| 是 | 编码ID|none|
|» dictType|body|string| 是 | 字典类型|从字典类型列表中获取|
|» dictLabel|body|string| 是 | 标签名称|none|
|» dictValue|body|string| 是 | 标签值|none|
|» dictSort|body|integer| 是 | 排序|none|
|» tagClass|body|string| 是 | 样式属性(样式扩展)|预设的class样式|
|» tagType|body|string| 是 | 标签类型(预设颜色)|预设数据固定项|
|» status|body|string| 是 | 状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问字典类型数据!"
}
```
```json
{
"code": 500,
"msg": "没有权限访问字典编码数据!"
}
```
```json
{
"code": 500,
"msg": "数据修改【x】失败,该字典类型下标签值已存在"
}
```
```json
{
"code": 500,
"msg": "数据修改【xxxx】失败,该字典类型下标签名已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 字典数据删除
DELETE /system/dict/data/{dictCodes}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictCodes|path|string| 是 ||字典编码ID,多个用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问字典编码数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 系统模块/字典类型信息
## GET 字典类型列表
GET /system/dict/type/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictName|query|string| 否 ||名称|
|dictType|query|string| 否 ||类型|
|status|query|string| 否 ||状态(0正常 1停用)|
|beginTime|query|string| 否 ||创建时间-开始|
|endTime|query|string| 否 ||创建时间-结束|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 10,
"rows": [
{
"dictId": "1",
"dictName": "用户性别",
"dictType": "sys_user_sex",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526985",
"remark": "用户性别列表"
},
{
"dictId": "2",
"dictName": "菜单状态",
"dictType": "sys_show_hide",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526992",
"remark": "菜单状态列表"
},
{
"dictId": "3",
"dictName": "系统开关",
"dictType": "sys_normal_disable",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526999",
"remark": "系统开关列表"
},
{
"dictId": "4",
"dictName": "任务状态",
"dictType": "sys_job_status",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527005",
"remark": "任务状态列表"
},
{
"dictId": "5",
"dictName": "任务分组",
"dictType": "sys_job_group",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527010",
"remark": "任务分组列表"
},
{
"dictId": "6",
"dictName": "系统是否",
"dictType": "sys_yes_no",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527016",
"remark": "系统是否列表"
},
{
"dictId": "7",
"dictName": "通知类型",
"dictType": "sys_notice_type",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527023",
"remark": "通知类型列表"
},
{
"dictId": "8",
"dictName": "通知状态",
"dictType": "sys_notice_status",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527029",
"remark": "通知状态列表"
},
{
"dictId": "9",
"dictName": "操作类型",
"dictType": "sys_oper_type",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527035",
"remark": "操作类型列表"
},
{
"dictId": "10",
"dictName": "系统状态",
"dictType": "sys_common_status",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264527042",
"remark": "登录状态列表"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» dictId|string|true|none|字典ID|none|
|»» dictName|string|true|none|名称|none|
|»» dictType|string|true|none|类型|none|
|»» status|string|true|none|状态|0停用 1正常|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## GET 字典类型详细
GET /system/dict/type/{dictId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictId|path|string| 是 ||字典ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"dictId": "1",
"dictName": "用户性别",
"dictType": "sys_user_sex",
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526985",
"remark": "用户性别列表"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» dictId|string|true|none|字典ID|none|
|»» dictName|string|true|none|名称|none|
|»» dictType|string|true|none|类型|none|
|»» status|string|true|none|状态|0停用 1正常|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## POST 字典类型列表导出
POST /system/dict/type/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=dict_type_export_12_1684240671183.xlsx
content-length: 18246
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"dictName": "string",
"dictType": "string",
"status": "string",
"beginTime": "string",
"endTime": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dictName|body|string| 否 | 名称|none|
|» dictType|body|string| 否 | 类型|none|
|» status|body|string| 否 | 状态|0正常 1停用|
|» beginTime|body|string| 否 | 创建开始时间|none|
|» endTime|body|string| 否 | 创建结束时间|none|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## POST 字典类型新增
POST /system/dict/type
> Body 请求参数
```json
{
"dictName": "string",
"dictType": "string",
"status": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dictName|body|string| 是 | 名称|none|
|» dictType|body|string| 是 | 类型|none|
|» status|body|string| 是 | 状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "字典新增【xxx】失败,字典名称已存在"
}
```
```json
{
"code": 500,
"msg": "字典新增【xxxx】失败,字典类型已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 字典类型修改
PUT /system/dict/type
> Body 请求参数
```json
{
"dictName": "string",
"dictType": "string",
"remark": "string",
"status": "string",
"dictId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dictName|body|string| 是 | 名称|none|
|» dictType|body|string| 是 | 类型|none|
|» remark|body|string| 是 | 备注|none|
|» status|body|string| 是 | 状态|0停用 1正常|
|» dictId|body|string| 否 | 字典ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "字典修改【xxxx】失败,字典名称已存在"
}
```
```json
{
"code": 500,
"msg": "字典修改【xxxx】失败,字典类型已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 字典类型删除
DELETE /system/dict/type/{dictIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|dictIds|path|string| 是 ||字典ID,多个用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问字典类型数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 字典类型选择框列表
GET /system/dict/type/getDictOptionselect
在字典数据中进行下拉项选择
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"label": "用户性别",
"value": "sys_user_sex"
},
{
"label": "菜单状态",
"value": "sys_show_hide"
},
{
"label": "系统开关",
"value": "sys_normal_disable"
},
{
"label": "任务状态",
"value": "sys_job_status"
},
{
"label": "任务分组",
"value": "sys_job_group"
},
{
"label": "系统是否",
"value": "sys_yes_no"
},
{
"label": "通知类型",
"value": "sys_notice_type"
},
{
"label": "通知状态",
"value": "sys_notice_status"
},
{
"label": "操作类型",
"value": "sys_oper_type"
},
{
"label": "系统状态",
"value": "sys_common_status"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» label|string|true|none|标签名称|none|
|»» value|string|true|none|标签值|none|
## PUT 字典类型刷新缓存
PUT /system/dict/type/refreshCache
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 系统模块/菜单信息
## GET 菜单列表
GET /system/menu/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|menuName|query|string| 否 ||菜单名称|
|status|query|string| 否 ||菜单状态 0正常 1停用|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"menuId": "1",
"menuName": "系统管理",
"parentId": "0",
"menuSort": 1,
"path": "system",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "D",
"visible": "1",
"status": "1",
"perms": "",
"icon": "#",
"createTime": "1682264526443",
"remark": "系统管理目录"
},
{
"menuId": "2",
"menuName": "系统监控",
"parentId": "0",
"menuSort": 2,
"path": "monitor",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "D",
"visible": "1",
"status": "1",
"perms": "",
"icon": "#",
"createTime": "1682264526448",
"remark": "系统监控目录"
},
{
"menuId": "3",
"menuName": "系统工具",
"parentId": "0",
"menuSort": 3,
"path": "tool",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "D",
"visible": "1",
"status": "1",
"perms": "",
"icon": "#",
"createTime": "1682264526452",
"remark": "系统工具目录"
},
{
"menuId": "4",
"menuName": "开源仓库",
"parentId": "0",
"menuSort": 4,
"path": "https://gitee.com/TsMask",
"component": "",
"isFrame": "0",
"isCache": "0",
"menuType": "D",
"visible": "1",
"status": "1",
"perms": "",
"icon": "#",
"createTime": "1682264526456",
"remark": "开源仓库跳转外部链接打开新窗口"
},
{
"menuId": "100",
"menuName": "用户管理",
"parentId": "1",
"menuSort": 1,
"path": "user",
"component": "system/user/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:user:list",
"icon": "#",
"createTime": "1682264526459",
"remark": "用户管理菜单"
},
{
"menuId": "101",
"menuName": "角色管理",
"parentId": "1",
"menuSort": 2,
"path": "role",
"component": "system/role/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:role:list",
"icon": "#",
"createTime": "1682264526463",
"remark": "角色管理菜单"
},
{
"menuId": "102",
"menuName": "分配角色",
"parentId": "1",
"menuSort": 3,
"path": "role/inline/auth-user/:roleId",
"component": "system/role/auth-user",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "0",
"status": "1",
"perms": "system:role:auth",
"icon": "#",
"createTime": "1682264526467",
"remark": "分配角色内嵌隐藏菜单"
},
{
"menuId": "103",
"menuName": "菜单管理",
"parentId": "1",
"menuSort": 4,
"path": "menu",
"component": "system/menu/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:menu:list",
"icon": "#",
"createTime": "1682264526471",
"remark": "菜单管理菜单"
},
{
"menuId": "104",
"menuName": "部门管理",
"parentId": "1",
"menuSort": 5,
"path": "dept",
"component": "system/dept/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:dept:list",
"icon": "#",
"createTime": "1682264526475",
"remark": "部门管理菜单"
},
{
"menuId": "105",
"menuName": "岗位管理",
"parentId": "1",
"menuSort": 6,
"path": "post",
"component": "system/post/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:post:list",
"icon": "#",
"createTime": "1682264526479",
"remark": "岗位管理菜单"
},
{
"menuId": "106",
"menuName": "字典管理",
"parentId": "1",
"menuSort": 7,
"path": "dict",
"component": "system/dict/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:dict:list",
"icon": "#",
"createTime": "1682264526484",
"remark": "字典管理菜单"
},
{
"menuId": "107",
"menuName": "字典数据",
"parentId": "1",
"menuSort": 8,
"path": "dict/inline/data/:dictId",
"component": "system/dict/data",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "0",
"status": "1",
"perms": "system:dict:data",
"icon": "#",
"createTime": "1682264526488",
"remark": "字典数据内嵌隐藏菜单"
},
{
"menuId": "108",
"menuName": "参数设置",
"parentId": "1",
"menuSort": 9,
"path": "config",
"component": "system/config/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:config:list",
"icon": "#",
"createTime": "1682264526491",
"remark": "参数设置菜单"
},
{
"menuId": "109",
"menuName": "通知公告",
"parentId": "1",
"menuSort": 10,
"path": "notice",
"component": "system/notice/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:notice:list",
"icon": "#",
"createTime": "1682264526495",
"remark": "通知公告菜单"
},
{
"menuId": "111",
"menuName": "日志管理",
"parentId": "1",
"menuSort": 11,
"path": "log",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "D",
"visible": "1",
"status": "1",
"perms": "",
"icon": "#",
"createTime": "1682264526498",
"remark": "日志管理菜单"
},
{
"menuId": "112",
"menuName": "服务监控",
"parentId": "2",
"menuSort": 1,
"path": "server-info",
"component": "monitor/server/info",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:server:info",
"icon": "#",
"createTime": "1682264526502",
"remark": "服务监控菜单"
},
{
"menuId": "113",
"menuName": "缓存监控",
"parentId": "2",
"menuSort": 2,
"path": "cache-info",
"component": "monitor/cache/info",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:cache:info",
"icon": "#",
"createTime": "1682264526505",
"remark": "缓存监控菜单"
},
{
"menuId": "114",
"menuName": "缓存列表",
"parentId": "2",
"menuSort": 3,
"path": "cache",
"component": "monitor/cache/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:cache:list",
"icon": "#",
"createTime": "1682264526509",
"remark": "缓存列表菜单"
},
{
"menuId": "115",
"menuName": "在线用户",
"parentId": "2",
"menuSort": 4,
"path": "online",
"component": "monitor/online/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:online:list",
"icon": "#",
"createTime": "1682264526513",
"remark": "在线用户菜单"
},
{
"menuId": "116",
"menuName": "调度任务",
"parentId": "2",
"menuSort": 5,
"path": "job",
"component": "monitor/job/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:job:list",
"icon": "#",
"createTime": "1682264526517",
"remark": "调度任务菜单"
},
{
"menuId": "117",
"menuName": "调度日志",
"parentId": "2",
"menuSort": 6,
"path": "job/inline/log/:jobId",
"component": "monitor/job/log",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "0",
"status": "1",
"perms": "monitor:job:log",
"icon": "#",
"createTime": "1682264526520",
"remark": "调度日志内嵌隐藏菜单"
},
{
"menuId": "118",
"menuName": "系统接口",
"parentId": "3",
"menuSort": 1,
"path": "swagger",
"component": "tool/swagger/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:swagger:list",
"icon": "#",
"createTime": "1682264526524",
"remark": "系统接口菜单"
},
{
"menuId": "1000",
"menuName": "用户查询",
"parentId": "100",
"menuSort": 1,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:query",
"icon": "#",
"createTime": "1682264526537",
"remark": ""
},
{
"menuId": "1001",
"menuName": "用户新增",
"parentId": "100",
"menuSort": 2,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:add",
"icon": "#",
"createTime": "1682264526540",
"remark": ""
},
{
"menuId": "1002",
"menuName": "用户修改",
"parentId": "100",
"menuSort": 3,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:edit",
"icon": "#",
"createTime": "1682264526545",
"remark": ""
},
{
"menuId": "1003",
"menuName": "用户删除",
"parentId": "100",
"menuSort": 4,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:remove",
"icon": "#",
"createTime": "1682264526549",
"remark": ""
},
{
"menuId": "1004",
"menuName": "用户导出",
"parentId": "100",
"menuSort": 5,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:export",
"icon": "#",
"createTime": "1682264526552",
"remark": ""
},
{
"menuId": "1005",
"menuName": "用户导入",
"parentId": "100",
"menuSort": 6,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:import",
"icon": "#",
"createTime": "1682264526556",
"remark": ""
},
{
"menuId": "1006",
"menuName": "重置密码",
"parentId": "100",
"menuSort": 7,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:user:resetPwd",
"icon": "#",
"createTime": "1682264526561",
"remark": ""
},
{
"menuId": "1007",
"menuName": "角色查询",
"parentId": "101",
"menuSort": 1,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:role:query",
"icon": "#",
"createTime": "1682264526564",
"remark": ""
},
{
"menuId": "1008",
"menuName": "角色新增",
"parentId": "101",
"menuSort": 2,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:role:add",
"icon": "#",
"createTime": "1682264526567",
"remark": ""
},
{
"menuId": "1009",
"menuName": "角色修改",
"parentId": "101",
"menuSort": 3,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:role:edit",
"icon": "#",
"createTime": "1682264526571",
"remark": ""
},
{
"menuId": "1010",
"menuName": "角色删除",
"parentId": "101",
"menuSort": 4,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:role:remove",
"icon": "#",
"createTime": "1682264526575",
"remark": ""
},
{
"menuId": "1011",
"menuName": "角色导出",
"parentId": "101",
"menuSort": 5,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:role:export",
"icon": "#",
"createTime": "1682264526579",
"remark": ""
},
{
"menuId": "1012",
"menuName": "菜单查询",
"parentId": "103",
"menuSort": 1,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:menu:query",
"icon": "#",
"createTime": "1682264526583",
"remark": ""
},
{
"menuId": "1013",
"menuName": "菜单新增",
"parentId": "103",
"menuSort": 2,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:menu:add",
"icon": "#",
"createTime": "1682264526586",
"remark": ""
},
{
"menuId": "1014",
"menuName": "菜单修改",
"parentId": "103",
"menuSort": 3,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:menu:edit",
"icon": "#",
"createTime": "1682264526589",
"remark": ""
},
{
"menuId": "1015",
"menuName": "菜单删除",
"parentId": "103",
"menuSort": 4,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:menu:remove",
"icon": "#",
"createTime": "1682264526592",
"remark": ""
},
{
"menuId": "1016",
"menuName": "部门查询",
"parentId": "104",
"menuSort": 1,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dept:query",
"icon": "#",
"createTime": "1682264526595",
"remark": ""
},
{
"menuId": "1017",
"menuName": "部门新增",
"parentId": "104",
"menuSort": 2,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dept:add",
"icon": "#",
"createTime": "1682264526598",
"remark": ""
},
{
"menuId": "1018",
"menuName": "部门修改",
"parentId": "104",
"menuSort": 3,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dept:edit",
"icon": "#",
"createTime": "1682264526600",
"remark": ""
},
{
"menuId": "1019",
"menuName": "部门删除",
"parentId": "104",
"menuSort": 4,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dept:remove",
"icon": "#",
"createTime": "1682264526603",
"remark": ""
},
{
"menuId": "1020",
"menuName": "岗位查询",
"parentId": "105",
"menuSort": 1,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:post:query",
"icon": "#",
"createTime": "1682264526606",
"remark": ""
},
{
"menuId": "1021",
"menuName": "岗位新增",
"parentId": "105",
"menuSort": 2,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:post:add",
"icon": "#",
"createTime": "1682264526609",
"remark": ""
},
{
"menuId": "1022",
"menuName": "岗位修改",
"parentId": "105",
"menuSort": 3,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:post:edit",
"icon": "#",
"createTime": "1682264526612",
"remark": ""
},
{
"menuId": "1023",
"menuName": "岗位删除",
"parentId": "105",
"menuSort": 4,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:post:remove",
"icon": "#",
"createTime": "1682264526616",
"remark": ""
},
{
"menuId": "1024",
"menuName": "岗位导出",
"parentId": "105",
"menuSort": 5,
"path": "",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:post:export",
"icon": "#",
"createTime": "1682264526618",
"remark": ""
},
{
"menuId": "1025",
"menuName": "字典查询",
"parentId": "106",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dict:query",
"icon": "#",
"createTime": "1682264526621",
"remark": ""
},
{
"menuId": "1026",
"menuName": "字典新增",
"parentId": "106",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dict:add",
"icon": "#",
"createTime": "1682264526623",
"remark": ""
},
{
"menuId": "1027",
"menuName": "字典修改",
"parentId": "106",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dict:edit",
"icon": "#",
"createTime": "1682264526627",
"remark": ""
},
{
"menuId": "1028",
"menuName": "字典删除",
"parentId": "106",
"menuSort": 4,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dict:remove",
"icon": "#",
"createTime": "1682264526630",
"remark": ""
},
{
"menuId": "1029",
"menuName": "字典导出",
"parentId": "106",
"menuSort": 5,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:dict:export",
"icon": "#",
"createTime": "1682264526632",
"remark": ""
},
{
"menuId": "1030",
"menuName": "参数查询",
"parentId": "108",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:config:query",
"icon": "#",
"createTime": "1682264526635",
"remark": ""
},
{
"menuId": "1031",
"menuName": "参数新增",
"parentId": "108",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:config:add",
"icon": "#",
"createTime": "1682264526638",
"remark": ""
},
{
"menuId": "1032",
"menuName": "参数修改",
"parentId": "108",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:config:edit",
"icon": "#",
"createTime": "1682264526640",
"remark": ""
},
{
"menuId": "1033",
"menuName": "参数删除",
"parentId": "108",
"menuSort": 4,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:config:remove",
"icon": "#",
"createTime": "1682264526643",
"remark": ""
},
{
"menuId": "1034",
"menuName": "参数导出",
"parentId": "108",
"menuSort": 5,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:config:export",
"icon": "#",
"createTime": "1682264526646",
"remark": ""
},
{
"menuId": "1035",
"menuName": "公告查询",
"parentId": "109",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:notice:query",
"icon": "#",
"createTime": "1682264526650",
"remark": ""
},
{
"menuId": "1036",
"menuName": "公告新增",
"parentId": "109",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:notice:add",
"icon": "#",
"createTime": "1682264526654",
"remark": ""
},
{
"menuId": "1037",
"menuName": "公告修改",
"parentId": "109",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:notice:edit",
"icon": "#",
"createTime": "1682264526658",
"remark": ""
},
{
"menuId": "1038",
"menuName": "公告删除",
"parentId": "109",
"menuSort": 4,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "system:notice:remove",
"icon": "#",
"createTime": "1682264526662",
"remark": ""
},
{
"menuId": "500",
"menuName": "操作日志",
"parentId": "111",
"menuSort": 1,
"path": "operlog",
"component": "monitor/operlog/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:operlog:list",
"icon": "#",
"createTime": "1682264526528",
"remark": "操作日志菜单"
},
{
"menuId": "501",
"menuName": "登录日志",
"parentId": "111",
"menuSort": 2,
"path": "logininfor",
"component": "monitor/logininfor/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "monitor:logininfor:list",
"icon": "#",
"createTime": "1682264526532",
"remark": "登录日志菜单"
},
{
"menuId": "1046",
"menuName": "缓存查询",
"parentId": "114",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:cache:query",
"icon": "#",
"createTime": "1682264526692",
"remark": ""
},
{
"menuId": "1047",
"menuName": "缓存删除",
"parentId": "114",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:cache:remove",
"icon": "#",
"createTime": "1682264526696",
"remark": ""
},
{
"menuId": "1048",
"menuName": "在线查询",
"parentId": "115",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:online:query",
"icon": "#",
"createTime": "1682264526700",
"remark": ""
},
{
"menuId": "1049",
"menuName": "批量强退",
"parentId": "115",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:online:batchLogout",
"icon": "#",
"createTime": "1682264526704",
"remark": ""
},
{
"menuId": "1050",
"menuName": "单条强退",
"parentId": "115",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:online:forceLogout",
"icon": "#",
"createTime": "1682264526707",
"remark": ""
},
{
"menuId": "1051",
"menuName": "任务查询",
"parentId": "116",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:job:query",
"icon": "#",
"createTime": "1682264526713",
"remark": ""
},
{
"menuId": "1052",
"menuName": "任务新增",
"parentId": "116",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:job:add",
"icon": "#",
"createTime": "1682264526717",
"remark": ""
},
{
"menuId": "1053",
"menuName": "任务修改",
"parentId": "116",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:job:edit",
"icon": "#",
"createTime": "1682264526721",
"remark": ""
},
{
"menuId": "1054",
"menuName": "任务删除",
"parentId": "116",
"menuSort": 4,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:job:remove",
"icon": "#",
"createTime": "1682264526725",
"remark": ""
},
{
"menuId": "1055",
"menuName": "状态修改",
"parentId": "116",
"menuSort": 5,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:job:changeStatus",
"icon": "#",
"createTime": "1682264526730",
"remark": ""
},
{
"menuId": "1056",
"menuName": "任务导出",
"parentId": "116",
"menuSort": 6,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:job:export",
"icon": "#",
"createTime": "1682264526735",
"remark": ""
},
{
"menuId": "1039",
"menuName": "操作查询",
"parentId": "500",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:operlog:query",
"icon": "#",
"createTime": "1682264526665",
"remark": ""
},
{
"menuId": "1040",
"menuName": "操作删除",
"parentId": "500",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:operlog:remove",
"icon": "#",
"createTime": "1682264526670",
"remark": ""
},
{
"menuId": "1041",
"menuName": "日志导出",
"parentId": "500",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:operlog:export",
"icon": "#",
"createTime": "1682264526673",
"remark": ""
},
{
"menuId": "1042",
"menuName": "登录查询",
"parentId": "501",
"menuSort": 1,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:logininfor:query",
"icon": "#",
"createTime": "1682264526677",
"remark": ""
},
{
"menuId": "1043",
"menuName": "登录删除",
"parentId": "501",
"menuSort": 2,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:logininfor:remove",
"icon": "#",
"createTime": "1682264526681",
"remark": ""
},
{
"menuId": "1044",
"menuName": "日志导出",
"parentId": "501",
"menuSort": 3,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:logininfor:export",
"icon": "#",
"createTime": "1682264526684",
"remark": ""
},
{
"menuId": "1045",
"menuName": "账户解锁",
"parentId": "501",
"menuSort": 4,
"path": "#",
"component": "",
"isFrame": "1",
"isCache": "1",
"menuType": "B",
"visible": "1",
"status": "1",
"perms": "monitor:logininfor:unlock",
"icon": "#",
"createTime": "1682264526688",
"remark": ""
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» menuId|string|true|none|菜单ID|none|
|»» menuName|string|true|none|菜单名称|none|
|»» parentId|string|true|none|父菜单ID|none|
|»» menuSort|integer|true|none|显示顺序|none|
|»» path|string|true|none|路由地址|none|
|»» component|string|true|none|组件路径|none|
|»» isFrame|string|true|none|是否内部跳转|0否 1是|
|»» isCache|string|true|none|是否缓存|0不缓存 1缓存|
|»» menuType|string|true|none|菜单类型|D目录 M菜单 B按钮|
|»» visible|string|true|none|是否显示|0隐藏 1显示|
|»» status|string|true|none|状态|0停用 1正常|
|»» perms|string|true|none|权限标识|none|
|»» icon|string|true|none|图标|无图标要#号或空字符串|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## GET 菜单信息
GET /system/menu/{menuId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|menuId|path|string| 是 ||菜单ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"menuId": "100",
"menuName": "用户管理",
"parentId": "1",
"menuSort": 1,
"path": "user",
"component": "system/user/index",
"isFrame": "1",
"isCache": "1",
"menuType": "M",
"visible": "1",
"status": "1",
"perms": "system:user:list",
"icon": "#",
"createTime": "1682264526459",
"remark": "用户管理菜单"
}
}
```
```json
{
"code": 200,
"msg": "成功",
"data": null
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» menuId|string|true|none|菜单ID|none|
|»» menuName|string|true|none|菜单名称|none|
|»» parentId|string|true|none|父菜单ID|none|
|»» menuSort|integer|true|none|显示顺序|none|
|»» path|string|true|none|路由地址|none|
|»» component|string|true|none|组件路径|none|
|»» isFrame|string|true|none|是否内部跳转|0否 1是|
|»» isCache|string|true|none|是否缓存|0不缓存 1缓存|
|»» menuType|string|true|none|菜单类型|D目录 M菜单 B按钮|
|»» visible|string|true|none|是否显示|0隐藏 1显示|
|»» status|string|true|none|状态|0停用 1正常|
|»» perms|string|true|none|权限标识|none|
|»» icon|string|true|none|图标|无图标要#号或空字符串|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## DELETE 菜单删除
DELETE /system/menu/{menuId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|menuId|path|string| 是 ||菜单ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问菜单数据"
}
```
```json
{
"code": 500,
"msg": "存在子菜单,不允许删除"
}
```
```json
{
"code": 500,
"msg": "菜单已分配给角色,不允许删除"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 菜单修改
PUT /system/menu
> Body 请求参数
```json
{
"menuId": "string",
"parentId": "string",
"menuName": "string",
"menuType": "string",
"menuSort": 0,
"isFrame": "string",
"isCache": "string",
"visible": "string",
"status": "string",
"icon": "string",
"path": "string",
"component": "string",
"perms": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» menuId|body|string| 是 | 菜单ID|none|
|» parentId|body|string| 是 | 父菜单ID|none|
|» menuName|body|string| 是 | 菜单名称|none|
|» menuType|body|string| 是 | 菜单类型|D目录 M菜单 B按钮|
|» menuSort|body|integer| 是 | 显示顺序|默认0|
|» isFrame|body|string| 否 | 是否内部跳转|目录和菜单必传,0否 1是|
|» isCache|body|string| 否 | 是否缓存|目录和菜单必传,0不缓存 1缓存|
|» visible|body|string| 否 | 是否显示|目录和菜单必传,0隐藏 1显示|
|» status|body|string| 否 | 状态|目录和菜单必传,0停用 1正常|
|» icon|body|string| 否 | 图标|目录和菜单必传,#无图标|
|» path|body|string| 否 | 路由地址|目录和菜单必传|
|» component|body|string| 否 | 组件路径|菜单必传|
|» perms|body|string| 否 | 权限标识|菜单和按钮必传|
|» remark|body|string| 否 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问菜单数据"
}
```
```json
{
"code": 500,
"msg": "菜单修改【xxxx】失败,非内部地址必须以http(s)://开头"
}
```
```json
{
"code": 500,
"msg": "菜单修改【xxxx】失败,菜单路由地址已存在"
}
```
```json
{
"code": 500,
"msg": "菜单修改【xxx】失败,菜单名称已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
## POST 菜单新增
POST /system/menu
> Body 请求参数
```json
{
"parentId": "string",
"menuName": "string",
"menuType": "string",
"menuSort": 0,
"isFrame": "string",
"isCache": "string",
"visible": "string",
"status": "string",
"icon": "string",
"path": "string",
"component": "string",
"perms": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» parentId|body|string| 是 | 父菜单ID|根据菜单ID|
|» menuName|body|string| 是 | 菜单名称|none|
|» menuType|body|string| 是 | 菜单类型|D目录 M菜单 B按钮|
|» menuSort|body|integer| 是 | 显示顺序|默认0|
|» isFrame|body|string| 否 | 是否内部跳转|目录和菜单必传,0否 1是|
|» isCache|body|string| 否 | 是否缓存|目录和菜单必传,0不缓存 1缓存|
|» visible|body|string| 否 | 是否显示|目录和菜单必传,0隐藏 1显示|
|» status|body|string| 否 | 状态|目录和菜单必传,0停用 1正常|
|» icon|body|string| 否 | 图标|目录和菜单必传,#无图标|
|» path|body|string| 否 | 路由地址|目录和菜单必传|
|» component|body|string| 否 | 组件路径|菜单必传|
|» perms|body|string| 否 | 权限标识|菜单和按钮必传|
|» remark|body|string| 否 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "菜单新增【xxx】失败,菜单路由地址已存在"
}
```
```json
{
"code": 500,
"msg": "菜单新增【xxxx】失败,菜单名称已存在"
}
```
```json
{
"code": 500,
"msg": "菜单新增【xxxx】失败,非内部地址必须以http(s)://开头"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 菜单树结构列表(指定角色)
GET /system/menu/roleMenuTreeSelect/{roleId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|roleId|path|string| 是 ||角色ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"menus": [
{
"id": "1",
"label": "系统管理",
"children": [
{
"id": "100",
"label": "用户管理",
"children": [
{
"id": "1000",
"label": "用户查询",
"children": []
},
{
"id": "1001",
"label": "用户新增",
"children": []
},
{
"id": "1002",
"label": "用户修改",
"children": []
},
{
"id": "1003",
"label": "用户删除",
"children": []
},
{
"id": "1004",
"label": "用户导出",
"children": []
},
{
"id": "1005",
"label": "用户导入",
"children": []
},
{
"id": "1006",
"label": "重置密码",
"children": []
}
]
},
{
"id": "101",
"label": "角色管理",
"children": [
{
"id": "1007",
"label": "角色查询",
"children": []
},
{
"id": "1008",
"label": "角色新增",
"children": []
},
{
"id": "1009",
"label": "角色修改",
"children": []
},
{
"id": "1010",
"label": "角色删除",
"children": []
},
{
"id": "1011",
"label": "角色导出",
"children": []
}
]
},
{
"id": "102",
"label": "分配角色",
"children": []
},
{
"id": "103",
"label": "菜单管理",
"children": [
{
"id": "1012",
"label": "菜单查询",
"children": []
},
{
"id": "1013",
"label": "菜单新增",
"children": []
},
{
"id": "1014",
"label": "菜单修改",
"children": []
},
{
"id": "1015",
"label": "菜单删除",
"children": []
}
]
},
{
"id": "104",
"label": "部门管理",
"children": [
{
"id": "1016",
"label": "部门查询",
"children": []
},
{
"id": "1017",
"label": "部门新增",
"children": []
},
{
"id": "1018",
"label": "部门修改",
"children": []
},
{
"id": "1019",
"label": "部门删除",
"children": []
}
]
},
{
"id": "105",
"label": "岗位管理",
"children": [
{
"id": "1020",
"label": "岗位查询",
"children": []
},
{
"id": "1021",
"label": "岗位新增",
"children": []
},
{
"id": "1022",
"label": "岗位修改",
"children": []
},
{
"id": "1023",
"label": "岗位删除",
"children": []
},
{
"id": "1024",
"label": "岗位导出",
"children": []
}
]
},
{
"id": "106",
"label": "字典管理",
"children": [
{
"id": "1025",
"label": "字典查询",
"children": []
},
{
"id": "1026",
"label": "字典新增",
"children": []
},
{
"id": "1027",
"label": "字典修改",
"children": []
},
{
"id": "1028",
"label": "字典删除",
"children": []
},
{
"id": "1029",
"label": "字典导出",
"children": []
}
]
},
{
"id": "107",
"label": "字典数据",
"children": []
},
{
"id": "108",
"label": "参数设置",
"children": [
{
"id": "1030",
"label": "参数查询",
"children": []
},
{
"id": "1031",
"label": "参数新增",
"children": []
},
{
"id": "1032",
"label": "参数修改",
"children": []
},
{
"id": "1033",
"label": "参数删除",
"children": []
},
{
"id": "1034",
"label": "参数导出",
"children": []
}
]
},
{
"id": "109",
"label": "通知公告",
"children": [
{
"id": "1035",
"label": "公告查询",
"children": []
},
{
"id": "1036",
"label": "公告新增",
"children": []
},
{
"id": "1037",
"label": "公告修改",
"children": []
},
{
"id": "1038",
"label": "公告删除",
"children": []
}
]
},
{
"id": "111",
"label": "日志管理",
"children": [
{
"id": "500",
"label": "操作日志",
"children": [
{
"id": "1039",
"label": "操作查询",
"children": "[Object]"
},
{
"id": "1040",
"label": "操作删除",
"children": "[Object]"
},
{
"id": "1041",
"label": "日志导出",
"children": "[Object]"
}
]
},
{
"id": "501",
"label": "登录日志",
"children": [
{
"id": "1042",
"label": "登录查询",
"children": "[Object]"
},
{
"id": "1043",
"label": "登录删除",
"children": "[Object]"
},
{
"id": "1044",
"label": "日志导出",
"children": "[Object]"
},
{
"id": "1045",
"label": "账户解锁",
"children": "[Object]"
}
]
}
]
}
]
},
{
"id": "2",
"label": "系统监控",
"children": [
{
"id": "112",
"label": "服务监控",
"children": []
},
{
"id": "113",
"label": "缓存监控",
"children": []
},
{
"id": "114",
"label": "缓存列表",
"children": [
{
"id": "1046",
"label": "缓存查询",
"children": []
},
{
"id": "1047",
"label": "缓存删除",
"children": []
}
]
},
{
"id": "115",
"label": "在线用户",
"children": [
{
"id": "1048",
"label": "在线查询",
"children": []
},
{
"id": "1049",
"label": "批量强退",
"children": []
},
{
"id": "1050",
"label": "单条强退",
"children": []
}
]
},
{
"id": "116",
"label": "调度任务",
"children": [
{
"id": "1051",
"label": "任务查询",
"children": []
},
{
"id": "1052",
"label": "任务新增",
"children": []
},
{
"id": "1053",
"label": "任务修改",
"children": []
},
{
"id": "1054",
"label": "任务删除",
"children": []
},
{
"id": "1055",
"label": "状态修改",
"children": []
},
{
"id": "1056",
"label": "任务导出",
"children": []
}
]
},
{
"id": "117",
"label": "调度日志",
"children": []
}
]
},
{
"id": "3",
"label": "系统工具",
"children": [
{
"id": "118",
"label": "系统接口",
"children": []
}
]
},
{
"id": "4",
"label": "开源仓库",
"children": []
},
{
"id": "2002",
"label": "备千验白儿这",
"children": []
},
{
"id": "2001",
"label": "要形存做情式2史",
"children": []
}
],
"checkedKeys": []
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» menus|[object]|true|none|菜单节点|none|
|»»» id|string|true|none|ID|none|
|»»» label|string|true|none|名称|none|
|»»» children|[object]|true|none|子节点|none|
|»»»» id|string|false|none|ID|none|
|»»»» label|string|false|none|名称|none|
|»»»» children|[object]|false|none|子节点|none|
|»» checkedKeys|[object]|true|none|已选ID数组|none|
## GET 菜单树结构列表
GET /system/menu/treeSelect
角色新增修改中菜单权限列表使用
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|menuName|query|string| 否 ||菜单名称|
|status|query|string| 否 ||菜单状态 0正常 1停用|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"id": "1",
"label": "系统管理",
"children": [
{
"id": "100",
"label": "用户管理",
"children": [
{
"id": "1000",
"label": "用户查询",
"children": []
},
{
"id": "1001",
"label": "用户新增",
"children": []
},
{
"id": "1002",
"label": "用户修改",
"children": []
},
{
"id": "1003",
"label": "用户删除",
"children": []
},
{
"id": "1004",
"label": "用户导出",
"children": []
},
{
"id": "1005",
"label": "用户导入",
"children": []
},
{
"id": "1006",
"label": "重置密码",
"children": []
}
]
},
{
"id": "101",
"label": "角色管理",
"children": [
{
"id": "1007",
"label": "角色查询",
"children": []
},
{
"id": "1008",
"label": "角色新增",
"children": []
},
{
"id": "1009",
"label": "角色修改",
"children": []
},
{
"id": "1010",
"label": "角色删除",
"children": []
},
{
"id": "1011",
"label": "角色导出",
"children": []
}
]
},
{
"id": "102",
"label": "分配角色",
"children": []
},
{
"id": "103",
"label": "菜单管理",
"children": [
{
"id": "1012",
"label": "菜单查询",
"children": []
},
{
"id": "1013",
"label": "菜单新增",
"children": []
},
{
"id": "1014",
"label": "菜单修改",
"children": []
},
{
"id": "1015",
"label": "菜单删除",
"children": []
}
]
},
{
"id": "104",
"label": "部门管理",
"children": [
{
"id": "1016",
"label": "部门查询",
"children": []
},
{
"id": "1017",
"label": "部门新增",
"children": []
},
{
"id": "1018",
"label": "部门修改",
"children": []
},
{
"id": "1019",
"label": "部门删除",
"children": []
}
]
},
{
"id": "105",
"label": "岗位管理",
"children": [
{
"id": "1020",
"label": "岗位查询",
"children": []
},
{
"id": "1021",
"label": "岗位新增",
"children": []
},
{
"id": "1022",
"label": "岗位修改",
"children": []
},
{
"id": "1023",
"label": "岗位删除",
"children": []
},
{
"id": "1024",
"label": "岗位导出",
"children": []
}
]
},
{
"id": "106",
"label": "字典管理",
"children": [
{
"id": "1025",
"label": "字典查询",
"children": []
},
{
"id": "1026",
"label": "字典新增",
"children": []
},
{
"id": "1027",
"label": "字典修改",
"children": []
},
{
"id": "1028",
"label": "字典删除",
"children": []
},
{
"id": "1029",
"label": "字典导出",
"children": []
}
]
},
{
"id": "107",
"label": "字典数据",
"children": []
},
{
"id": "108",
"label": "参数设置",
"children": [
{
"id": "1030",
"label": "参数查询",
"children": []
},
{
"id": "1031",
"label": "参数新增",
"children": []
},
{
"id": "1032",
"label": "参数修改",
"children": []
},
{
"id": "1033",
"label": "参数删除",
"children": []
},
{
"id": "1034",
"label": "参数导出",
"children": []
}
]
},
{
"id": "109",
"label": "通知公告",
"children": [
{
"id": "1035",
"label": "公告查询",
"children": []
},
{
"id": "1036",
"label": "公告新增",
"children": []
},
{
"id": "1037",
"label": "公告修改",
"children": []
},
{
"id": "1038",
"label": "公告删除",
"children": []
}
]
},
{
"id": "111",
"label": "日志管理",
"children": [
{
"id": "500",
"label": "操作日志",
"children": [
{
"id": "1039",
"label": "操作查询",
"children": []
},
{
"id": "1040",
"label": "操作删除",
"children": []
},
{
"id": "1041",
"label": "日志导出",
"children": []
}
]
},
{
"id": "501",
"label": "登录日志",
"children": [
{
"id": "1042",
"label": "登录查询",
"children": []
},
{
"id": "1043",
"label": "登录删除",
"children": []
},
{
"id": "1044",
"label": "日志导出",
"children": []
},
{
"id": "1045",
"label": "账户解锁",
"children": []
}
]
}
]
}
]
},
{
"id": "2",
"label": "系统监控",
"children": [
{
"id": "112",
"label": "服务监控",
"children": []
},
{
"id": "113",
"label": "缓存监控",
"children": []
},
{
"id": "114",
"label": "缓存列表",
"children": [
{
"id": "1046",
"label": "缓存查询",
"children": []
},
{
"id": "1047",
"label": "缓存删除",
"children": []
}
]
},
{
"id": "115",
"label": "在线用户",
"children": [
{
"id": "1048",
"label": "在线查询",
"children": []
},
{
"id": "1049",
"label": "批量强退",
"children": []
},
{
"id": "1050",
"label": "单条强退",
"children": []
}
]
},
{
"id": "116",
"label": "调度任务",
"children": [
{
"id": "1051",
"label": "任务查询",
"children": []
},
{
"id": "1052",
"label": "任务新增",
"children": []
},
{
"id": "1053",
"label": "任务修改",
"children": []
},
{
"id": "1054",
"label": "任务删除",
"children": []
},
{
"id": "1055",
"label": "状态修改",
"children": []
},
{
"id": "1056",
"label": "任务导出",
"children": []
}
]
},
{
"id": "117",
"label": "调度日志",
"children": []
}
]
},
{
"id": "3",
"label": "系统工具",
"children": [
{
"id": "118",
"label": "系统接口",
"children": []
}
]
},
{
"id": "4",
"label": "开源仓库",
"children": []
},
{
"id": "2002",
"label": "备千验白儿这",
"children": []
},
{
"id": "2001",
"label": "要形存做情式2史",
"children": []
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» menus|[object]|true|none||none|
|»»» id|string|true|none|ID|none|
|»»» label|string|true|none|名称|none|
|»»» children|[object]|true|none|子节点|none|
|»»»» id|string|false|none|ID|none|
|»»»» label|string|false|none|名称|none|
|»»»» children|[object]|false|none|子节点|none|
|»» checkedKeys|[object]|true|none|已选ID数组|none|
# 系统模块/岗位信息
## GET 岗位列表
GET /system/post/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|postCode|query|string| 否 ||岗位编码|
|postName|query|string| 否 ||岗位名称|
|status|query|string| 否 ||状态(0正常 1停用)|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 4,
"rows": [
{
"postId": "1",
"postCode": "ceo",
"postName": "董事长",
"postSort": 1,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526344",
"remark": ""
},
{
"postId": "2",
"postCode": "se",
"postName": "项目经理",
"postSort": 2,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526348",
"remark": ""
},
{
"postId": "3",
"postCode": "hr",
"postName": "人力资源",
"postSort": 3,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526354",
"remark": ""
},
{
"postId": "4",
"postCode": "user",
"postName": "普通员工",
"postSort": 4,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526358",
"remark": ""
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» postId|string|true|none|岗位ID|none|
|»» postCode|string|true|none|编码|none|
|»» postName|string|true|none|名称|none|
|»» postSort|integer|true|none|排序|none|
|»» status|string|true|none|状态|none|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## POST 岗位列表导出
POST /system/post/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=post_export_16_1684133344353.xlsx
content-length: 19438
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"configName": "string",
"postCode": "string",
"status": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» configName|body|string| 否 | 岗位名称|none|
|» postCode|body|string| 否 | 岗位编码|none|
|» status|body|string| 否 | 状态|0正常 1停用|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 岗位详细
GET /system/post/{postId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|postId|path|string| 是 ||岗位ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"postId": "1",
"postCode": "ceo",
"postName": "董事长",
"postSort": 1,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526344",
"remark": ""
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» postId|string|true|none|岗位ID|none|
|»» postCode|string|true|none|编码|none|
|»» postName|string|true|none|名称|none|
|»» postSort|integer|true|none|排序|none|
|»» status|string|true|none|状态|none|
|»» createBy|string|true|none||none|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## POST 岗位新增
POST /system/post
> Body 请求参数
```json
{
"postCode": "string",
"postName": "string",
"postSort": "string",
"phone": "string",
"remark": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» postCode|body|string| 是 | 岗位编码|none|
|» postName|body|string| 是 | 岗位名称|none|
|» postSort|body|string| 是 | 排序|none|
|» phone|body|string| 是 | 状态|0正常 1停用|
|» remark|body|string| 是 | 备注|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "岗位新增【xxx】失败,岗位名称已存在"
}
```
```json
{
"code": 500,
"msg": "岗位新增【xxx】失败,岗位编码已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 岗位修改
PUT /system/post
> Body 请求参数
```json
{
"postCode": "string",
"postName": "string",
"postSort": "string",
"phone": "string",
"remark": "string",
"postId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» postCode|body|string| 是 | 岗位编码|none|
|» postName|body|string| 是 | 岗位名称|none|
|» postSort|body|string| 是 | 排序|none|
|» phone|body|string| 是 | 状态|0正常 1停用|
|» remark|body|string| 是 | 备注|none|
|» postId|body|string| 是 | 岗位ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "岗位修改【xxx】失败,岗位名称已存在"
}
```
```json
{
"code": 500,
"msg": "岗位修改【xxx】失败,岗位编码已存在"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 岗位删除
DELETE /system/post/{postIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|postIds|path|string| 是 ||岗位ID,多个用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问岗位数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 系统模块/个人信息
## GET 基础信息获取
GET /system/user/profile
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"user": {
"roles": [
{
"roleId": "1",
"roleName": "管理员",
"roleKey": "admin",
"roleSort": 1,
"dataScope": "1",
"status": "1"
}
],
"userId": "1",
"deptId": "103",
"userName": "maskAdmin",
"nickName": "管理员",
"userType": "sys",
"email": "",
"avatar": "",
"phonenumber": "",
"sex": "1",
"status": "1",
"delFlag": "0",
"loginIp": "127.0.0.1",
"loginDate": "1683968355811",
"createBy": "maskAdmin",
"createTime": "1682264526306",
"remark": "管理员",
"dept": {
"deptId": "103",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "研发部门",
"orderNum": 1,
"leader": "MASK",
"status": "1"
}
},
"roleGroup": [
"管理员"
],
"postGroup": [
"董事长"
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none|用户信息|none|
|»» user|object|true|none|用户信息|none|
|»»» roles|[object]|true|none|角色信息|none|
|»»»» roleId|string|false|none||none|
|»»»» roleName|string|false|none||none|
|»»»» roleKey|string|false|none||none|
|»»»» roleSort|integer|false|none||none|
|»»»» dataScope|string|false|none||none|
|»»»» status|string|false|none||none|
|»»» userId|string|true|none||none|
|»»» deptId|string|true|none||none|
|»»» userName|string|true|none||none|
|»»» nickName|string|true|none||none|
|»»» userType|string|true|none||none|
|»»» email|string|true|none||none|
|»»» avatar|string|true|none||none|
|»»» phonenumber|string|true|none||none|
|»»» sex|string|true|none||none|
|»»» status|string|true|none||none|
|»»» delFlag|string|true|none||none|
|»»» loginIp|string|true|none||none|
|»»» loginDate|string|true|none||none|
|»»» createBy|string|true|none||none|
|»»» createTime|string|true|none||none|
|»»» remark|string|true|none||none|
|»»» dept|object|false|none|岗位|none|
|»»»» deptId|string|true|none||none|
|»»»» parentId|string|true|none||none|
|»»»» ancestors|string|true|none||none|
|»»»» deptName|string|true|none||none|
|»»»» orderNum|integer|true|none||none|
|»»»» leader|string|true|none||none|
|»»»» status|string|true|none||none|
|»» roleGroup|[string]|true|none|角色|字符数组|
|»» postGroup|[string]|true|none|岗位|字符数组|
## PUT 基础信息修改
PUT /system/user/profile
> Body 请求参数
```json
{
"nickName": "阎秀兰",
"sex": "1",
"phonenumber": "18169338391",
"email": "t.eknevzfl@htejfppo.so"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» nickName|body|string| 是 | 昵称|none|
|» email|body|string| 否 | 邮箱|none|
|» phonenumber|body|string| 否 | 手机|none|
|» sex|body|string| 是 | 性别|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "修改用户【xxxx】失败,手机号码格式错误"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## POST 修改头像
POST /system/user/profile/avatar
> Body 请求参数
```yaml
file: string
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» file|body|string(binary)| 是 ||请选择等比大小图片作为头像,如200x200、400x400|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": "/upload/avatar/2023/04/o_1d2bofn8f19dh5s11okpje61mipg_画板1_bf3wq4h6.png"
}
```
```json
{
"code": 500,
"msg": "上传文件类型不支持,仅支持以下类型:jpg,jpeg,png"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none|图片地址|none|
## PUT 修改密码
PUT /system/user/profile/updatePwd
> Body 请求参数
```json
{
"oldPassword": "admin@1234",
"newPassword": "Admin@1234"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» oldPassword|body|string| 是 | 旧密码|none|
|» newPassword|body|string| 是 | 新密码|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "新密码不能与旧密码相同"
}
```
```json
{
"code": 500,
"msg": "修改密码失败,旧密码错误"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 系统模块/角色信息
## GET 角色信息列表
GET /system/role/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|roleName|query|string| 否 ||角色名称|
|roleKey|query|string| 否 ||权限字符|
|status|query|string| 否 ||状态 0正常 1停用|
|beginTime|query|string| 否 ||创建时间-开始|
|endTime|query|string| 否 ||创建时间-结束|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 2,
"rows": [
{
"roleId": "1",
"roleName": "管理员",
"roleKey": "admin",
"roleSort": 1,
"dataScope": "1",
"menuCheckStrictly": "1",
"deptCheckStrictly": "1",
"status": "1",
"delFlag": "0",
"createTime": "1682264526399",
"remark": "管理员"
},
{
"roleId": "2",
"roleName": "普通角色",
"roleKey": "common",
"roleSort": 2,
"dataScope": "2",
"menuCheckStrictly": "1",
"deptCheckStrictly": "1",
"status": "1",
"delFlag": "0",
"createTime": "1682264526404",
"remark": "普通角色"
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» roleId|string|true|none|角色ID|none|
|»» roleName|string|true|none|名称|none|
|»» roleKey|string|true|none|键值|none|
|»» roleSort|integer|true|none|排序|none|
|»» dataScope|string|true|none|数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|»» menuCheckStrictly|string|true|none|菜单树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|»» deptCheckStrictly|string|true|none|部门树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|»» status|string|true|none|角色状态|0停用 1正常|
|»» delFlag|string|true|none|删除标志|0代表存在 1代表删除|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## GET 角色分配用户列表
GET /system/role/authUser/allocatedList
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|userName|query|string| 否 ||用户名称|
|phonenumber|query|string| 否 ||用户手机号|
|status|query|string| 否 ||用户状态|
|roleId|query|string| 是 ||角色ID|
|allocated|query|string| 是 ||已分配角色用户 true是 false否|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 1,
"rows": [
{
"roles": [],
"userId": "2",
"deptId": "105",
"userName": "maskUser",
"nickName": "普通用户",
"email": "maskUser@qq.com",
"phonenumber": "13412341234",
"status": "1",
"createTime": "1682264526309",
"dept": {
"deptId": "105",
"deptName": "测试部门"
}
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» status|string|false|none|角色状态|0停用 1正常|
|»» createTime|string|false|none|创建时间|none|
|»» roles|[string]|false|none|角色ID数组|none|
|»» userId|string|false|none|用户ID|none|
|»» deptId|string|false|none|部门ID|none|
|»» userName|string|false|none|用户名称|none|
|»» nickName|string|false|none|用户昵称|none|
|»» email|string|false|none|邮箱|none|
|»» phonenumber|string|false|none|手机号|none|
|»» dept|object|false|none|部门信息|none|
|»»» deptId|string|false|none|部门ID|none|
|»»» deptName|string|false|none|部门名称|none|
## GET 角色信息详情
GET /system/role/{roleId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|roleId|path|string| 是 ||角色ID|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"roleId": "1",
"roleName": "管理员",
"roleKey": "admin",
"roleSort": 1,
"dataScope": "1",
"menuCheckStrictly": "1",
"deptCheckStrictly": "1",
"status": "1",
"delFlag": "0",
"createTime": "1682264526399",
"remark": "管理员"
}
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» roleId|string|true|none|角色ID|none|
|»» roleName|string|true|none|名称|none|
|»» roleKey|string|true|none|键值|none|
|»» roleSort|integer|true|none|排序|none|
|»» dataScope|string|true|none|数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|»» menuCheckStrictly|string|true|none|菜单树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|»» deptCheckStrictly|string|true|none|部门树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|»» status|string|true|none|角色状态|0停用 1正常|
|»» delFlag|string|true|none|删除标志|0代表存在 1代表删除|
|»» createTime|string|true|none||none|
|»» remark|string|true|none|备注|none|
## PUT 角色信息修改
PUT /system/role
> Body 请求参数
```json
{
"roleName": "string",
"roleKey": "string",
"roleSort": 0,
"status": "string",
"remark": "string",
"dataScope": "string",
"menuCheckStrictly": "string",
"menuIds": [
"string"
],
"roleId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» roleName|body|string| 是 | 名称|none|
|» roleKey|body|string| 是 | 键值|none|
|» roleSort|body|integer| 是 | 排序|none|
|» status|body|string| 是 | 角色状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
|» dataScope|body|string| 是 | 数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|» menuCheckStrictly|body|string| 是 | 菜单树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|» menuIds|body|[string]| 是 | 菜单权限|菜单ID数组|
|» roleId|body|string| 是 | 角色ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "角色修改【xxx】失败,角色名称已存在"
}
```
```json
{
"code": 500,
"msg": "角色修改【xxxx】失败,权限键值已存在"
}
```
```json
{
"code": 500,
"msg": "没有权限访问角色数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## POST 角色信息新增
POST /system/role
> Body 请求参数
```json
{
"roleName": "string",
"roleKey": "string",
"roleSort": 0,
"status": "string",
"remark": "string",
"dataScope": "string",
"menuCheckStrictly": "string",
"menuIds": [
"string"
]
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» roleName|body|string| 是 | 名称|none|
|» roleKey|body|string| 是 | 键值|none|
|» roleSort|body|integer| 是 | 排序|none|
|» status|body|string| 是 | 角色状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
|» dataScope|body|string| 是 | 数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|» menuCheckStrictly|body|string| 是 | 菜单树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|» menuIds|body|[string]| 是 | 菜单权限|菜单ID数组|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "角色新增【xxxx】失败,角色名称已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
## DELETE 角色信息删除
DELETE /system/role/{roleIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|roleIds|path|string| 是 ||角色ID,多个可用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问角色数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
## PUT 角色状态变更
PUT /system/role/changeStatus
> Body 请求参数
```json
{
"roleId": "string",
"status": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» roleId|body|string| 是 | 角色ID|none|
|» status|body|string| 否 | 状态|0停用 1正常|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问角色数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 角色数据权限修改
PUT /system/role/dataScope
> Body 请求参数
```json
{
"dataScope": "string",
"deptCheckStrictly": "string",
"menuIds": [
"string"
],
"roleId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» dataScope|body|string| 是 | 数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|» deptCheckStrictly|body|string| 是 | 部门树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|» menuIds|body|[string]| 否 | 部门权限|数据范围选择2时必传,部门ID数组|
|» roleId|body|string| 是 | 角色ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问角色数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## POST 角色列表导出
POST /system/role/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=role_export_16_1684133344353.xlsx
content-length: 19438
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"roleName": "string",
"roleKey": "string",
"status": "string",
"beginTime": "string",
"endTime": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» roleName|body|string| 否 | 角色名称|none|
|» roleKey|body|string| 否 | 权限字符|none|
|» status|body|string| 否 | 状态|0正常 1停用|
|» beginTime|body|string| 否 | 创建时间-开始|none|
|» endTime|body|string| 否 | 创建时间-结束|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 角色分配选择授权
PUT /system/role/authUser/checked
> Body 请求参数
```json
{
"roleId": "string",
"userIds": "string",
"checked": true
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» roleId|body|string| 是 | 角色ID|none|
|» userIds|body|string| 是 | 用户ID|多个可用英文逗号分隔|
|» checked|body|boolean| 是 | 选择操作|添加true 取消false|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问角色数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 系统模块/用户信息
## POST 用户信息列表导入模板下载
POST /system/user/importTemplate
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=user_import_template_1684230715497.xlsx
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{
"code": 0,
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## GET 用户信息列表
GET /system/user/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|userName|query|string| 否 ||用户名称|
|phonenumber|query|string| 否 ||手机号码|
|status|query|string| 否 ||状态|
|beginTime|query|string| 否 ||创建时间-开始|
|endTime|query|string| 否 ||创建时间-结束|
|deptId|query|string| 否 ||部门ID|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"total": 1,
"rows": [
{
"roles": [],
"userId": "2",
"deptId": "105",
"nickName": "普通用户",
"userName": "maskUser",
"email": "maskUser@qq.com",
"avatar": "",
"phonenumber": "13412341234",
"sex": "1",
"status": "1",
"delFlag": "0",
"loginIp": "192.168.56.1",
"loginDate": "1683364764238",
"createBy": "maskAdmin",
"createTime": "1682264526309",
"remark": "普通人员",
"dept": {
"deptId": "105",
"deptName": "测试部门",
"leader": "MASK"
}
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» total|integer|true|none||none|
|» rows|[object]|true|none||none|
|»» roles|[string]|true|none|角色ID数组|none|
|»» userId|string|true|none|用户ID|none|
|»» deptId|string¦null|true|none|部门ID|none|
|»» nickName|string|true|none|用户昵称|none|
|»» userName|string|true|none|用户名称|none|
|»» email|string|true|none|邮箱|none|
|»» avatar|string|true|none|头像|none|
|»» phonenumber|string|true|none|电话|none|
|»» sex|string|true|none|性别|0未知 1男 2女|
|»» status|string|true|none|状态|0停用 1正常|
|»» delFlag|string|true|none|是否删除|0代表存在 1代表删除|
|»» loginIp|string|true|none|登录IP|none|
|»» loginDate|string|true|none|登录时间|none|
|»» createBy|string|true|none|创建人|none|
|»» createTime|string|true|none|创建时间|none|
|»» remark|string¦null|true|none|备注|none|
|»» dept|object|true|none|部门信息|none|
|»»» deptId|string¦null|true|none|部门ID|none|
|»»» deptName|string¦null|true|none|部门名称|none|
|»»» leader|string¦null|true|none|负责人|none|
## GET 用户信息详情
GET /system/user/{userId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|userId|path|string| 是 ||用户ID,新增0|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": {
"user": {
"roles": [
{
"roleId": "2",
"roleName": "普通角色",
"roleKey": "common",
"roleSort": 2,
"dataScope": "2",
"status": "1"
}
],
"userId": "2",
"deptId": "105",
"userName": "maskUser",
"nickName": "普通用户",
"userType": "sys",
"email": "maskUser@qq.com",
"avatar": "",
"phonenumber": "13412341234",
"sex": "1",
"status": "1",
"delFlag": "0",
"loginIp": "192.168.56.1",
"loginDate": "1683364764238",
"createBy": "maskAdmin",
"createTime": "1682264526309",
"remark": "普通人员",
"dept": {
"deptId": "105",
"parentId": "101",
"ancestors": "0,100,101",
"deptName": "测试部门",
"orderNum": 3,
"leader": "MASK",
"status": "1"
}
},
"roleIds": [
"2"
],
"postIds": [
"2"
],
"roles": [
{
"roleId": "2",
"roleName": "普通角色",
"roleKey": "common",
"roleSort": 2,
"dataScope": "2",
"menuCheckStrictly": "1",
"deptCheckStrictly": "1",
"status": "1",
"delFlag": "0",
"createTime": "1682264526404",
"remark": "普通角色"
}
],
"posts": [
{
"postId": "1",
"postCode": "ceo",
"postName": "董事长",
"postSort": 1,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526344",
"remark": ""
},
{
"postId": "2",
"postCode": "se",
"postName": "项目经理",
"postSort": 2,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526348",
"remark": ""
},
{
"postId": "3",
"postCode": "hr",
"postName": "人力资源",
"postSort": 3,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526354",
"remark": ""
},
{
"postId": "4",
"postCode": "user",
"postName": "普通员工",
"postSort": 4,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526358",
"remark": ""
}
]
}
}
```
```json
{
"code": 200,
"msg": "成功",
"data": {
"user": {},
"roleIds": [],
"postIds": [],
"roles": [
{
"roleId": "2",
"roleName": "普通角色",
"roleKey": "common",
"roleSort": 2,
"dataScope": "2",
"menuCheckStrictly": "1",
"deptCheckStrictly": "1",
"status": "1",
"delFlag": "0",
"createTime": "1682264526404",
"remark": "普通角色"
}
],
"posts": [
{
"postId": "1",
"postCode": "ceo",
"postName": "董事长",
"postSort": 1,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526344",
"remark": ""
},
{
"postId": "2",
"postCode": "se",
"postName": "项目经理",
"postSort": 2,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526348",
"remark": ""
},
{
"postId": "3",
"postCode": "hr",
"postName": "人力资源",
"postSort": 3,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526354",
"remark": ""
},
{
"postId": "4",
"postCode": "user",
"postName": "普通员工",
"postSort": 4,
"status": "1",
"createBy": "maskAdmin",
"createTime": "1682264526358",
"remark": ""
}
]
}
}
```
```json
{
"code": 500,
"msg": "没有权限访问用户数据"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object¦null|true|none||none|
|»» user|object|true|none|用户信息|none|
|»»» roles|[object]|true|none|角色信息|none|
|»»»» roleId|string|false|none|角色ID|none|
|»»»» roleName|string|false|none|名称|none|
|»»»» roleKey|string|false|none|键值|none|
|»»»» roleSort|integer|false|none|排序|none|
|»»»» dataScope|string|false|none|数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|»»»» status|string|false|none|角色状态|0停用 1正常|
|»»» userId|string|true|none|用户ID|none|
|»»» deptId|string¦null|true|none|部门ID|none|
|»»» userName|string|true|none|用户名称|none|
|»»» nickName|string|true|none|用户昵称|none|
|»»» email|string|true|none|邮箱|none|
|»»» avatar|string|true|none|头像|none|
|»»» phonenumber|string|true|none|电话|none|
|»»» sex|string|true|none|性别|0未知 1男 2女|
|»»» status|string|true|none|状态|0停用 1正常|
|»»» delFlag|string|true|none|是否删除|0代表存在 1代表删除|
|»»» loginIp|string|true|none|登录IP|none|
|»»» loginDate|string|true|none|登录时间|none|
|»»» createBy|string|true|none|创建人|none|
|»»» createTime|string|true|none|创建时间|none|
|»»» remark|string¦null|true|none|备注|none|
|»»» dept|object|true|none|部门信息|none|
|»»»» deptId|string|true|none|部门ID|none|
|»»»» parentId|string|true|none|父部门ID|none|
|»»»» ancestors|string|true|none|祖级列表|none|
|»»»» deptName|string|true|none|部门名称|none|
|»»»» orderNum|integer|true|none|显示顺序|none|
|»»»» leader|string|true|none|负责人|none|
|»»»» status|string|true|none|部门状态|0正常 1停用|
|»»»» phone|string|false|none|联系电话|none|
|»»»» email|string|false|none|邮箱|none|
|»» roleIds|[string]|true|none|已选角色ID|none|
|»» postIds|[string]|true|none|已选岗位ID|none|
|»» roles|[object]|true|none|角色信息数组|none|
|»»» roleId|string|true|none|角色ID|none|
|»»» roleName|string|true|none|名称|none|
|»»» roleKey|string|true|none|键值|none|
|»»» roleSort|integer|true|none|排序|none|
|»»» dataScope|string|true|none|数据范围|1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限)|
|»»» menuCheckStrictly|string|true|none|菜单树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|»»» deptCheckStrictly|string|true|none|部门树选择项是否关联显示|0:父子不互相关联显示 1:父子互相关联显示|
|»»» status|string|true|none|角色状态|0停用 1正常|
|»»» delFlag|string|true|none|删除标志|0代表存在 1代表删除|
|»»» createTime|string|true|none||none|
|»»» remark|string|true|none|备注|none|
|»» posts|[object]|true|none|岗位信息数组|none|
|»»» postId|string|true|none|岗位ID|none|
|»»» postCode|string|true|none|编码|none|
|»»» postName|string|true|none|名称|none|
|»»» postSort|integer|true|none|排序|none|
|»»» status|string|true|none|状态|none|
|»»» createBy|string|true|none||none|
|»»» createTime|string|true|none||none|
|»»» remark|string|true|none|备注|none|
## POST 用户信息新增
POST /system/user
> Body 请求参数
```json
{
"remark": "去只传周物给",
"deptId": 102,
"nickName": "龙杰",
"email": "h.vrcjiz@qcfgqedxw.bz",
"phonenumber": "18641692257",
"sex": "0",
"status": "1",
"roleIds": [
2
],
"postIds": [
1,
2,
3,
4
],
"userName": "gijobqebs",
"password": "123456"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» userName|body|string| 是 | 用户名称|none|
|» password|body|string| 是 | 用户密码|none|
|» nickName|body|string| 是 | 用户昵称|none|
|» email|body|string| 是 | 邮箱|none|
|» phonenumber|body|string| 是 | 电话|none|
|» sex|body|string| 是 | 性别|0未知 1男 2女|
|» status|body|string| 是 | 状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
|» deptId|body|string| 是 | 部门ID|none|
|» roleIds|body|[string]| 是 | 角色ID数组|none|
|» postIds|body|[string]| 是 | 岗位ID数组|none|
|» userType|body|string| 否 | 用户类型|sys系统用户|
|» avatar|body|string| 否 | 头像|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
```json
{
"code": 500,
"msg": "新增用户【xxxx】失败,登录账号已存在"
}
```
```json
{
"code": 500,
"msg": "新增用户【xxxx】失败,手机号码已存在"
}
```
```json
{
"code": 500,
"msg": "新增用户【zwciugaw2】失败,邮箱已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
## PUT 用户信息修改
PUT /system/user
> Body 请求参数
```json
{
"remark": "群劳设着给王",
"deptId": 80,
"nickName": "许芳",
"email": "x.swtaf@oypeubb.tg",
"phonenumber": "18106129309",
"sex": "1",
"status": "1",
"roleIds": [
2
],
"postIds": [
2
],
"userId": "101",
"userName": "x34bvpi"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» userId|body|string| 是 | 用户ID|none|
|» userName|body|string| 是 | 用户名称|none|
|» nickName|body|string| 是 | 用户昵称|none|
|» email|body|string| 是 | 邮箱|none|
|» phonenumber|body|string| 是 | 电话|none|
|» sex|body|string| 是 | 性别|0未知 1男 2女|
|» status|body|string| 是 | 状态|0停用 1正常|
|» remark|body|string| 是 | 备注|none|
|» deptId|body|string| 是 | 部门ID|none|
|» roleIds|body|[string]| 是 | 角色ID数组|none|
|» postIds|body|[string]| 是 | 岗位ID数组|none|
|» userType|body|string| 否 | 用户类型|sys系统用户|
|» avatar|body|string| 否 | 头像|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
```json
{
"code": 500,
"msg": "修改用户【xxx】失败,手机号码已存在"
}
```
```json
{
"code": 500,
"msg": "修改用户【liming】失败,登录账号已存在"
}
```
```json
{
"code": 500,
"msg": "修改用户【xxx】失败,邮箱已存在"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## POST 用户信息列表导出
POST /system/user/export
正常返回文件流,响应头如下
```text
content-disposition: attachment;filename=user_export_11_1684230271701.xlsx
content-length: 21499
content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
```
> Body 请求参数
```json
{
"userName": "string",
"phonenumber": "string",
"status": "string",
"beginTime": "string",
"endTime": "string",
"deptId": "string",
"pageNum": 0,
"pageSize": 0
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» userName|body|string| 否 | 用户名称|none|
|» phonenumber|body|string| 否 | 手机号码|none|
|» status|body|string| 否 | 状态|0停用 1正常|
|» beginTime|body|string| 否 | 创建开始时间|none|
|» endTime|body|string| 否 | 创建结束时间|none|
|» deptId|body|string| 否 | 部门ID|none|
|» pageNum|body|number| 是 | 页数,默认1|none|
|» pageSize|body|number| 是 | 单页记录数,默认10|none|
> 返回示例
> 成功
```json
{
"code": 500,
"msg": "导出数据记录为空"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## POST 用户信息列表导入
POST /system/user/importData
> Body 请求参数
```yaml
file: []
updateSupport: "{% mock 'pick' , ['false','true'] %}"
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» file|body|string(binary)| 否 ||导入xls、xlsx表格文件|
|» updateSupport|body|string| 否 ||是否更新已经存在的数据,默认false|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "恭喜您,数据已全部导入成功!共 1 条,数据如下:
序号:1 登录名称 user001 导入成功"
}
```
```json
{
"code": 200,
"msg": "恭喜您,数据已全部导入成功!共 0 条,数据如下:"
}
```
```json
{
"code": 200,
"msg": "恭喜您,数据已全部导入成功!共 1 条,数据如下:
序号:1 登录名称 user001 更新成功"
}
```
```json
{
"code": 500,
"msg": "失败"
}
```
```json
{
"code": 500,
"msg": "很抱歉,导入失败!共 5 条数据格式不正确,错误如下:
表格中必填列表项,登录名称、用户名称
表格中必填列表项,登录名称、用户名称
表格中必填列表项,登录名称、用户名称
表格中必填列表项,登录名称、用户名称
表格中必填列表项,登录名称、用户名称"
}
```
```json
{
"code": 500,
"msg": "导入用户数据不能为空!"
}
```
```json
{
"code": 500,
"msg": "上传文件类型不支持,仅支持以下类型:xls,xlsx"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## DELETE 用户信息删除
DELETE /system/user/{userIds}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|userIds|path|string| 是 ||用户ID,多个用英文逗号分隔|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问用户数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 用户重置密码
PUT /system/user/resetPwd
> Body 请求参数
```json
{
"password": "string",
"userId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» password|body|string| 是 | 密码|none|
|» userId|body|string| 是 | 用户ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问用户数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
## PUT 用户状态修改
PUT /system/user/changeStatus
> Body 请求参数
```json
{
"status": "string",
"userId": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» status|body|string| 是 | 状态|0停用 1正常|
|» userId|body|string| 是 | 用户ID|none|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功"
}
```
```json
{
"code": 500,
"msg": "没有权限访问用户数据!"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 网元模块
## GET 网元neType和neID查询
GET /ne/info
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neType|query|string| 是 ||none|
|neId|query|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
# 网元模块/UDM鉴权用户
## GET 列表
GET /ne/udm/auth/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|query|string| 否 ||none|
|imsi|query|string| 否 ||none|
|msisdn|query|string| 否 ||none|
|sortField|query|string| 否 ||none|
|sortOrder|query|string| 否 ||none|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{
"code": 0,
"msg": "string",
"rows": [
{
"id": "string",
"imsi": "string",
"amf": "string",
"status": "string",
"ki": "string",
"algoIndex": "string",
"opc": "string",
"neId": "string"
}
],
"total": 0
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» rows|[object]|true|none||none|
|»» id|string|true|none||none|
|»» imsi|string|true|none||none|
|»» amf|string|true|none||none|
|»» status|string|true|none||none|
|»» ki|string|true|none||none|
|»» algoIndex|string|true|none||none|
|»» opc|string|true|none||none|
|»» neId|string|true|none||none|
|» total|integer|true|none||none|
## GET 信息
GET /ne/udm/auth/{neId}/{imsi}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|imsi|path|string| 是 ||none|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": {
"id": "string",
"imsi": "string",
"amf": "string",
"status": "string",
"ki": "string",
"algoIndex": "string",
"opc": "string",
"neId": "string"
},
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|object|true|none||none|
|»» id|string|true|none||none|
|»» imsi|string|true|none||none|
|»» amf|string|true|none||none|
|»» status|string|true|none||none|
|»» ki|string|true|none||none|
|»» algoIndex|string|true|none||none|
|»» opc|string|true|none||none|
|»» neId|string|true|none||none|
|» msg|string|true|none||none|
## DELETE 删除
DELETE /ne/udm/auth/{neId}/{imsi}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|imsi|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## PUT 重载数据 for Redis
PUT /ne/udm/auth/resetData/{neId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 37981,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|integer|true|none||none|
|» msg|string|true|none||none|
## POST 新增
POST /ne/udm/auth/{neId}
> Body 请求参数
```json
{
"algoIndex": "string",
"amf": "string",
"imsi": "string",
"ki": "string",
"opc": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» algoIndex|body|string| 是 ||none|
|» amf|body|string| 是 ||none|
|» imsi|body|string| 是 ||none|
|» ki|body|string| 是 ||none|
|» opc|body|string| 是 ||none|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": "string",
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|string|true|none||none|
|» msg|string|true|none||none|
## PUT 修改
PUT /ne/udm/auth/{neId}
> Body 请求参数
```json
{
"algoIndex": "string",
"amf": "string",
"imsi": "string",
"ki": "string",
"opc": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» algoIndex|body|string| 是 ||none|
|» amf|body|string| 是 ||none|
|» imsi|body|string| 是 ||none|
|» ki|body|string| 是 ||none|
|» opc|body|string| 是 ||none|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## POST 批量新增
POST /ne/udm/auth/{neId}/{num}
> Body 请求参数
```json
{
"algoIndex": "string",
"amf": "string",
"imsi": "string",
"ki": "string",
"opc": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|num|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» algoIndex|body|string| 是 ||none|
|» amf|body|string| 是 ||none|
|» imsi|body|string| 是 ||none|
|» ki|body|string| 是 ||none|
|» opc|body|string| 是 ||none|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": "string",
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|string|true|none||none|
|» msg|string|true|none||none|
## DELETE 批量删除
DELETE /ne/udm/auth/{neId}/{imsi}/{num}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|imsi|path|string| 是 ||none|
|num|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## POST 导出
POST /ne/udm/auth/export
> Body 请求参数
```json
{
"neId": "string",
"type": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» neId|body|string| 是 ||none|
|» type|body|string| 是 | csv txt|none|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## POST 导入
POST /ne/udm/auth/import
> Body 请求参数
```yaml
neId: "002"
file: string
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» neId|body|string| 是 ||none|
|» file|body|string(binary)| 是 ||none|
> 返回示例
> 200 Response
```json
{
"code": 0,
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
# 网元模块/UDM签约用户
## GET 信息
GET /ne/udm/sub/{neId}/{imsi}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|imsi|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": {
"id": "string",
"msisdn": "string",
"imsi": "string",
"ambr": "string",
"nssai": "string",
"rat": "string",
"arfb": "string",
"sar": "string",
"cn": "string",
"smData": "string",
"smfSel": "string",
"epsDat": "string",
"neId": "string",
"epsFlag": "string",
"epsOdb": "string",
"hplmnOdb": "string",
"ard": "string",
"epstpl": "string",
"contextId": "string",
"apnContext": "string",
"staticIp": "string"
},
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|object|true|none||none|
|»» id|string|true|none||none|
|»» msisdn|string|true|none||none|
|»» imsi|string|true|none||none|
|»» ambr|string|true|none||none|
|»» nssai|string|true|none||none|
|»» rat|string|true|none||none|
|»» arfb|string|true|none||none|
|»» sar|string|true|none||none|
|»» cn|string|true|none||none|
|»» smData|string|true|none||none|
|»» smfSel|string|true|none||none|
|»» epsDat|string|true|none||none|
|»» neId|string|true|none||none|
|»» epsFlag|string|true|none||none|
|»» epsOdb|string|true|none||none|
|»» hplmnOdb|string|true|none||none|
|»» ard|string|true|none||none|
|»» epstpl|string|true|none||none|
|»» contextId|string|true|none||none|
|»» apnContext|string|true|none||none|
|»» staticIp|string|true|none||none|
|» msg|string|true|none||none|
## DELETE 删除
DELETE /ne/udm/sub/{neId}/{imsi}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|imsi|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## POST 增加
POST /ne/udm/sub/{neId}
此命令可同时添加45G签约用户
> Body 请求参数
```json
{
"msisdn": "string",
"imsi": "string",
"ambr": "string",
"nssai": "string",
"rat": "string",
"arfb": "string",
"sar": "string",
"cn": "string",
"smData": "string",
"smfSel": "string",
"epsDat": "string",
"epsFlag": "string",
"epsOdb": "string",
"hplmnOdb": "string",
"ard": "string",
"epstpl": "string",
"contextId": "string",
"apnContext": "string",
"staticIp": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» msisdn|body|string| 是 ||none|
|» imsi|body|string| 是 ||none|
|» ambr|body|string| 是 ||none|
|» nssai|body|string| 是 ||none|
|» rat|body|string| 是 ||none|
|» arfb|body|string| 是 ||none|
|» sar|body|string| 是 ||none|
|» cn|body|string| 是 ||none|
|» smData|body|string| 是 ||none|
|» smfSel|body|string| 是 ||none|
|» epsDat|body|string| 是 ||none|
|» epsFlag|body|string| 是 ||none|
|» epsOdb|body|string| 是 ||none|
|» hplmnOdb|body|string| 是 ||none|
|» ard|body|string| 是 ||none|
|» epstpl|body|string| 是 ||none|
|» contextId|body|string| 是 ||none|
|» apnContext|body|string| 是 ||none|
|» staticIp|body|string| 是 ||static_ip指给4G UE分配的静态IP,没有可不带此字段名|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": "string",
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|string|true|none||none|
|» msg|string|true|none||none|
## PUT 修改
PUT /ne/udm/sub/{neId}
> Body 请求参数
```json
{
"msisdn": "string",
"imsi": "string",
"ambr": "string",
"nssai": "string",
"rat": "string",
"arfb": "string",
"sar": "string",
"cn": "string",
"smData": "string",
"smfSel": "string",
"epsDat": "string",
"epsFlag": "string",
"epsOdb": "string",
"hplmnOdb": "string",
"ard": "string",
"epstpl": "string",
"contextId": "string",
"apnContext": "string",
"staticIp": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» msisdn|body|string| 是 ||none|
|» imsi|body|string| 是 ||none|
|» ambr|body|string| 是 ||none|
|» nssai|body|string| 是 ||none|
|» rat|body|string| 是 ||none|
|» arfb|body|string| 是 ||none|
|» sar|body|string| 是 ||none|
|» cn|body|string| 是 ||none|
|» smData|body|string| 是 ||none|
|» smfSel|body|string| 是 ||none|
|» epsDat|body|string| 是 ||none|
|» epsFlag|body|string| 是 ||none|
|» epsOdb|body|string| 是 ||none|
|» hplmnOdb|body|string| 是 ||none|
|» ard|body|string| 是 ||none|
|» epstpl|body|string| 是 ||none|
|» contextId|body|string| 是 ||none|
|» apnContext|body|string| 是 ||none|
|» staticIp|body|string| 是 ||static_ip指给4G UE分配的静态IP,没有可不带此字段名|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## POST 批量添加
POST /ne/udm/sub/{neId}/{num}
> Body 请求参数
```json
{
"msisdn": "string",
"imsi": "string",
"ambr": "string",
"nssai": "string",
"rat": "string",
"arfb": "string",
"sar": "string",
"cn": "string",
"smData": "string",
"smfSel": "string",
"epsDat": "string",
"epsFlag": "string",
"epsOdb": "string",
"hplmnOdb": "string",
"ard": "string",
"epstpl": "string",
"contextId": "string",
"apnContext": "string",
"staticIp": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|num|path|string| 是 ||放号数|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» msisdn|body|string| 是 ||none|
|» imsi|body|string| 是 ||none|
|» ambr|body|string| 是 ||none|
|» nssai|body|string| 是 ||none|
|» rat|body|string| 是 ||none|
|» arfb|body|string| 是 ||none|
|» sar|body|string| 是 ||none|
|» cn|body|string| 是 ||none|
|» smData|body|string| 是 ||none|
|» smfSel|body|string| 是 ||none|
|» epsDat|body|string| 是 ||none|
|» epsFlag|body|string| 是 ||none|
|» epsOdb|body|string| 是 ||none|
|» hplmnOdb|body|string| 是 ||none|
|» ard|body|string| 是 ||none|
|» epstpl|body|string| 是 ||none|
|» contextId|body|string| 是 ||none|
|» apnContext|body|string| 是 ||none|
|» staticIp|body|string| 是 ||static_ip指给4G UE分配的静态IP,没有可不带此字段名|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## DELETE 批量删除
DELETE /ne/udm/sub/{neId}/{imsi}/{num}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|imsi|path|string| 是 ||none|
|num|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": "string",
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|string|true|none||none|
|» msg|string|true|none||none|
## POST 导出
POST /ne/udm/sub/export
> Body 请求参数
```json
{
"neId": "string",
"type": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» neId|body|string| 是 ||none|
|» type|body|string| 是 | csv txt|none|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## PUT 重载数据 for Redis
PUT /ne/udm/sub/resetData/{neId}
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neId|path|string| 是 ||none|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 成功
```json
{
"code": 200,
"msg": "成功",
"data": [
{
"name": "System",
"path": "/system",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统管理",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/system/user",
"children": [
{
"name": "User",
"path": "user",
"component": "system/user/index",
"meta": {
"icon": "icon-pcduan",
"title": "用户管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Role",
"path": "role",
"component": "system/role/index",
"meta": {
"icon": "icon-pcduan",
"title": "角色管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "RoleinlineauthuserroleId",
"path": "role/inline/auth-user/:roleId",
"component": "system/role/auth-user",
"meta": {
"icon": "icon-pcduan",
"title": "角色分配用户",
"hide": true,
"cache": false,
"target": null
}
},
{
"name": "Menu",
"path": "menu",
"component": "system/menu/index",
"meta": {
"icon": "icon-pcduan",
"title": "菜单管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Dept",
"path": "dept",
"component": "system/dept/index",
"meta": {
"icon": "icon-pcduan",
"title": "部门管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Post",
"path": "post",
"component": "system/post/index",
"meta": {
"icon": "icon-pcduan",
"title": "岗位管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Dict",
"path": "dict",
"component": "system/dict/index",
"meta": {
"icon": "icon-pcduan",
"title": "字典管理",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "DictinlinedatadictId",
"path": "dict/inline/data/:dictId",
"component": "system/dict/data",
"meta": {
"icon": "icon-pcduan",
"title": "字典数据",
"hide": true,
"cache": false,
"target": null
}
},
{
"name": "Config",
"path": "config",
"component": "system/config/index",
"meta": {
"icon": "icon-pcduan",
"title": "参数设置",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Notice",
"path": "notice",
"component": "system/notice/index",
"meta": {
"icon": "icon-pcduan",
"title": "通知公告",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Log",
"path": "log",
"component": "BlankLayout",
"meta": {
"icon": "icon-pcduan",
"title": "日志管理",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/system/log/operlog",
"children": [
{
"name": "Operlog",
"path": "operlog",
"component": "monitor/operlog/index",
"meta": {
"icon": "icon-pcduan",
"title": "操作日志",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Logininfor",
"path": "logininfor",
"component": "monitor/logininfor/index",
"meta": {
"icon": "icon-pcduan",
"title": "登录日志",
"hide": false,
"cache": true,
"target": null
}
}
]
}
]
},
{
"name": "Monitor",
"path": "/monitor",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统监控",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/monitor/server",
"children": [
{
"name": "Server",
"path": "server",
"component": "monitor/server/index",
"meta": {
"icon": "icon-pcduan",
"title": "服务监控",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Cache",
"path": "cache",
"component": "monitor/cache/index",
"meta": {
"icon": "icon-pcduan",
"title": "缓存监控",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "CacheList",
"path": "cacheList",
"component": "monitor/cache/list",
"meta": {
"icon": "icon-pcduan",
"title": "缓存列表",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Online",
"path": "online",
"component": "monitor/online/index",
"meta": {
"icon": "icon-pcduan",
"title": "在线用户",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "Job",
"path": "job",
"component": "monitor/job/index",
"meta": {
"icon": "icon-pcduan",
"title": "调度任务",
"hide": false,
"cache": true,
"target": null
}
},
{
"name": "JobinlinelogjobId",
"path": "job/inline/log/:jobId",
"component": "monitor/job/log",
"meta": {
"icon": "icon-pcduan",
"title": "调度日志",
"hide": true,
"cache": true,
"target": null
}
}
]
},
{
"name": "Tool",
"path": "/tool",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "系统工具",
"hide": false,
"cache": true,
"target": null
},
"redirect": "/tool/swagger",
"children": [
{
"name": "Swagger",
"path": "swagger",
"component": "tool/swagger/index",
"meta": {
"icon": "icon-pcduan",
"title": "系统接口",
"hide": false,
"cache": true,
"target": null
}
}
]
},
{
"name": "HttpsLink4",
"path": "https://gitee.com/TsMask/mask_api_midwayjs",
"component": "BasicLayout",
"meta": {
"icon": "icon-pcduan",
"title": "Gitee仓库",
"hide": false,
"cache": false,
"target": "_blank"
}
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none|路由数组|none|
|»» name|string|true|none|路由名称|none|
|»» path|string|true|none|路由地址|none|
|»» component|string|true|none|组件|- BasicLayout-基础布局组件标识 菜单类型-菜单D
- BlankLayout-空白布局组件标识 菜单类型-菜单M
- LinkLayout-内链接布局组件标识 菜单类型-菜单M
- 按钮菜单类型-菜单B 不会读取到路由中|
|»» meta|object|true|none|元数据|none|
|»»» icon|string|true|none|菜单图标|none|
|»»» title|string|true|none|菜单标题|none|
|»»» hide|boolean|true|none|是否隐藏|默认 false|
|»»» cache|boolean|true|none|是否缓存|默认 false|
|»»» target|string¦null|true|none|链接行为|- 非链接 null
- 内部跳转 _self
- 外部跳转 _blank|
|»» redirect|string|false|none|目录重定向|none|
|»» children|[object]|false|none|子菜单|none|
|»»» name|string|true|none||none|
|»»» path|string|true|none||none|
|»»» component|string|true|none||none|
|»»» meta|object|true|none|元数据|none|
|»»»» icon|string|true|none||none|
|»»»» title|string|true|none|标题|none|
|»»»» hide|boolean|true|none||none|
|»»»» cache|boolean|true|none||none|
|»»»» target|string¦null|true|none||none|
## POST 导入
POST /ne/udm/sub/import
> Body 请求参数
```yaml
neId: "002"
file: string
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» neId|body|string| 是 ||none|
|» file|body|string(binary)| 是 ||none|
> 返回示例
> 成功
```json
{
"code": 1,
"data": 2021,
"msg": "success"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» data|integer|true|none||none|
## GET 列表
GET /ne/udm/sub/list
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|msisdn|query|string| 否 ||none|
|imsi|query|string| 否 ||none|
|neId|query|string| 否 ||none|
|sortField|query|string| 否 ||none|
|sortOrder|query|string| 否 ||none|
|pageNum|query|number| 否 ||页数,默认1|
|pageSize|query|number| 否 ||单页记录数,默认10|
|Authorization|header|string| 是 ||授权令牌|
|Referer|header|string| 是 ||使用指定声明的Referer|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{
"code": 0,
"msg": "string",
"rows": [
{
"id": "string",
"msisdn": "string",
"imsi": "string",
"ambr": "string",
"nssai": "string",
"rat": "string",
"arfb": "string",
"sar": "string",
"cn": "string",
"smData": "string",
"smfSel": "string",
"epsDat": "string",
"neId": "string",
"epsFlag": "string",
"epsOdb": "string",
"hplmnOdb": "string",
"ard": "string",
"epstpl": "string",
"contextId": "string",
"apnContext": "string",
"staticIp": "string"
}
],
"total": 0
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» msg|string|true|none||none|
|» rows|[object]|true|none||none|
|»» id|string|true|none||none|
|»» msisdn|string|true|none||none|
|»» imsi|string|true|none||none|
|»» ambr|string|true|none||none|
|»» nssai|string|true|none||none|
|»» rat|string|true|none||none|
|»» arfb|string|true|none||none|
|»» sar|string|true|none||none|
|»» cn|string|true|none||none|
|»» smData|string|true|none||none|
|»» smfSel|string|true|none||none|
|»» epsDat|string|true|none||none|
|»» neId|string|true|none||none|
|»» epsFlag|string|true|none||none|
|»» epsOdb|string|true|none||none|
|»» hplmnOdb|string|true|none||none|
|»» ard|string|true|none||none|
|»» epstpl|string|true|none||none|
|»» contextId|string|true|none||none|
|»» apnContext|string|true|none||none|
|»» staticIp|string|true|none||none|
|» total|integer|true|none||none|
# 跟踪模块
## POST 普通网元抓包PACP
POST /tcpdump/ne
> Body 请求参数
```json
{
"neType": "string",
"neId": "string",
"timeout": 0,
"cmd": "string",
"timestamp": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» neType|body|string| 是 ||none|
|» neId|body|string| 是 ||none|
|» timeout|body|number| 是 ||none|
|» cmd|body|string| 是 ||none|
|» timestamp|body|string| 是 ||时间戳记录文件|
> 返回示例
> 200 Response
```json
{
"code": 0,
"data": {
"cmd": "string",
"fileName": "string",
"msg": "string"
},
"msg": "string"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» code|integer|true|none||none|
|» data|object|true|none||none|
|»» cmd|string|true|none||none|
|»» fileName|string|true|none||none|
|»» msg|string|true|none||none|
|» msg|string|true|none||none|
## POST UPF网元抓包PACP
POST /tcpdump/neUPF
> Body 请求参数
```json
{
"neType": "string",
"neId": "string",
"runType": "string",
"cmd": "string",
"timestamp": "string"
}
```
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
|body|body|object| 否 ||none|
|» neType|body|string| 是 ||none|
|» neId|body|string| 是 ||none|
|» runType|body|string| 是 ||执行开始start还是停止stop开始telnetstart_telnet/stop_telnet脚本字符串start_str/stop_str|
|» cmd|body|string| 是 ||方法1:适合其他网元异常,UPF配合抓包的情况。包文件相对较小。|
|» timestamp|body|string| 是 ||时间戳记录文件|
#### 详细说明
**» cmd**: 方法1:适合其他网元异常,UPF配合抓包的情况。包文件相对较小。
进入命令行之后:
1)开始抓包 pcap trace rx tx max 100000 intfc any file upf_test.pcap
2)停止抓包 pcap trace rx tx off
方法2:适合UPF异常需要抓包分析的情况。包文件相对较大。
进入命令行之后:
1)开始抓包 pcap dispatch trace on max 100000 file upf_test.pcap
2)停止抓包 pcap dispatch trace off
> 返回示例
> 200 Response
```json
{}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
## GET PACP文件下载
GET /tcpdump/download
### 请求参数
|名称|位置|类型|必选|中文名|说明|
|---|---|---|---|---|---|
|neType|query|string| 是 ||none|
|neId|query|string| 是 ||none|
|fileName|query|string| 是 ||none|
|User-Agent|header|string| 是 ||用户浏览器代理|
|Accept-Language|header|string| 是 ||zh_CN;q=0.9 en_US;q=0.9|
> 返回示例
> 200 Response
```json
{}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|成功|Inline|
### 返回数据结构
# 数据模型