|
@@ -5362,3 +5362,541 @@ func (this *EdbInfoController) EdbInfoBatchAdd() {
|
|
|
br.Data = resp
|
|
|
br.IsAddLog = true
|
|
|
}
|
|
|
+
|
|
|
+// SmmExistCheck
|
|
|
+// @Title 新增指标-检验指标是否存在接口-smm
|
|
|
+// @Description 新增指标-检验指标是否存在接口-smm
|
|
|
+// @Param SubSource query int true "子数据来源:0:经济数据库,1:日期序列"
|
|
|
+// @Param EdbCode query string false "指标编码/指标代码"
|
|
|
+// @Param StockCode query string false "证券代码"
|
|
|
+// @Success 200 {object} data_manage.EdbInfoExistCheckResp
|
|
|
+// @router /edb_info/smm/exist/check [get]
|
|
|
+func (this *EdbInfoController) SmmExistCheck() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ selectAll, err := this.GetBool("SelectAll", false)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析失败"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ types := this.GetString("Types")
|
|
|
+ frequency := this.GetString("Frequency")
|
|
|
+ dataState := this.GetString("DataState")
|
|
|
+ edbCode := this.GetString("EdbCode")
|
|
|
+ edbCode = strings.Trim(edbCode, "\t")
|
|
|
+ edbCode = strings.Trim(edbCode, " ")
|
|
|
+ edbCode = strings.Replace(edbCode, "\t", "", -1)
|
|
|
+
|
|
|
+ selectCode := this.GetString("SelectCode")
|
|
|
+ selectCode = strings.Trim(selectCode, "\t")
|
|
|
+ selectCode = strings.Trim(selectCode, " ")
|
|
|
+ selectCode = strings.Replace(selectCode, "\t", "", -1)
|
|
|
+
|
|
|
+ var edbCodeArr []string
|
|
|
+ var codeArr []string
|
|
|
+
|
|
|
+ if selectAll {
|
|
|
+ // 如果勾了列表全选,那么EdbCode传的就是排除的code
|
|
|
+ if selectCode == "" {
|
|
|
+ // 无勾选code,走查询
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ if types != "" {
|
|
|
+ typeArr := strings.Split(types, ",")
|
|
|
+ for i, v := range typeArr {
|
|
|
+ typeStr := "type_"
|
|
|
+ typeStr += fmt.Sprintf("%d", i+1)
|
|
|
+ condition += " AND " + typeStr + " =? "
|
|
|
+ pars = append(pars, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if dataState != "" {
|
|
|
+ if dataState == "normal" {
|
|
|
+ condition += " AND (data_state = 'normal' OR data_state = '') "
|
|
|
+ pars = append(pars)
|
|
|
+ } else {
|
|
|
+ condition += " AND data_state = ? "
|
|
|
+ pars = append(pars, dataState)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if frequency != "" {
|
|
|
+ condition += " AND frequency = ? "
|
|
|
+ pars = append(pars, frequency)
|
|
|
+ }
|
|
|
+
|
|
|
+ indexList, err := data_manage.GetSmmIndexDataListNoPage(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标列表失败"
|
|
|
+ br.ErrMsg = "获取指标列表失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range indexList {
|
|
|
+ codeArr = append(codeArr, v.IndexCode)
|
|
|
+ }
|
|
|
+
|
|
|
+ noUseCodeArr := strings.Split(edbCode, ",")
|
|
|
+
|
|
|
+ for _, code := range codeArr {
|
|
|
+ // 检查code是否在noUseCodeArr数组中
|
|
|
+ if !utils.ArrContainsStr(noUseCodeArr, code) {
|
|
|
+ // 如果不在,将其添加到结果数组中
|
|
|
+ edbCodeArr = append(edbCodeArr, code)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 有勾选,不查询
|
|
|
+ codeArr = strings.Split(selectCode, ",")
|
|
|
+
|
|
|
+ noUseCodeArr := strings.Split(edbCode, ",")
|
|
|
+
|
|
|
+ for _, code := range codeArr {
|
|
|
+ // 检查code是否在noUseCodeArr数组中
|
|
|
+ if !utils.ArrContainsStr(noUseCodeArr, code) {
|
|
|
+ // 如果不在,将其添加到结果数组中
|
|
|
+ edbCodeArr = append(edbCodeArr, code)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //未勾选全选EdbCode就是需要的code
|
|
|
+ edbCodeArr = strings.Split(edbCode, ",")
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbCodeArr) > 30 {
|
|
|
+ br.Msg = "最多只能选择30个指标"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbCodeArr) <= 0 {
|
|
|
+ br.Msg = "无符合指标或指标代码错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ indexList, err := data_manage.GetEdbInfoByEdbCodeList(utils.DATA_SOURCE_YS, edbCodeArr)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "校验指标是否存在失败"
|
|
|
+ br.ErrMsg = "校验指标是否存在失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var existEdbCodeArr []string
|
|
|
+ var existClassifyId []int
|
|
|
+ var existIndexId []int
|
|
|
+
|
|
|
+ for _, indexItem := range indexList {
|
|
|
+ for _, ev := range edbCodeArr {
|
|
|
+ if strings.Contains(indexItem.EdbCode, ev) {
|
|
|
+ existEdbCodeArr = append(existEdbCodeArr, ev)
|
|
|
+ existClassifyId = append(existClassifyId, indexItem.ClassifyId)
|
|
|
+ existIndexId = append(existIndexId, indexItem.EdbInfoId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := new(data_manage.EdbInfoSmmExistCheckResp)
|
|
|
+ if len(indexList) > 0 {
|
|
|
+ resp.IndexExist = true
|
|
|
+ }
|
|
|
+ if len(existEdbCodeArr) == len(edbCodeArr) {
|
|
|
+ resp.ExistAll = true
|
|
|
+ }
|
|
|
+ resp.ExistEdbCodeArr = existEdbCodeArr
|
|
|
+ resp.ExistClassifyId = existClassifyId
|
|
|
+ resp.ExistIndexId = existIndexId
|
|
|
+ resp.ExistEdbInfo = indexList
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// EdbInfoSearch
|
|
|
+// @Title 新增指标-查询指标信息接口-smm
|
|
|
+// @Description 新增指标-查询指标信息接口-smm
|
|
|
+// @Param Source query int true "来源:1:同花顺,2:wind,3:彭博"
|
|
|
+// @Param SubSource query int true "子数据来源:0:经济数据库,1:日期序列"
|
|
|
+// @Param EdbCode query string false "指标编码/指标代码"
|
|
|
+// @Param StockCode query string false "证券代码"
|
|
|
+// @Success 200 {object} data_manage.EdbInfoSearchResp
|
|
|
+// @router /edb_info/smm/search [get]
|
|
|
+func (this *EdbInfoController) EdbInfoSmmSearch() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ selectAll, err := this.GetBool("SelectAll", false)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析失败"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ types := this.GetString("Types")
|
|
|
+ frequency := this.GetString("Frequency")
|
|
|
+ dataState := this.GetString("DataState")
|
|
|
+ edbCode := this.GetString("EdbCode")
|
|
|
+ edbCode = strings.Trim(edbCode, "\t")
|
|
|
+ edbCode = strings.Trim(edbCode, " ")
|
|
|
+ edbCode = strings.Replace(edbCode, "\t", "", -1)
|
|
|
+
|
|
|
+ selectCode := this.GetString("SelectCode")
|
|
|
+ selectCode = strings.Trim(selectCode, "\t")
|
|
|
+ selectCode = strings.Trim(selectCode, " ")
|
|
|
+ selectCode = strings.Replace(selectCode, "\t", "", -1)
|
|
|
+
|
|
|
+ var edbCodeArr []string
|
|
|
+ var codeArr []string
|
|
|
+
|
|
|
+ if selectAll {
|
|
|
+ // 如果勾了列表全选,那么EdbCode传的就是排除的code
|
|
|
+ if selectCode == "" {
|
|
|
+ // 无勾选code,走查询
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+
|
|
|
+ if types != "" {
|
|
|
+ typeArr := strings.Split(types, ",")
|
|
|
+ for i, v := range typeArr {
|
|
|
+ typeStr := "type_"
|
|
|
+ typeStr += fmt.Sprintf("%d", i+1)
|
|
|
+ condition += " AND " + typeStr + " =? "
|
|
|
+ pars = append(pars, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if dataState != "" {
|
|
|
+ if dataState == "normal" {
|
|
|
+ condition += " AND (data_state = 'normal' OR data_state = '') "
|
|
|
+ pars = append(pars)
|
|
|
+ } else {
|
|
|
+ condition += " AND data_state = ? "
|
|
|
+ pars = append(pars, dataState)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if frequency != "" {
|
|
|
+ condition += " AND frequency = ? "
|
|
|
+ pars = append(pars, frequency)
|
|
|
+ }
|
|
|
+
|
|
|
+ indexList, err := data_manage.GetSmmIndexDataListNoPage(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标列表失败"
|
|
|
+ br.ErrMsg = "获取指标列表失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range indexList {
|
|
|
+ codeArr = append(codeArr, v.IndexCode)
|
|
|
+ }
|
|
|
+
|
|
|
+ noUseCodeArr := strings.Split(edbCode, ",")
|
|
|
+
|
|
|
+ for _, code := range codeArr {
|
|
|
+ // 检查code是否在noUseCodeArr数组中
|
|
|
+ if !utils.ArrContainsStr(noUseCodeArr, code) {
|
|
|
+ // 如果不在,将其添加到结果数组中
|
|
|
+ edbCodeArr = append(edbCodeArr, code)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 有勾选,不查询
|
|
|
+ codeArr = strings.Split(selectCode, ",")
|
|
|
+
|
|
|
+ noUseCodeArr := strings.Split(edbCode, ",")
|
|
|
+
|
|
|
+ for _, code := range codeArr {
|
|
|
+ // 检查code是否在noUseCodeArr数组中
|
|
|
+ if !utils.ArrContainsStr(noUseCodeArr, code) {
|
|
|
+ // 如果不在,将其添加到结果数组中
|
|
|
+ edbCodeArr = append(edbCodeArr, code)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //未勾选全选EdbCode就是需要的code
|
|
|
+ edbCodeArr = strings.Split(edbCode, ",")
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbCodeArr) > 30 {
|
|
|
+ br.Msg = "最多只能选择30个指标"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbCodeArr) <= 0 {
|
|
|
+ br.Msg = "无符合指标或指标代码错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbCodeStr := ""
|
|
|
+ for i, _ := range edbCodeArr {
|
|
|
+ edbCodeStr += "'" + edbCodeArr[i] + "'" + ","
|
|
|
+ }
|
|
|
+ edbCodeStr = strings.Trim(edbCodeStr, ",")
|
|
|
+ smmInfoList, err := data_manage.GetBaseFromSmmIndexByIndexCodes(edbCodeStr)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取有色指标详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ smmInfoMap := make(map[string]*data_manage.BaseFromSmmIndex)
|
|
|
+ for _, v := range smmInfoList {
|
|
|
+ smmInfoMap[v.IndexCode] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ searchItemList := make([]*data_manage.EdbInfoSearch, 0)
|
|
|
+
|
|
|
+ resp := new(data_manage.EdbInfoSearchResp)
|
|
|
+ needAddCodeArr := make([]string, 0)
|
|
|
+ noNeedAddCodeMap := make(map[string]string, 0)
|
|
|
+
|
|
|
+ for _, edbCode := range edbCodeArr {
|
|
|
+ dataItems, err := data_manage.GetEdbDataAllByEdbCode(edbCode, utils.DATA_SOURCE_YS, utils.DATA_SUB_SOURCE_EDB, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取Ys已存在信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ fmt.Println("dataItems:", len(dataItems))
|
|
|
+ if len(dataItems) > 0 {
|
|
|
+ searchItem := new(data_manage.EdbInfoSearch)
|
|
|
+ searchItem.EdbCode = edbCode
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataYsMaxAndMinDate(edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取YS日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataItems
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ searchItem.Frequency = smmInfoMap[edbCode].Frequency
|
|
|
+ searchItem.Unit = smmInfoMap[edbCode].Unit
|
|
|
+ searchItem.EdbName = smmInfoMap[edbCode].IndexName
|
|
|
+ searchItem.EdbCode = smmInfoMap[edbCode].IndexCode
|
|
|
+
|
|
|
+ searchItemList = append(searchItemList, searchItem)
|
|
|
+
|
|
|
+ noNeedAddCodeMap[edbCode] = edbCode
|
|
|
+ } else {
|
|
|
+ // 把需要新加的code添加到needAddCodeArr数组中,一起批量请求
|
|
|
+ needAddCodeArr = append(needAddCodeArr, edbCode)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(needAddCodeArr) > 0 {
|
|
|
+ edbCode = strings.Join(needAddCodeArr, ",")
|
|
|
+ respItem, err := data.AddEdbData(utils.DATA_SOURCE_YS, edbCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if respItem.Ret != 200 {
|
|
|
+ if respItem.Ret == 421 {
|
|
|
+ br.Msg = "该渠道已超过添加上限"
|
|
|
+ } else if respItem.Ret == 4052 {
|
|
|
+ br.Msg = "该指标已下架"
|
|
|
+ } else {
|
|
|
+ br.Msg = "未搜索到该指标"
|
|
|
+ }
|
|
|
+ br.ErrMsg = respItem.ErrMsg + ";EdbCode:" + edbCode
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, smmInfo := range smmInfoList {
|
|
|
+ if smmInfo != nil {
|
|
|
+ if _, ok := noNeedAddCodeMap[smmInfo.IndexCode]; !ok {
|
|
|
+ searchItem := new(data_manage.EdbInfoSearch)
|
|
|
+ minDate, maxDate, err := data_manage.GetEdbDataYsMaxAndMinDate(smmInfo.IndexCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取YS日期信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.StartDate = minDate
|
|
|
+ searchItem.EndDate = maxDate
|
|
|
+ searchItem.Frequency = smmInfo.Frequency
|
|
|
+ searchItem.Unit = smmInfo.Unit
|
|
|
+ searchItem.EdbName = smmInfo.IndexName
|
|
|
+ searchItem.EdbCode = smmInfo.IndexCode
|
|
|
+ dataList, err := data_manage.GetEdbDataAllByEdbCode(smmInfo.IndexCode, utils.DATA_SOURCE_YS, utils.DATA_SUB_SOURCE_EDB, utils.EDB_DATA_LIMIT)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取数据失败,GetEdbDataAllByEdbCode Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ searchItem.DataList = dataList
|
|
|
+
|
|
|
+ searchItemList = append(searchItemList, searchItem)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ resp.Status = 2
|
|
|
+ resp.StockSearchList = searchItemList
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = resp
|
|
|
+}
|
|
|
+
|
|
|
+// SmmEdbInfoBatchAdd
|
|
|
+// @Title 指标批量保存接口-smm
|
|
|
+// @Description 指标批量保存接口-smm
|
|
|
+// @Param request body data_manage.BatchAddEdbInfoReq true "type json string"
|
|
|
+// @Success Ret=200 保存成功
|
|
|
+// @router /edb_info/smm/batch/add [post]
|
|
|
+func (this *EdbInfoController) SmmEdbInfoBatchAdd() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ sysUser := this.SysUser
|
|
|
+ if sysUser == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ deleteCache := true
|
|
|
+ cacheKey := "CACHE_EDB_INFO_BATCH_ADD_" + strconv.Itoa(sysUser.AdminId)
|
|
|
+ defer func() {
|
|
|
+ if deleteCache {
|
|
|
+ utils.Rc.Delete(cacheKey)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+ if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
|
|
|
+ deleteCache = false
|
|
|
+ br.Msg = "系统处理中,请稍后重试!"
|
|
|
+ br.ErrMsg = "系统处理中,请稍后重试!" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req data_manage.BatchAddEdbInfoReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ resp := new(data_manage.AddEdbInfoResp)
|
|
|
+
|
|
|
+ var edbNames string
|
|
|
+ for _, v := range req.BatchList {
|
|
|
+ edbNames += "'" + v.EdbName + "',"
|
|
|
+ }
|
|
|
+ edbNames = strings.Trim(edbNames, ",")
|
|
|
+ infoList, err := data_manage.GetEdbInfoByNames(edbNames)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "查询指标名称重复错误!"
|
|
|
+ br.ErrMsg = "GetEdbInfoByNames,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(infoList) > 0 {
|
|
|
+ for _, v := range infoList {
|
|
|
+ resp.ExistEdbName = append(resp.ExistEdbName, v.EdbName)
|
|
|
+ }
|
|
|
+ br.Data = resp
|
|
|
+ br.Msg = "指标名称重复!"
|
|
|
+ br.ErrMsg = "指标名称重复"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for k, v := range req.BatchList {
|
|
|
+ v.EdbName = strings.Trim(v.EdbName, " ")
|
|
|
+ v.EdbCode = strings.Trim(v.EdbCode, " ")
|
|
|
+
|
|
|
+ if v.Source <= 0 {
|
|
|
+ br.Msg = "无效的数据来源"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.EdbCode == "" {
|
|
|
+ br.Msg = "指标ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.EdbName == "" {
|
|
|
+ br.Msg = "指标名称不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.Frequency == "" {
|
|
|
+ br.Msg = "频率不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.ClassifyId <= 0 {
|
|
|
+ br.Msg = "请选择分类"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfoItem := new(data_manage.EdbInfo)
|
|
|
+ edbInfoItem.Source = v.Source
|
|
|
+ edbInfoItem.SourceName = "SMM"
|
|
|
+ edbInfoItem.EdbCode = v.EdbCode
|
|
|
+ edbInfoItem.SubSource = 0
|
|
|
+ edbInfoItem.SubSourceName = ""
|
|
|
+ edbInfoItem.EdbName = v.EdbName
|
|
|
+ edbInfoItem.Frequency = v.Frequency
|
|
|
+ edbInfoItem.Unit = v.Unit
|
|
|
+ edbInfoItem.ClassifyId = v.ClassifyId
|
|
|
+ edbInfoItem.SysUserId = sysUser.AdminId
|
|
|
+ edbInfoItem.SysUserRealName = sysUser.RealName
|
|
|
+ edbInfoItem.IndicatorCode = ""
|
|
|
+ edbInfoItem.StockCode = ""
|
|
|
+
|
|
|
+ // 指标入库
|
|
|
+ edbInfo, err, errMsg, isSendEmail := data.EdbInfoWsdAdd(edbInfoItem)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if errMsg != `` {
|
|
|
+ br.Msg = errMsg
|
|
|
+ }
|
|
|
+ br.ErrMsg = err.Error()
|
|
|
+ br.IsSendEmail = isSendEmail
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //新增操作日志
|
|
|
+ {
|
|
|
+ edbLog := new(data_manage.EdbInfoLog)
|
|
|
+ edbLog.EdbInfoId = edbInfo.EdbInfoId
|
|
|
+ edbLog.SourceName = edbInfo.SourceName
|
|
|
+ edbLog.Source = edbInfo.Source
|
|
|
+ edbLog.EdbCode = edbInfo.EdbCode
|
|
|
+ edbLog.EdbName = edbInfo.EdbName
|
|
|
+ edbLog.ClassifyId = edbInfo.ClassifyId
|
|
|
+ edbLog.SysUserId = sysUser.AdminId
|
|
|
+ edbLog.SysUserRealName = sysUser.RealName
|
|
|
+ edbLog.CreateTime = time.Now()
|
|
|
+ edbLog.Content = string(this.Ctx.Input.RequestBody)
|
|
|
+ edbLog.Status = "新增指标"
|
|
|
+ edbLog.Method = this.Ctx.Input.URI()
|
|
|
+ go data_manage.AddEdbInfoLog(edbLog)
|
|
|
+ }
|
|
|
+
|
|
|
+ if k <= 0 {
|
|
|
+ resp.EdbInfoId = edbInfo.EdbInfoId
|
|
|
+ resp.UniqueCode = edbInfo.UniqueCode
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "保存成功"
|
|
|
+ br.Data = resp
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|