edb_source_stat.go 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831
  1. package data_stat
  2. import (
  3. "encoding/json"
  4. "eta/eta_api/controllers"
  5. "eta/eta_api/models"
  6. "eta/eta_api/models/data_manage"
  7. "eta/eta_api/models/data_stat"
  8. "eta/eta_api/utils"
  9. "fmt"
  10. "github.com/rdlucklib/rdluck_tools/paging"
  11. "strings"
  12. "time"
  13. )
  14. // EdbSourceStatController 数据源统计表管理模块
  15. type EdbSourceStatController struct {
  16. controllers.BaseAuthController
  17. }
  18. // Column
  19. // @Title 数据源统计表自定义列列表
  20. // @Description 查询 数据源统计表自定义列列表
  21. // @Success 200 {object} data_stat.StatColumnList
  22. // @router /source_column [get]
  23. func (this *EdbSourceStatController) Column() {
  24. br := new(models.BaseResponse).Init()
  25. defer func() {
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. sysUser := this.SysUser
  30. if sysUser == nil {
  31. br.Msg = "请登录"
  32. br.ErrMsg = "请登录,SysUser Is Empty"
  33. br.Ret = 408
  34. return
  35. }
  36. columnType, _ := this.GetInt("ColumnType")
  37. if columnType <= 0 {
  38. br.Msg = "请选择表类型"
  39. return
  40. }
  41. tmpList, err := data_stat.GetStatColumn(columnType)
  42. if err != nil {
  43. br.Msg = "获取自定义列失败"
  44. br.ErrMsg = "获取自定义列失败,Err:" + err.Error()
  45. return
  46. }
  47. var list []*data_stat.EdbInfoStatColumnListItem
  48. for _, v := range tmpList {
  49. tmp := new(data_stat.EdbInfoStatColumnListItem)
  50. tmp.ColumnKey = v.ColumnKey
  51. tmp.IsShow = v.IsShow
  52. tmp.ColumnName = v.ColumnName
  53. tmp.Id = v.Id
  54. tmp.IsMust = v.IsMust
  55. tmp.IsSort = v.IsSort
  56. tmp.Type = v.Type
  57. list = append(list, tmp)
  58. }
  59. var statColumnList data_stat.StatColumnList
  60. statColumnList.List = list
  61. br.Ret = 200
  62. br.Success = true
  63. br.Msg = "获取成功"
  64. br.Data = statColumnList
  65. }
  66. // EditColumn
  67. // @Title 编辑数据源统计表自定义列
  68. // @Description 编辑 数据源统计表自定义列列表
  69. // @Success 200 {object} data_stat.StatColumnList
  70. // @router /source_column/edit [post]
  71. func (this *EdbSourceStatController) EditColumn() {
  72. br := new(models.BaseResponse).Init()
  73. defer func() {
  74. this.Data["json"] = br
  75. this.ServeJSON()
  76. }()
  77. sysUser := this.SysUser
  78. if sysUser == nil {
  79. br.Msg = "请登录"
  80. br.ErrMsg = "请登录,SysUser Is Empty"
  81. br.Ret = 408
  82. return
  83. }
  84. var req data_stat.EditStatColumnReq
  85. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  86. if err != nil {
  87. br.Msg = "参数解析异常!"
  88. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  89. return
  90. }
  91. if len(req.List) <= 0 {
  92. br.Msg = "请选择要修改的列"
  93. br.IsSendEmail = false
  94. return
  95. }
  96. tmpList, err := data_stat.GetAllStatColumn()
  97. if err != nil {
  98. br.Msg = "获取自定义列失败"
  99. br.ErrMsg = "获取自定义列失败,Err:" + err.Error()
  100. return
  101. }
  102. isMustMap := make(map[int]data_stat.EdbInfoStatColumn)
  103. if len(tmpList) > 0 {
  104. for _, v := range tmpList {
  105. if v.IsMust == 1 {
  106. isMustMap[v.Id] = v
  107. }
  108. }
  109. }
  110. var list []*data_stat.EdbInfoStatColumn
  111. for k, v := range req.List {
  112. if v.Id == 0 {
  113. br.Msg = "列序号不能为空"
  114. return
  115. }
  116. if v.IsShow == 0 {
  117. if exist, ok := isMustMap[v.Id]; ok {
  118. br.Msg = exist.ColumnName + "为必选列!"
  119. return
  120. }
  121. }
  122. tmp := new(data_stat.EdbInfoStatColumn)
  123. tmp.Id = v.Id
  124. tmp.Sort = k + 1
  125. tmp.IsShow = v.IsShow
  126. list = append(list, tmp)
  127. }
  128. err = data_stat.UpdateStatColumn(list)
  129. if err != nil {
  130. br.Msg = "更新自定义列操作失败!"
  131. br.ErrMsg = "更新自定义列操作失败,Err:" + err.Error()
  132. return
  133. }
  134. br.Ret = 200
  135. br.Success = true
  136. br.Msg = "获取成功"
  137. return
  138. }
  139. // EdbDeleteLog
  140. // @Title 查询删除指标列表
  141. // @Description 查询删除指标列表接口
  142. // @Success 200 {object} data_stat.GetEdbDeleteLogResp
  143. // @router /edb_delete_log [get]
  144. func (this *EdbSourceStatController) EdbDeleteLog() {
  145. br := new(models.BaseResponse).Init()
  146. defer func() {
  147. this.Data["json"] = br
  148. this.ServeJSON()
  149. }()
  150. sysUser := this.SysUser
  151. if sysUser == nil {
  152. br.Msg = "请登录"
  153. br.ErrMsg = "请登录,SysUser Is Empty"
  154. br.Ret = 408
  155. return
  156. }
  157. sortParamReq := this.GetString("SortParam", "")
  158. sortType := this.GetString("SortType", "desc")
  159. createTime := this.GetString("CreateTime", "")
  160. pageSize, _ := this.GetInt("PageSize")
  161. currentIndex, _ := this.GetInt("CurrentIndex")
  162. var startSize int
  163. if pageSize <= 0 {
  164. pageSize = utils.PageSize20
  165. }
  166. if currentIndex <= 0 {
  167. currentIndex = 1
  168. }
  169. startSize = paging.StartIndex(currentIndex, pageSize)
  170. condition := " and source = ?"
  171. var pars []interface{}
  172. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  173. if createTime != "" {
  174. startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
  175. if err != nil {
  176. br.Msg = "请求时间格式错误"
  177. return
  178. }
  179. endT := startT.AddDate(0, 0, 1)
  180. condition += " AND create_time >= ? AND create_time < ?"
  181. pars = append(pars, createTime, endT.Format(utils.FormatDate))
  182. }
  183. sortStr := ``
  184. sortParam := ``
  185. if sortParamReq != `` {
  186. switch sortParamReq {
  187. case "CreateTime":
  188. sortParam = "create_time"
  189. case "ErDataUpdateDate":
  190. sortParam = "er_data_update_date"
  191. case "LatestDate":
  192. sortParam = "latest_date"
  193. case "StartDate":
  194. sortParam = "start_date"
  195. }
  196. if sortParam == "" {
  197. br.Msg = "请输入正确的排序字段"
  198. return
  199. }
  200. if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" {
  201. br.Msg = "请输入正确的排序类型"
  202. return
  203. }
  204. sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType)
  205. }
  206. total, err := data_stat.GetEdbDeleteLogCount(condition, pars)
  207. if err != nil {
  208. if err.Error() != utils.ErrNoRow() {
  209. br.Msg = "获取指标删除列表总数失败"
  210. br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error()
  211. return
  212. } else {
  213. err = nil
  214. }
  215. }
  216. list := make([]*data_stat.EdbInfoDeleteLogItem, 0)
  217. page := paging.GetPaging(currentIndex, pageSize, total)
  218. if total == 0 {
  219. resp := data_stat.GetEdbDeleteLogResp{
  220. Paging: page,
  221. List: list,
  222. }
  223. br.Ret = 200
  224. br.Success = true
  225. br.Msg = "获取成功"
  226. br.Data = resp
  227. return
  228. }
  229. tmpList, err := data_stat.GetEdbDeleteLogByCondition(condition, pars, sortStr, pageSize, startSize)
  230. if err != nil {
  231. br.Msg = "获取指标删除列表失败"
  232. br.ErrMsg = "获取指标删除列表失败,Err:" + err.Error()
  233. return
  234. }
  235. for _, v := range tmpList {
  236. tmp := new(data_stat.EdbInfoDeleteLogItem)
  237. tmp.EdbCode = v.EdbCode
  238. tmp.EdbInfoId = v.EdbInfoId
  239. tmp.Id = v.Id
  240. tmp.StartDate = v.StartDate
  241. tmp.EndDate = v.EndDate
  242. tmp.Unit = v.Unit
  243. tmp.TerminalCode = v.TerminalCode
  244. tmp.CreateTime = v.CreateTime
  245. tmp.EdbCreateTime = v.EdbCreateTime
  246. tmp.Frequency = v.Frequency
  247. tmp.Source = v.Source
  248. tmp.SourceName = v.SourceName
  249. tmp.EdbName = v.EdbName
  250. tmp.EdbNameEn = v.EdbNameEn
  251. tmp.EdbNameSource = v.EdbNameSource
  252. tmp.LatestDate = v.LatestDate
  253. tmp.DelSysUserId = v.DelSysUserId
  254. tmp.DelSysUserRealName = v.DelSysUserRealName
  255. tmp.SysUserId = v.SysUserId
  256. tmp.SysUserRealName = v.SysUserRealName
  257. tmp.LatestValue = v.LatestValue
  258. if v.DataUpdateTime != utils.EmptyDateTimeStr {
  259. tmp.DataUpdateTime = v.DataUpdateTime
  260. }
  261. if v.ErDataUpdateDate != utils.EmptyDateStr {
  262. tmp.ErDataUpdateDate = v.ErDataUpdateDate
  263. }
  264. list = append(list, tmp)
  265. }
  266. resp := data_stat.GetEdbDeleteLogResp{
  267. Paging: page,
  268. List: list,
  269. }
  270. br.Ret = 200
  271. br.Success = true
  272. br.Msg = "获取成功"
  273. br.Data = resp
  274. }
  275. // EdbUpdateLog
  276. // @Title 查询指标信息变更列表
  277. // @Description 查询指标信息变更列表接口
  278. // @Success 200 {object} data_stat.GetEdbUpdateLogResp
  279. // @router /edb_update_log [get]
  280. func (this *EdbSourceStatController) EdbUpdateLog() {
  281. br := new(models.BaseResponse).Init()
  282. defer func() {
  283. this.Data["json"] = br
  284. this.ServeJSON()
  285. }()
  286. sysUser := this.SysUser
  287. if sysUser == nil {
  288. br.Msg = "请登录"
  289. br.ErrMsg = "请登录,SysUser Is Empty"
  290. br.Ret = 408
  291. return
  292. }
  293. sortParamReq := this.GetString("SortParam", "")
  294. sortType := this.GetString("SortType", "desc")
  295. createTime := this.GetString("CreateTime", "")
  296. pageSize, _ := this.GetInt("PageSize")
  297. currentIndex, _ := this.GetInt("CurrentIndex")
  298. var startSize int
  299. if pageSize <= 0 {
  300. pageSize = utils.PageSize20
  301. }
  302. if currentIndex <= 0 {
  303. currentIndex = 1
  304. }
  305. startSize = paging.StartIndex(currentIndex, pageSize)
  306. condition := " and source = ?"
  307. var pars []interface{}
  308. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  309. if createTime != "" {
  310. startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
  311. if err != nil {
  312. br.Msg = "请求时间格式错误"
  313. return
  314. }
  315. endT := startT.AddDate(0, 0, 1)
  316. condition += " AND create_time >= ? AND create_time < ?"
  317. pars = append(pars, createTime, endT.Format(utils.FormatDate))
  318. }
  319. sortStr := ``
  320. sortParam := ``
  321. if sortParamReq != `` {
  322. switch sortParamReq {
  323. case "CreateTime":
  324. sortParam = "create_time"
  325. case "DataUpdateTime":
  326. sortParam = "data_update_time"
  327. case "ErDataUpdateDate":
  328. sortParam = "er_data_update_date"
  329. case "LatestDate":
  330. sortParam = "latest_date"
  331. case "StartDate":
  332. sortParam = "start_date"
  333. }
  334. if sortParam == "" {
  335. br.Msg = "请输入正确的排序字段"
  336. return
  337. }
  338. if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" {
  339. br.Msg = "请输入正确的排序类型"
  340. return
  341. }
  342. sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType)
  343. }
  344. total, err := data_stat.GetEdbUpdateLogCount(condition, pars)
  345. if err != nil {
  346. if err.Error() != utils.ErrNoRow() {
  347. br.Msg = "获取指标删除列表总数失败"
  348. br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error()
  349. return
  350. } else {
  351. err = nil
  352. }
  353. }
  354. list := make([]*data_stat.EdbInfoUpdateLogItem, 0)
  355. page := paging.GetPaging(currentIndex, pageSize, total)
  356. if total == 0 {
  357. resp := data_stat.GetEdbUpdateLogResp{
  358. Paging: page,
  359. List: list,
  360. }
  361. br.Ret = 200
  362. br.Success = true
  363. br.Msg = "获取成功"
  364. br.Data = resp
  365. return
  366. }
  367. tmpList, err := data_stat.GetEdbUpdateLogByCondition(condition, pars, sortStr, pageSize, startSize)
  368. if err != nil {
  369. br.Msg = "获取指标更新列表失败"
  370. br.ErrMsg = "获取指标更新列表失败,Err:" + err.Error()
  371. return
  372. }
  373. for _, v := range tmpList {
  374. tmp := new(data_stat.EdbInfoUpdateLogItem)
  375. tmp.Id = v.Id
  376. tmp.EdbInfoId = v.EdbInfoId
  377. tmp.SourceName = v.SourceName
  378. tmp.Source = v.Source
  379. tmp.EdbCode = v.EdbCode
  380. tmp.EdbName = v.EdbName
  381. tmp.EdbNameSource = v.EdbNameSource
  382. tmp.Frequency = v.Frequency
  383. tmp.Unit = v.Unit
  384. tmp.StartDate = v.StartDate
  385. tmp.EndDate = v.EndDate
  386. tmp.SysUserId = v.SysUserId
  387. tmp.SysUserRealName = v.SysUserRealName
  388. tmp.UpdateSysUserRealName = v.UpdateSysUserRealName
  389. tmp.UpdateSysUserId = v.UpdateSysUserId
  390. tmp.UniqueCode = v.UniqueCode
  391. tmp.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
  392. tmp.LatestDate = v.LatestDate
  393. tmp.LatestValue = v.LatestValue
  394. tmp.TerminalCode = v.TerminalCode
  395. if v.DataUpdateTime != utils.EmptyDateTimeStr {
  396. tmp.DataUpdateTime = v.DataUpdateTime
  397. }
  398. if v.ErDataUpdateDate != utils.EmptyDateStr {
  399. tmp.ErDataUpdateDate = v.ErDataUpdateDate
  400. }
  401. list = append(list, tmp)
  402. }
  403. resp := data_stat.GetEdbUpdateLogResp{
  404. Paging: page,
  405. List: list,
  406. }
  407. br.Ret = 200
  408. br.Success = true
  409. br.Msg = "获取成功"
  410. br.Data = resp
  411. }
  412. // EdbUpdateStat
  413. // @Title 查询数据源明细列表
  414. // @Description 查询数据源明细列表接口
  415. // @Success 200 {object} data_stat.GetEdbUpdateStatResp
  416. // @router /edb_update_stat [get]
  417. func (this *EdbSourceStatController) EdbUpdateStat() {
  418. br := new(models.BaseResponse).Init()
  419. defer func() {
  420. this.Data["json"] = br
  421. this.ServeJSON()
  422. }()
  423. sysUser := this.SysUser
  424. if sysUser == nil {
  425. br.Msg = "请登录"
  426. br.ErrMsg = "请登录,SysUser Is Empty"
  427. br.Ret = 408
  428. return
  429. }
  430. sortParamReq := this.GetString("SortParam", "")
  431. sortType := this.GetString("SortType", "desc")
  432. terminalCode := this.GetString("TerminalCode", "")
  433. sysUserId, _ := this.GetInt("SysUserId")
  434. frequency := this.GetString("Frequency", "")
  435. keyWord := this.GetString("KeyWord", "") //指标编码/指标名称
  436. createTime := this.GetString("CreateTime", "")
  437. pageSize, _ := this.GetInt("PageSize")
  438. currentIndex, _ := this.GetInt("CurrentIndex")
  439. var startSize int
  440. if pageSize <= 0 {
  441. pageSize = utils.PageSize20
  442. }
  443. if currentIndex <= 0 {
  444. currentIndex = 1
  445. }
  446. startSize = paging.StartIndex(currentIndex, pageSize)
  447. condition := " and source = ?"
  448. var pars []interface{}
  449. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  450. if createTime != "" {
  451. startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
  452. if err != nil {
  453. br.Msg = "请求时间格式错误"
  454. return
  455. }
  456. endT := startT.AddDate(0, 0, 1)
  457. condition += " AND create_time >= ? AND create_time < ?"
  458. pars = append(pars, createTime, endT.Format(utils.FormatDate))
  459. }
  460. if terminalCode != "" {
  461. condition += " AND terminal_code = ?"
  462. pars = append(pars, terminalCode)
  463. }
  464. if sysUserId > 0 {
  465. condition += " AND sys_user_id = ?"
  466. pars = append(pars, sysUserId)
  467. }
  468. if frequency != "" {
  469. condition += " AND frequency = ?"
  470. pars = append(pars, frequency)
  471. }
  472. if keyWord != "" {
  473. condition += ` AND (edb_name LIKE ? OR edb_code LIKE ? ) `
  474. pars = append(pars, "%"+keyWord+"%", "%"+keyWord+"%")
  475. }
  476. sortStr := ``
  477. sortParam := ``
  478. if sortParamReq != `` {
  479. switch sortParamReq {
  480. case "CreateTime":
  481. sortParam = "create_time"
  482. case "DataUpdateTime":
  483. sortParam = "data_update_time"
  484. case "ErDataUpdateDate":
  485. sortParam = "er_data_update_date"
  486. case "LatestDate":
  487. sortParam = "latest_date"
  488. case "StartDate":
  489. sortParam = "start_date"
  490. }
  491. if sortParam == "" {
  492. br.Msg = "请输入正确的排序字段"
  493. return
  494. }
  495. if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" {
  496. br.Msg = "请输入正确的排序类型"
  497. return
  498. }
  499. sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType)
  500. }
  501. total, err := data_stat.GetEdbUpdateStatCount(condition, pars)
  502. if err != nil {
  503. if err.Error() != utils.ErrNoRow() {
  504. br.Msg = "获取指标删除列表总数失败"
  505. br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error()
  506. return
  507. } else {
  508. err = nil
  509. }
  510. }
  511. list := make([]*data_stat.EdbInfoUpdateStatItem, 0)
  512. page := paging.GetPaging(currentIndex, pageSize, total)
  513. if total == 0 {
  514. resp := data_stat.GetEdbUpdateStatResp{
  515. Paging: page,
  516. List: list,
  517. }
  518. br.Ret = 200
  519. br.Success = true
  520. br.Msg = "获取成功"
  521. br.Data = resp
  522. return
  523. }
  524. tmpList, err := data_stat.GetEdbUpdateStatByCondition(condition, pars, sortStr, pageSize, startSize)
  525. if err != nil {
  526. br.Msg = "获取指标更新列表失败"
  527. br.ErrMsg = "获取指标更新列表失败,Err:" + err.Error()
  528. return
  529. }
  530. for _, v := range tmpList {
  531. tmp := new(data_stat.EdbInfoUpdateStatItem)
  532. tmp.Id = v.Id
  533. tmp.EdbInfoId = v.EdbInfoId
  534. tmp.SourceName = v.SourceName
  535. tmp.Source = v.Source
  536. tmp.EdbCode = v.EdbCode
  537. tmp.EdbName = v.EdbName
  538. tmp.EdbNameSource = v.EdbNameSource
  539. tmp.Frequency = v.Frequency
  540. tmp.Unit = v.Unit
  541. tmp.StartDate = v.StartDate
  542. tmp.SysUserId = v.SysUserId
  543. tmp.SysUserRealName = v.SysUserRealName
  544. tmp.LatestDate = v.LatestDate
  545. tmp.LatestValue = v.LatestValue
  546. tmp.TerminalCode = v.TerminalCode
  547. if v.DataUpdateTime != utils.EmptyDateTimeStr {
  548. tmp.DataUpdateTime = v.DataUpdateTime
  549. }
  550. if v.ErDataUpdateDate != utils.EmptyDateStr {
  551. tmp.ErDataUpdateDate = v.ErDataUpdateDate
  552. }
  553. tmp.SourceUpdateResult = v.SourceUpdateResult
  554. tmp.SourceUpdateFailedReason = v.SourceUpdateFailedReason
  555. tmp.SourceUpdateTime = v.SourceUpdateTime
  556. tmp.IsAdd = v.IsAdd
  557. tmp.NeedRefresh = v.NeedRefresh
  558. tmp.HasRefresh = v.HasRefresh
  559. list = append(list, tmp)
  560. }
  561. resp := data_stat.GetEdbUpdateStatResp{
  562. Paging: page,
  563. List: list,
  564. }
  565. br.Ret = 200
  566. br.Success = true
  567. br.Msg = "获取成功"
  568. br.Data = resp
  569. }
  570. // EdbSourceStat
  571. // @Title 查询数据源统计列表
  572. // @Description 查询数据源统计列表接口
  573. // @Success 200 {object} data_stat.GetEdbUpdateLogResp
  574. // @router /source_stat [get]
  575. func (this *EdbSourceStatController) EdbSourceStat() {
  576. br := new(models.BaseResponse).Init()
  577. defer func() {
  578. this.Data["json"] = br
  579. this.ServeJSON()
  580. }()
  581. sysUser := this.SysUser
  582. if sysUser == nil {
  583. br.Msg = "请登录"
  584. br.ErrMsg = "请登录,SysUser Is Empty"
  585. br.Ret = 408
  586. return
  587. }
  588. sortParamReq := this.GetString("SortParam", "")
  589. sortType := this.GetString("SortType", "desc")
  590. createTime := this.GetString("CreateTime", "")
  591. pageSize, _ := this.GetInt("PageSize")
  592. currentIndex, _ := this.GetInt("CurrentIndex")
  593. var startSize int
  594. if pageSize <= 0 {
  595. pageSize = utils.PageSize20
  596. }
  597. if currentIndex <= 0 {
  598. currentIndex = 1
  599. }
  600. startSize = paging.StartIndex(currentIndex, pageSize)
  601. condition := " and source = ?"
  602. var pars []interface{}
  603. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL)
  604. if createTime != "" {
  605. startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
  606. if err != nil {
  607. br.Msg = "请求时间格式错误"
  608. return
  609. }
  610. endT := startT.AddDate(0, 0, 1)
  611. condition += " AND create_time >= ? AND create_time < ?"
  612. pars = append(pars, createTime, endT.Format(utils.FormatDate))
  613. }
  614. sortStr := ``
  615. sortParam := ``
  616. if sortParamReq != `` {
  617. switch sortParamReq {
  618. case "EdbNum":
  619. sortParam = "edb_num"
  620. case "NeedRefreshNum":
  621. sortParam = "need_refresh_num"
  622. case "hasRefreshNum":
  623. sortParam = "has_refresh_num"
  624. case "UpdateSuccessNum":
  625. sortParam = "update_success_num"
  626. case "UpdateFailedNum":
  627. sortParam = "update_failed_num"
  628. }
  629. if sortParam == "" {
  630. br.Msg = "请输入正确的排序字段"
  631. return
  632. }
  633. if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" {
  634. br.Msg = "请输入正确的排序类型"
  635. return
  636. }
  637. sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType)
  638. }
  639. total, err := data_stat.GetEdbSourceStatCount(condition, pars)
  640. if err != nil {
  641. if err.Error() != utils.ErrNoRow() {
  642. br.Msg = "获取数据源统计列表总数失败"
  643. br.ErrMsg = "获取数据源统计列表总数失败,Err:" + err.Error()
  644. return
  645. } else {
  646. err = nil
  647. }
  648. }
  649. list := make([]*data_stat.EdbInfoSourceStatItem, 0)
  650. page := paging.GetPaging(currentIndex, pageSize, total)
  651. if total == 0 {
  652. resp := data_stat.GetEdbSourceStatResp{
  653. Paging: page,
  654. List: list,
  655. }
  656. br.Ret = 200
  657. br.Success = true
  658. br.Msg = "获取成功"
  659. br.Data = resp
  660. return
  661. }
  662. tmpList, err := data_stat.GetEdbSourceStatByCondition(condition, pars, sortStr, pageSize, startSize)
  663. if err != nil {
  664. br.Msg = "获取指标删除列表失败"
  665. br.ErrMsg = "获取指标删除列表失败,Err:" + err.Error()
  666. return
  667. }
  668. for _, v := range tmpList {
  669. tmp := new(data_stat.EdbInfoSourceStatItem)
  670. tmp.Id = v.Id
  671. tmp.SourceName = v.SourceName
  672. tmp.Source = v.Source
  673. tmp.TerminalCode = v.TerminalCode
  674. tmp.EdbNum = v.EdbNum
  675. tmp.EdbNewNum = v.EdbNewNum
  676. tmp.EdbDelNum = v.EdbDelNum
  677. tmp.NeedUpdateNum = v.NeedUpdateNum
  678. tmp.HasUpdateNum = v.HasUpdateNum
  679. tmp.UpdateSuccessNum = v.UpdateSuccessNum
  680. tmp.UpdateFailedNum = v.UpdateFailedNum
  681. list = append(list, tmp)
  682. }
  683. resp := data_stat.GetEdbSourceStatResp{
  684. Paging: page,
  685. List: list,
  686. }
  687. br.Ret = 200
  688. br.Success = true
  689. br.Msg = "获取成功"
  690. br.Data = resp
  691. }
  692. // EdbUpdateFailedList
  693. // @Title 查询指标刷新失败详情列表
  694. // @Description 查询指标刷新失败详情列表
  695. // @Success 200 {object} data_stat.GetEdbUpdateLogResp
  696. // @router /edb_update_stat/failed [get]
  697. func (this *EdbSourceStatController) EdbUpdateFailedList() {
  698. br := new(models.BaseResponse).Init()
  699. defer func() {
  700. this.Data["json"] = br
  701. this.ServeJSON()
  702. }()
  703. sysUser := this.SysUser
  704. if sysUser == nil {
  705. br.Msg = "请登录"
  706. br.ErrMsg = "请登录,SysUser Is Empty"
  707. br.Ret = 408
  708. return
  709. }
  710. terminalCode := this.GetString("TerminalCode", "")
  711. createTime := this.GetString("CreateTime", "")
  712. if terminalCode == "" {
  713. br.Msg = "请选择对应的终端信息"
  714. return
  715. }
  716. terminalInfo, err := data_manage.GetEdbTerminalByTerminalCode(terminalCode)
  717. if err != nil {
  718. if err.Error() == utils.ErrNoRow() {
  719. br.Msg = "终端不存在"
  720. return
  721. }
  722. br.Msg = "查询终端信息出错"
  723. br.ErrMsg = "查询终端信息出错 Err:" + err.Error()
  724. return
  725. }
  726. condition := " and source = ? and terminal_code = ?"
  727. var pars []interface{}
  728. pars = append(pars, utils.DATA_SOURCE_MYSTEEL_CHEMICAL, terminalCode)
  729. if createTime != "" {
  730. startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
  731. if err != nil {
  732. br.Msg = "请求时间格式错误"
  733. return
  734. }
  735. endT := startT.AddDate(0, 0, 1)
  736. condition += " AND create_time >= ? AND create_time < ?"
  737. pars = append(pars, createTime, endT.Format(utils.FormatDate))
  738. }
  739. tmpList, err := data_stat.GetEdbUpdateStatFailedGroupByCondition(condition, pars)
  740. if err != nil {
  741. br.Msg = "获取指标更新失败详情列表 失败"
  742. br.ErrMsg = "获取指标更新失败详情列表 失败,Err:" + err.Error()
  743. return
  744. }
  745. list := make([]*data_stat.EdbUpdateFailedList, 0)
  746. successNum := 0
  747. failedNum := 0
  748. if len(tmpList) > 0 {
  749. for _, v := range tmpList {
  750. if v.SourceUpdateResult == 1 {
  751. successNum += v.Num
  752. } else {
  753. failedNum += v.Num
  754. list = append(list, v)
  755. }
  756. }
  757. }
  758. resp := data_stat.GetEdbUpdateFailedResp{
  759. List: list,
  760. Name: terminalInfo.Name,
  761. TerminalCode: terminalCode,
  762. DirPath: terminalInfo.DirPath,
  763. UpdateSuccessNum: successNum,
  764. UpdateFailedNum: failedNum,
  765. }
  766. br.Ret = 200
  767. br.Success = true
  768. br.Msg = "获取成功"
  769. br.Data = resp
  770. }