line_feature.go 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package line_feature
  2. import (
  3. "eta_gn/eta_api/global"
  4. "eta_gn/eta_api/models/data_manage"
  5. "eta_gn/eta_api/utils"
  6. "fmt"
  7. "strconv"
  8. "strings"
  9. "time"
  10. )
  11. type BatchAddChart struct {
  12. ChartInfo *data_manage.ChartInfo
  13. EdbMappingList []*data_manage.ChartEdbMapping
  14. MultipleGraphConfigChartMapping *data_manage.MultipleGraphConfigChartMapping
  15. }
  16. func CreateLineFeatureChartAndEdb(chartInfo *data_manage.ChartInfo, edbMappingList []*data_manage.ChartEdbMapping) (chartInfoId int, err error) {
  17. tx := global.DmSQL["data"].Begin()
  18. if err != nil {
  19. return
  20. }
  21. defer func() {
  22. if err != nil {
  23. _ = tx.Rollback()
  24. } else {
  25. _ = tx.Commit()
  26. }
  27. }()
  28. // 新增图表信息
  29. err = tx.Create(chartInfo).Error
  30. if err != nil {
  31. return
  32. }
  33. chartInfoId = chartInfo.ChartInfoId
  34. // 指标mapping
  35. if len(edbMappingList) > 0 {
  36. for i := range edbMappingList {
  37. edbMappingList[i].ChartInfoId = chartInfoId
  38. }
  39. err = tx.CreateInBatches(edbMappingList, utils.MultiAddNum).Error
  40. if err != nil {
  41. return
  42. }
  43. }
  44. return
  45. }
  46. // EditLineFeatureChartAndMapping 批量新增/编辑拟合方程图表
  47. func EditLineFeatureChartAndMapping(req *data_manage.EditChartInfoReq, edbInfoIdStr string, calendar string, dateType, disabled int, extraConfig string) (err error) {
  48. to := global.DmSQL["data"].Begin()
  49. if err != nil {
  50. return
  51. }
  52. defer func() {
  53. if err != nil {
  54. _ = to.Rollback()
  55. } else {
  56. _ = to.Commit()
  57. }
  58. }()
  59. var pars []interface{}
  60. pars = append(pars, req.ChartName)
  61. pars = append(pars, req.ChartNameEn)
  62. pars = append(pars, edbInfoIdStr)
  63. pars = append(pars, req.ChartClassifyId)
  64. pars = append(pars, disabled)
  65. pars = append(pars, extraConfig)
  66. sql := ` UPDATE chart_info
  67. SET
  68. chart_name =?,
  69. chart_name_en =?,
  70. edb_info_ids=?,
  71. chart_classify_id = ?,
  72. modify_time = NOW(),
  73. disabled = ?,
  74. extra_config = ?
  75. `
  76. if calendar != "" {
  77. sql += `,calendar = ? `
  78. pars = append(pars, calendar)
  79. }
  80. if dateType > 0 {
  81. sql += `,date_type = ? `
  82. pars = append(pars, dateType)
  83. }
  84. sql += `,start_date = ? `
  85. pars = append(pars, req.StartDate)
  86. sql += `,end_date = ? `
  87. pars = append(pars, req.EndDate)
  88. sql += `,season_start_date = ? `
  89. pars = append(pars, req.StartDate)
  90. sql += `,season_end_date = ? `
  91. pars = append(pars, req.EndDate)
  92. sql += `,left_min = ? `
  93. pars = append(pars, req.LeftMin)
  94. sql += `,left_max = ? `
  95. pars = append(pars, req.LeftMax)
  96. sql += `,right_min = ? `
  97. pars = append(pars, req.RightMin)
  98. sql += `,right_max = ? `
  99. pars = append(pars, req.RightMax)
  100. sql += `WHERE chart_info_id = ?`
  101. pars = append(pars, req.ChartInfoId)
  102. err = to.Exec(sql, pars).Error
  103. if err != nil {
  104. fmt.Println("UPDATE chart_info Err:", err.Error())
  105. return err
  106. }
  107. chartEdbMappingIdList := make([]string, 0)
  108. for _, v := range req.CorrelationChartInfo.EdbInfoIdList {
  109. // 查询该指标是否存在,如果存在的话,那么就去修改,否则新增
  110. var tmpChartEdbMapping *data_manage.ChartEdbMapping
  111. csql := `SELECT * FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? AND source = ? `
  112. err = to.Raw(csql, req.ChartInfoId, v.EdbInfoId, utils.CHART_SOURCE_CORRELATION).First(&tmpChartEdbMapping).Error
  113. if err != nil && err.Error() != utils.ErrNoRow() {
  114. fmt.Println("QueryRow Err:", err.Error())
  115. return err
  116. }
  117. if tmpChartEdbMapping != nil {
  118. chartEdbMappingIdList = append(chartEdbMappingIdList, strconv.Itoa(tmpChartEdbMapping.ChartEdbMappingId))
  119. //tmpChartEdbMapping.ModifyTime = time.Now()
  120. //tmpChartEdbMapping.MaxData = v.MaxData
  121. //tmpChartEdbMapping.MinData = v.MinData
  122. //tmpChartEdbMapping.IsOrder = v.IsOrder
  123. //tmpChartEdbMapping.IsAxis = v.IsAxis
  124. //tmpChartEdbMapping.EdbInfoType = v.EdbInfoType
  125. //tmpChartEdbMapping.LeadValue = v.LeadValue
  126. //tmpChartEdbMapping.LeadUnit = v.LeadUnit
  127. //tmpChartEdbMapping.ChartStyle = v.ChartStyle
  128. //tmpChartEdbMapping.ChartColor = v.ChartColor
  129. //tmpChartEdbMapping.PredictChartColor = v.PredictChartColor
  130. //tmpChartEdbMapping.ChartWidth = v.ChartWidth
  131. //_, err = to.Update(tmpChartEdbMapping, "ModifyTime", "MaxData", "MinData", "IsOrder", "IsAxis", "EdbInfoType", "LeadValue", "LeadUnit", "ChartStyle", "ChartColor", "PredictChartColor", "ChartWidth")
  132. //if err != nil {
  133. // fmt.Println("chart_edb_mapping Err:" + err.Error())
  134. // return err
  135. //}
  136. } else {
  137. mapItem := new(data_manage.ChartEdbMapping)
  138. mapItem.ChartInfoId = req.ChartInfoId
  139. mapItem.EdbInfoId = v.EdbInfoId
  140. mapItem.CreateTime = time.Now()
  141. mapItem.ModifyTime = time.Now()
  142. timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
  143. mapItem.UniqueCode = utils.MD5(utils.CHART_PREFIX + "_" + timestamp + "_" + strconv.Itoa(v.EdbInfoId))
  144. //mapItem.MaxData = v.MaxData
  145. //mapItem.MinData = v.MinData
  146. mapItem.IsOrder = true
  147. mapItem.IsAxis = 1
  148. mapItem.EdbInfoType = 1
  149. //mapItem.LeadValue = v.LeadValue
  150. //mapItem.LeadUnit = v.LeadUnit
  151. //mapItem.ChartStyle = v.ChartStyle
  152. //mapItem.ChartColor = v.ChartColor
  153. //mapItem.PredictChartColor = v.PredictChartColor
  154. //mapItem.ChartWidth = v.ChartWidth
  155. mapItem.Source = utils.CHART_SOURCE_CORRELATION
  156. err = to.Create(mapItem).Error
  157. if err != nil {
  158. fmt.Println("AddChartEdbMapping Err:" + err.Error())
  159. return err
  160. }
  161. chartEdbMappingIdList = append(chartEdbMappingIdList, strconv.Itoa(mapItem.ChartEdbMappingId))
  162. }
  163. }
  164. if len(chartEdbMappingIdList) > 0 {
  165. chartEdbMappingIdStr := strings.Join(chartEdbMappingIdList, ",")
  166. dsql := `DELETE FROM chart_edb_mapping WHERE chart_info_id=? AND chart_edb_mapping_id NOT IN(` + chartEdbMappingIdStr + `)`
  167. err = to.Exec(dsql, req.ChartInfoId).Error
  168. if err != nil {
  169. fmt.Println("delete err:" + err.Error())
  170. return err
  171. }
  172. }
  173. return
  174. }