xiziwen 4 bulan lalu
induk
melakukan
6de41a83bd

+ 87 - 210
controllers/data_manage/clarksons_data.go

@@ -19,7 +19,6 @@ import (
 	"strings"
 	"time"
 
-	"github.com/rdlucklib/rdluck_tools/paging"
 	"github.com/tealeg/xlsx"
 )
 
@@ -27,8 +26,8 @@ type ClarksonsDataController struct {
 	controllers.BaseAuthController
 }
 
-// @Title 卓创红期数据分类
-// @Description 卓创红期数据分类接口
+// @Title 克拉克森数据分类
+// @Description 克拉克森数据分类接口
 // @Success 200 {object} data_manage.SciClassify
 // @router /clarksons/classify [get]
 func (this *ClarksonsDataController) Classify() {
@@ -46,14 +45,14 @@ func (this *ClarksonsDataController) Classify() {
 	}
 
 	initClassify := &data_manage.BaseFromClarksonsClassifyItem{
-		BaseFromClassifyId:     0,
-		ClassifyName:   "未分类",
-		ClassifyNameEn: "Unclassified",
-		UniqueCode:     "0",
-		ParentId:       0,
-		Level:          1,
-		Sort:           0,
-		Children:       nil,
+		BaseFromClassifyId: 0,
+		ClassifyName:       "未分类",
+		ClassifyNameEn:     "Unclassified",
+		UniqueCode:         "0",
+		ParentId:           0,
+		Level:              1,
+		Sort:               0,
+		Children:           nil,
 	}
 	finalList := make([]*data_manage.BaseFromClarksonsClassifyItem, 0)
 	classifyTree := getClarksonsClassifyTree(classifyList, 0)
@@ -93,7 +92,7 @@ func (this *ClarksonsDataController) AddClassify() {
 		br.Msg = "操作异常"
 		return
 	}
-	ok, msg, err := data.AddClarksonsClassify(req.ClassifyName, this.Lang, req.ParentId)
+	ok, msg, err := data.AddClarksonsClassify(req.ClassifyName, req.ParentId)
 	if err != nil {
 		br.Msg = "添加失败"
 		br.ErrMsg = "添加失败,Err:" + err.Error()
@@ -188,48 +187,25 @@ func (this *ClarksonsDataController) EditClassify() {
 		br.ErrMsg = "获取分类失败,Err:" + err.Error()
 		return
 	}
-	switch this.Lang {
-	case utils.EnLangVersion:
-		if classify.ClassifyNameEn != req.ClassifyName {
-			count, err := data_manage.GetClarksonsClassifyCountByName(req.ClassifyName, this.Lang)
-			if err != nil {
-				br.Msg = "编辑失败"
-				br.ErrMsg = "获取分类失败,Err:" + err.Error()
-				return
-			}
-			if count > 0 {
-				br.Msg = "分类名称已存在"
-				return
-			}
-			classify.ClassifyNameEn = req.ClassifyName
-			classify.ModifyTime = time.Now()
-			err = classify.Update([]string{"classify_name_en", "modify_time"})
-			if err != nil {
-				br.Msg = "编辑失败"
-				br.ErrMsg = "编辑失败,Err:" + err.Error()
-				return
-			}
+
+	if classify.ClassifyName != req.ClassifyName {
+		count, err := data_manage.GetClarksonsClassifyCountByName(req.ClassifyName)
+		if err != nil {
+			br.Msg = "编辑失败"
+			br.ErrMsg = "获取分类失败,Err:" + err.Error()
+			return
 		}
-	default:
-		if classify.ClassifyName != req.ClassifyName {
-			count, err := data_manage.GetClarksonsClassifyCountByName(req.ClassifyName, this.Lang)
-			if err != nil {
-				br.Msg = "编辑失败"
-				br.ErrMsg = "获取分类失败,Err:" + err.Error()
-				return
-			}
-			if count > 0 {
-				br.Msg = "分类名称已存在"
-				return
-			}
-			classify.ClassifyName = req.ClassifyName
-			classify.ModifyTime = time.Now()
-			err = classify.Update([]string{"classify_name", "modify_time"})
-			if err != nil {
-				br.Msg = "编辑失败"
-				br.ErrMsg = "编辑失败,Err:" + err.Error()
-				return
-			}
+		if count > 0 {
+			br.Msg = "分类名称已存在"
+			return
+		}
+		classify.ClassifyName = req.ClassifyName
+		classify.ModifyTime = time.Now()
+		err = classify.Update([]string{"classify_name", "modify_time"})
+		if err != nil {
+			br.Msg = "编辑失败"
+			br.ErrMsg = "编辑失败,Err:" + err.Error()
+			return
 		}
 	}
 
@@ -282,8 +258,8 @@ func (this *ClarksonsDataController) MoveClassify() {
 }
 
 // IndexList
-// @Title 卓创红期指标列表
-// @Description 卓创红期数据指标列表接口
+// @Title 克拉克森指标列表
+// @Description 克拉克森数据指标列表接口
 // @Param   BaseFromClassifyId   query   int  true       "分类id"
 // @Success 200 {object} data_manage.BaseFromMysteelChemicalIndexResp
 // @router /clarksons/index/list [get]
@@ -307,178 +283,79 @@ func (this *ClarksonsDataController) IndexList() {
 	br.Data = indexList
 }
 
-// BatchIndexList
-// @Title 卓创红期批量操作指标列表
-// @Description 卓创红期批量操作指标列表
-// @Param   request	body   request.ClarksonsDataBatchListReq true "type json string"
-// @Success 200 {object} data_manage.BaseFromMysteelChemicalIndexResp
-// @router /clarksons/index/batch_list [post]
-func (this *ClarksonsDataController) BatchIndexList() {
+// GetClarksonsIndexInfo
+// @Title 添加指标-根据条件获取指标信息
+// @Description 添加指标-根据条件获取指标信息
+// @Param   KeyWord   query   string  false       "关键字"
+// @Param   ClassifyIds   query   string  false       "分类id"
+// @Param   Frequencies   query   string  false       "频率"
+// @Param   PageSize   query   int  false       "每页数据条数"
+// @Param   CurrentIndex   query   int  false       "当前页页码,从1开始"
+// @Success 200 {object} data_manage.BaseFromRzdIndexPage
+// @router /clarksons/get/index/info [post]
+func (this *ClarksonsDataController) GetClarksonsIndexInfo() {
 	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 request.ClarksonsDataBatchListReq
 	if err := json.Unmarshal(this.Ctx.Input.RequestBody, &req); err != nil {
 		br.Msg = "参数解析异常!"
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
-	var condition string
-	var pars []interface{}
-	if req.KeyWord != "" {
-		condition += `AND (index_code=? OR index_name=?)`
-		pars = utils.GetLikeKeywordPars(pars, req.KeyWord, 2)
-	}
-	if req.IsSelectAll {
-		if len(req.SelectedId) > 0 {
-			condition += ` AND base_from_sci_hq_index_id NOT IN (` + utils.GetOrmInReplace(len(req.SelectedId)) + `)`
-			pars = append(pars, req.SelectedId)
-		}
-	} else {
-		if len(req.SelectedId) > 0 {
-			condition += ` AND base_from_sci_hq_index_id IN (` + utils.GetOrmInReplace(len(req.SelectedId)) + `)`
-			pars = append(pars, req.SelectedId)
-		}
-	}
-	if req.BaseFromClassifyId < 0 {
-		br.Msg = "分类选择错误"
-		return
+
+	keyWord := req.KeyWord
+	classifyIds := req.ClassifyIds
+	frequencies := req.Frequencies
+
+	pageSize := req.PageSize
+	currentIndex := req.CurrentIndex
+	var startSize int
+
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
 	}
-	if req.BaseFromClassifyId > 0 {
-		childClassify, err := data_manage.GetChildClarksonsClassifyListById(req.BaseFromClassifyId)
-		if err != nil {
-			br.Msg = "下载失败"
-			br.ErrMsg = "获取分类失败,Err:" + err.Error()
-			return
-		}
-		if len(childClassify) > 0 {
-			condition += `AND classify_id IN (` + utils.GetOrmInReplace(len(childClassify)) + `)`
-			for _, child := range childClassify {
-				pars = append(pars, child.BaseFromClassifyId)
-			}
-		} else {
-			condition += ` AND classify_id=?`
-			pars = append(pars, req.BaseFromClassifyId)
-		}
-	} else {
-		condition += ` AND classify_id=?`
-		pars = append(pars, req.BaseFromClassifyId)
+	if currentIndex <= 0 {
+		currentIndex = 1
 	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
 
-	count, err := data_manage.GetClarksonsIndexCountByCondition(condition, pars)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
-		return
+	var classifyIdList []string
+	var frequencyList []string
+	if classifyIds != "" {
+		classifyIdList = strings.Split(classifyIds, ",")
 	}
-	MaxLen := 30
-	if count > MaxLen {
-		br.Msg = "批量操作数量不能超过" + strconv.Itoa(MaxLen)
-		return
+	if frequencies != "" {
+		frequencyList = strings.Split(frequencies, ",")
 	}
-	indexList, err := data_manage.GetClarksonsIndexByCondition(condition, pars)
+	indexInfoPage, err := data.GetClarksonsIndexInfo(keyWord, classifyIdList, frequencyList, currentIndex, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
-		br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
+		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
 
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
-	br.Data = indexList
-}
-
-// IndexPageList
-// @Title 卓创红期指标列表
-// @Description 卓创红期数据指标列表接口
-// @Param   PageSize   query   int  true       "每页数据条数"
-// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
-// @Param   BaseFromClassifyId   query   int  true       "分类id"
-// @Param   IsListAll   query   int  true       "是否展示全部"
-// @Success 200 {object} data_manage.BaseFromMysteelChemicalIndexResp
-// @router /clarksons/index/page/list [get]
-func (this *ClarksonsDataController) IndexPageList() {
-	br := new(models.BaseResponse).Init()
-	defer func() {
-		this.Data["json"] = br
-		this.ServeJSON()
-	}()
-	classifyId, _ := this.GetInt("BaseFromClassifyId", 0)
-	pageSize, _ := this.GetInt("PageSize")
-	currrentIndex, _ := this.GetInt("CurrentIndex")
-	isListAll, _ := this.GetBool("IsListAll")
-	var startSize int
-	if pageSize <= 0 {
-		pageSize = utils.PageSize20
-	}
-	if currrentIndex <= 0 {
-		currrentIndex = 1
-	}
-	startSize = utils.StartIndex(currrentIndex, pageSize)
-	var total int
-	var indexList []*data_manage.BaseFromClarksonsIndexView
-	if isListAll {
-		tmpTotal, err := data_manage.GetClarksonsIndexCount()
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
-			return
-		}
-		total = tmpTotal
-		tmpIndexList, err := data_manage.GetClarksonsIndexByPage(startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
-			return
-		}
-		indexList = tmpIndexList
-	} else {
-		var classifyIds []int
-		if classifyId > 0 {
-			tmpClassifyIds, err := data_manage.GetClarksonsChildClassifyIdsById(classifyId)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
-				return
-			}
-			if len(tmpClassifyIds) > 0 {
-				classifyIds = append(classifyIds, tmpClassifyIds...)
-			}
-		}
-		classifyIds = append(classifyIds, classifyId)
-		tmpTotal, err := data_manage.GetClarksonsIndexCountByClassifyId(classifyIds)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
-			return
-		}
-		total = tmpTotal
-		tmpIndexList, err := data_manage.GetClarksonsIndexByClassifyId(classifyIds, startSize, pageSize)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
-			return
-		}
-		indexList = tmpIndexList
-	}
-
-	page := paging.GetPaging(currrentIndex, pageSize, total)
-	resp := new(response.ClarksonsIndexPageListResp)
-	resp.List = indexList
-	resp.Paging = page
-
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
+	br.Data = indexInfoPage
 }
 
 // SearchList
-// @Title 卓创红期模糊搜索
-// @Description 卓创红期模糊搜索
+// @Title 克拉克森模糊搜索
+// @Description 克拉克森模糊搜索
 // @Param   Keyword   query   string  true       "关键字搜索"
 // @Success 200 {object} models.BaseResponse
 // @router /clarksons/search_list [get]
@@ -515,8 +392,8 @@ func (this *ClarksonsDataController) SearchList() {
 }
 
 // SingleData
-// @Title 获取卓创红期
-// @Description 获取卓创红期单条数据接口
+// @Title 获取克拉克森
+// @Description 获取克拉克森单条数据接口
 // @Param   BaseFromClarksonsIndexId   query   string  true       "指标唯一编码"
 // @Success 200 {object} models.BaseResponse
 // @router /clarksons/single_data [get]
@@ -568,8 +445,8 @@ func (this *ClarksonsDataController) SingleData() {
 }
 
 // MoveClarksonsData
-// @Title 卓创红期指标移动接口
-// @Description 卓创红期指标移动接口
+// @Title 克拉克森指标移动接口
+// @Description 克拉克森指标移动接口
 // @Success 200 {object} request.MoveBaseFromClarksonsReq
 // @router /clarksons/move [post]
 func (this *ClarksonsDataController) MoveClarksonsData() {
@@ -866,7 +743,7 @@ func (this *ClarksonsDataController) AddCheck() {
 	list, err := data_manage.GetClarksonsIndexAndEdbInfoByCondition(cond, pars)
 	if err != nil {
 		br.Msg = "获取失败"
-		br.ErrMsg = "获取卓创红期原始指标列表失败, Err: " + err.Error()
+		br.ErrMsg = "获取克拉克森原始指标列表失败, Err: " + err.Error()
 		return
 	}
 
@@ -949,7 +826,7 @@ func (c *ClarksonsDataController) NameCheck() {
 		dataItems, err := data_manage.GetEdbDataAllByEdbCode(v.EdbCode, utils.DATA_SOURCE_SCI_HQ, 0, utils.EDB_DATA_LIMIT)
 		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取失败"
-			br.ErrMsg = "获取卓创红期已存在信息失败,Err:" + err.Error()
+			br.ErrMsg = "获取克拉克森已存在信息失败,Err:" + err.Error()
 			return
 		}
 		if len(dataItems) <= 0 {
@@ -1280,8 +1157,8 @@ func (this *ClarksonsDataController) BatchEdit() {
 }
 
 // EditClarksons
-// @Title 编辑卓创红期指标
-// @Description 编辑卓创红期指标接口
+// @Title 编辑克拉克森指标
+// @Description 编辑克拉克森指标接口
 // @Param	request	body data_manage.AddEdbClassifyReq true "type json string"
 // @Success 200 Ret=200 保存成功
 // @router /clarksons/edit [post]
@@ -1323,7 +1200,7 @@ func (this *ClarksonsDataController) EditClarksons() {
 
 	resp := response.EditClarksonsIndexInfoResp{
 		BaseFromClarksonsIndexId: sciIndexInfo.BaseFromClarksonsIndexId,
-		IndexCode:            sciIndexInfo.IndexCode,
+		IndexCode:                sciIndexInfo.IndexCode,
 	}
 	br.Data = resp
 	br.Ret = 200
@@ -1545,7 +1422,7 @@ func (this *ClarksonsDataController) ExportClarksonsList() {
 			return
 		}
 	}
-	fileName := `卓创红期`
+	fileName := `克拉克森`
 	if indexCode != "" && len(secNameList) == 1 {
 		fileName = secNameList[0].IndexName
 	}

+ 21 - 25
models/data_manage/base_from_clarksons_classify.go

@@ -9,32 +9,31 @@ import (
 
 // BaseFromClarksonsClassify 卓创红期原始数据分类表
 type BaseFromClarksonsClassify struct {
-	BaseFromClassifyId     int       `orm:"column(base_from_clarksons_classify_id);pk"`
-	ClassifyName   string    `description:"分类名称"`
-	ParentId       int       `description:"父级id"`
-	Level          int       `description:"层级"`
-	Sort           int       `description:"排序字段"`
-	ModifyTime     time.Time `description:"修改时间"`
-	CreateTime     time.Time `description:"创建时间"`
-	ClassifyNameEn string    `description:"英文分类名称"`
+	BaseFromClassifyId int       `orm:"column(base_from_clarksons_classify_id);pk"`
+	ClassifyName       string    `description:"分类名称"`
+	ParentId           int       `description:"父级id"`
+	Level              int       `description:"层级"`
+	Sort               int       `description:"排序字段"`
+	ModifyTime         time.Time `description:"修改时间"`
+	CreateTime         time.Time `description:"创建时间"`
 }
 
 type BaseFromClarksonsClassifyItem struct {
-	BaseFromClassifyId     int                          `orm:"column(base_from_clarksons_classify_id);pk"`
-	ClassifyName   string                       `description:"分类名称"`
-	ParentId       int                          `description:"父级id"`
-	Level          int                          `description:"层级"`
-	Sort           int                          `description:"排序字段"`
-	UniqueCode     string                       `description:"唯一code"`
-	ModifyTime     time.Time                    `description:"修改时间"`
-	CreateTime     time.Time                    `description:"创建时间"`
-	ClassifyNameEn string                       `description:"英文分类名称"`
-	Children       []*BaseFromClarksonsClassifyItem `description:"子分类"`
+	BaseFromClassifyId int                              `orm:"column(base_from_clarksons_classify_id);pk"`
+	ClassifyName       string                           `description:"分类名称"`
+	ParentId           int                              `description:"父级id"`
+	Level              int                              `description:"层级"`
+	Sort               int                              `description:"排序字段"`
+	UniqueCode         string                           `description:"唯一code"`
+	ModifyTime         time.Time                        `description:"修改时间"`
+	CreateTime         time.Time                        `description:"创建时间"`
+	ClassifyNameEn     string                           `description:"英文分类名称"`
+	Children           []*BaseFromClarksonsClassifyItem `description:"子分类"`
 }
 
 type BaseFromClarksonsClassifyMaxSort struct {
 	BaseFromClassifyId int `description:"分类id"`
-	MaxSort    int `description:"最大排序"`
+	MaxSort            int `description:"最大排序"`
 }
 
 func (t *BaseFromClarksonsClassify) Add() (insertId int64, err error) {
@@ -123,14 +122,11 @@ func GetClarksonsClassifyListByIds(classifyIds []int) (items []*BaseFromClarkson
 }
 
 // GetClarksonsClassifyCountByName 通过分类名称获取分类
-func GetClarksonsClassifyCountByName(classifyName string, lang string) (count int, err error) {
+func GetClarksonsClassifyCountByName(classifyName string) (count int, err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(*) AS count FROM base_from_clarksons_classify WHERE 1=1`
-	if lang == utils.EnLangVersion {
-		sql += ` AND classify_name_en=? `
-	} else {
-		sql += ` AND classify_name=? `
-	}
+
+	sql += ` AND classify_name=? `
 	err = o.Raw(sql, classifyName).QueryRow(&count)
 	return
 }

+ 22 - 0
models/data_manage/base_from_clarksons_data.go

@@ -50,3 +50,25 @@ func GetClarksonsIndexDataCount(indexCode string) (count int, err error) {
 	err = o.Raw(sql, indexCode).QueryRow(&count)
 	return
 }
+
+// GetClarksonsLastUpdateTimeLastByIndexCode 根据指标编码查询 返回ModifyTime最后一条数据
+func GetClarksonsLastUpdateTimeLastByIndexCode(indexCodes []string) (items []*BaseFromClarksonsData, err error) {
+	o := orm.NewOrmUsingDB("data")
+
+	// 构造 SQL 查询
+	sql := `SELECT t1.index_code, t1.data_time, t2.value
+			FROM (
+    			SELECT index_code, MAX(data_time) AS data_time
+   				 FROM base_from_clarksons_data
+    			WHERE index_code IN (` + utils.GetOrmInReplace(len(indexCodes)) + `)
+    			GROUP BY index_code
+			) AS t1
+			JOIN base_from_clarksons_data AS t2 ON t1.index_code = t2.index_code AND t1.data_time = t2.data_time`
+
+	// 执行 SQL 查询
+	_, err = o.Raw(sql, indexCodes).QueryRows(&items)
+	if err != nil {
+		return nil, err
+	}
+	return items, nil
+}

+ 23 - 0
models/data_manage/base_from_clarksons_index.go

@@ -372,3 +372,26 @@ func GetClarksonsIndexMinSortByClassifyId(classifyId int) (sort int, err error)
 	err = o.Raw(sql, classifyId).QueryRow(&sort)
 	return
 }
+
+// GetClarksonsIndexInfoCount 分页查询指标信息行数
+func GetClarksonsIndexInfoCount(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT count(1) FROM base_from_clarksons_index WHERE index_code not in (select edb_code from edb_info) `
+	if condition != "" {
+		sql += condition
+	}
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+// GetClarksonsIndexInfoPage 分页查询指标信息
+func GetClarksonsIndexInfoPage(condition string, pars []interface{}) (items []*BaseFromRzdIndexAndData, err error) {
+	o := orm.NewOrmUsingDB("data")
+	sql := ` SELECT * FROM base_from_clarksons_index WHERE index_code not in (select edb_code from edb_info) `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+
+}

+ 7 - 4
models/data_manage/request/clarksons_data.go

@@ -40,10 +40,13 @@ type ClarksonsDataBatchAddCheckReq struct {
 
 // ClarksonsDataBatchListReq 卓创红期指标批量列表
 type ClarksonsDataBatchListReq struct {
-	BaseFromClassifyId int    `description:"分类id"`
-	KeyWord            string `description:"关键字"`
-	SelectedId         []int  `description:"已选指标id, 为true时表示反选"`
-	IsSelectAll        bool   `description:"是否查询全部, 默认false, true:全选, false:查询已选"`
+	ClassifyIds string `description:"分类id"`
+	KeyWord     string `description:"关键字"`
+	Frequencies string `description:"频度"`
+	SelectedId  []int  `description:"已选指标id, 为true时表示反选"`
+	IsSelectAll bool   `description:"是否查询全部, 默认false, true:全选, false:查询已选"`
+	PageSize   int    `description:"每页条数"`
+	CurrentIndex int   `description:"当前页"`
 }
 
 // MoveBaseFromClarksonsClassifyReq 移动分类请求参数

+ 1 - 0
models/db.go

@@ -374,6 +374,7 @@ func initEdbData() {
 		new(data_manage.BaseFromSciHqClassify),
 		new(data_manage.BaseFromSciHqIndex),
 		new(data_manage.BaseFromSciHqData),
+		new(data_manage.BaseFromClarksonsClassify),
 	)
 }
 

+ 2 - 11
routers/commentsRouter.go

@@ -3960,8 +3960,8 @@ func init() {
 
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ClarksonsDataController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ClarksonsDataController"],
         beego.ControllerComments{
-            Method: "BatchIndexList",
-            Router: `/clarksons/index/batch_list`,
+            Method: "GetClarksonsIndexInfo",
+            Router: `/clarksons/get/index/info`,
             AllowHTTPMethods: []string{"post"},
             MethodParams: param.Make(),
             Filters: nil,
@@ -3976,15 +3976,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ClarksonsDataController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ClarksonsDataController"],
-        beego.ControllerComments{
-            Method: "IndexPageList",
-            Router: `/clarksons/index/page/list`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ClarksonsDataController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ClarksonsDataController"],
         beego.ControllerComments{
             Method: "MoveClarksonsData",

+ 1 - 0
routers/router.go

@@ -184,6 +184,7 @@ func init() {
 				&data_manage.BaseFromLyIndexController{},
 				&data_manage.BaseFromUsdaFasController{},
 				&data_manage.BaseFromRzdIndexController{},
+				&data_manage.ClarksonsDataController{},
 			),
 		),
 		web.NSNamespace("/my_chart",

+ 77 - 52
services/data/base_from_clarksons.go

@@ -5,17 +5,13 @@ import (
 	"eta/eta_api/models/data_manage"
 	"eta/eta_api/utils"
 	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
-func AddClarksonsClassify(classifyName, lang string, parentId int) (ok bool, msg string, err error) {
+func AddClarksonsClassify(classifyName string, parentId int) (ok bool, msg string, err error) {
 	var count int
-	switch lang {
-	case utils.EnLangVersion:
-		count, err = data_manage.GetBaseFromClarksonsClassifyEnCount(classifyName, parentId)
-	default:
-		count, err = data_manage.GetBaseFromClarksonsClassifyCount(classifyName, parentId)
-	}
+	count, err = data_manage.GetBaseFromClarksonsClassifyCount(classifyName, parentId)
 	if err != nil {
 		return
 	}
@@ -37,7 +33,6 @@ func AddClarksonsClassify(classifyName, lang string, parentId int) (ok bool, msg
 		}
 		clarksonsClassify := &data_manage.BaseFromClarksonsClassify{
 			ClassifyName:   classifyName,
-			ClassifyNameEn: classifyName,
 			ParentId:       parentId,
 			Level:          2,
 			Sort:           sort + 1,
@@ -51,59 +46,16 @@ func AddClarksonsClassify(classifyName, lang string, parentId int) (ok bool, msg
 	} else {
 		clarksonsClassify := &data_manage.BaseFromClarksonsClassify{
 			ClassifyName:   classifyName,
-			ClassifyNameEn: classifyName,
 			ParentId:       0,
 			Level:          1,
 			Sort:           sort + 1,
 			ModifyTime:     time.Now(),
 			CreateTime:     time.Now(),
 		}
-		insertId, er := clarksonsClassify.Add()
+		_, er := clarksonsClassify.Add()
 		if er != nil {
 			return false, "", er
 		}
-		clarksonsClassifyList := []*data_manage.BaseFromClarksonsClassify{
-			{
-				ClassifyName:   "价格",
-				ClassifyNameEn: "价格",
-				ParentId:       int(insertId),
-				Level:          2,
-				Sort:           1,
-				ModifyTime:     time.Now(),
-				CreateTime:     time.Now(),
-			},
-			{
-				ClassifyName:   "供应",
-				ClassifyNameEn: "供应",
-				ParentId:       int(insertId),
-				Level:          2,
-				Sort:           2,
-				ModifyTime:     time.Now(),
-				CreateTime:     time.Now(),
-			},
-			{
-				ClassifyName:   "需求",
-				ClassifyNameEn: "需求",
-				ParentId:       int(insertId),
-				Level:          2,
-				Sort:           3,
-				ModifyTime:     time.Now(),
-				CreateTime:     time.Now(),
-			},
-			{
-				ClassifyName:   "库存",
-				ClassifyNameEn: "库存",
-				ParentId:       int(insertId),
-				Level:          2,
-				Sort:           4,
-				ModifyTime:     time.Now(),
-				CreateTime:     time.Now(),
-			},
-		}
-		err = data_manage.BatchAddClarksonsClassify(clarksonsClassifyList)
-		if err != nil {
-			return
-		}
 	}
 	return true, "", nil
 }
@@ -581,3 +533,76 @@ func MoveClarksonsData(indexId, classifyId, prevIndexId, nextIndexId int) (err e
 	}
 	return
 }
+
+// GetClarksonsIndexInfo 获取指标信息-分页
+func GetClarksonsIndexInfo(keyWord string, classifyIdList []string, frequencyList []string, currentIndex, startSize, pageSize int) (rzdIndexInfoList *data_manage.BaseFromRzdIndexPage, err error) {
+
+	// 获取指标
+	var condition string
+	var pars []interface{}
+	if keyWord != "" {
+		condition += ` AND (index_name like ? or index_code like ?)`
+		pars = append(pars, "%"+keyWord+"%", "%"+keyWord+"%")
+	}
+	if len(classifyIdList) > 0 {
+		condition += ` AND classify_id IN (`
+		for _, v := range classifyIdList {
+			condition += `?,`
+			pars = append(pars, v)
+		}
+		condition = condition[:len(condition)-1] + `)`
+	}
+	if len(frequencyList) > 0 {
+		condition += ` AND frequency IN (`
+		for _, v := range frequencyList {
+			condition += `?,`
+			pars = append(pars, v)
+		}
+		condition = condition[:len(condition)-1] + `)`
+	}
+
+	count, err := data_manage.GetClarksonsIndexInfoCount(condition, pars)
+	if err != nil {
+		return nil, err
+	}
+	indexPage := data_manage.BaseFromRzdIndexPage{}
+	page := paging.GetPaging(currentIndex, pageSize, count)
+	if count <= 0 {
+		indexPage.Paging = page
+		return &indexPage, nil
+	}
+
+	condition += ` ORDER BY base_from_clarksons_index_id asc`
+
+	// 分页
+	condition += ` LIMIT ?, ?`
+	pars = append(pars, startSize, pageSize)
+
+	indexInfoPage, err := data_manage.GetClarksonsIndexInfoPage(condition, pars)
+	if err != nil {
+		return nil, err
+	}
+	var indexCodes []string
+	for _, indexInfo := range indexInfoPage {
+		indexCodes = append(indexCodes, indexInfo.IndexCode)
+	}
+	IndexDataList, err := data_manage.GetClarksonsLastUpdateTimeLastByIndexCode(indexCodes)
+	if err != nil {
+		return nil, err
+	}
+	var indexDataMap = make(map[string]*data_manage.BaseFromClarksonsData, 0)
+	for _, data := range IndexDataList {
+		indexDataMap[data.IndexCode] = data
+	}
+	for _, indexInfo := range indexInfoPage {
+		if indexDataMap[indexInfo.IndexCode] == nil {
+			continue
+		}
+		indexInfo.ModifyTimeMax = indexDataMap[indexInfo.IndexCode].DataTime
+		indexInfo.Value = indexDataMap[indexInfo.IndexCode].Value
+	}
+
+	indexPage.List = indexInfoPage
+	indexPage.Paging = page
+	return &indexPage, nil
+}