|
@@ -1890,3 +1890,134 @@ func (this *ChartInfoController) CalculateComputeCorrelation() {
|
|
|
br.Msg = "计算成功"
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
+
|
|
|
+// CalculateMultiChoice
|
|
|
+// @Title 批量计算-加入已选指标
|
|
|
+// @Description 批量计算-加入已选指标
|
|
|
+// @Param ClassifyIds query int true "指标库分类IDs"
|
|
|
+// @Param SysUserIds query int true "创建人"
|
|
|
+// @Param Keyword query string false "关键词搜索"
|
|
|
+// @Param Frequency query string false "频度"
|
|
|
+// @Success 200 {object} data_manage.EdbInfoSearchResp
|
|
|
+// @router /edb_info/calculate/multi/choice [post]
|
|
|
+func (this *EdbInfoCalculateController) CalculateMultiChoice() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ var req data_manage.CalculateMultiChoiceReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ frequency := req.Frequency
|
|
|
+ sysUserIds := req.SysUserIds
|
|
|
+ classifyIds := req.ClassifyIds
|
|
|
+ keyword := req.Keyword
|
|
|
+ selectAll := req.SelectAll
|
|
|
+
|
|
|
+ var edbIdArr []int
|
|
|
+
|
|
|
+ if selectAll {
|
|
|
+ // 如果勾了列表全选,那么EdbCode传的就是排除的code
|
|
|
+
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ if classifyIds != "" {
|
|
|
+ classifyIdsArr := strings.Split(classifyIds, ",")
|
|
|
+ condition += ` AND classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `) `
|
|
|
+ pars = append(pars, classifyIdsArr)
|
|
|
+ }
|
|
|
+
|
|
|
+ if frequency != "" {
|
|
|
+ frequencyArr := strings.Split(frequency, ",")
|
|
|
+ condition += ` AND frequency IN (` + utils.GetOrmInReplace(len(frequencyArr)) + `) `
|
|
|
+ pars = append(pars, frequencyArr)
|
|
|
+ }
|
|
|
+
|
|
|
+ if sysUserIds != "" {
|
|
|
+ sysUserIdSlice := strings.Split(sysUserIds, ",")
|
|
|
+ condition += ` AND sys_user_id IN (` + utils.GetOrmInReplace(len(sysUserIdSlice)) + `)`
|
|
|
+ pars = append(pars, sysUserIdSlice)
|
|
|
+ }
|
|
|
+
|
|
|
+ if keyword != "" {
|
|
|
+ keyWordArr := strings.Split(keyword, " ")
|
|
|
+
|
|
|
+ if len(keyWordArr) > 0 {
|
|
|
+ for _, v := range keyWordArr {
|
|
|
+ condition += ` AND CONCAT(index_name,index_code) LIKE ?`
|
|
|
+ pars = append(pars, utils.GetLikeKeyword(v))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ edbList, e := data_manage.GetEdbInfoFilter(condition, pars)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取指标列表失败"
|
|
|
+ br.ErrMsg = "获取指标列表失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range edbList {
|
|
|
+ edbIdArr = append(edbIdArr, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //未勾选全选EdbCode就是需要的code
|
|
|
+ edbIdStrArr := strings.Split(req.EdbInfoIds, ",")
|
|
|
+ for _, v := range edbIdStrArr {
|
|
|
+ id, e := strconv.Atoi(v)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取指标列表失败"
|
|
|
+ br.ErrMsg = "获取指标列表失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbIdArr = append(edbIdArr, id)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbIdArr) > 100 {
|
|
|
+ br.Msg = "最多只能选择100个指标"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbIdArr) <= 0 {
|
|
|
+ br.Msg = "无符合指标或指标代码错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ list, err := data_manage.GetEdbInfoByIdList(edbIdArr)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取指标列表失败"
|
|
|
+ br.ErrMsg = "获取指标列表失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ searchItemList := make([]data_manage.EdbInfoBase, 0)
|
|
|
+
|
|
|
+ resp := new(data_manage.CalculateMultiChoiceResp)
|
|
|
+
|
|
|
+ for _, info := range list {
|
|
|
+ searchItem := data_manage.EdbInfoBase{
|
|
|
+ Frequency: info.Frequency,
|
|
|
+ Unit: info.Unit,
|
|
|
+ EdbName: info.EdbName,
|
|
|
+ EdbInfoId: info.EdbInfoId,
|
|
|
+ ClassifyId: info.ClassifyId,
|
|
|
+ }
|
|
|
+ searchItemList = append(searchItemList, searchItem)
|
|
|
+ }
|
|
|
+
|
|
|
+ resp.SearchItem = searchItemList
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|