edb_monitor.go 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394
  1. package edb_monitor
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/edb_monitor/request"
  7. edbmonitor "eta/eta_api/services/edb_monitor"
  8. "strings"
  9. )
  10. type EdbMonitorController struct {
  11. controllers.BaseAuthController
  12. }
  13. // List
  14. // @Title 预警管理列表
  15. // @Description 预警管理列表
  16. // @Param PageSize query int true "每页数据条数"
  17. // @Param CurrentIndex query int true "当前页页码,从1开始"
  18. // @Param ClassifyId query string true "分类ID,多选用逗号分隔"
  19. // @Param Level query string true "预警等级,多选用逗号分隔"
  20. // @Param State query string true "预警状态,多选用逗号分隔"
  21. // @Param UserId query string true "创建人ID,多选用逗号分隔"
  22. // @Success 200 {object} response.EdbMonitorInfoListResp
  23. // @router /list [get]
  24. func (m *EdbMonitorController) List() {
  25. br := new(models.BaseResponse).Init()
  26. defer func() {
  27. m.Data["json"] = br
  28. m.ServeJSON()
  29. }()
  30. sysUser := m.SysUser
  31. if sysUser == nil {
  32. br.Msg = "请登录"
  33. br.ErrMsg = "请登录,SysUser Is Empty"
  34. br.Ret = 408
  35. return
  36. }
  37. pageSize, _ := m.GetInt("PageSize")
  38. currentIndex, _ := m.GetInt("CurrentIndex")
  39. classifyId := m.GetString("ClassifyId")
  40. level := m.GetString("Level")
  41. state := m.GetString("State")
  42. userId := m.GetString("UserId")
  43. resp, msg, err := edbmonitor.GetMonitorList(classifyId, level, state, userId, pageSize, currentIndex)
  44. if err != nil {
  45. if msg == "" {
  46. msg = "获取列表失败"
  47. }
  48. br.Msg = msg
  49. br.ErrMsg = err.Error()
  50. return
  51. }
  52. br.Data = resp
  53. br.Msg = "获取列表成功"
  54. br.Ret = 200
  55. br.Success = true
  56. }
  57. // Add
  58. // @Title 预警管理添加
  59. // @Description 预警管理添加
  60. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  61. // @Success 200 {object} models.EnglishReportEmailPageListResp
  62. // @router /add [post]
  63. func (m *EdbMonitorController) Add() {
  64. br := new(models.BaseResponse).Init()
  65. defer func() {
  66. m.Data["json"] = br
  67. m.ServeJSON()
  68. }()
  69. sysUser := m.SysUser
  70. if sysUser == nil {
  71. br.Msg = "请登录"
  72. br.ErrMsg = "请登录,SysUser Is Empty"
  73. br.Ret = 408
  74. return
  75. }
  76. var req request.EdbMonitorInfoSaveReq
  77. if err := json.Unmarshal(m.Ctx.Input.RequestBody, &req); err != nil {
  78. br.Msg = "参数解析失败"
  79. br.ErrMsg = err.Error()
  80. return
  81. }
  82. if req.ClassifyId <= 0 {
  83. br.Msg = "请选择分类"
  84. return
  85. }
  86. switch req.MonitorType {
  87. case edbmonitor.EDB_MONITOR_TYPE_DOWN, edbmonitor.EDB_MONITOR_TYPE_UP:
  88. default:
  89. br.Msg = "请选择预警等级"
  90. return
  91. }
  92. req.MonitorData = strings.TrimSpace(req.MonitorData)
  93. if req.MonitorData == "" {
  94. br.Msg = "请输入预警值"
  95. return
  96. }
  97. req.EdbMonitorName = strings.TrimSpace(req.EdbMonitorName)
  98. if req.EdbMonitorName == "" {
  99. br.Msg = "请输入预警名称"
  100. return
  101. }
  102. msg, err := edbmonitor.SaveEdbMonitorInfo(req, sysUser.AdminId)
  103. if err != nil {
  104. if msg == "" {
  105. msg = "添加失败"
  106. }
  107. br.Msg = msg
  108. br.ErrMsg = err.Error()
  109. return
  110. }
  111. br.Msg = "添加成功"
  112. br.Ret = 200
  113. br.Success = true
  114. }
  115. // edit
  116. // @Title 预警管理编辑
  117. // @Description 预警管理编辑
  118. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  119. // @Success 200 {object} models.EnglishReportEmailPageListResp
  120. // @router /edit [post]
  121. func (m *EdbMonitorController) Edit() {
  122. br := new(models.BaseResponse).Init()
  123. defer func() {
  124. m.Data["json"] = br
  125. m.ServeJSON()
  126. }()
  127. sysUser := m.SysUser
  128. if sysUser == nil {
  129. br.Msg = "请登录"
  130. br.ErrMsg = "请登录,SysUser Is Empty"
  131. br.Ret = 408
  132. return
  133. }
  134. var req request.EdbMonitorInfoSaveReq
  135. if err := json.Unmarshal(m.Ctx.Input.RequestBody, &req); err != nil {
  136. br.Msg = "参数解析失败"
  137. br.ErrMsg = err.Error()
  138. return
  139. }
  140. if req.EdbMonitorId <= 0 {
  141. br.Msg = "请选择指标"
  142. return
  143. }
  144. if req.ClassifyId <= 0 {
  145. br.Msg = "请选择分类"
  146. return
  147. }
  148. switch req.MonitorType {
  149. case edbmonitor.EDB_MONITOR_TYPE_DOWN, edbmonitor.EDB_MONITOR_TYPE_UP:
  150. default:
  151. br.Msg = "请选择预警等级"
  152. return
  153. }
  154. req.MonitorData = strings.TrimSpace(req.MonitorData)
  155. if req.MonitorData == "" {
  156. br.Msg = "请输入预警值"
  157. return
  158. }
  159. req.EdbMonitorName = strings.TrimSpace(req.EdbMonitorName)
  160. if req.EdbMonitorName == "" {
  161. br.Msg = "请输入预警名称"
  162. return
  163. }
  164. msg, err := edbmonitor.SaveEdbMonitorInfo(req, sysUser.AdminId)
  165. if err != nil {
  166. if msg == "" {
  167. msg = "编辑失败"
  168. }
  169. br.Msg = msg
  170. br.ErrMsg = err.Error()
  171. return
  172. }
  173. br.Msg = "编辑成功"
  174. br.Ret = 200
  175. br.Success = true
  176. }
  177. // delete
  178. // @Title 预警管理编辑
  179. // @Description 预警管理编辑
  180. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  181. // @Success 200 {object} models.EnglishReportEmailPageListResp
  182. // @router /delete [post]
  183. func (m *EdbMonitorController) Delete() {
  184. br := new(models.BaseResponse).Init()
  185. defer func() {
  186. m.Data["json"] = br
  187. m.ServeJSON()
  188. }()
  189. sysUser := m.SysUser
  190. if sysUser == nil {
  191. br.Msg = "请登录"
  192. br.ErrMsg = "请登录,SysUser Is Empty"
  193. br.Ret = 408
  194. return
  195. }
  196. var req request.EdbMonitorInfoDeleteReq
  197. if err := json.Unmarshal(m.Ctx.Input.RequestBody, &req); err != nil {
  198. br.Msg = "参数解析失败"
  199. br.ErrMsg = err.Error()
  200. return
  201. }
  202. if req.EdbMonitorId <= 0 {
  203. br.Msg = "请选择指标"
  204. return
  205. }
  206. msg, err := edbmonitor.DeleteEdbMonitorInfo(req)
  207. if err != nil {
  208. if msg == "" {
  209. msg = "删除失败"
  210. }
  211. br.Msg = msg
  212. br.ErrMsg = err.Error()
  213. return
  214. }
  215. br.Msg = "删除成功"
  216. br.Ret = 200
  217. br.Success = true
  218. }
  219. // Close
  220. // @Title 预警管理关闭
  221. // @Description 预警管理关闭
  222. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  223. // @Success 200 {object} models.EnglishReportEmailPageListResp
  224. // @router /close [post]
  225. func (m *EdbMonitorController) Close() {
  226. br := new(models.BaseResponse).Init()
  227. defer func() {
  228. m.Data["json"] = br
  229. m.ServeJSON()
  230. }()
  231. sysUser := m.SysUser
  232. if sysUser == nil {
  233. br.Msg = "请登录"
  234. br.ErrMsg = "请登录,SysUser Is Empty"
  235. br.Ret = 408
  236. return
  237. }
  238. var req request.EdbMonitorInfoCloseReq
  239. if err := json.Unmarshal(m.Ctx.Input.RequestBody, &req); err != nil {
  240. br.Msg = "参数解析失败"
  241. br.ErrMsg = err.Error()
  242. return
  243. }
  244. if req.EdbMonitorId <= 0 {
  245. br.Msg = "请选择预警"
  246. return
  247. }
  248. msg, err := edbmonitor.CloseEdbMonitorInfo(req, sysUser.AdminId)
  249. if err != nil {
  250. if msg == "" {
  251. msg = "关闭失败"
  252. }
  253. br.Msg = msg
  254. br.ErrMsg = err.Error()
  255. return
  256. }
  257. br.Msg = "关闭成功"
  258. br.Ret = 200
  259. br.Success = true
  260. }
  261. // Restart
  262. // @Title 预警管理重启
  263. // @Description 预警管理重启
  264. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  265. // @Success 200 {object} models.EnglishReportEmailPageListResp
  266. // @router /restart [post]
  267. func (m *EdbMonitorController) Restart() {
  268. br := new(models.BaseResponse).Init()
  269. defer func() {
  270. m.Data["json"] = br
  271. m.ServeJSON()
  272. }()
  273. sysUser := m.SysUser
  274. if sysUser == nil {
  275. br.Msg = "请登录"
  276. br.ErrMsg = "请登录,SysUser Is Empty"
  277. br.Ret = 408
  278. return
  279. }
  280. var req request.EdbMonitorInfoRestartReq
  281. if err := json.Unmarshal(m.Ctx.Input.RequestBody, &req); err != nil {
  282. br.Msg = "参数解析失败"
  283. br.ErrMsg = err.Error()
  284. return
  285. }
  286. if req.EdbMonitorId <= 0 {
  287. br.Msg = "请选择预警"
  288. return
  289. }
  290. msg, err := edbmonitor.RestartEdbMonitorInfo(req, sysUser.AdminId)
  291. if err != nil {
  292. if msg == "" {
  293. msg = "重启失败"
  294. }
  295. br.Msg = msg
  296. br.ErrMsg = err.Error()
  297. return
  298. }
  299. br.Msg = "重启成功"
  300. br.Ret = 200
  301. br.Success = true
  302. }
  303. // GetMonitorLevel
  304. // @Title 预警管理等级列表
  305. // @Description 预警管理等级列表
  306. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  307. // @Success 200 {object} models.EnglishReportEmailPageListResp
  308. // @router /monitor_level/list [get]
  309. func (m *EdbMonitorController) GetMonitorLevel() {
  310. br := new(models.BaseResponse).Init()
  311. defer func() {
  312. m.Data["json"] = br
  313. m.ServeJSON()
  314. }()
  315. sysUser := m.SysUser
  316. if sysUser == nil {
  317. br.Msg = "请登录"
  318. br.ErrMsg = "请登录,SysUser Is Empty"
  319. br.Ret = 408
  320. return
  321. }
  322. list, msg, err := edbmonitor.GetEdbMonitorLevelList()
  323. if err != nil {
  324. if msg == "" {
  325. msg = "获取预警等级失败"
  326. }
  327. br.Msg = msg
  328. br.ErrMsg = err.Error()
  329. return
  330. }
  331. br.Data = list
  332. br.Msg = "获取成功"
  333. br.Ret = 200
  334. br.Success = true
  335. }
  336. // GetMonitorUser
  337. // @Title 预警管理用户列表
  338. // @Description 预警管理用户列表
  339. // @Param request body request.EdbMonitorSaveRequest true "每页数据条数"
  340. // @Success 200 {object} models.EnglishReportEmailPageListResp
  341. // @router /monitor_user/list [get]
  342. func (m *EdbMonitorController) GetMonitorUser() {
  343. br := new(models.BaseResponse).Init()
  344. defer func() {
  345. m.Data["json"] = br
  346. m.ServeJSON()
  347. }()
  348. sysUser := m.SysUser
  349. if sysUser == nil {
  350. br.Msg = "请登录"
  351. br.ErrMsg = "请登录,SysUser Is Empty"
  352. br.Ret = 408
  353. return
  354. }
  355. resp, msg, err := edbmonitor.GetEdbMonitorInfoUserList()
  356. if err != nil {
  357. if msg == "" {
  358. msg = "获取用户列表失败"
  359. }
  360. br.Msg = msg
  361. br.ErrMsg = err.Error()
  362. return
  363. }
  364. br.Data = resp
  365. br.Msg = "获取成功"
  366. br.Ret = 200
  367. br.Success = true
  368. }