edb_source_stat.go 19 KB

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