chart_info.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. package line_feature
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "github.com/rdlucklib/rdluck_tools/paging"
  6. "eta/eta_mobile/controllers"
  7. "eta/eta_mobile/models"
  8. "eta/eta_mobile/models/data_manage"
  9. "eta/eta_mobile/models/data_manage/line_feature/request"
  10. "eta/eta_mobile/services/data"
  11. lineFeatureServ "eta/eta_mobile/services/data/line_feature"
  12. "eta/eta_mobile/utils"
  13. "strconv"
  14. "strings"
  15. "time"
  16. )
  17. // LineFeaturesChartInfoController 统计特征图表管理
  18. type LineFeaturesChartInfoController struct {
  19. controllers.BaseAuthController
  20. }
  21. // List
  22. // @Title 统计特征图表列表接口
  23. // @Description 统计特征图表列表接口
  24. // @Param PageSize query int true "每页数据条数"
  25. // @Param CurrentIndex query int true "当前页页码,从1开始"
  26. // @Param ChartClassifyId query int true "分类id"
  27. // @Param Keyword query string true "搜索关键词"
  28. // @Param IsShowMe query bool true "是否只看我的,true、false"
  29. // @Param Source query int true "图表类型,3:统计特征,4:滚动统计特征"
  30. // @Success 200 {object} data_manage.ChartListResp
  31. // @router /chart_info/list [get]
  32. func (this *LineFeaturesChartInfoController) List() {
  33. br := new(models.BaseResponse).Init()
  34. defer func() {
  35. this.Data["json"] = br
  36. this.ServeJSON()
  37. }()
  38. sysUser := this.SysUser
  39. if sysUser == nil {
  40. br.Msg = "请登录"
  41. br.ErrMsg = "请登录,SysUser Is Empty"
  42. br.Ret = 408
  43. return
  44. }
  45. chartClassifyId, _ := this.GetInt("ChartClassifyId")
  46. pageSize, _ := this.GetInt("PageSize")
  47. currentIndex, _ := this.GetInt("CurrentIndex")
  48. keyword := this.GetString("KeyWord")
  49. var total int
  50. page := paging.GetPaging(currentIndex, pageSize, total)
  51. var startSize int
  52. if pageSize <= 0 {
  53. pageSize = utils.PageSize20
  54. }
  55. if currentIndex <= 0 {
  56. currentIndex = 1
  57. }
  58. startSize = paging.StartIndex(currentIndex, pageSize)
  59. var condition string
  60. var pars []interface{}
  61. // 普通图表
  62. condition += ` AND source in(?,?,?) `
  63. pars = append(pars, utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, utils.CHART_SOURCE_LINE_FEATURE_PERCENTILE, utils.CHART_SOURCE_LINE_FEATURE_FREQUENCY)
  64. if chartClassifyId > 0 {
  65. chartClassifyId, err := data_manage.GetChartClassify(chartClassifyId)
  66. if err != nil && err.Error() != utils.ErrNoRow() {
  67. br.Msg = "获取图表信息失败"
  68. br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
  69. return
  70. }
  71. condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
  72. }
  73. if keyword != "" {
  74. condition += ` AND ( chart_name LIKE '%` + keyword + `%' )`
  75. }
  76. //只看我的
  77. isShowMe, _ := this.GetBool("IsShowMe")
  78. if isShowMe {
  79. condition += ` AND sys_user_id = ? `
  80. pars = append(pars, sysUser.AdminId)
  81. }
  82. // 获取当前账号的不可见指标
  83. noPermissionChartIdList := make([]int, 0)
  84. {
  85. obj := data_manage.EdbInfoNoPermissionAdmin{}
  86. confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
  87. if err != nil && err.Error() != utils.ErrNoRow() {
  88. br.Msg = "获取失败"
  89. br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  90. return
  91. }
  92. for _, v := range confList {
  93. noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
  94. }
  95. }
  96. lenNoPermissionChartIdList := len(noPermissionChartIdList)
  97. if lenNoPermissionChartIdList > 0 {
  98. condition += ` AND chart_info_id not in (` + utils.GetOrmInReplace(lenNoPermissionChartIdList) + `) `
  99. pars = append(pars, noPermissionChartIdList)
  100. }
  101. //获取图表信息
  102. list, err := data_manage.GetChartListByCondition(condition, pars, startSize, pageSize)
  103. if err != nil && err.Error() != utils.ErrNoRow() {
  104. br.Success = true
  105. br.Msg = "获取图表信息失败"
  106. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  107. return
  108. }
  109. myChartList, err := data_manage.GetMyChartListByAdminId(sysUser.AdminId)
  110. if err != nil && err.Error() != utils.ErrNoRow() {
  111. br.Msg = "获取图表信息失败"
  112. br.ErrMsg = "获取我的图表信息失败,Err:" + err.Error()
  113. return
  114. }
  115. myChartMap := make(map[int]*data_manage.MyChartView)
  116. for _, v := range myChartList {
  117. myChartMap[v.ChartInfoId] = v
  118. }
  119. listLen := len(list)
  120. chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
  121. if listLen > 0 {
  122. chartInfoIds := ""
  123. for _, v := range list {
  124. chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
  125. }
  126. if chartInfoIds != "" {
  127. chartInfoIds = strings.Trim(chartInfoIds, ",")
  128. //判断是否需要展示英文标识
  129. edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
  130. if e != nil {
  131. br.Msg = "获取失败"
  132. br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
  133. return
  134. }
  135. for _, v := range edbList {
  136. chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
  137. }
  138. }
  139. }
  140. for i := 0; i < listLen; i++ {
  141. //判断是否需要展示英文标识
  142. if _, ok := chartEdbMap[list[i].ChartInfoId]; ok {
  143. list[i].IsEnChart = data.CheckIsEnChart(list[i].ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, list[i].Source, list[i].ChartType)
  144. }
  145. if existItem, ok := myChartMap[list[i].ChartInfoId]; ok {
  146. list[i].IsAdd = true
  147. list[i].MyChartId = existItem.MyChartId
  148. list[i].MyChartClassifyId = existItem.MyChartClassifyId
  149. }
  150. }
  151. resp := new(data_manage.ChartListResp)
  152. if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
  153. items := make([]*data_manage.ChartInfoView, 0)
  154. resp.Paging = page
  155. resp.List = items
  156. br.Ret = 200
  157. br.Success = true
  158. br.Msg = "获取成功"
  159. return
  160. }
  161. dataCount, err := data_manage.GetChartListCountByCondition(condition, pars)
  162. if err != nil && err.Error() != utils.ErrNoRow() {
  163. br.Msg = "获取指标信息失败"
  164. br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
  165. return
  166. }
  167. page = paging.GetPaging(currentIndex, pageSize, dataCount)
  168. resp.Paging = page
  169. resp.List = list
  170. br.Ret = 200
  171. br.Success = true
  172. br.Msg = "获取成功"
  173. br.Data = resp
  174. }
  175. // Refresh
  176. // @Title 图表刷新接口
  177. // @Description 图表刷新接口
  178. // @Param ChartInfoId query int true "图表id"
  179. // @Param UniqueCode query string true "唯一code"
  180. // @Success Ret=200 刷新成功
  181. // @router /chart_info/refresh [get]
  182. func (this *LineFeaturesChartInfoController) Refresh() {
  183. br := new(models.BaseResponse).Init()
  184. defer func() {
  185. this.Data["json"] = br
  186. this.ServeJSON()
  187. }()
  188. sysUser := this.SysUser
  189. if sysUser == nil {
  190. br.Msg = "请登录"
  191. br.ErrMsg = "请登录,SysUser Is Empty"
  192. br.Ret = 408
  193. return
  194. }
  195. chartInfoId, _ := this.GetInt("ChartInfoId")
  196. uniqueCode := this.GetString("UniqueCode")
  197. if chartInfoId <= 0 && uniqueCode == `` {
  198. br.Msg = "参数错误"
  199. br.ErrMsg = "参数错误:chartInfoId:" + strconv.Itoa(chartInfoId) + ",UniqueCode:" + uniqueCode
  200. return
  201. }
  202. var chartInfo *data_manage.ChartInfo
  203. var err error
  204. if chartInfoId > 0 {
  205. chartInfo, err = data_manage.GetChartInfoById(chartInfoId)
  206. } else {
  207. chartInfo, err = data_manage.GetChartInfoByUniqueCode(uniqueCode)
  208. }
  209. if err != nil {
  210. if err.Error() == utils.ErrNoRow() {
  211. br.Msg = "图表已被删除,无需刷新"
  212. br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
  213. return
  214. }
  215. br.Msg = "刷新失败"
  216. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  217. return
  218. }
  219. // 刷新图表的指标信息
  220. err = data.ChartInfoRefreshV2(chartInfo.ChartInfoId)
  221. //清除图表缓存
  222. {
  223. key := utils.HZ_CHART_LIB_DETAIL + chartInfo.UniqueCode
  224. _ = utils.Rc.Delete(key)
  225. }
  226. br.Ret = 200
  227. br.Success = true
  228. br.Msg = "刷新成功"
  229. }
  230. // Copy
  231. // @Title 复制并新增图表接口
  232. // @Description 复制并新增图表接口
  233. // @Param request body data_manage.CopyAddChartInfoReq true "type json string"
  234. // @Success 200 {object} data_manage.AddChartInfoResp
  235. // @router /chart_info/copy [post]
  236. func (this *LineFeaturesChartInfoController) Copy() {
  237. br := new(models.BaseResponse).Init()
  238. defer func() {
  239. this.Data["json"] = br
  240. this.ServeJSON()
  241. }()
  242. sysUser := this.SysUser
  243. if sysUser == nil {
  244. br.Msg = "请登录"
  245. br.ErrMsg = "请登录,SysUser Is Empty"
  246. br.Ret = 408
  247. return
  248. }
  249. deleteCache := true
  250. cacheKey := "CACHE_CHART_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
  251. defer func() {
  252. if deleteCache {
  253. utils.Rc.Delete(cacheKey)
  254. }
  255. }()
  256. if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
  257. deleteCache = false
  258. br.Msg = "系统处理中,请稍后重试!"
  259. br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
  260. return
  261. }
  262. var req data_manage.CopyAddChartInfoReq
  263. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  264. if err != nil {
  265. br.Msg = "参数解析异常!"
  266. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  267. return
  268. }
  269. // 获取原图表信息
  270. oldChartInfo, err := data_manage.GetChartInfoById(req.ChartInfoId)
  271. if err != nil {
  272. br.Msg = "获取原图表信息失败"
  273. br.ErrMsg = "获取原图表信息失败,Err:" + err.Error()
  274. return
  275. }
  276. if !utils.InArrayByInt([]int{utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, utils.CHART_SOURCE_LINE_FEATURE_PERCENTILE, utils.CHART_SOURCE_LINE_FEATURE_FREQUENCY}, oldChartInfo.Source) {
  277. br.Msg = `错误的图表类型`
  278. br.IsSendEmail = false
  279. return
  280. }
  281. multipleGraphConfigChartMapping, err := data_manage.GetMultipleGraphConfigChartMappingByChartId(oldChartInfo.ChartInfoId)
  282. if err != nil && err.Error() != utils.ErrNoRow() {
  283. br.Msg = `保存失败`
  284. br.ErrMsg = "获取配置与图表的关联关系失败,ERR:" + err.Error()
  285. return
  286. }
  287. // 获取图表关联指标
  288. edbMappingList, err := data_manage.GetChartEdbMappingList(oldChartInfo.ChartInfoId)
  289. if err != nil {
  290. br.Msg = "获取失败"
  291. br.ErrMsg = "获取图表关联指标信息失败,Err:" + err.Error()
  292. return
  293. }
  294. if len(edbMappingList) != 1 {
  295. br.Msg = "获取失败"
  296. br.ErrMsg = fmt.Sprint("获取图表关联指标信息异常,数量:", len(edbMappingList))
  297. return
  298. }
  299. edbInfoMapping := edbMappingList[0]
  300. // 批量设置图
  301. chartInfo, err, errMsg, isSendEmail := lineFeatureServ.CopyChartInfo(multipleGraphConfigChartMapping.MultipleGraphConfigId, multipleGraphConfigChartMapping.Source, req.ChartClassifyId, req.ChartName, edbInfoMapping, oldChartInfo, sysUser)
  302. if err != nil {
  303. br.Msg = "复制失败"
  304. if errMsg != `` {
  305. br.Msg = errMsg
  306. }
  307. br.ErrMsg = "复制失败,ERR:" + err.Error()
  308. br.IsSendEmail = isSendEmail
  309. return
  310. }
  311. resp := data_manage.AddChartInfoResp{
  312. ChartInfoId: chartInfo.ChartInfoId,
  313. UniqueCode: chartInfo.UniqueCode,
  314. ChartType: chartInfo.ChartType,
  315. }
  316. //新增操作日志
  317. {
  318. chartLog := new(data_manage.ChartInfoLog)
  319. chartLog.ChartInfoId = chartInfo.ChartInfoId
  320. chartLog.ChartName = chartInfo.ChartName
  321. chartLog.ChartClassifyId = chartInfo.ChartClassifyId
  322. chartLog.SysUserId = sysUser.AdminId
  323. chartLog.SysUserRealName = sysUser.RealName
  324. chartLog.UniqueCode = chartInfo.UniqueCode
  325. chartLog.CreateTime = time.Now()
  326. chartLog.Content = string(this.Ctx.Input.RequestBody)
  327. chartLog.Status = "新增统计特征图表"
  328. chartLog.Method = this.Ctx.Input.URI()
  329. go data_manage.AddChartInfoLog(chartLog)
  330. }
  331. br.Ret = 200
  332. br.Data = resp
  333. br.Success = true
  334. br.Msg = "保存成功"
  335. br.IsAddLog = true
  336. }
  337. // EnInfoEdit
  338. // @Title 编辑图表英文信息接口
  339. // @Description 编辑图表英文信息接口
  340. // @Param request body data_manage.EditChartEnInfoReq true "type json string"
  341. // @Success Ret=200 编辑成功
  342. // @router /chart_info/en/edit [post]
  343. func (this *LineFeaturesChartInfoController) EnInfoEdit() {
  344. br := new(models.BaseResponse).Init()
  345. defer func() {
  346. this.Data["json"] = br
  347. this.ServeJSON()
  348. }()
  349. sysUser := this.SysUser
  350. if sysUser == nil {
  351. br.Msg = "请登录"
  352. br.ErrMsg = "请登录,SysUser Is Empty"
  353. br.Ret = 408
  354. return
  355. }
  356. var req request.EditChartEnInfoReq
  357. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  358. if err != nil {
  359. br.Msg = "参数解析异常!"
  360. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  361. return
  362. }
  363. req.ChartNameEn = strings.Trim(req.ChartNameEn, " ")
  364. if req.ChartInfoId <= 0 {
  365. br.Msg = "请选择图表"
  366. return
  367. }
  368. if req.ChartNameEn == "" {
  369. br.Msg = "请输入英文图表名称"
  370. return
  371. }
  372. //判断指标名称是否存在
  373. chartItem, err := data_manage.GetChartInfoById(req.ChartInfoId)
  374. if err != nil {
  375. if err.Error() == utils.ErrNoRow() {
  376. br.Msg = "图表已被删除,请刷新页面"
  377. br.ErrMsg = "图表已被删除,请刷新页面"
  378. return
  379. }
  380. br.Msg = "获取图表信息失败"
  381. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  382. return
  383. }
  384. // 校验名称是否有重复
  385. {
  386. var condition string
  387. var pars []interface{}
  388. condition += " AND chart_info_id <> ? AND chart_name_en = ? AND source in (?,?,?)"
  389. pars = append(pars, req.ChartInfoId, req.ChartNameEn, utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, utils.CHART_SOURCE_LINE_FEATURE_PERCENTILE, utils.CHART_SOURCE_LINE_FEATURE_FREQUENCY)
  390. existItem, err := data_manage.GetChartInfoByCondition(condition, pars)
  391. if err != nil {
  392. if err.Error() != utils.ErrNoRow() {
  393. br.Msg = "判断英文图表名称是否存在失败"
  394. br.ErrMsg = "判断英文图表名称是否存在失败,Err:" + err.Error()
  395. return
  396. }
  397. }
  398. if err == nil && existItem.ChartInfoId > 0 {
  399. br.Msg = existItem.ChartName + ":" + req.ChartNameEn + "图表名称已存在"
  400. return
  401. }
  402. }
  403. chartItem.ChartNameEn = req.ChartNameEn
  404. chartItem.ModifyTime = time.Now().Local()
  405. if e := chartItem.Update([]string{"ChartNameEn", "ModifyTime"}); e != nil {
  406. br.Msg = "操作失败"
  407. br.ErrMsg = "更新图表信息失败, Err: " + e.Error()
  408. return
  409. }
  410. //添加es数据
  411. go data.EsAddOrEditChartInfo(chartItem.ChartInfoId)
  412. //修改my eta es数据
  413. go data.EsAddOrEditMyChartInfoByChartInfoId(chartItem.ChartInfoId)
  414. //指标 修改es信息
  415. //go data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
  416. //新增操作日志
  417. {
  418. chartLog := new(data_manage.ChartInfoLog)
  419. chartLog.ChartName = chartItem.ChartName
  420. chartLog.ChartInfoId = req.ChartInfoId
  421. chartLog.ChartClassifyId = chartItem.ChartClassifyId
  422. chartLog.SysUserId = sysUser.AdminId
  423. chartLog.SysUserRealName = sysUser.RealName
  424. chartLog.UniqueCode = chartItem.UniqueCode
  425. chartLog.CreateTime = time.Now()
  426. chartLog.Content = string(this.Ctx.Input.RequestBody)
  427. chartLog.Status = "编辑统计特征图表英文信息"
  428. chartLog.Method = this.Ctx.Input.URL()
  429. go data_manage.AddChartInfoLog(chartLog)
  430. }
  431. // 清除缓存
  432. if utils.Re == nil && utils.Rc != nil {
  433. _ = utils.Rc.Delete(utils.HZ_CHART_LIB_DETAIL + chartItem.UniqueCode) //图表分享链接缓存
  434. _ = utils.Rc.Delete(data.GetChartInfoDataKey(req.ChartInfoId))
  435. }
  436. br.Ret = 200
  437. br.Success = true
  438. br.Msg = "编辑成功"
  439. br.IsAddLog = true
  440. }
  441. // SearchByEs
  442. // @Title 图表模糊搜索(从es获取)
  443. // @Description 图表模糊搜索(从es获取)
  444. // @Param Keyword query string true "图表名称"
  445. // @Param IsShowMe query bool true "是否只看我的,true、false"
  446. // @Param Source query int true "来源,3:统计特征,4:滚动统计特征,默认0:全部"
  447. // @Success 200 {object} data_manage.ChartInfo
  448. // @router /chart_info/search_by_es [get]
  449. func (this *LineFeaturesChartInfoController) SearchByEs() {
  450. br := new(models.BaseResponse).Init()
  451. defer func() {
  452. this.Data["json"] = br
  453. this.ServeJSON()
  454. }()
  455. sysUser := this.SysUser
  456. if sysUser == nil {
  457. br.Msg = "请登录"
  458. br.ErrMsg = "请登录,SysUser Is Empty"
  459. br.Ret = 408
  460. return
  461. }
  462. pageSize, _ := this.GetInt("PageSize")
  463. currentIndex, _ := this.GetInt("CurrentIndex")
  464. var startSize int
  465. if pageSize <= 0 {
  466. pageSize = utils.PageSize20
  467. }
  468. if currentIndex <= 0 {
  469. currentIndex = 1
  470. }
  471. startSize = paging.StartIndex(currentIndex, pageSize)
  472. keyword := this.GetString("Keyword")
  473. //只看我的
  474. isShowMe, _ := this.GetBool("IsShowMe")
  475. showSysId := 0
  476. if isShowMe {
  477. showSysId = sysUser.AdminId
  478. }
  479. sourceList := []int{utils.CHART_SOURCE_LINE_FEATURE_STANDARD_DEVIATION, utils.CHART_SOURCE_LINE_FEATURE_PERCENTILE, utils.CHART_SOURCE_LINE_FEATURE_FREQUENCY}
  480. var searchList []*data_manage.ChartInfo
  481. var total int64
  482. var err error
  483. // 获取当前账号的不可见指标
  484. noPermissionChartIdList := make([]int, 0)
  485. {
  486. obj := data_manage.EdbInfoNoPermissionAdmin{}
  487. confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
  488. if err != nil && err.Error() != utils.ErrNoRow() {
  489. br.Msg = "获取失败"
  490. br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  491. return
  492. }
  493. for _, v := range confList {
  494. noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
  495. }
  496. }
  497. if keyword != "" {
  498. searchList, total, err = data.EsSearchChartInfo(keyword, showSysId, sourceList, noPermissionChartIdList, startSize, pageSize)
  499. } else {
  500. total, searchList, err = data_manage.ChartInfoSearchByEmptyKeyWord(showSysId, sourceList, noPermissionChartIdList)
  501. if err != nil && err.Error() != utils.ErrNoRow() {
  502. br.Msg = "获取失败"
  503. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  504. return
  505. }
  506. }
  507. finalList := make([]*data_manage.ChartInfoMore, 0)
  508. if len(searchList) > 0 {
  509. chartInfoIds := ""
  510. chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
  511. for _, v := range searchList {
  512. chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
  513. }
  514. if chartInfoIds != "" {
  515. chartInfoIds = strings.Trim(chartInfoIds, ",")
  516. //判断是否需要展示英文标识
  517. edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
  518. if e != nil {
  519. br.Msg = "获取失败"
  520. br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
  521. return
  522. }
  523. for _, v := range edbList {
  524. chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
  525. }
  526. }
  527. for _, v := range searchList {
  528. tmp := new(data_manage.ChartInfoMore)
  529. tmp.ChartInfo = *v
  530. //判断是否需要展示英文标识
  531. if _, ok := chartEdbMap[v.ChartInfoId]; ok {
  532. tmp.IsEnChart = data.CheckIsEnChart(v.ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, v.Source, v.ChartType)
  533. }
  534. finalList = append(finalList, tmp)
  535. }
  536. }
  537. //新增搜索词记录
  538. {
  539. searchKeyword := new(data_manage.SearchKeyword)
  540. searchKeyword.KeyWord = keyword
  541. searchKeyword.CreateTime = time.Now()
  542. go data_manage.AddSearchKeyword(searchKeyword)
  543. }
  544. page := paging.GetPaging(currentIndex, pageSize, int(total))
  545. resp := data_manage.ChartInfoListByEsResp{
  546. Paging: page,
  547. List: finalList,
  548. }
  549. br.Ret = 200
  550. br.Success = true
  551. br.Msg = "获取成功"
  552. br.Data = resp
  553. }