line_chart_info.go 62 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968
  1. package line_equation
  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_equation/request"
  10. "eta/eta_mobile/models/system"
  11. "eta/eta_mobile/services/data"
  12. "eta/eta_mobile/services/data/line_equation"
  13. "eta/eta_mobile/utils"
  14. "strconv"
  15. "strings"
  16. "time"
  17. )
  18. // LineEquationChartInfoController 拟合方程图表管理
  19. type LineEquationChartInfoController struct {
  20. controllers.BaseAuthController
  21. }
  22. // List
  23. // @Title 拟合方程图表列表接口
  24. // @Description 拟合方程图表列表接口
  25. // @Param PageSize query int true "每页数据条数"
  26. // @Param CurrentIndex query int true "当前页页码,从1开始"
  27. // @Param ChartClassifyId query int true "分类id"
  28. // @Param Keyword query string true "搜索关键词"
  29. // @Param IsShowMe query bool true "是否只看我的,true、false"
  30. // @Param Source query int true "图表类型,3:拟合方程,4:滚动拟合方程"
  31. // @Success 200 {object} data_manage.ChartListResp
  32. // @router /chart_info/list [get]
  33. func (this *LineEquationChartInfoController) List() {
  34. br := new(models.BaseResponse).Init()
  35. defer func() {
  36. this.Data["json"] = br
  37. this.ServeJSON()
  38. }()
  39. sysUser := this.SysUser
  40. if sysUser == nil {
  41. br.Msg = "请登录"
  42. br.ErrMsg = "请登录,SysUser Is Empty"
  43. br.Ret = 408
  44. return
  45. }
  46. chartClassifyId, _ := this.GetInt("ChartClassifyId")
  47. pageSize, _ := this.GetInt("PageSize")
  48. currentIndex, _ := this.GetInt("CurrentIndex")
  49. keyword := this.GetString("KeyWord")
  50. var total int
  51. page := paging.GetPaging(currentIndex, pageSize, total)
  52. var startSize int
  53. if pageSize <= 0 {
  54. pageSize = utils.PageSize20
  55. }
  56. if currentIndex <= 0 {
  57. currentIndex = 1
  58. }
  59. startSize = paging.StartIndex(currentIndex, pageSize)
  60. source, _ := this.GetInt("Source")
  61. if source <= 0 {
  62. source = utils.CHART_SOURCE_LINE_EQUATION
  63. }
  64. var condition string
  65. var pars []interface{}
  66. // 普通图表
  67. condition += ` AND source = ? `
  68. pars = append(pars, source)
  69. if chartClassifyId > 0 {
  70. chartClassifyId, err := data_manage.GetChartClassify(chartClassifyId)
  71. if err != nil && err.Error() != utils.ErrNoRow() {
  72. br.Msg = "获取图表信息失败"
  73. br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
  74. return
  75. }
  76. condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
  77. }
  78. if keyword != "" {
  79. condition += ` AND ( chart_name LIKE '%` + keyword + `%' )`
  80. }
  81. //只看我的
  82. isShowMe, _ := this.GetBool("IsShowMe")
  83. if isShowMe {
  84. condition += ` AND sys_user_id = ? `
  85. pars = append(pars, sysUser.AdminId)
  86. }
  87. // 获取当前账号的不可见指标
  88. noPermissionChartIdList := make([]int, 0)
  89. {
  90. obj := data_manage.EdbInfoNoPermissionAdmin{}
  91. confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
  92. if err != nil && err.Error() != utils.ErrNoRow() {
  93. br.Msg = "获取失败"
  94. br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  95. return
  96. }
  97. for _, v := range confList {
  98. noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
  99. }
  100. }
  101. lenNoPermissionChartIdList := len(noPermissionChartIdList)
  102. if lenNoPermissionChartIdList > 0 {
  103. condition += ` AND chart_info_id not in (` + utils.GetOrmInReplace(lenNoPermissionChartIdList) + `) `
  104. pars = append(pars, noPermissionChartIdList)
  105. }
  106. //获取图表信息
  107. list, err := data_manage.GetChartListByCondition(condition, pars, startSize, pageSize)
  108. if err != nil && err.Error() != utils.ErrNoRow() {
  109. br.Success = true
  110. br.Msg = "获取图表信息失败"
  111. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  112. return
  113. }
  114. myChartList, err := data_manage.GetMyChartListByAdminId(sysUser.AdminId)
  115. if err != nil && err.Error() != utils.ErrNoRow() {
  116. br.Msg = "获取图表信息失败"
  117. br.ErrMsg = "获取我的图表信息失败,Err:" + err.Error()
  118. return
  119. }
  120. myChartMap := make(map[int]*data_manage.MyChartView)
  121. for _, v := range myChartList {
  122. myChartMap[v.ChartInfoId] = v
  123. }
  124. listLen := len(list)
  125. chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
  126. if listLen > 0 {
  127. chartInfoIds := ""
  128. for _, v := range list {
  129. chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
  130. }
  131. if chartInfoIds != "" {
  132. chartInfoIds = strings.Trim(chartInfoIds, ",")
  133. //判断是否需要展示英文标识
  134. edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
  135. if e != nil {
  136. br.Msg = "获取失败"
  137. br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
  138. return
  139. }
  140. for _, v := range edbList {
  141. chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
  142. }
  143. }
  144. }
  145. for i := 0; i < listLen; i++ {
  146. //判断是否需要展示英文标识
  147. if _, ok := chartEdbMap[list[i].ChartInfoId]; ok {
  148. list[i].IsEnChart = data.CheckIsEnChart(list[i].ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, list[i].Source, list[i].ChartType)
  149. }
  150. if existItem, ok := myChartMap[list[i].ChartInfoId]; ok {
  151. list[i].IsAdd = true
  152. list[i].MyChartId = existItem.MyChartId
  153. list[i].MyChartClassifyId = existItem.MyChartClassifyId
  154. }
  155. }
  156. resp := new(data_manage.ChartListResp)
  157. if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
  158. items := make([]*data_manage.ChartInfoView, 0)
  159. resp.Paging = page
  160. resp.List = items
  161. br.Ret = 200
  162. br.Success = true
  163. br.Msg = "获取成功"
  164. return
  165. }
  166. dataCount, err := data_manage.GetChartListCountByCondition(condition, pars)
  167. if err != nil && err.Error() != utils.ErrNoRow() {
  168. br.Msg = "获取指标信息失败"
  169. br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
  170. return
  171. }
  172. page = paging.GetPaging(currentIndex, pageSize, dataCount)
  173. resp.Paging = page
  174. resp.List = list
  175. br.Ret = 200
  176. br.Success = true
  177. br.Msg = "获取成功"
  178. br.Data = resp
  179. }
  180. // SearchByEs
  181. // @Title 图表模糊搜索(从es获取)
  182. // @Description 图表模糊搜索(从es获取)
  183. // @Param Keyword query string true "图表名称"
  184. // @Param IsShowMe query bool true "是否只看我的,true、false"
  185. // @Param Source query int true "来源,3:拟合方程,4:滚动拟合方程,默认0:全部"
  186. // @Success 200 {object} data_manage.ChartInfo
  187. // @router /chart_info/search_by_es [get]
  188. func (this *LineEquationChartInfoController) SearchByEs() {
  189. br := new(models.BaseResponse).Init()
  190. defer func() {
  191. this.Data["json"] = br
  192. this.ServeJSON()
  193. }()
  194. sysUser := this.SysUser
  195. if sysUser == nil {
  196. br.Msg = "请登录"
  197. br.ErrMsg = "请登录,SysUser Is Empty"
  198. br.Ret = 408
  199. return
  200. }
  201. pageSize, _ := this.GetInt("PageSize")
  202. currentIndex, _ := this.GetInt("CurrentIndex")
  203. var startSize int
  204. if pageSize <= 0 {
  205. pageSize = utils.PageSize20
  206. }
  207. if currentIndex <= 0 {
  208. currentIndex = 1
  209. }
  210. startSize = paging.StartIndex(currentIndex, pageSize)
  211. keyword := this.GetString("Keyword")
  212. //只看我的
  213. isShowMe, _ := this.GetBool("IsShowMe")
  214. showSysId := 0
  215. if isShowMe {
  216. showSysId = sysUser.AdminId
  217. }
  218. sourceList := []int{utils.CHART_SOURCE_LINE_EQUATION}
  219. var searchList []*data_manage.ChartInfo
  220. var total int64
  221. var err error
  222. // 获取当前账号的不可见指标
  223. noPermissionChartIdList := make([]int, 0)
  224. {
  225. obj := data_manage.EdbInfoNoPermissionAdmin{}
  226. confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
  227. if err != nil && err.Error() != utils.ErrNoRow() {
  228. br.Msg = "获取失败"
  229. br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  230. return
  231. }
  232. for _, v := range confList {
  233. noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
  234. }
  235. }
  236. if keyword != "" {
  237. searchList, total, err = data.EsSearchChartInfo(keyword, showSysId, sourceList, noPermissionChartIdList, startSize, pageSize)
  238. } else {
  239. total, searchList, err = data_manage.ChartInfoSearchByEmptyKeyWord(showSysId, sourceList, noPermissionChartIdList)
  240. if err != nil && err.Error() != utils.ErrNoRow() {
  241. br.Msg = "获取失败"
  242. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  243. return
  244. }
  245. }
  246. finalList := make([]*data_manage.ChartInfoMore, 0)
  247. if len(searchList) > 0 {
  248. chartInfoIds := ""
  249. chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
  250. for _, v := range searchList {
  251. chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
  252. }
  253. if chartInfoIds != "" {
  254. chartInfoIds = strings.Trim(chartInfoIds, ",")
  255. //判断是否需要展示英文标识
  256. edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
  257. if e != nil {
  258. br.Msg = "获取失败"
  259. br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
  260. return
  261. }
  262. for _, v := range edbList {
  263. chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
  264. }
  265. }
  266. for _, v := range searchList {
  267. tmp := new(data_manage.ChartInfoMore)
  268. tmp.ChartInfo = *v
  269. //判断是否需要展示英文标识
  270. if _, ok := chartEdbMap[v.ChartInfoId]; ok {
  271. tmp.IsEnChart = data.CheckIsEnChart(v.ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, v.Source, v.ChartType)
  272. }
  273. finalList = append(finalList, tmp)
  274. }
  275. }
  276. //新增搜索词记录
  277. {
  278. searchKeyword := new(data_manage.SearchKeyword)
  279. searchKeyword.KeyWord = keyword
  280. searchKeyword.CreateTime = time.Now()
  281. go data_manage.AddSearchKeyword(searchKeyword)
  282. }
  283. page := paging.GetPaging(currentIndex, pageSize, int(total))
  284. resp := data_manage.ChartInfoListByEsResp{
  285. Paging: page,
  286. List: finalList,
  287. }
  288. br.Ret = 200
  289. br.Success = true
  290. br.Msg = "获取成功"
  291. br.Data = resp
  292. }
  293. // Preview
  294. // @Title 拟合方程图表-预览数据
  295. // @Description 拟合方程图表-获取预览数据
  296. // // @Param request body request.LineChartInfoReq true "type json string"
  297. // @Success 200 {object} data_manage.ChartEdbInfoDetailResp
  298. // @router /chart_info/preview [post]
  299. //func (this *LineEquationChartInfoController) Preview() {
  300. // br := new(models.BaseResponse).Init()
  301. // defer func() {
  302. // this.Data["json"] = br
  303. // this.ServeJSON()
  304. // }()
  305. // sysUser := this.SysUser
  306. // if sysUser == nil {
  307. // br.Msg = "请登录"
  308. // br.ErrMsg = "请登录,SysUser Is Empty"
  309. // br.Ret = 408
  310. // return
  311. // }
  312. // var req request.LineChartInfoReq
  313. // if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
  314. // br.Msg = "参数解析异常!"
  315. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  316. // return
  317. // }
  318. // lenXdbInfoList := len(req.XEdbInfoIdList)
  319. // lenYdbInfoList := len(req.YEdbInfoIdList)
  320. // if lenXdbInfoList < 2 {
  321. // br.Msg = "X轴指标不能小于两个"
  322. // br.IsSendEmail = false
  323. // return
  324. // }
  325. // if lenYdbInfoList < 2 {
  326. // br.Msg = "Y轴指标不能小于两个"
  327. // br.IsSendEmail = false
  328. // return
  329. // }
  330. // if lenYdbInfoList != lenXdbInfoList {
  331. // br.Msg = "X轴与Y轴指标数量不一致"
  332. // br.IsSendEmail = false
  333. // return
  334. // }
  335. //
  336. // chartInfo := new(data_manage.ChartInfoView)
  337. // chartInfo.ChartType = 9
  338. //
  339. // // 获取图表x轴y轴
  340. // _, dataResp, err, errMsg := line_equation.GetChartEdbData(0, req, true, true, true)
  341. // if err != nil {
  342. // br.Msg = "获取失败"
  343. // if errMsg != `` {
  344. // br.Msg = errMsg
  345. // }
  346. // br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
  347. // return
  348. // }
  349. //
  350. // resp := response.ChartInfoResp{List: []response.ChartDataResp{
  351. // {
  352. // LatestDate: dataResp.AData.LatestDate,
  353. // EdbInfoCategoryType: dataResp.AData.EdbInfoCategoryType,
  354. // Name: dataResp.AData.EdbName,
  355. // NameEn: dataResp.AData.EdbNameEn,
  356. // MinData: dataResp.AData.MinData,
  357. // MaxData: dataResp.AData.MaxData,
  358. // DataList: dataResp.AData.DataList,
  359. // },
  360. // {
  361. // LatestDate: dataResp.BData.LatestDate,
  362. // EdbInfoCategoryType: dataResp.BData.EdbInfoCategoryType,
  363. // Name: dataResp.BData.EdbName,
  364. // NameEn: dataResp.BData.EdbNameEn,
  365. // MinData: dataResp.BData.MinData,
  366. // MaxData: dataResp.BData.MaxData,
  367. // DataList: dataResp.BData.DataList,
  368. // },
  369. // {
  370. // LatestDate: dataResp.R2Data.LatestDate,
  371. // EdbInfoCategoryType: dataResp.R2Data.EdbInfoCategoryType,
  372. // Name: dataResp.R2Data.EdbName,
  373. // NameEn: dataResp.R2Data.EdbNameEn,
  374. // MinData: dataResp.R2Data.MinData,
  375. // MaxData: dataResp.R2Data.MaxData,
  376. // DataList: dataResp.R2Data.DataList,
  377. // },
  378. // }}
  379. //
  380. // br.Data = resp
  381. // br.Ret = 200
  382. // br.Success = true
  383. // br.Msg = "获取成功"
  384. //}
  385. //
  386. //// Save
  387. //// @Title 新增图表接口
  388. //// @Description 新增图表接口
  389. //// @Param request body data_manage.AddChartInfoReq true "type json string"
  390. //// @Success 200 {object} data_manage.AddChartInfoResp
  391. //// @router /chart_info/save [post]
  392. //func (this *LineEquationChartInfoController) Save() {
  393. // br := new(models.BaseResponse).Init()
  394. // defer func() {
  395. // this.Data["json"] = br
  396. // this.ServeJSON()
  397. // }()
  398. //
  399. // sysUser := this.SysUser
  400. // if sysUser == nil {
  401. // br.Msg = "请登录"
  402. // br.ErrMsg = "请登录,SysUser Is Empty"
  403. // br.Ret = 408
  404. // return
  405. // }
  406. // deleteCache := true
  407. // cacheKey := "CACHE_CHART_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
  408. // defer func() {
  409. // if deleteCache {
  410. // _ = utils.Rc.Delete(cacheKey)
  411. // }
  412. // }()
  413. // if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
  414. // deleteCache = false
  415. // br.Msg = "系统处理中,请稍后重试!"
  416. // br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
  417. // return
  418. // }
  419. // var req request.AddChartInfoReq
  420. // err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  421. // if err != nil {
  422. // br.Msg = "参数解析异常!"
  423. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  424. // return
  425. // }
  426. //
  427. // resp := new(data_manage.AddChartInfoResp)
  428. // if req.MultipleGraphConfigId <= 0 {
  429. // batchAddChartList, err, errMsg, isSendEmail := line_equation.BatchAddChartInfo(req.BatchAddChart, req.ExtraConfig, sysUser)
  430. // if err != nil {
  431. // br.Msg = "保存失败"
  432. // if errMsg != `` {
  433. // br.Msg = errMsg
  434. // }
  435. // br.ErrMsg = err.Error()
  436. // br.IsSendEmail = isSendEmail
  437. // return
  438. // }
  439. //
  440. // resp.ChartInfoId = batchAddChartList[0].ChartInfo.ChartInfoId
  441. // resp.UniqueCode = batchAddChartList[0].ChartInfo.UniqueCode
  442. // resp.ChartType = batchAddChartList[0].ChartInfo.ChartType
  443. //
  444. // //新增操作日志
  445. // {
  446. // for _, v := range batchAddChartList {
  447. // chartInfo := v.ChartInfo
  448. // chartLog := new(data_manage.ChartInfoLog)
  449. // chartLog.ChartInfoId = chartInfo.ChartInfoId
  450. // chartLog.ChartName = chartInfo.ChartName
  451. // chartLog.ChartClassifyId = chartInfo.ChartClassifyId
  452. // chartLog.SysUserId = sysUser.AdminId
  453. // chartLog.SysUserRealName = sysUser.RealName
  454. // chartLog.UniqueCode = chartInfo.UniqueCode
  455. // chartLog.CreateTime = time.Now()
  456. // chartLog.Content = string(this.Ctx.Input.RequestBody)
  457. // chartLog.Status = "新增拟合方程图表"
  458. // chartLog.Method = this.Ctx.Input.URI()
  459. // go data_manage.AddChartInfoLog(chartLog)
  460. // }
  461. // }
  462. // } else {
  463. // batchAddChartList, err, errMsg, isSendEmail := line_equation.BatchSaveChartInfo(req.MultipleGraphConfigId, req.BatchAddChart, req.ExtraConfig, sysUser)
  464. // if err != nil {
  465. // br.Msg = "保存失败"
  466. // if errMsg != `` {
  467. // br.Msg = errMsg
  468. // }
  469. // br.ErrMsg = err.Error()
  470. // br.IsSendEmail = isSendEmail
  471. // return
  472. // }
  473. //
  474. // resp.ChartInfoId = batchAddChartList[0].ChartInfo.ChartInfoId
  475. // resp.UniqueCode = batchAddChartList[0].ChartInfo.UniqueCode
  476. // resp.ChartType = batchAddChartList[0].ChartInfo.ChartType
  477. //
  478. // //新增操作日志
  479. // {
  480. // for _, v := range batchAddChartList {
  481. // chartInfo := v.ChartInfo
  482. // chartLog := new(data_manage.ChartInfoLog)
  483. // chartLog.ChartInfoId = chartInfo.ChartInfoId
  484. // chartLog.ChartName = chartInfo.ChartName
  485. // chartLog.ChartClassifyId = chartInfo.ChartClassifyId
  486. // chartLog.SysUserId = sysUser.AdminId
  487. // chartLog.SysUserRealName = sysUser.RealName
  488. // chartLog.UniqueCode = chartInfo.UniqueCode
  489. // chartLog.CreateTime = time.Now()
  490. // chartLog.Content = string(this.Ctx.Input.RequestBody)
  491. // chartLog.Status = "新增/编辑拟合方程图表"
  492. // chartLog.Method = this.Ctx.Input.URI()
  493. // go data_manage.AddChartInfoLog(chartLog)
  494. // }
  495. // }
  496. // }
  497. //
  498. // br.Data = resp
  499. // br.Ret = 200
  500. // br.Success = true
  501. // br.Msg = "保存成功"
  502. // br.IsAddLog = true
  503. //}
  504. //
  505. //// GetMultipleGraphConfig
  506. //// @Title 保存配置接口
  507. //// @Description 保存配置接口
  508. //// @Param UniqueCode query int true "图表唯一编码,如果是管理后台访问,传固定字符串:7c69b590249049942070ae9dcd5bf6dc"
  509. //// @Success Ret=200 返回图表id
  510. //// @router /multiple_graph/config/detail [get]
  511. //func (this *LineEquationChartInfoController) GetMultipleGraphConfig() {
  512. // br := new(models.BaseResponse).Init()
  513. // defer func() {
  514. // this.Data["json"] = br
  515. // this.ServeJSON()
  516. // }()
  517. //
  518. // sysUser := this.SysUser
  519. // if sysUser == nil {
  520. // br.Msg = "请登录"
  521. // br.ErrMsg = "请登录,SysUser Is Empty"
  522. // br.Ret = 408
  523. // return
  524. // }
  525. // uniqueCode := this.GetString("UniqueCode")
  526. // if uniqueCode == "" {
  527. // br.Msg = "参数错误"
  528. // br.ErrMsg = "参数错误,uniqueCode is empty"
  529. // return
  530. // }
  531. //
  532. // chartInfo, err := data_manage.GetChartInfoViewByUniqueCode(uniqueCode)
  533. // if err != nil {
  534. // br.Msg = "获取失败"
  535. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  536. // return
  537. // }
  538. // if chartInfo == nil {
  539. // br.Msg = "获取失败"
  540. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  541. // return
  542. // }
  543. // multipleGraphConfigChartMapping, err := data_manage.GetMultipleGraphConfigChartMappingByChartId(chartInfo.ChartInfoId)
  544. // if err != nil {
  545. // br.Msg = "获取失败"
  546. // br.ErrMsg = "获取统一图表的配置信息失败,Err:" + err.Error()
  547. // return
  548. // }
  549. //
  550. // multipleGraphConfig, err := data_manage.GetMultipleGraphConfigById(multipleGraphConfigChartMapping.MultipleGraphConfigId)
  551. // if err != nil {
  552. // br.Msg = `获取失败`
  553. // br.ErrMsg = `获取配置失败,ERR:` + err.Error()
  554. // return
  555. // }
  556. //
  557. // // 图表的配置
  558. // var lineChartInfoConfig request.LineChartInfoReq
  559. // if err := json.Unmarshal([]byte(multipleGraphConfig.Curve), &lineChartInfoConfig); err != nil {
  560. // br.Msg = "参数解析异常!"
  561. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  562. // return
  563. // }
  564. //
  565. // // 生成的图表
  566. // multipleGraphConfigChartMappingList := make([]response.MultipleGraphConfigChartMapping, 0)
  567. // {
  568. // chartMappingList, err := data_manage.GetMultipleGraphConfigChartMappingListById(multipleGraphConfigChartMapping.MultipleGraphConfigId)
  569. // if err != nil {
  570. // br.Msg = `获取失败`
  571. // br.ErrMsg = `获取关联图表配置失败,ERR:` + err.Error()
  572. // return
  573. // }
  574. // chartInfoIdList := make([]int, 0)
  575. // chartMappingMap := make(map[int]*data_manage.MultipleGraphConfigChartMapping)
  576. // for _, v := range chartMappingList {
  577. // chartInfoIdList = append(chartInfoIdList, v.ChartInfoId)
  578. // chartMappingMap[v.ChartInfoId] = v
  579. // }
  580. // chartList, err := data_manage.GetChartInfoByIdList(chartInfoIdList)
  581. // if err != nil {
  582. // br.Msg = `获取失败`
  583. // br.ErrMsg = `获取关联图表列表失败,ERR:` + err.Error()
  584. // return
  585. // }
  586. // for _, v := range chartList {
  587. // if tmpInfo, ok := chartMappingMap[v.ChartInfoId]; ok {
  588. // multipleGraphConfigChartMappingList = append(multipleGraphConfigChartMappingList, response.MultipleGraphConfigChartMapping{
  589. // ChartInfoId: tmpInfo.ChartInfoId,
  590. // Source: tmpInfo.Source,
  591. // ChartName: v.ChartName,
  592. // ChartClassifyId: v.ChartClassifyId,
  593. // })
  594. // }
  595. // }
  596. // }
  597. //
  598. // // 关联指标
  599. // mappingList, _, _, err, _ := line_equation.GetConfigData(lineChartInfoConfig)
  600. // if err != nil {
  601. // br.Msg = "获取失败"
  602. // br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
  603. // return
  604. // }
  605. //
  606. // resp := response.MultipleGraphConfigDetailResp{
  607. // MultipleGraphConfigId: multipleGraphConfig.MultipleGraphConfigId,
  608. // LineChartInfoConfig: lineChartInfoConfig,
  609. // EdbInfoList: mappingList,
  610. // ChartMappingList: multipleGraphConfigChartMappingList,
  611. // }
  612. // br.Ret = 200
  613. // br.Success = true
  614. // br.Msg = "获取成功"
  615. // br.Data = resp
  616. // br.IsAddLog = true
  617. //}
  618. //
  619. //// Move
  620. //// @Title 移动图表接口
  621. //// @Description 移动图表接口
  622. //// @Success 200 {object} data_manage.MoveChartInfoReq
  623. //// @router /chart_info/move [post]
  624. //func (this *LineEquationChartInfoController) Move() {
  625. // br := new(models.BaseResponse).Init()
  626. // defer func() {
  627. // this.Data["json"] = br
  628. // this.ServeJSON()
  629. // }()
  630. //
  631. // sysUser := this.SysUser
  632. // if sysUser == nil {
  633. // br.Msg = "请登录"
  634. // br.ErrMsg = "请登录,SysUser Is Empty"
  635. // br.Ret = 408
  636. // return
  637. // }
  638. //
  639. // var req data_manage.MoveChartInfoReq
  640. // err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  641. // if err != nil {
  642. // br.Msg = "参数解析异常!"
  643. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  644. // return
  645. // }
  646. //
  647. // if req.ChartInfoId <= 0 {
  648. // br.Msg = "参数错误"
  649. // br.ErrMsg = "图表id小于等于0"
  650. // return
  651. // }
  652. //
  653. // if req.ChartClassifyId <= 0 {
  654. // br.Msg = "请选择分类"
  655. // return
  656. // }
  657. // //判断分类是否存在
  658. // count, _ := data_manage.GetChartClassifyCountById(req.ChartClassifyId)
  659. // if count <= 0 {
  660. // br.Msg = "分类已被删除,不可移动,请刷新页面"
  661. // return
  662. // }
  663. //
  664. // chartInfo, err := data_manage.GetChartInfoById(req.ChartInfoId)
  665. // if err != nil {
  666. // br.Msg = "移动失败"
  667. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  668. // return
  669. // }
  670. //
  671. // if !utils.InArrayByInt([]int{utils.CHART_SOURCE_LINE_EQUATION}, chartInfo.Source) {
  672. // br.Msg = "图表异常"
  673. // br.ErrMsg = "分类异常,不是拟合方程的图表"
  674. // return
  675. // }
  676. //
  677. // //如果改变了分类,那么移动该图表数据
  678. // if chartInfo.ChartClassifyId != req.ChartClassifyId {
  679. // //查询需要修改的分类下是否存在同一个图表名称
  680. // tmpChartInfo, tmpErr := data_manage.GetChartInfoByClassifyIdAndName(req.ChartClassifyId, chartInfo.ChartName)
  681. // if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
  682. // br.Msg = "移动失败"
  683. // br.ErrMsg = "移动失败,Err:" + tmpErr.Error()
  684. // return
  685. // }
  686. // if tmpChartInfo != nil {
  687. // br.Msg = "移动失败,同一个分类下图表名称不允许重复"
  688. // br.ErrMsg = "移动失败,同一个分类下图表名称不允许重复"
  689. // return
  690. // }
  691. // err = data_manage.MoveChartInfo(req.ChartInfoId, req.ChartClassifyId)
  692. // if err != nil {
  693. // br.Msg = "移动失败"
  694. // br.ErrMsg = "移动失败,Err:" + err.Error()
  695. // return
  696. // }
  697. // }
  698. //
  699. // //移动排序
  700. // updateCol := make([]string, 0)
  701. // //如果有传入 上一个兄弟节点分类id
  702. // if req.PrevChartInfoId > 0 {
  703. // prevChartInfo, err := data_manage.GetChartInfoById(req.PrevChartInfoId)
  704. // if err != nil {
  705. // br.Msg = "移动失败"
  706. // br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
  707. // return
  708. // }
  709. //
  710. // //如果是移动在两个兄弟节点之间
  711. // if req.NextChartInfoId > 0 {
  712. // //下一个兄弟节点
  713. // nextChartInfo, err := data_manage.GetChartInfoById(req.NextChartInfoId)
  714. // if err != nil {
  715. // br.Msg = "移动失败"
  716. // br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
  717. // return
  718. // }
  719. // //如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
  720. // if prevChartInfo.Sort == nextChartInfo.Sort || prevChartInfo.Sort == chartInfo.Sort {
  721. // //变更兄弟节点的排序
  722. // updateSortStr := `sort + 2`
  723. // _ = data_manage.UpdateChartInfoSortByClassifyId(prevChartInfo.ChartClassifyId, prevChartInfo.Sort, prevChartInfo.ChartInfoId, chartInfo.Source, updateSortStr)
  724. // } else {
  725. // //如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
  726. // if nextChartInfo.Sort-prevChartInfo.Sort == 1 {
  727. // //变更兄弟节点的排序
  728. // updateSortStr := `sort + 1`
  729. // _ = data_manage.UpdateChartInfoSortByClassifyId(prevChartInfo.ChartClassifyId, prevChartInfo.Sort, prevChartInfo.ChartInfoId, chartInfo.Source, updateSortStr)
  730. // }
  731. // }
  732. // }
  733. //
  734. // chartInfo.Sort = prevChartInfo.Sort + 1
  735. // chartInfo.ModifyTime = time.Now()
  736. // updateCol = append(updateCol, "Sort", "ModifyTime")
  737. //
  738. // } else {
  739. // firstClassify, err := data_manage.GetFirstChartInfoByClassifyId(req.ChartClassifyId)
  740. // if err != nil && err.Error() != utils.ErrNoRow() {
  741. // br.Msg = "移动失败"
  742. // br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
  743. // return
  744. // }
  745. //
  746. // //如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
  747. // if firstClassify != nil && firstClassify.Sort == 0 {
  748. // updateSortStr := ` sort + 1 `
  749. // _ = data_manage.UpdateChartInfoSortByClassifyId(firstClassify.ChartClassifyId, 0, firstClassify.ChartInfoId-1, chartInfo.Source, updateSortStr)
  750. // }
  751. //
  752. // chartInfo.Sort = 0 //那就是排在第一位
  753. // chartInfo.ModifyTime = time.Now()
  754. // updateCol = append(updateCol, "Sort", "ModifyTime")
  755. // }
  756. //
  757. // //更新
  758. // if len(updateCol) > 0 {
  759. // err = chartInfo.Update(updateCol)
  760. // if err != nil {
  761. // br.Msg = "移动失败"
  762. // br.ErrMsg = "修改失败,Err:" + err.Error()
  763. // return
  764. // }
  765. // }
  766. //
  767. // if err != nil {
  768. // br.Msg = "移动失败"
  769. // br.ErrMsg = "修改失败,Err:" + err.Error()
  770. // return
  771. // }
  772. //
  773. // //添加es数据
  774. // go data.EsAddOrEditChartInfo(req.ChartInfoId)
  775. // //修改my eta es数据
  776. // go data.EsAddOrEditMyChartInfoByChartInfoId(req.ChartInfoId)
  777. //
  778. // //新增操作日志
  779. // {
  780. // chartLog := new(data_manage.ChartInfoLog)
  781. // chartLog.ChartName = chartInfo.ChartName
  782. // chartLog.ChartInfoId = req.ChartInfoId
  783. // chartLog.ChartClassifyId = chartInfo.ChartClassifyId
  784. // chartLog.SysUserId = sysUser.AdminId
  785. // chartLog.SysUserRealName = sysUser.RealName
  786. // chartLog.UniqueCode = chartInfo.UniqueCode
  787. // chartLog.CreateTime = time.Now()
  788. // chartLog.Content = string(this.Ctx.Input.RequestBody)
  789. // chartLog.Status = "移动拟合方程图表"
  790. // chartLog.Method = this.Ctx.Input.URL()
  791. // go data_manage.AddChartInfoLog(chartLog)
  792. // }
  793. //
  794. // br.Ret = 200
  795. // br.Success = true
  796. // br.Msg = "移动成功"
  797. //}
  798. //
  799. //// List
  800. //// @Title 拟合方程图表列表接口
  801. //// @Description 拟合方程图表列表接口
  802. //// @Param PageSize query int true "每页数据条数"
  803. //// @Param CurrentIndex query int true "当前页页码,从1开始"
  804. //// @Param ChartClassifyId query int true "分类id"
  805. //// @Param Keyword query string true "搜索关键词"
  806. //// @Param IsShowMe query bool true "是否只看我的,true、false"
  807. //// @Param Source query int true "图表类型,3:拟合方程,4:滚动拟合方程"
  808. //// @Success 200 {object} data_manage.ChartListResp
  809. //// @router /chart_info/list [get]
  810. //func (this *LineEquationChartInfoController) List() {
  811. // br := new(models.BaseResponse).Init()
  812. // defer func() {
  813. // this.Data["json"] = br
  814. // this.ServeJSON()
  815. // }()
  816. // sysUser := this.SysUser
  817. // if sysUser == nil {
  818. // br.Msg = "请登录"
  819. // br.ErrMsg = "请登录,SysUser Is Empty"
  820. // br.Ret = 408
  821. // return
  822. // }
  823. //
  824. // chartClassifyId, _ := this.GetInt("ChartClassifyId")
  825. //
  826. // pageSize, _ := this.GetInt("PageSize")
  827. // currentIndex, _ := this.GetInt("CurrentIndex")
  828. // keyword := this.GetString("KeyWord")
  829. //
  830. // var total int
  831. // page := paging.GetPaging(currentIndex, pageSize, total)
  832. //
  833. // var startSize int
  834. // if pageSize <= 0 {
  835. // pageSize = utils.PageSize20
  836. // }
  837. // if currentIndex <= 0 {
  838. // currentIndex = 1
  839. // }
  840. // startSize = paging.StartIndex(currentIndex, pageSize)
  841. //
  842. // source, _ := this.GetInt("Source")
  843. // if source <= 0 {
  844. // source = utils.CHART_SOURCE_LINE_EQUATION
  845. // }
  846. //
  847. // var condition string
  848. // var pars []interface{}
  849. //
  850. // // 普通图表
  851. // condition += ` AND source = ? `
  852. // pars = append(pars, source)
  853. //
  854. // if chartClassifyId > 0 {
  855. // chartClassifyId, err := data_manage.GetChartClassify(chartClassifyId)
  856. // if err != nil && err.Error() != utils.ErrNoRow() {
  857. // br.Msg = "获取图表信息失败"
  858. // br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
  859. // return
  860. // }
  861. // condition += " AND chart_classify_id IN(" + chartClassifyId + ") "
  862. // }
  863. // if keyword != "" {
  864. // condition += ` AND ( chart_name LIKE '%` + keyword + `%' )`
  865. // }
  866. //
  867. // //只看我的
  868. // isShowMe, _ := this.GetBool("IsShowMe")
  869. // if isShowMe {
  870. // condition += ` AND sys_user_id = ? `
  871. // pars = append(pars, sysUser.AdminId)
  872. // }
  873. //
  874. // // 获取当前账号的不可见指标
  875. // noPermissionChartIdList := make([]int, 0)
  876. // {
  877. // obj := data_manage.EdbInfoNoPermissionAdmin{}
  878. // confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
  879. // if err != nil && err.Error() != utils.ErrNoRow() {
  880. // br.Msg = "获取失败"
  881. // br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  882. // return
  883. // }
  884. // for _, v := range confList {
  885. // noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
  886. // }
  887. // }
  888. //
  889. // lenNoPermissionChartIdList := len(noPermissionChartIdList)
  890. // if lenNoPermissionChartIdList > 0 {
  891. // condition += ` AND chart_info_id not in (` + utils.GetOrmInReplace(lenNoPermissionChartIdList) + `) `
  892. // pars = append(pars, noPermissionChartIdList)
  893. // }
  894. //
  895. // //获取图表信息
  896. // list, err := data_manage.GetChartListByCondition(condition, pars, startSize, pageSize)
  897. // if err != nil && err.Error() != utils.ErrNoRow() {
  898. // br.Success = true
  899. // br.Msg = "获取图表信息失败"
  900. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  901. // return
  902. // }
  903. //
  904. // myChartList, err := data_manage.GetMyChartListByAdminId(sysUser.AdminId)
  905. // if err != nil && err.Error() != utils.ErrNoRow() {
  906. // br.Msg = "获取图表信息失败"
  907. // br.ErrMsg = "获取我的图表信息失败,Err:" + err.Error()
  908. // return
  909. // }
  910. // myChartMap := make(map[int]*data_manage.MyChartView)
  911. // for _, v := range myChartList {
  912. // myChartMap[v.ChartInfoId] = v
  913. // }
  914. // listLen := len(list)
  915. // chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
  916. // if listLen > 0 {
  917. // chartInfoIds := ""
  918. // for _, v := range list {
  919. // chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
  920. // }
  921. // if chartInfoIds != "" {
  922. // chartInfoIds = strings.Trim(chartInfoIds, ",")
  923. // //判断是否需要展示英文标识
  924. // edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
  925. // if e != nil {
  926. // br.Msg = "获取失败"
  927. // br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
  928. // return
  929. // }
  930. // for _, v := range edbList {
  931. // chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
  932. // }
  933. // }
  934. // }
  935. // for i := 0; i < listLen; i++ {
  936. // //判断是否需要展示英文标识
  937. // if _, ok := chartEdbMap[list[i].ChartInfoId]; ok {
  938. // list[i].IsEnChart = data.CheckIsEnChart(list[i].ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, list[i].Source, list[i].ChartType)
  939. // }
  940. //
  941. // if existItem, ok := myChartMap[list[i].ChartInfoId]; ok {
  942. // list[i].IsAdd = true
  943. // list[i].MyChartId = existItem.MyChartId
  944. // list[i].MyChartClassifyId = existItem.MyChartClassifyId
  945. // }
  946. // }
  947. //
  948. // resp := new(data_manage.ChartListResp)
  949. // if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
  950. // items := make([]*data_manage.ChartInfoView, 0)
  951. // resp.Paging = page
  952. // resp.List = items
  953. // br.Ret = 200
  954. // br.Success = true
  955. // br.Msg = "获取成功"
  956. // return
  957. // }
  958. //
  959. // dataCount, err := data_manage.GetChartListCountByCondition(condition, pars)
  960. // if err != nil && err.Error() != utils.ErrNoRow() {
  961. // br.Msg = "获取指标信息失败"
  962. // br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
  963. // return
  964. // }
  965. // page = paging.GetPaging(currentIndex, pageSize, dataCount)
  966. // resp.Paging = page
  967. // resp.List = list
  968. // br.Ret = 200
  969. // br.Success = true
  970. // br.Msg = "获取成功"
  971. // br.Data = resp
  972. //}
  973. //
  974. //// Detail
  975. //// @Title 获取图表详情
  976. //// @Description 获取图表详情接口
  977. //// @Param ChartInfoId query int true "图表id"
  978. //// @Param DateType query int true "日期类型:1:00年至今,2:10年至今,3:15年至今,4:年初至今,5:自定义时间"
  979. //// @Param StartDate query string true "自定义开始日期"
  980. //// @Param EndDate query string true "自定义结束日期"
  981. //// @Param Calendar query string true "公历/农历"
  982. //// @Param SeasonStartDate query string true "季节性图开始日期"
  983. //// @Param SeasonEndDate query string true "季节性图结束日期"
  984. //// @Param EdbInfoId query string true "指标ID,多个用英文逗号隔开"
  985. //// @Param ChartType query int true "生成样式:1:曲线图,2:季节性图"
  986. //// @Success 200 {object} data_manage.ChartInfoDetailResp
  987. //// @router /chart_info/detail [get]
  988. //func (this *LineEquationChartInfoController) Detail() {
  989. // br := new(models.BaseResponse).Init()
  990. // defer func() {
  991. // this.Data["json"] = br
  992. // this.ServeJSON()
  993. // }()
  994. // sysUser := this.SysUser
  995. // if sysUser == nil {
  996. // br.Msg = "请登录"
  997. // br.ErrMsg = "请登录,SysUser Is Empty"
  998. // br.Ret = 408
  999. // return
  1000. // }
  1001. // chartInfoId, _ := this.GetInt("ChartInfoId")
  1002. // if chartInfoId <= 0 {
  1003. // br.Msg = "参数有误"
  1004. // return
  1005. // }
  1006. //
  1007. // var err error
  1008. // chartInfo := new(data_manage.ChartInfoView)
  1009. // chartInfo, err = data_manage.GetChartInfoViewById(chartInfoId)
  1010. // if err != nil {
  1011. // if err.Error() == utils.ErrNoRow() {
  1012. // br.Msg = "图被删除,请刷新页面"
  1013. // br.ErrMsg = "图被删除,请刷新页面,Err:" + err.Error()
  1014. // return
  1015. // }
  1016. // br.Msg = "获取失败"
  1017. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  1018. // return
  1019. // }
  1020. //
  1021. // if chartInfo.ExtraConfig == `` {
  1022. // br.Msg = "获取失败"
  1023. // br.ErrMsg = "获取配置信息失败,Err:" + err.Error()
  1024. // return
  1025. // }
  1026. // var lineChartInfoConfig request.LineChartInfoReq
  1027. // err = json.Unmarshal([]byte(chartInfo.ExtraConfig), &lineChartInfoConfig)
  1028. // if err != nil {
  1029. // br.Msg = "获取失败"
  1030. // br.ErrMsg = "获取图表配置信息失败,Err:" + err.Error()
  1031. // return
  1032. // }
  1033. //
  1034. // var getAData, getBData, getR2Data bool
  1035. // switch lineChartInfoConfig.Source {
  1036. // case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_ONE:
  1037. // getAData = true
  1038. // case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_TWO:
  1039. // getBData = true
  1040. // case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_THREE:
  1041. // getR2Data = true
  1042. // }
  1043. //
  1044. // edbList, dataResp, err, errMsg := line_equation.GetChartEdbData(chartInfoId, lineChartInfoConfig, getAData, getBData, getR2Data)
  1045. // if err != nil {
  1046. // br.Msg = "获取失败"
  1047. // if errMsg != `` {
  1048. // br.Msg = errMsg
  1049. // }
  1050. // br.ErrMsg = "获取图表,指标信息失败,Err:" + err.Error()
  1051. // return
  1052. // }
  1053. //
  1054. // var resultResp interface{}
  1055. // switch lineChartInfoConfig.Source {
  1056. // case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_ONE:
  1057. // resultResp = dataResp.AData
  1058. // case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_TWO:
  1059. // resultResp = dataResp.BData
  1060. // case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_THREE:
  1061. // resultResp = dataResp.R2Data
  1062. // }
  1063. //
  1064. // // 判断是否加入我的图库
  1065. // if chartInfoId > 0 && chartInfo != nil {
  1066. // {
  1067. // var myChartCondition string
  1068. // var myChartPars []interface{}
  1069. // myChartCondition += ` AND a.admin_id=? `
  1070. // myChartPars = append(myChartPars, sysUser.AdminId)
  1071. // myChartCondition += ` AND a.chart_info_id=? `
  1072. // myChartPars = append(myChartPars, chartInfo.ChartInfoId)
  1073. //
  1074. // myChartList, err := data_manage.GetMyChartByCondition(myChartCondition, myChartPars)
  1075. // if err != nil && err.Error() != utils.ErrNoRow() {
  1076. // br.Msg = "获取失败"
  1077. // br.ErrMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
  1078. // return
  1079. // }
  1080. // if myChartList != nil && len(myChartList) > 0 {
  1081. // chartInfo.IsAdd = true
  1082. // chartInfo.MyChartId = myChartList[0].MyChartId
  1083. // chartInfo.MyChartClassifyId = myChartList[0].MyChartClassifyId
  1084. // }
  1085. // }
  1086. // }
  1087. //
  1088. // //图表操作权限
  1089. // chartInfo.IsEdit = data.CheckOpChartPermission(sysUser, chartInfo.SysUserId)
  1090. // //判断是否需要展示英文标识
  1091. // chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, chartInfo.Source, chartInfo.ChartType)
  1092. // //chartInfo.UnitEn = edbInfoMappingA.UnitEn
  1093. //
  1094. // // 另存为
  1095. // isSaveAs := true
  1096. // chartInfo.Button = data_manage.ChartViewButton{
  1097. // IsEdit: chartInfo.IsEdit,
  1098. // IsEnChart: chartInfo.IsEnChart,
  1099. // IsAdd: chartInfo.IsAdd,
  1100. // IsCopy: isSaveAs,
  1101. // IsSetName: chartInfo.IsSetName,
  1102. // }
  1103. //
  1104. // resp := new(data_manage.ChartInfoDetailResp)
  1105. // resp.ChartInfo = chartInfo
  1106. // resp.EdbInfoList = edbList
  1107. // resp.DataResp = resultResp
  1108. // br.Ret = 200
  1109. // br.Success = true
  1110. // br.Msg = "获取成功"
  1111. // br.Data = resp
  1112. //}
  1113. //
  1114. //// DetailFromUniqueCode
  1115. //// @Title 根据编码获取图表详情
  1116. //// @Description 根据编码获取图表详情接口
  1117. //// @Param UniqueCode query int true "图表唯一编码,如果是管理后台访问,传固定字符串:7c69b590249049942070ae9dcd5bf6dc"
  1118. //// @Param IsCache query bool true "是否走缓存,默认false"
  1119. //// @Success 200 {object} data_manage.ChartInfoDetailFromUniqueCodeResp
  1120. //// @router /chart_info/detail/from_unique_code [get]
  1121. //func (this *LineEquationChartInfoController) DetailFromUniqueCode() {
  1122. // br := new(models.BaseResponse).Init()
  1123. // defer func() {
  1124. // this.Data["json"] = br
  1125. // this.ServeJSON()
  1126. // }()
  1127. //
  1128. // sysUser := this.SysUser
  1129. // if sysUser == nil {
  1130. // br.Msg = "请登录"
  1131. // br.ErrMsg = "请登录,SysUser Is Empty"
  1132. // br.Ret = 408
  1133. // return
  1134. // }
  1135. // adminId := sysUser.AdminId
  1136. //
  1137. // uniqueCode := this.GetString("UniqueCode")
  1138. // if uniqueCode == "" {
  1139. // br.Msg = "参数错误"
  1140. // br.ErrMsg = "参数错误,uniqueCode is empty"
  1141. // return
  1142. // }
  1143. //
  1144. // //是否走缓存
  1145. // isCache, _ := this.GetBool("IsCache")
  1146. //
  1147. // resp := new(data_manage.ChartInfoDetailFromUniqueCodeResp)
  1148. // status := true
  1149. // chartInfo, err := data_manage.GetChartInfoViewByUniqueCode(uniqueCode)
  1150. // if err != nil {
  1151. // if err.Error() == utils.ErrNoRow() {
  1152. // status = false
  1153. // } else {
  1154. // br.Msg = "获取失败"
  1155. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  1156. // return
  1157. // }
  1158. // }
  1159. // if chartInfo == nil {
  1160. // status = false
  1161. // }
  1162. // if !status {
  1163. // endInfoList := make([]*data_manage.ChartEdbInfoMapping, 0)
  1164. // resp.EdbInfoList = endInfoList
  1165. // resp.ChartInfo = chartInfo
  1166. // resp.Status = false
  1167. // br.Ret = 200
  1168. // br.Success = true
  1169. // br.Msg = "获取成功"
  1170. // br.Data = resp
  1171. // return
  1172. // }
  1173. //
  1174. // //判断是否存在缓存,如果存在缓存,那么直接从缓存中获取
  1175. // key := data.GetChartInfoDataKey(chartInfo.ChartInfoId)
  1176. // if utils.Re == nil && isCache {
  1177. // if utils.Re == nil && utils.Rc.IsExist(key) {
  1178. // if d, e := utils.Rc.RedisBytes(key); e == nil {
  1179. // err := json.Unmarshal(d, &resp)
  1180. // if err == nil && resp != nil {
  1181. // // 这里跟当前用户相关的信息重新查询写入resp, 不使用缓存中的
  1182. // var myCond string
  1183. // var myPars []interface{}
  1184. // myCond += ` AND a.admin_id=? `
  1185. // myPars = append(myPars, adminId)
  1186. // myCond += ` AND a.chart_info_id=? `
  1187. // myPars = append(myPars, chartInfo.ChartInfoId)
  1188. // myList, err := data_manage.GetMyChartByCondition(myCond, myPars)
  1189. // if err != nil && err.Error() != utils.ErrNoRow() {
  1190. // br.Msg = "获取失败"
  1191. // br.ErrMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
  1192. // return
  1193. // }
  1194. // resp.ChartInfo.IsAdd = false
  1195. // resp.ChartInfo.MyChartId = 0
  1196. // resp.ChartInfo.MyChartClassifyId = ""
  1197. // if myList != nil && len(myList) > 0 {
  1198. // resp.ChartInfo.IsAdd = true
  1199. // resp.ChartInfo.MyChartId = myList[0].MyChartId
  1200. // resp.ChartInfo.MyChartClassifyId = myList[0].MyChartClassifyId
  1201. // }
  1202. //
  1203. // br.Ret = 200
  1204. // br.Success = true
  1205. // br.Msg = "获取成功"
  1206. // br.Data = resp
  1207. // return
  1208. // }
  1209. // }
  1210. // }
  1211. // }
  1212. // resp, isOk, msg, errMsg := GetChartInfoDetailFromUniqueCode(chartInfo, isCache, sysUser)
  1213. // if !isOk {
  1214. // br.Msg = msg
  1215. // br.ErrMsg = errMsg
  1216. // return
  1217. // }
  1218. // if !isOk {
  1219. // br.Msg = msg
  1220. // br.ErrMsg = errMsg
  1221. // return
  1222. // }
  1223. // br.Ret = 200
  1224. // br.Success = true
  1225. // br.Msg = "获取成功"
  1226. // br.Data = resp
  1227. //}
  1228. //
  1229. //// Refresh
  1230. //// @Title 图表刷新接口
  1231. //// @Description 图表刷新接口
  1232. //// @Param ChartInfoId query int true "图表id"
  1233. //// @Param UniqueCode query string true "唯一code"
  1234. //// @Success Ret=200 刷新成功
  1235. //// @router /chart_info/refresh [get]
  1236. //func (this *LineEquationChartInfoController) Refresh() {
  1237. // br := new(models.BaseResponse).Init()
  1238. // defer func() {
  1239. // this.Data["json"] = br
  1240. // this.ServeJSON()
  1241. // }()
  1242. // sysUser := this.SysUser
  1243. // if sysUser == nil {
  1244. // br.Msg = "请登录"
  1245. // br.ErrMsg = "请登录,SysUser Is Empty"
  1246. // br.Ret = 408
  1247. // return
  1248. // }
  1249. // chartInfoId, _ := this.GetInt("ChartInfoId")
  1250. // uniqueCode := this.GetString("UniqueCode")
  1251. // if chartInfoId <= 0 && uniqueCode == `` {
  1252. // br.Msg = "参数错误"
  1253. // br.ErrMsg = "参数错误:chartInfoId:" + strconv.Itoa(chartInfoId) + ",UniqueCode:" + uniqueCode
  1254. // return
  1255. // }
  1256. //
  1257. // var chartInfo *data_manage.ChartInfo
  1258. // var err error
  1259. // if chartInfoId > 0 {
  1260. // chartInfo, err = data_manage.GetChartInfoById(chartInfoId)
  1261. // } else {
  1262. // chartInfo, err = data_manage.GetChartInfoByUniqueCode(uniqueCode)
  1263. // }
  1264. // if err != nil {
  1265. // if err.Error() == utils.ErrNoRow() {
  1266. // br.Msg = "图表已被删除,无需刷新"
  1267. // br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
  1268. // return
  1269. // }
  1270. // br.Msg = "刷新失败"
  1271. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  1272. // return
  1273. // }
  1274. //
  1275. // // 刷新图表的指标信息
  1276. // err = data.ChartInfoRefreshV2(chartInfo.ChartInfoId)
  1277. //
  1278. // //清除图表缓存
  1279. // {
  1280. // key := utils.HZ_CHART_LIB_DETAIL + chartInfo.UniqueCode
  1281. // _ = utils.Rc.Delete(key)
  1282. // }
  1283. //
  1284. // br.Ret = 200
  1285. // br.Success = true
  1286. // br.Msg = "刷新成功"
  1287. //}
  1288. //
  1289. //// Copy
  1290. //// @Title 复制并新增图表接口
  1291. //// @Description 新增图表接口
  1292. //// @Param request body data_manage.CopyAddChartInfoReq true "type json string"
  1293. //// @Success 200 {object} data_manage.AddChartInfoResp
  1294. //// @router /chart_info/copy [post]
  1295. //func (this *LineEquationChartInfoController) Copy() {
  1296. // br := new(models.BaseResponse).Init()
  1297. // defer func() {
  1298. // this.Data["json"] = br
  1299. // this.ServeJSON()
  1300. // }()
  1301. //
  1302. // sysUser := this.SysUser
  1303. // if sysUser == nil {
  1304. // br.Msg = "请登录"
  1305. // br.ErrMsg = "请登录,SysUser Is Empty"
  1306. // br.Ret = 408
  1307. // return
  1308. // }
  1309. // deleteCache := true
  1310. // cacheKey := "CACHE_CHART_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
  1311. // defer func() {
  1312. // if deleteCache {
  1313. // utils.Rc.Delete(cacheKey)
  1314. // }
  1315. // }()
  1316. // if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
  1317. // deleteCache = false
  1318. // br.Msg = "系统处理中,请稍后重试!"
  1319. // br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
  1320. // return
  1321. // }
  1322. // var req data_manage.CopyAddChartInfoReq
  1323. // err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  1324. // if err != nil {
  1325. // br.Msg = "参数解析异常!"
  1326. // br.ErrMsg = "参数解析失败,Err:" + err.Error()
  1327. // return
  1328. // }
  1329. //
  1330. // // 获取原图表信息
  1331. // oldChartInfo, err := data_manage.GetChartInfoById(req.ChartInfoId)
  1332. // if err != nil {
  1333. // br.Msg = "获取原图表信息失败"
  1334. // br.ErrMsg = "获取原图表信息失败,Err:" + err.Error()
  1335. // return
  1336. // }
  1337. // if oldChartInfo.Source != utils.CHART_SOURCE_LINE_EQUATION {
  1338. // br.Msg = `错误的图表类型`
  1339. // br.IsSendEmail = false
  1340. // return
  1341. // }
  1342. //
  1343. // var lineChartInfoConf request.LineChartInfoReq
  1344. // err = json.Unmarshal([]byte(oldChartInfo.ExtraConfig), &lineChartInfoConf)
  1345. // addChartList := make([]request.AddChart, 0)
  1346. // addChartList = append(addChartList, request.AddChart{
  1347. // Source: lineChartInfoConf.Source,
  1348. // ChartClassifyId: req.ChartClassifyId,
  1349. // ChartName: req.ChartName,
  1350. // LeftMin: oldChartInfo.LeftMin,
  1351. // LeftMax: oldChartInfo.LeftMax,
  1352. // ChartImage: oldChartInfo.ChartImage,
  1353. // })
  1354. //
  1355. // resp := new(data_manage.AddChartInfoResp)
  1356. // batchAddChartList, err, errMsg, isSendEmail := line_equation.BatchAddChartInfo(addChartList, lineChartInfoConf, sysUser)
  1357. // if err != nil {
  1358. // br.Msg = "保存失败"
  1359. // if errMsg != `` {
  1360. // br.Msg = errMsg
  1361. // }
  1362. // br.ErrMsg = err.Error()
  1363. // br.IsSendEmail = isSendEmail
  1364. // return
  1365. // }
  1366. //
  1367. // resp.ChartInfoId = batchAddChartList[0].ChartInfo.ChartInfoId
  1368. // resp.UniqueCode = batchAddChartList[0].ChartInfo.UniqueCode
  1369. // resp.ChartType = batchAddChartList[0].ChartInfo.ChartType
  1370. // //新增操作日志
  1371. // {
  1372. // for _, v := range batchAddChartList {
  1373. // chartInfo := v.ChartInfo
  1374. // chartLog := new(data_manage.ChartInfoLog)
  1375. // chartLog.ChartInfoId = chartInfo.ChartInfoId
  1376. // chartLog.ChartName = chartInfo.ChartName
  1377. // chartLog.ChartClassifyId = chartInfo.ChartClassifyId
  1378. // chartLog.SysUserId = sysUser.AdminId
  1379. // chartLog.SysUserRealName = sysUser.RealName
  1380. // chartLog.UniqueCode = chartInfo.UniqueCode
  1381. // chartLog.CreateTime = time.Now()
  1382. // chartLog.Content = string(this.Ctx.Input.RequestBody)
  1383. // chartLog.Status = "新增拟合方程图表"
  1384. // chartLog.Method = this.Ctx.Input.URI()
  1385. // go data_manage.AddChartInfoLog(chartLog)
  1386. // }
  1387. // }
  1388. //
  1389. // br.Ret = 200
  1390. // br.Data = resp
  1391. // br.Success = true
  1392. // br.Msg = "保存成功"
  1393. // br.IsAddLog = true
  1394. //}
  1395. // Refresh
  1396. // @Title 图表刷新接口
  1397. // @Description 图表刷新接口
  1398. // @Param ChartInfoId query int true "图表id"
  1399. // @Param UniqueCode query string true "唯一code"
  1400. // @Success Ret=200 刷新成功
  1401. // @router /chart_info/refresh [get]
  1402. func (this *LineEquationChartInfoController) Refresh() {
  1403. br := new(models.BaseResponse).Init()
  1404. defer func() {
  1405. this.Data["json"] = br
  1406. this.ServeJSON()
  1407. }()
  1408. sysUser := this.SysUser
  1409. if sysUser == nil {
  1410. br.Msg = "请登录"
  1411. br.ErrMsg = "请登录,SysUser Is Empty"
  1412. br.Ret = 408
  1413. return
  1414. }
  1415. chartInfoId, _ := this.GetInt("ChartInfoId")
  1416. uniqueCode := this.GetString("UniqueCode")
  1417. if chartInfoId <= 0 && uniqueCode == `` {
  1418. br.Msg = "参数错误"
  1419. br.ErrMsg = "参数错误:chartInfoId:" + strconv.Itoa(chartInfoId) + ",UniqueCode:" + uniqueCode
  1420. return
  1421. }
  1422. var chartInfo *data_manage.ChartInfo
  1423. var err error
  1424. if chartInfoId > 0 {
  1425. chartInfo, err = data_manage.GetChartInfoById(chartInfoId)
  1426. } else {
  1427. chartInfo, err = data_manage.GetChartInfoByUniqueCode(uniqueCode)
  1428. }
  1429. if err != nil {
  1430. if err.Error() == utils.ErrNoRow() {
  1431. br.Msg = "图表已被删除,无需刷新"
  1432. br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
  1433. return
  1434. }
  1435. br.Msg = "刷新失败"
  1436. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  1437. return
  1438. }
  1439. // 刷新图表的指标信息
  1440. err = data.ChartInfoRefreshV2(chartInfo.ChartInfoId)
  1441. //清除图表缓存
  1442. {
  1443. key := utils.HZ_CHART_LIB_DETAIL + chartInfo.UniqueCode
  1444. _ = utils.Rc.Delete(key)
  1445. }
  1446. br.Ret = 200
  1447. br.Success = true
  1448. br.Msg = "刷新成功"
  1449. }
  1450. // Copy
  1451. // @Title 复制并新增图表接口
  1452. // @Description 新增图表接口
  1453. // @Param request body data_manage.CopyAddChartInfoReq true "type json string"
  1454. // @Success 200 {object} data_manage.AddChartInfoResp
  1455. // @router /chart_info/copy [post]
  1456. func (this *LineEquationChartInfoController) Copy() {
  1457. br := new(models.BaseResponse).Init()
  1458. defer func() {
  1459. this.Data["json"] = br
  1460. this.ServeJSON()
  1461. }()
  1462. sysUser := this.SysUser
  1463. if sysUser == nil {
  1464. br.Msg = "请登录"
  1465. br.ErrMsg = "请登录,SysUser Is Empty"
  1466. br.Ret = 408
  1467. return
  1468. }
  1469. deleteCache := true
  1470. cacheKey := "CACHE_CHART_INFO_ADD_" + strconv.Itoa(sysUser.AdminId)
  1471. defer func() {
  1472. if deleteCache {
  1473. utils.Rc.Delete(cacheKey)
  1474. }
  1475. }()
  1476. if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
  1477. deleteCache = false
  1478. br.Msg = "系统处理中,请稍后重试!"
  1479. br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
  1480. return
  1481. }
  1482. var req data_manage.CopyAddChartInfoReq
  1483. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  1484. if err != nil {
  1485. br.Msg = "参数解析异常!"
  1486. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  1487. return
  1488. }
  1489. // 获取原图表信息
  1490. oldChartInfo, err := data_manage.GetChartInfoById(req.ChartInfoId)
  1491. if err != nil {
  1492. br.Msg = "获取原图表信息失败"
  1493. br.ErrMsg = "获取原图表信息失败,Err:" + err.Error()
  1494. return
  1495. }
  1496. if oldChartInfo.Source != utils.CHART_SOURCE_LINE_EQUATION {
  1497. br.Msg = `错误的图表类型`
  1498. br.IsSendEmail = false
  1499. return
  1500. }
  1501. var lineChartInfoConf request.LineChartInfoReq
  1502. err = json.Unmarshal([]byte(oldChartInfo.ExtraConfig), &lineChartInfoConf)
  1503. addChartList := make([]request.AddChart, 0)
  1504. addChartList = append(addChartList, request.AddChart{
  1505. Source: lineChartInfoConf.Source,
  1506. ChartClassifyId: req.ChartClassifyId,
  1507. ChartName: req.ChartName,
  1508. LeftMin: oldChartInfo.LeftMin,
  1509. LeftMax: oldChartInfo.LeftMax,
  1510. ChartImage: oldChartInfo.ChartImage,
  1511. })
  1512. resp := new(data_manage.AddChartInfoResp)
  1513. batchAddChartList, err, errMsg, isSendEmail := line_equation.BatchAddChartInfo(addChartList, lineChartInfoConf, sysUser)
  1514. if err != nil {
  1515. br.Msg = "保存失败"
  1516. if errMsg != `` {
  1517. br.Msg = errMsg
  1518. }
  1519. br.ErrMsg = err.Error()
  1520. br.IsSendEmail = isSendEmail
  1521. return
  1522. }
  1523. resp.ChartInfoId = batchAddChartList[0].ChartInfo.ChartInfoId
  1524. resp.UniqueCode = batchAddChartList[0].ChartInfo.UniqueCode
  1525. resp.ChartType = batchAddChartList[0].ChartInfo.ChartType
  1526. //新增操作日志
  1527. {
  1528. for _, v := range batchAddChartList {
  1529. chartInfo := v.ChartInfo
  1530. chartLog := new(data_manage.ChartInfoLog)
  1531. chartLog.ChartInfoId = chartInfo.ChartInfoId
  1532. chartLog.ChartName = chartInfo.ChartName
  1533. chartLog.ChartClassifyId = chartInfo.ChartClassifyId
  1534. chartLog.SysUserId = sysUser.AdminId
  1535. chartLog.SysUserRealName = sysUser.RealName
  1536. chartLog.UniqueCode = chartInfo.UniqueCode
  1537. chartLog.CreateTime = time.Now()
  1538. chartLog.Content = string(this.Ctx.Input.RequestBody)
  1539. chartLog.Status = "新增拟合方程图表"
  1540. chartLog.Method = this.Ctx.Input.URI()
  1541. go data_manage.AddChartInfoLog(chartLog)
  1542. }
  1543. }
  1544. br.Ret = 200
  1545. br.Data = resp
  1546. br.Success = true
  1547. br.Msg = "保存成功"
  1548. br.IsAddLog = true
  1549. }
  1550. // GetChartInfoDetailFromUniqueCode 根据编码获取图表详情
  1551. func GetChartInfoDetailFromUniqueCode(chartInfo *data_manage.ChartInfoView, isCache bool, sysUser *system.Admin) (resp *data_manage.ChartInfoDetailFromUniqueCodeResp, isOk bool, msg, errMsg string) {
  1552. resp = new(data_manage.ChartInfoDetailFromUniqueCodeResp)
  1553. adminId := sysUser.AdminId
  1554. //判断是否存在缓存,如果存在缓存,那么直接从缓存中获取
  1555. key := data.GetChartInfoDataKey(chartInfo.ChartInfoId)
  1556. if utils.Re == nil && isCache {
  1557. if utils.Re == nil && utils.Rc.IsExist(key) {
  1558. if chartData, err1 := utils.Rc.RedisBytes(key); err1 == nil {
  1559. err := json.Unmarshal(chartData, &resp)
  1560. if err == nil && resp != nil {
  1561. // 这里跟当前用户相关的信息重新查询写入resp, 不使用缓存中的
  1562. var myCond string
  1563. var myPars []interface{}
  1564. myCond += ` AND a.admin_id=? `
  1565. myPars = append(myPars, adminId)
  1566. myCond += ` AND a.chart_info_id=? `
  1567. myPars = append(myPars, chartInfo.ChartInfoId)
  1568. myList, err := data_manage.GetMyChartByCondition(myCond, myPars)
  1569. if err != nil && err.Error() != utils.ErrNoRow() {
  1570. msg = "获取失败"
  1571. errMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
  1572. return
  1573. }
  1574. resp.ChartInfo.IsAdd = false
  1575. resp.ChartInfo.MyChartId = 0
  1576. resp.ChartInfo.MyChartClassifyId = ""
  1577. if myList != nil && len(myList) > 0 {
  1578. resp.ChartInfo.IsAdd = true
  1579. resp.ChartInfo.MyChartId = myList[0].MyChartId
  1580. resp.ChartInfo.MyChartClassifyId = myList[0].MyChartClassifyId
  1581. }
  1582. isOk = true
  1583. fmt.Println("source redis")
  1584. return
  1585. }
  1586. }
  1587. }
  1588. }
  1589. if chartInfo.ExtraConfig == `` {
  1590. msg = "获取失败"
  1591. errMsg = "获取配置信息失败"
  1592. return
  1593. }
  1594. var lineChartInfoConfig request.LineChartInfoReq
  1595. err := json.Unmarshal([]byte(chartInfo.ExtraConfig), &lineChartInfoConfig)
  1596. if err != nil {
  1597. msg = "获取失败"
  1598. errMsg = "获取图表配置信息失败, Err:" + err.Error()
  1599. return
  1600. }
  1601. var getAData, getBData, getR2Data bool
  1602. switch lineChartInfoConfig.Source {
  1603. case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_ONE:
  1604. getAData = true
  1605. case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_TWO:
  1606. getBData = true
  1607. case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_THREE:
  1608. getR2Data = true
  1609. }
  1610. edbList, dataResp, err, errMsg := line_equation.GetChartEdbData(chartInfo.ChartInfoId, lineChartInfoConfig, getAData, getBData, getR2Data)
  1611. if err != nil {
  1612. if errMsg == `` {
  1613. errMsg = "获取失败"
  1614. }
  1615. return
  1616. }
  1617. var resultResp interface{}
  1618. switch lineChartInfoConfig.Source {
  1619. case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_ONE:
  1620. resultResp = dataResp.AData
  1621. case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_TWO:
  1622. resultResp = dataResp.BData
  1623. case utils.CHART_MULTIPLE_GRAPH_LINE_EQUATION_THREE:
  1624. resultResp = dataResp.R2Data
  1625. }
  1626. if chartInfo.ChartInfoId > 0 && chartInfo != nil {
  1627. //判断是否加入我的图库
  1628. {
  1629. var myChartCondition string
  1630. var myChartPars []interface{}
  1631. myChartCondition += ` AND a.admin_id=? `
  1632. myChartPars = append(myChartPars, sysUser.AdminId)
  1633. myChartCondition += ` AND a.chart_info_id=? `
  1634. myChartPars = append(myChartPars, chartInfo.ChartInfoId)
  1635. myChartList, err := data_manage.GetMyChartByCondition(myChartCondition, myChartPars)
  1636. if err != nil && err.Error() != utils.ErrNoRow() {
  1637. msg = "获取失败"
  1638. errMsg = "获取我的图表信息失败,GetMyChartByCondition,Err:" + err.Error()
  1639. return
  1640. }
  1641. if myChartList != nil && len(myChartList) > 0 {
  1642. chartInfo.IsAdd = true
  1643. chartInfo.MyChartId = myChartList[0].MyChartId
  1644. chartInfo.MyChartClassifyId = myChartList[0].MyChartClassifyId
  1645. }
  1646. }
  1647. }
  1648. //图表操作权限
  1649. chartInfo.IsEdit = data.CheckOpChartPermission(sysUser, chartInfo.SysUserId)
  1650. //判断是否需要展示英文标识
  1651. chartInfo.IsEnChart = data.CheckIsEnChart(chartInfo.ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, chartInfo.Source, chartInfo.ChartType)
  1652. //chartInfo.UnitEn = edbInfoMappingA.UnitEn
  1653. isSaveAs := true
  1654. // 另存为
  1655. chartInfo.Button = data_manage.ChartViewButton{
  1656. IsEdit: chartInfo.IsEdit,
  1657. IsEnChart: chartInfo.IsEnChart,
  1658. IsAdd: chartInfo.IsAdd,
  1659. IsCopy: isSaveAs,
  1660. IsSetName: chartInfo.IsSetName,
  1661. }
  1662. resp.ChartInfo = chartInfo
  1663. resp.EdbInfoList = edbList
  1664. resp.DataResp = resultResp
  1665. resp.Status = true
  1666. // 将数据加入缓存
  1667. if utils.Re == nil {
  1668. d, _ := json.Marshal(resp)
  1669. _ = utils.Rc.Put(key, d, 2*time.Hour)
  1670. }
  1671. isOk = true
  1672. return
  1673. }
  1674. // EnInfoEdit
  1675. // @Title 编辑图表英文信息接口
  1676. // @Description 编辑图表英文信息接口
  1677. // @Param request body data_manage.EditChartEnInfoReq true "type json string"
  1678. // @Success Ret=200 编辑成功
  1679. // @router /chart_info/en/edit [post]
  1680. func (this *LineEquationChartInfoController) EnInfoEdit() {
  1681. br := new(models.BaseResponse).Init()
  1682. defer func() {
  1683. this.Data["json"] = br
  1684. this.ServeJSON()
  1685. }()
  1686. sysUser := this.SysUser
  1687. if sysUser == nil {
  1688. br.Msg = "请登录"
  1689. br.ErrMsg = "请登录,SysUser Is Empty"
  1690. br.Ret = 408
  1691. return
  1692. }
  1693. var req request.EditChartEnInfoReq
  1694. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  1695. if err != nil {
  1696. br.Msg = "参数解析异常!"
  1697. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  1698. return
  1699. }
  1700. req.ChartNameEn = strings.Trim(req.ChartNameEn, " ")
  1701. if req.ChartInfoId <= 0 {
  1702. br.Msg = "请选择图表"
  1703. return
  1704. }
  1705. if req.ChartNameEn == "" {
  1706. br.Msg = "请输入英文图表名称"
  1707. return
  1708. }
  1709. //判断指标名称是否存在
  1710. chartItem, err := data_manage.GetChartInfoById(req.ChartInfoId)
  1711. if err != nil {
  1712. if err.Error() == utils.ErrNoRow() {
  1713. br.Msg = "图表已被删除,请刷新页面"
  1714. br.ErrMsg = "图表已被删除,请刷新页面"
  1715. return
  1716. }
  1717. br.Msg = "获取图表信息失败"
  1718. br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  1719. return
  1720. }
  1721. // 校验名称是否有重复
  1722. {
  1723. var condition string
  1724. var pars []interface{}
  1725. condition += " AND chart_info_id <> ? AND chart_name_en = ? AND source = ?"
  1726. pars = append(pars, req.ChartInfoId, req.ChartNameEn, utils.CHART_SOURCE_LINE_EQUATION)
  1727. existItem, err := data_manage.GetChartInfoByCondition(condition, pars)
  1728. if err != nil {
  1729. if err.Error() != utils.ErrNoRow() {
  1730. br.Msg = "判断英文图表名称是否存在失败"
  1731. br.ErrMsg = "判断英文图表名称是否存在失败,Err:" + err.Error()
  1732. return
  1733. }
  1734. }
  1735. if err == nil && existItem.ChartInfoId > 0 {
  1736. br.Msg = existItem.ChartName + ":" + req.ChartNameEn + "图表名称已存在"
  1737. return
  1738. }
  1739. }
  1740. chartItem.ChartNameEn = req.ChartNameEn
  1741. chartItem.ModifyTime = time.Now().Local()
  1742. if e := chartItem.Update([]string{"ChartNameEn", "ModifyTime"}); e != nil {
  1743. br.Msg = "操作失败"
  1744. br.ErrMsg = "更新图表信息失败, Err: " + e.Error()
  1745. return
  1746. }
  1747. //添加es数据
  1748. go data.EsAddOrEditChartInfo(chartItem.ChartInfoId)
  1749. //修改my eta es数据
  1750. go data.EsAddOrEditMyChartInfoByChartInfoId(chartItem.ChartInfoId)
  1751. //指标 修改es信息
  1752. //go data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
  1753. //新增操作日志
  1754. {
  1755. chartLog := new(data_manage.ChartInfoLog)
  1756. chartLog.ChartName = chartItem.ChartName
  1757. chartLog.ChartInfoId = req.ChartInfoId
  1758. chartLog.ChartClassifyId = chartItem.ChartClassifyId
  1759. chartLog.SysUserId = sysUser.AdminId
  1760. chartLog.SysUserRealName = sysUser.RealName
  1761. chartLog.UniqueCode = chartItem.UniqueCode
  1762. chartLog.CreateTime = time.Now()
  1763. chartLog.Content = string(this.Ctx.Input.RequestBody)
  1764. chartLog.Status = "编辑拟合方程图表英文信息"
  1765. chartLog.Method = this.Ctx.Input.URL()
  1766. go data_manage.AddChartInfoLog(chartLog)
  1767. }
  1768. // 清除缓存
  1769. if utils.Re == nil && utils.Rc != nil {
  1770. _ = utils.Rc.Delete(utils.HZ_CHART_LIB_DETAIL + chartItem.UniqueCode) //图表分享链接缓存
  1771. _ = utils.Rc.Delete(data.GetChartInfoDataKey(req.ChartInfoId))
  1772. }
  1773. br.Ret = 200
  1774. br.Success = true
  1775. br.Msg = "编辑成功"
  1776. br.IsAddLog = true
  1777. }
  1778. //// SearchByEs
  1779. //// @Title 图表模糊搜索(从es获取)
  1780. //// @Description 图表模糊搜索(从es获取)
  1781. //// @Param Keyword query string true "图表名称"
  1782. //// @Param IsShowMe query bool true "是否只看我的,true、false"
  1783. //// @Param Source query int true "来源,3:拟合方程,4:滚动拟合方程,默认0:全部"
  1784. //// @Success 200 {object} data_manage.ChartInfo
  1785. //// @router /chart_info/search_by_es [get]
  1786. //func (this *LineEquationChartInfoController) SearchByEs() {
  1787. // br := new(models.BaseResponse).Init()
  1788. // defer func() {
  1789. // this.Data["json"] = br
  1790. // this.ServeJSON()
  1791. // }()
  1792. //
  1793. // sysUser := this.SysUser
  1794. // if sysUser == nil {
  1795. // br.Msg = "请登录"
  1796. // br.ErrMsg = "请登录,SysUser Is Empty"
  1797. // br.Ret = 408
  1798. // return
  1799. // }
  1800. // pageSize, _ := this.GetInt("PageSize")
  1801. // currentIndex, _ := this.GetInt("CurrentIndex")
  1802. //
  1803. // var startSize int
  1804. // if pageSize <= 0 {
  1805. // pageSize = utils.PageSize20
  1806. // }
  1807. // if currentIndex <= 0 {
  1808. // currentIndex = 1
  1809. // }
  1810. // startSize = paging.StartIndex(currentIndex, pageSize)
  1811. //
  1812. // keyword := this.GetString("Keyword")
  1813. //
  1814. // //只看我的
  1815. // isShowMe, _ := this.GetBool("IsShowMe")
  1816. // showSysId := 0
  1817. // if isShowMe {
  1818. // showSysId = sysUser.AdminId
  1819. // }
  1820. //
  1821. // sourceList := []int{utils.CHART_SOURCE_LINE_EQUATION}
  1822. //
  1823. // var searchList []*data_manage.ChartInfo
  1824. // var total int64
  1825. // var err error
  1826. //
  1827. // // 获取当前账号的不可见指标
  1828. // noPermissionChartIdList := make([]int, 0)
  1829. // {
  1830. // obj := data_manage.EdbInfoNoPermissionAdmin{}
  1831. // confList, err := obj.GetAllChartListByAdminId(this.SysUser.AdminId)
  1832. // if err != nil && err.Error() != utils.ErrNoRow() {
  1833. // br.Msg = "获取失败"
  1834. // br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
  1835. // return
  1836. // }
  1837. // for _, v := range confList {
  1838. // noPermissionChartIdList = append(noPermissionChartIdList, v.ChartInfoId)
  1839. // }
  1840. // }
  1841. //
  1842. // if keyword != "" {
  1843. // searchList, total, err = data.EsSearchChartInfo(keyword, showSysId, sourceList, noPermissionChartIdList, startSize, pageSize)
  1844. // } else {
  1845. // total, searchList, err = data_manage.ChartInfoSearchByEmptyKeyWord(showSysId, sourceList, noPermissionChartIdList)
  1846. // if err != nil && err.Error() != utils.ErrNoRow() {
  1847. // br.Msg = "获取失败"
  1848. // br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
  1849. // return
  1850. // }
  1851. // }
  1852. //
  1853. // finalList := make([]*data_manage.ChartInfoMore, 0)
  1854. // if len(searchList) > 0 {
  1855. // chartInfoIds := ""
  1856. // chartEdbMap := make(map[int][]*data_manage.ChartEdbInfoMapping)
  1857. // for _, v := range searchList {
  1858. // chartInfoIds += strconv.Itoa(v.ChartInfoId) + ","
  1859. // }
  1860. // if chartInfoIds != "" {
  1861. // chartInfoIds = strings.Trim(chartInfoIds, ",")
  1862. // //判断是否需要展示英文标识
  1863. // edbList, e := data_manage.GetChartEdbMappingListByChartInfoIds(chartInfoIds)
  1864. // if e != nil {
  1865. // br.Msg = "获取失败"
  1866. // br.ErrMsg = "获取图表,指标信息失败,Err:" + e.Error()
  1867. // return
  1868. // }
  1869. // for _, v := range edbList {
  1870. // chartEdbMap[v.ChartInfoId] = append(chartEdbMap[v.ChartInfoId], v)
  1871. // }
  1872. // }
  1873. //
  1874. // for _, v := range searchList {
  1875. // tmp := new(data_manage.ChartInfoMore)
  1876. // tmp.ChartInfo = *v
  1877. // //判断是否需要展示英文标识
  1878. // if _, ok := chartEdbMap[v.ChartInfoId]; ok {
  1879. // tmp.IsEnChart = data.CheckIsEnChart(v.ChartNameEn, []*data_manage.ChartEdbInfoMapping{}, v.Source, v.ChartType)
  1880. // }
  1881. // finalList = append(finalList, tmp)
  1882. // }
  1883. // }
  1884. // //新增搜索词记录
  1885. // {
  1886. // searchKeyword := new(data_manage.SearchKeyword)
  1887. // searchKeyword.KeyWord = keyword
  1888. // searchKeyword.CreateTime = time.Now()
  1889. // go data_manage.AddSearchKeyword(searchKeyword)
  1890. // }
  1891. //
  1892. // page := paging.GetPaging(currentIndex, pageSize, int(total))
  1893. // resp := data_manage.ChartInfoListByEsResp{
  1894. // Paging: page,
  1895. // List: finalList,
  1896. // }
  1897. // br.Ret = 200
  1898. // br.Success = true
  1899. // br.Msg = "获取成功"
  1900. // br.Data = resp
  1901. //}