package data_manage import ( "eta/eta_api/models" "eta/eta_api/models/data_manage" "eta/eta_api/utils" "fmt" "github.com/rdlucklib/rdluck_tools/paging" "time" ) // ComTradeCountryList // @Title UN国家列表 // @Description UN国家列表接口 // @Success 200 {object} []data_manage.ComTradeCountryItem // @router /com_trade/country/list [get] func (this *EdbInfoController) ComTradeCountryList() { 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 } list, err := data_manage.GetComTradeCountryItemAll() if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = list } // ComTradeDataList // @Title UN数据列表 // @Description UN数据列表接口 // @Param PageSize query int true "每页页码数" // @Param CurrentIndex query int true "当前页码" // @Param IndexCode query string true "指标code" // @Param Year query string true "年份" // @Param Date query string true "日期" // @Param Flow query string true "贸易流向:X(Export:出口);M(Import:进口)" // @Param ReporterCode query string true "出口国id" // @Param PartnerCode query string true "进口国id" // @Param Partner2Code query string true "第2进口国id" // @Param DateType query int true "日期类型,0:所有,1:年度,2:月度" // @Param SortParam query string false "排序字段参数,用来排序的字段, 枚举值:'data_time':日期" // @Param SortType query string true "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`" // @Success 200 {object} data_manage.ComTradeDataListResp // @router /com_trade/data/list [get] func (this *EdbInfoController) ComTradeDataList() { 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 } pageSize, _ := this.GetInt("PageSize") currentIndex, _ := this.GetInt("CurrentIndex") var startSize int if pageSize <= 0 { pageSize = utils.PageSize20 } if currentIndex <= 0 { currentIndex = 1 } startSize = utils.StartIndex(currentIndex, pageSize) var condition string var pars []interface{} // @Param IndexCode query string true "指标code" indexCode := this.GetString("IndexCode") if indexCode != `` { condition += ` AND index_code = ? ` pars = append(pars, indexCode) } // @Param Flow query string true "贸易流向:X(Export:出口);M(Import:进口)" flow := this.GetString("Flow") if flow != `` { condition += ` AND flow = ? ` pars = append(pars, flow) } // @Param DateType query int true "日期类型,0:所有,1:年度,2:月度" dateType, _ := this.GetInt("DateType", 0) if dateType > 0 { condition += ` AND date_type = ? ` pars = append(pars, dateType) } // @Param Date query string true "日期" date := this.GetString("Date") if date != `` { switch dateType { case 1: condition += ` AND data_time = ? ` pars = append(pars, date+"-12-31") case 2: condition += ` AND data_time = ? ` dateTime, tmpErr := time.ParseInLocation(utils.FormatDate, date+"-01", time.Local) if tmpErr != nil { br.Msg = "日期异常" br.ErrMsg = "日期异常:" + tmpErr.Error() return } pars = append(pars, dateTime.AddDate(0, 1, -1).Format(utils.FormatDate)) } } // @Param ReporterCode query string true "出口国id" reporterCode := this.GetString("ReporterCode") if reporterCode != `` && reporterCode != `-1` { condition += ` AND reporter_code = ? ` pars = append(pars, reporterCode) } // @Param PartnerCode query string true "进口国id" partnerCode := this.GetString("PartnerCode") if partnerCode != `` && partnerCode != `-1` { condition += ` AND partner_code = ? ` pars = append(pars, partnerCode) } // @Param Partner2Code query string true "第2进口国id" partner2Code := this.GetString("Partner2Code") if partner2Code != `` && partner2Code != `-1` { condition += ` AND partner2_code = ? ` pars = append(pars, partner2Code) } sortParam := this.GetString("SortParam") sortType := this.GetString("SortType") sortStr := `` switch sortParam { case "data_time": default: sortParam = " data_time " } switch sortType { case "desc", "asc": default: sortType = "desc" } sortStr = fmt.Sprintf("%s %s,modify_time desc ", sortParam, sortType) total, err := data_manage.GetComTradeListCount(condition, pars) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } list, err := data_manage.GetComTradeList(condition, pars, startSize, pageSize, sortStr) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } var lastUpdateTime time.Time lastUpdateTimeStr := `` // 获取用到的指标信息 comTradeList, err := data_manage.GetAllComTradeIndexList() if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } comTradeMap := make(map[int]*data_manage.ComTradeIndex) for _, v := range comTradeList { comTradeMap[v.ComTradeId] = v if lastUpdateTime.IsZero() || lastUpdateTime.Before(v.UpdateTime) { lastUpdateTime = v.UpdateTime lastUpdateTimeStr = lastUpdateTime.Format(utils.FormatDateTime) } } if len(list) > 0 { // 给指标数据赋值指标名称 for _, v := range list { if comTradeInfo, ok := comTradeMap[v.ComTradeId]; ok { v.IndexNameCn = comTradeInfo.IndexNameCn } v.Date = fmt.Sprint(v.DataTime.Year()) if v.DateType == 2 { v.Date = v.DataTime.Format(utils.FormatYearMonthDate) } } } page := paging.GetPaging(currentIndex, pageSize, total) resp := data_manage.ComTradeDataListResp{ Paging: page, List: list, LastUpdateTime: lastUpdateTimeStr, } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // ComTradeList // @Title UN指标列表 // @Description UN指标列表接口 // @Param Keyword query string true "关键字搜索" // @Success 200 {object} []data_manage.ComTradeIndex // @router /com_trade/list [get] func (this *EdbInfoController) ComTradeList() { 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 } var condition string var pars []interface{} // @Param IndexCode query string true "指标code" keyword := this.GetString("Keyword") if keyword != `` { condition += ` AND ( index_name_cn like ? or index_code like ? ) ` pars = utils.GetLikeKeywordPars(pars, keyword, 2) } list, err := data_manage.GetComTradeIndexList(condition, pars) if err != nil && err.Error() != utils.ErrNoRow() { br.Msg = "获取失败" br.ErrMsg = "获取数据失败,Err:" + err.Error() return } if len(list) <= 0 { list = make([]*data_manage.ComTradeIndex, 0) } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = list }