|
@@ -96,12 +96,11 @@ func (this *BloombergDataController) List() {
|
|
|
}
|
|
|
orderType := map[int]string{0: "DESC", 1: "ASC", 2: "DESC"}
|
|
|
orderRule := fmt.Sprintf("%s %s", orderFields[params.SortField], orderType[params.SortRule])
|
|
|
- fmt.Println(orderRule)
|
|
|
|
|
|
// 列表
|
|
|
edbList := make([]*data_manage.BaseFromBloombergIndex, 0)
|
|
|
if params.ListAll {
|
|
|
- list, e := bloombergOb.GetItemsByCondition(cond, pars, []string{}, orderRule)
|
|
|
+ list, e := bloombergOb.GetItemsByCondition(cond, pars, []string{}, orderRule, 0)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取Bloomberg原始指标列表失败, Err: " + e.Error()
|
|
@@ -359,3 +358,117 @@ func (this *BloombergDataController) NameCheck() {
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
}
|
|
|
+
|
|
|
+// AddCheck
|
|
|
+// @Title 新增校验
|
|
|
+// @Description 新增校验
|
|
|
+// @Param request body data_manage.BloombergSourceBatchAddCheckReq true "type json string"
|
|
|
+// @Success 200 string "操作成功"
|
|
|
+// @router /bloomberg_source/add_check [post]
|
|
|
+func (this *BloombergDataController) AddCheck() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req *data_manage.BloombergSourceBatchAddCheckReq
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ codeMax := 30
|
|
|
+ codeLen := len(req.IndexCodes)
|
|
|
+
|
|
|
+ // 排序, 默认创建时间倒序
|
|
|
+ orderFields := map[int]string{
|
|
|
+ 0: data_manage.BaseFromBloombergIndexCols.CreateTime, 1: data_manage.BaseFromBloombergIndexCols.StartDate,
|
|
|
+ 2: data_manage.BaseFromBloombergIndexCols.EndDate, 3: data_manage.BaseFromBloombergIndexCols.ModifyTime,
|
|
|
+ }
|
|
|
+ orderType := map[int]string{0: "DESC", 1: "ASC", 2: "DESC"}
|
|
|
+ orderRule := fmt.Sprintf("%s %s", orderFields[req.SortField], orderType[req.SortRule])
|
|
|
+
|
|
|
+ // 非全选-不需要频率等筛选条件
|
|
|
+ bloombergOb := new(data_manage.BaseFromBloombergIndex)
|
|
|
+ if !req.ListAll {
|
|
|
+ if codeLen == 0 {
|
|
|
+ br.Msg = "请选择指标"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if codeLen > codeMax {
|
|
|
+ br.Msg = fmt.Sprintf("最多只能选择%d个指标", codeMax)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询选中的指标
|
|
|
+ cond := fmt.Sprintf(` AND %s IN (%s)`, data_manage.BaseFromBloombergIndexCols.IndexCode, utils.GetOrmInReplace(codeLen))
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, req.IndexCodes)
|
|
|
+ list, e := bloombergOb.GetItemsByCondition(cond, pars, []string{}, orderRule, 0)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Bloomberg原始指标列表失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := make([]*data_manage.BaseFromBloombergIndexItem, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ resp = append(resp, data_manage.FormatBaseFromBloombergIndex2Item(v))
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "校验成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 全选-需要频率等筛选条件
|
|
|
+ cond := ``
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ // 筛选项
|
|
|
+ req.Keywords = strings.TrimSpace(req.Keywords)
|
|
|
+ if req.Keywords != "" {
|
|
|
+ cond += fmt.Sprintf(` AND (%s LIKE ? OR %s LIKE ?)`, data_manage.BaseFromBloombergIndexCols.IndexCode, data_manage.BaseFromBloombergIndexCols.IndexName)
|
|
|
+ kw := fmt.Sprint("%", req.Keywords, "%")
|
|
|
+ pars = append(pars, kw, kw)
|
|
|
+ }
|
|
|
+ if req.Frequency != "" {
|
|
|
+ cond += fmt.Sprintf(` AND %s = ?`, data_manage.BaseFromBloombergIndexCols.Frequency)
|
|
|
+ pars = append(pars, req.Frequency)
|
|
|
+ }
|
|
|
+ // 排除对应指标
|
|
|
+ if codeLen > 0 {
|
|
|
+ cond += fmt.Sprintf(` AND %s NOT IN (%s)`, data_manage.BaseFromBloombergIndexCols.IndexCode, utils.GetOrmInReplace(codeLen))
|
|
|
+ pars = append(pars, req.IndexCodes)
|
|
|
+ }
|
|
|
+ // 查询max+1个指标
|
|
|
+ list, e := bloombergOb.GetItemsByCondition(cond, pars, []string{}, orderRule, codeMax+1)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Bloomberg原始指标列表失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(list) > codeMax {
|
|
|
+ br.Msg = fmt.Sprintf("最多只能选择%d个指标", codeMax)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resp := make([]*data_manage.BaseFromBloombergIndexItem, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ resp = append(resp, data_manage.FormatBaseFromBloombergIndex2Item(v))
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "校验成功"
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+}
|