edb_source_stat.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  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. var list []*data_stat.EdbInfoStatColumn
  96. for k, v := range req.List {
  97. if v.Id == 0 {
  98. br.Msg = "列序号不能为空"
  99. return
  100. }
  101. tmp := new(data_stat.EdbInfoStatColumn)
  102. tmp.Id = v.Id
  103. tmp.Sort = k + 1
  104. tmp.IsShow = v.IsShow
  105. list = append(list, tmp)
  106. }
  107. err = data_stat.UpdateStatColumn(list)
  108. if err != nil {
  109. br.Msg = "更新自定义列操作失败!"
  110. br.ErrMsg = "更新自定义列操作失败,Err:" + err.Error()
  111. return
  112. }
  113. br.Ret = 200
  114. br.Success = true
  115. br.Msg = "获取成功"
  116. return
  117. }
  118. // EdbDeleteLog
  119. // @Title 查询删除指标列表
  120. // @Description 查询删除指标列表接口
  121. // @Success 200 {object} data_stat.StatColumnList
  122. // @router /edb_delete_log [get]
  123. func (this *EdbSourceStatController) EdbDeleteLog() {
  124. br := new(models.BaseResponse).Init()
  125. defer func() {
  126. this.Data["json"] = br
  127. this.ServeJSON()
  128. }()
  129. sysUser := this.SysUser
  130. if sysUser == nil {
  131. br.Msg = "请登录"
  132. br.ErrMsg = "请登录,SysUser Is Empty"
  133. br.Ret = 408
  134. return
  135. }
  136. sortParamReq := this.GetString("SortParam", "")
  137. sortType := this.GetString("SortType", "desc")
  138. createTime := this.GetString("CreateTime", "")
  139. pageSize, _ := this.GetInt("PageSize")
  140. currentIndex, _ := this.GetInt("CurrentIndex")
  141. var startSize int
  142. if pageSize <= 0 {
  143. pageSize = utils.PageSize20
  144. }
  145. if currentIndex <= 0 {
  146. currentIndex = 1
  147. }
  148. startSize = paging.StartIndex(currentIndex, pageSize)
  149. var condition string
  150. var pars []interface{}
  151. if createTime != "" {
  152. startT, err := time.ParseInLocation(utils.FormatDate, createTime, time.Local)
  153. if err != nil {
  154. br.Msg = "请求时间格式错误"
  155. return
  156. }
  157. endT := startT.AddDate(0, 0, 1)
  158. condition += " AND create_time >= ? AND create_time < ?"
  159. pars = append(pars, createTime, endT.Format(utils.FormatDate))
  160. }
  161. sortStr := ``
  162. sortParam := ``
  163. if sortParamReq != `` {
  164. switch sortParamReq {
  165. case "CreateTime":
  166. sortParam = "create_time"
  167. case "ErDataUpdateDate":
  168. sortParam = "er_data_update_date"
  169. case "LatestDate":
  170. sortParam = "latest_date"
  171. case "StartDate":
  172. sortParam = "start_date"
  173. }
  174. if sortParam == "" {
  175. br.Msg = "请输入正确的排序字段"
  176. return
  177. }
  178. if strings.ToLower(sortType) != "asc" && strings.ToLower(sortType) != "desc" {
  179. br.Msg = "请输入正确的排序类型"
  180. return
  181. }
  182. sortStr = fmt.Sprintf(" order by %s %s, id desc ", sortParam, sortType)
  183. }
  184. total, err := data_stat.GetEdbDeleteLogCount(condition, pars)
  185. if err != nil {
  186. if err.Error() != utils.ErrNoRow() {
  187. br.Msg = "获取指标删除列表总数失败"
  188. br.ErrMsg = "获取指标删除列表总数失败,Err:" + err.Error()
  189. return
  190. } else {
  191. err = nil
  192. }
  193. }
  194. list := make([]*data_stat.EdbInfoDeleteLogItem, 0)
  195. page := paging.GetPaging(currentIndex, pageSize, total)
  196. if total == 0 {
  197. resp := data_stat.GetEdbDeleteLogResp{
  198. Paging: page,
  199. List: list,
  200. }
  201. br.Ret = 200
  202. br.Success = true
  203. br.Msg = "获取成功"
  204. br.Data = resp
  205. return
  206. }
  207. tmpList, err := data_stat.GetEdbDeleteLogByCondition(condition, pars, sortStr, pageSize, startSize)
  208. if err != nil {
  209. br.Msg = "获取指标删除列表失败"
  210. br.ErrMsg = "获取指标删除列表失败,Err:" + err.Error()
  211. return
  212. }
  213. for _, v := range tmpList {
  214. tmp := new(data_stat.EdbInfoDeleteLogItem)
  215. tmp.EdbCode = v.EdbCode
  216. tmp.EdbInfoId = v.EdbInfoId
  217. tmp.Id = v.Id
  218. tmp.StartDate = v.StartDate
  219. tmp.Unit = v.Unit
  220. tmp.TerminalCode = v.TerminalCode
  221. tmp.CreateTime = v.CreateTime
  222. tmp.Frequency = v.Frequency
  223. tmp.Source = v.Source
  224. tmp.SourceName = v.SourceName
  225. tmp.EdbNameSource = v.EdbNameSource
  226. tmp.LatestDate = v.LatestDate
  227. tmp.DataUpdateTime = v.DataUpdateTime
  228. tmp.DelSysUserId = v.DelSysUserId
  229. tmp.DelSysUserRealName = v.DelSysUserRealName
  230. tmp.SysUserId = v.SysUserId
  231. tmp.LatestValue = v.LatestValue
  232. tmp.ErDataUpdateDate = v.ErDataUpdateDate
  233. list = append(list, tmp)
  234. }
  235. resp := data_stat.GetEdbDeleteLogResp{
  236. Paging: page,
  237. List: list,
  238. }
  239. br.Ret = 200
  240. br.Success = true
  241. br.Msg = "获取成功"
  242. br.Data = resp
  243. }