|
@@ -0,0 +1,638 @@
|
|
|
+package data
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+ "errors"
|
|
|
+ "eta/eta_api/models/data_manage"
|
|
|
+ "eta/eta_api/models/data_manage/edb_refresh"
|
|
|
+ "eta/eta_api/models/data_manage/edb_refresh/request"
|
|
|
+ "eta/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
+ "strings"
|
|
|
+ "time"
|
|
|
+)
|
|
|
+
|
|
|
+// 所有刷新配置key
|
|
|
+var allDefaultEdbRefreshConfigKey = `edb_refresh_config:default:all:`
|
|
|
+
|
|
|
+// GetAllDefaultEdbRefreshConfigListBySourceList
|
|
|
+// @Description: 获取默认的所有刷新配置列表
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-10 15:03:36
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @return list []*edb_refresh.EdbRefreshDefaultConfig
|
|
|
+// @return err error
|
|
|
+func GetAllDefaultEdbRefreshConfigListBySourceList(source, subSource int) (list []*edb_refresh.EdbRefreshDefaultConfig, err error) {
|
|
|
+ key := getAllDefaultEdbRefreshConfigKey(source, subSource)
|
|
|
+ if utils.Re == nil {
|
|
|
+ if utils.Re == nil && utils.Rc.IsExist(key) {
|
|
|
+ if data, err1 := utils.Rc.RedisBytes(key); err1 == nil {
|
|
|
+ err = json.Unmarshal(data, &list)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ list, err = edb_refresh.GetAllListBySourceList(source, subSource)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 将数据加入缓存
|
|
|
+ if utils.Re == nil {
|
|
|
+ data, _ := json.Marshal(list)
|
|
|
+ utils.Rc.Put(key, data, 2*time.Hour)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// SaveEdbRefreshDefaultConfig
|
|
|
+// @Description: 设置默认的指标刷新配置接口
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-10 15:11:19
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param frequency string
|
|
|
+// @param list []request.RefreshConfigReq
|
|
|
+// @return err error
|
|
|
+// @return errMsg string
|
|
|
+// @return isSendEmail bool
|
|
|
+func SaveEdbRefreshDefaultConfig(source, subSource int, frequency string, list []request.RefreshConfigReq) (err error, errMsg string, isSendEmail bool) {
|
|
|
+ isSendEmail = true
|
|
|
+ errMsg = `保存失败`
|
|
|
+
|
|
|
+ if source <= 0 {
|
|
|
+ errMsg = "来源不能为空"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 非有色的来源,频度不能为空
|
|
|
+ if source != utils.DATA_SOURCE_YS && frequency == `` {
|
|
|
+ errMsg = "频度不能为空"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ lenConf := len(list)
|
|
|
+ if lenConf == 0 {
|
|
|
+ errMsg = "至少需要一个刷新配置"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if lenConf > 5 {
|
|
|
+ errMsg = "刷新时间设置最多不超过5个"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ tmpArr := []string{"每周", "每旬", "每月", "每季", "每半年", "每年"}
|
|
|
+ // 配置的map,避免同一种类型配置同一个时间
|
|
|
+ configMap := make(map[string]string)
|
|
|
+ for _, v := range list {
|
|
|
+ if utils.InArrayByStr(tmpArr, v.RefreshFrequency) && v.RefreshFrequencyDay < 0 {
|
|
|
+ errMsg = "请选择具体日期"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.RefreshTime == "" {
|
|
|
+ errMsg = "请选择具体时间"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 配置的map,避免同一种类型配置同一个时间
|
|
|
+ key := fmt.Sprint(v.RefreshFrequency, "_", v.RefreshFrequencyDay, "_", v.RefreshTime)
|
|
|
+ if _, ok := configMap[key]; ok {
|
|
|
+ errMsg = "刷新频率和日期不能重复"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ configMap[key] = key
|
|
|
+ }
|
|
|
+
|
|
|
+ addList := make([]*edb_refresh.EdbRefreshDefaultConfig, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ addList = append(addList, &edb_refresh.EdbRefreshDefaultConfig{
|
|
|
+ Source: source,
|
|
|
+ SubSource: subSource,
|
|
|
+ Frequency: frequency,
|
|
|
+ RefreshFrequency: v.RefreshFrequency,
|
|
|
+ RefreshFrequencyDay: v.RefreshFrequencyDay,
|
|
|
+ RefreshAllData: v.RefreshAllData,
|
|
|
+ RefreshTime: v.RefreshTime,
|
|
|
+ RefreshDataNum: v.RefreshDataNum,
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存
|
|
|
+ err = edb_refresh.SaveEdbRefreshDefaultConfig(source, subSource, frequency, addList)
|
|
|
+
|
|
|
+ // 清除缓存
|
|
|
+ {
|
|
|
+ key := getAllDefaultEdbRefreshConfigKey(source, subSource)
|
|
|
+ if utils.Re == nil {
|
|
|
+ _ = utils.Rc.Delete(key)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// SaveEdbRefreshConfig
|
|
|
+// @Description: 设置指标刷新配置接口
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-10 15:41:45
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param classifyId string
|
|
|
+// @param terminalCode string
|
|
|
+// @param frequency string
|
|
|
+// @param keyword string
|
|
|
+// @param status string
|
|
|
+// @param sysUserIdStr string
|
|
|
+// @param isSelectAll bool
|
|
|
+// @param list []request.RefreshConfigReq
|
|
|
+// @param edbSelectIdList []int
|
|
|
+// @param sysUserId int
|
|
|
+// @param sysUserRealName string
|
|
|
+// @return err error
|
|
|
+// @return errMsg string
|
|
|
+// @return isSendEmail bool
|
|
|
+func SaveEdbRefreshConfig(source, subSource int, classifyId, terminalCode, frequency, keyword, status, sysUserIdStr string, isSelectAll bool, list []request.RefreshConfigReq, edbSelectIdList []int, sysUserId int, sysUserRealName string) (err error, errMsg string, isSendEmail bool) {
|
|
|
+ isSendEmail = true
|
|
|
+ errMsg = `保存失败`
|
|
|
+
|
|
|
+ if source <= 0 {
|
|
|
+ errMsg = "来源不能为空"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ lenConf := len(list)
|
|
|
+ if lenConf == 0 {
|
|
|
+ errMsg = "至少需要一个刷新配置"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if lenConf > 5 {
|
|
|
+ errMsg = "刷新时间设置最多不超过5个"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ tmpArr := []string{"每周", "每旬", "每月", "每季", "每半年", "每年"}
|
|
|
+
|
|
|
+ // 配置的map,避免同一种类型配置同一个时间
|
|
|
+ configMap := make(map[string]string)
|
|
|
+ for _, v := range list {
|
|
|
+ if utils.InArrayByStr(tmpArr, v.RefreshFrequency) && v.RefreshFrequencyDay < 0 {
|
|
|
+ errMsg = "请选择具体日期"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if v.RefreshTime == "" {
|
|
|
+ errMsg = "请选择具体时间"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 配置的map,避免同一种类型配置同一个时间
|
|
|
+ key := fmt.Sprint(v.RefreshFrequency, "_", v.RefreshFrequencyDay, "_", v.RefreshTime)
|
|
|
+ if _, ok := configMap[key]; ok {
|
|
|
+ errMsg = "刷新频率和日期不能重复"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ configMap[key] = key
|
|
|
+ }
|
|
|
+
|
|
|
+ edbIdList := make([]int, 0)
|
|
|
+ // 指标id列表
|
|
|
+ if isSelectAll {
|
|
|
+ // 如果是列表全选
|
|
|
+ _, edbList, tmpErr := GetList(source, subSource, classifyId, terminalCode, sysUserIdStr, frequency, keyword, status, 0, 100000, "", "")
|
|
|
+ if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 不配置的指标id
|
|
|
+ notIdMap := make(map[int]int, 0)
|
|
|
+ for _, v := range edbSelectIdList {
|
|
|
+ notIdMap[v] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range edbList {
|
|
|
+ _, ok := notIdMap[v.EdbInfoId]
|
|
|
+ // 在不配置的指标id列表内的话,那就过滤
|
|
|
+ if ok {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ // 加入到待配置的指标列表id
|
|
|
+ edbIdList = append(edbIdList, v.EdbInfoId)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ edbIdList = edbSelectIdList
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(edbIdList) <= 0 {
|
|
|
+ errMsg = "指标不能为空"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ isSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 待添加的配置关系数据
|
|
|
+ addMappingList := make([]*edb_refresh.EdbRefreshMapping, 0)
|
|
|
+
|
|
|
+ // 待添加的日期配置项
|
|
|
+ addConfigList := make([]*edb_refresh.EdbRefreshConfig, 0)
|
|
|
+ for _, v := range list {
|
|
|
+ item, tmpErr := edb_refresh.GetEdbRefreshConfigListByCondition(v.RefreshFrequency, v.RefreshTime, v.RefreshFrequencyDay, v.RefreshAllData, v.RefreshDataNum)
|
|
|
+ if tmpErr != nil {
|
|
|
+ if tmpErr.Error() != utils.ErrNoRow() {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ addConfigList = append(addConfigList, &edb_refresh.EdbRefreshConfig{
|
|
|
+ RefreshFrequency: v.RefreshFrequency,
|
|
|
+ RefreshFrequencyDay: v.RefreshFrequencyDay,
|
|
|
+ RefreshTime: v.RefreshTime,
|
|
|
+ RefreshAllData: v.RefreshAllData,
|
|
|
+ RefreshDataNum: v.RefreshDataNum,
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ })
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, edbId := range edbIdList {
|
|
|
+ addMappingList = append(addMappingList, &edb_refresh.EdbRefreshMapping{
|
|
|
+ EdbRefreshMappingId: 0,
|
|
|
+ Source: source,
|
|
|
+ SubSource: subSource,
|
|
|
+ EdbInfoId: edbId,
|
|
|
+ EdbRefreshConfigId: item.EdbRefreshConfigId,
|
|
|
+ SysUserId: sysUserId,
|
|
|
+ SysUserRealName: sysUserRealName,
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存
|
|
|
+ err = edb_refresh.SaveEdbRefreshConfig(source, subSource, sysUserId, sysUserRealName, addConfigList, addMappingList, edbIdList)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// HandleRefreshTime
|
|
|
+// @Description: 处理刷新时间的显示
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-10 17:00:03
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param list []*data_manage.BaseRefreshEdbInfo
|
|
|
+// @return newList []*data_manage.BaseRefreshEdbInfo
|
|
|
+// @return err error
|
|
|
+// @return errMsg string
|
|
|
+// @return isSendEmail bool
|
|
|
+func HandleRefreshTime(source, subSource int, list []*data_manage.BaseRefreshEdbInfo) (newList []*data_manage.BaseRefreshEdbInfo, err error, errMsg string, isSendEmail bool) {
|
|
|
+ isSendEmail = true
|
|
|
+ errMsg = "获取失败"
|
|
|
+ newList = list
|
|
|
+
|
|
|
+ // 默认刷新配置
|
|
|
+ defaultEdbRefreshConfigMap := make(map[string]string)
|
|
|
+ {
|
|
|
+ // 获取默认配置
|
|
|
+ allDefaultEdbRefreshConfigList, tmpErr := GetAllDefaultEdbRefreshConfigListBySourceList(source, subSource)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ defaultEdbRefreshConfigListMap := make(map[string][]string)
|
|
|
+ for _, v := range allDefaultEdbRefreshConfigList {
|
|
|
+ tmp, ok := defaultEdbRefreshConfigListMap[v.Frequency]
|
|
|
+ if !ok {
|
|
|
+ tmp = make([]string, 0)
|
|
|
+ }
|
|
|
+ defaultEdbRefreshConfigListMap[v.Frequency] = append(tmp, GetRefreshStr(v.RefreshFrequency, v.RefreshFrequencyDay, v.RefreshTime))
|
|
|
+ }
|
|
|
+ for k, v := range defaultEdbRefreshConfigListMap {
|
|
|
+ defaultEdbRefreshConfigMap[k] = strings.Join(v, ",")
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfoIdList := make([]int, 0)
|
|
|
+ for _, v := range newList {
|
|
|
+ edbInfoIdList = append(edbInfoIdList, v.EdbInfoId)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指标的刷新时间配置
|
|
|
+ edbRefreshConfigMap := make(map[int]string)
|
|
|
+ {
|
|
|
+ // 获取指标的单独配置
|
|
|
+ configList, tmpErr := edb_refresh.GetEdbRefreshConfigAndEdbListBySourceAndeEdbInfoId(source, subSource, edbInfoIdList)
|
|
|
+ if tmpErr != nil {
|
|
|
+ err = tmpErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbRefreshConfigListMap := make(map[int][]string)
|
|
|
+ for _, v := range configList {
|
|
|
+ tmp, ok := edbRefreshConfigListMap[v.EdbInfoId]
|
|
|
+ if !ok {
|
|
|
+ tmp = make([]string, 0)
|
|
|
+ }
|
|
|
+ edbRefreshConfigListMap[v.EdbInfoId] = append(tmp, GetRefreshStr(v.RefreshFrequency, v.RefreshFrequencyDay, v.RefreshTime))
|
|
|
+ }
|
|
|
+ for k, v := range edbRefreshConfigListMap {
|
|
|
+ edbRefreshConfigMap[k] = strings.Join(v, ",")
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理刷新时间
|
|
|
+ for _, v := range newList {
|
|
|
+ refreshTime, ok := edbRefreshConfigMap[v.EdbInfoId]
|
|
|
+ if ok {
|
|
|
+ v.RefreshTime = refreshTime
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if source == utils.DATA_SOURCE_YS {
|
|
|
+ v.RefreshTime = defaultEdbRefreshConfigMap[``]
|
|
|
+ } else {
|
|
|
+ v.RefreshTime = defaultEdbRefreshConfigMap[v.Frequency]
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// GetList
|
|
|
+// @Description: 获取指标列表
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-08 15:14:16
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @param classifyId string
|
|
|
+// @param terminalCode string
|
|
|
+// @param sysUserId string
|
|
|
+// @param frequency string
|
|
|
+// @param keyword string
|
|
|
+// @param startSize int
|
|
|
+// @param pageSize int
|
|
|
+// @return total int
|
|
|
+// @return list []*data_manage.BaseRefreshEdbInfo
|
|
|
+// @return err error
|
|
|
+func GetList(source, subSource int, classifyId, terminalCode, sysUserId, frequency, keyword, status string, startSize, pageSize int, sortParam, sortType string) (total int, list []*data_manage.BaseRefreshEdbInfo, err error) {
|
|
|
+ var pars []interface{}
|
|
|
+ var condition string
|
|
|
+
|
|
|
+ list = make([]*data_manage.BaseRefreshEdbInfo, 0)
|
|
|
+
|
|
|
+ isStop := -1
|
|
|
+ if status == `暂停` {
|
|
|
+ isStop = 1
|
|
|
+ } else if status == "启用" {
|
|
|
+ isStop = 0
|
|
|
+ }
|
|
|
+
|
|
|
+ switch source {
|
|
|
+ case utils.DATA_SOURCE_MYSTEEL_CHEMICAL: // 钢联
|
|
|
+ if classifyId != `` {
|
|
|
+ classifyIdSlice := strings.Split(classifyId, ",")
|
|
|
+ condition += ` AND base_from_mysteel_chemical_classify_id IN (` + utils.GetOrmInReplace(len(classifyIdSlice)) + `)`
|
|
|
+ pars = append(pars, classifyIdSlice)
|
|
|
+ }
|
|
|
+ if terminalCode != `` {
|
|
|
+ condition += " AND terminal_code = ? "
|
|
|
+ pars = append(pars, terminalCode)
|
|
|
+ }
|
|
|
+ if sysUserId != `` {
|
|
|
+ sysUserIdSlice := strings.Split(sysUserId, ",")
|
|
|
+ condition += ` AND sys_user_id IN (` + utils.GetOrmInReplace(len(sysUserIdSlice)) + `)`
|
|
|
+ pars = append(pars, sysUserIdSlice)
|
|
|
+ }
|
|
|
+ if frequency != `` {
|
|
|
+ frequencySlice := strings.Split(frequency, ",")
|
|
|
+ condition += ` AND frequency IN (` + utils.GetOrmInReplace(len(frequencySlice)) + `)`
|
|
|
+ pars = append(pars, frequencySlice)
|
|
|
+ }
|
|
|
+ if keyword != `` {
|
|
|
+ keywordSlice := strings.Split(keyword, " ")
|
|
|
+ if len(keywordSlice) > 0 {
|
|
|
+ tmpConditionSlice := make([]string, 0)
|
|
|
+ tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
+
|
|
|
+ for _, v := range keywordSlice {
|
|
|
+ if v == ` ` || v == `` {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, v, 2)
|
|
|
+ }
|
|
|
+ condition += ` AND (` + strings.Join(tmpConditionSlice, " or ") + `)`
|
|
|
+
|
|
|
+ } else {
|
|
|
+ condition += ` index_name like ? or index_code like ? `
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if isStop >= 0 {
|
|
|
+ condition += " AND is_stop = ? "
|
|
|
+ pars = append(pars, isStop)
|
|
|
+ }
|
|
|
+ sortStr := ``
|
|
|
+ if sortParam != `` {
|
|
|
+ sortStr = fmt.Sprintf("%s %s,base_from_mysteel_chemical_index_id desc ", sortParam, sortType)
|
|
|
+ }
|
|
|
+ total, list, err = data_manage.GetMysteelChemicalBaseInfoList(condition, pars, sortStr, startSize, pageSize)
|
|
|
+ case utils.DATA_SOURCE_YS: // 有色
|
|
|
+ if classifyId != `` {
|
|
|
+ classifyIdSlice := strings.Split(classifyId, ",")
|
|
|
+ condition += ` AND classify_id IN (` + utils.GetOrmInReplace(len(classifyIdSlice)) + `)`
|
|
|
+ pars = append(pars, classifyIdSlice)
|
|
|
+ }
|
|
|
+ if terminalCode != `` {
|
|
|
+ condition += " AND terminal_code = ? "
|
|
|
+ pars = append(pars, terminalCode)
|
|
|
+ }
|
|
|
+ if frequency != `` {
|
|
|
+ frequencySlice := strings.Split(frequency, ",")
|
|
|
+ condition += ` AND frequency IN (` + utils.GetOrmInReplace(len(frequencySlice)) + `)`
|
|
|
+ pars = append(pars, frequencySlice)
|
|
|
+ }
|
|
|
+ if keyword != `` {
|
|
|
+ keywordSlice := strings.Split(keyword, " ")
|
|
|
+ if len(keywordSlice) > 0 {
|
|
|
+ tmpConditionSlice := make([]string, 0)
|
|
|
+ tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
+
|
|
|
+ for _, v := range keywordSlice {
|
|
|
+ if v == ` ` || v == `` {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ tmpConditionSlice = append(tmpConditionSlice, ` index_name like ? or index_code like ? `)
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, v, 2)
|
|
|
+ }
|
|
|
+ condition += ` AND (` + strings.Join(tmpConditionSlice, " or ") + `)`
|
|
|
+
|
|
|
+ } else {
|
|
|
+ condition += ` index_name like ? or index_code like ? `
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if isStop >= 0 {
|
|
|
+ condition += " AND is_stop = ? "
|
|
|
+ pars = append(pars, isStop)
|
|
|
+ }
|
|
|
+
|
|
|
+ sortStr := ``
|
|
|
+ if sortParam != `` {
|
|
|
+ sortStr = fmt.Sprintf("%s %s,base_from_smm_index_id desc ", sortParam, sortType)
|
|
|
+ }
|
|
|
+
|
|
|
+ total, list, err = data_manage.GetSmmBaseInfoList(condition, pars, sortStr, startSize, pageSize)
|
|
|
+ default:
|
|
|
+ condition += ` AND source = ? AND sub_source = ? `
|
|
|
+ pars = append(pars, source, subSource)
|
|
|
+
|
|
|
+ if isStop >= 0 {
|
|
|
+ condition += " AND no_update = ? "
|
|
|
+ pars = append(pars, isStop)
|
|
|
+ }
|
|
|
+
|
|
|
+ if classifyId != `` {
|
|
|
+ classifyIdSlice := strings.Split(classifyId, ",")
|
|
|
+ condition += ` AND classify_id IN (` + utils.GetOrmInReplace(len(classifyIdSlice)) + `)`
|
|
|
+ pars = append(pars, classifyIdSlice)
|
|
|
+ }
|
|
|
+ if terminalCode != `` {
|
|
|
+ condition += " AND terminal_code = ? "
|
|
|
+ pars = append(pars, terminalCode)
|
|
|
+ }
|
|
|
+ if sysUserId != `` {
|
|
|
+ sysUserIdSlice := strings.Split(sysUserId, ",")
|
|
|
+ condition += ` AND sys_user_id IN (` + utils.GetOrmInReplace(len(sysUserIdSlice)) + `)`
|
|
|
+ pars = append(pars, sysUserIdSlice)
|
|
|
+ }
|
|
|
+ if frequency != `` {
|
|
|
+ frequencySlice := strings.Split(frequency, ",")
|
|
|
+ condition += ` AND frequency IN (` + utils.GetOrmInReplace(len(frequencySlice)) + `)`
|
|
|
+ pars = append(pars, frequencySlice)
|
|
|
+ }
|
|
|
+ if keyword != `` {
|
|
|
+ keywordSlice := strings.Split(keyword, " ")
|
|
|
+ if len(keywordSlice) > 0 {
|
|
|
+ tmpConditionSlice := make([]string, 0)
|
|
|
+ tmpConditionSlice = append(tmpConditionSlice, ` edb_name like ? or edb_code like ? `)
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
+
|
|
|
+ for _, v := range keywordSlice {
|
|
|
+ if v == ` ` || v == `` {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ tmpConditionSlice = append(tmpConditionSlice, ` edb_name like ? or edb_code like ? `)
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, v, 2)
|
|
|
+ }
|
|
|
+ condition += ` AND (` + strings.Join(tmpConditionSlice, " or ") + `)`
|
|
|
+
|
|
|
+ } else {
|
|
|
+ condition += ` edb_name like ? or edb_code like ? `
|
|
|
+ pars = utils.GetLikeKeywordPars(pars, keyword, 2)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ sortStr := ``
|
|
|
+ if sortParam != `` {
|
|
|
+ sortStr = fmt.Sprintf("%s %s,edb_info_id desc ", sortParam, sortType)
|
|
|
+ }
|
|
|
+
|
|
|
+ total, list, err = data_manage.GetEdbBaseInfoList(condition, pars, sortStr, startSize, pageSize)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// getAllDefaultEdbRefreshConfigKey
|
|
|
+// @Description: 获取默认的所有刷新配置key
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-10 15:02:49
|
|
|
+// @param source int
|
|
|
+// @param subSource int
|
|
|
+// @return string
|
|
|
+func getAllDefaultEdbRefreshConfigKey(source, subSource int) string {
|
|
|
+ return allDefaultEdbRefreshConfigKey + fmt.Sprintf("%d_%d", source, subSource)
|
|
|
+}
|
|
|
+
|
|
|
+// GetRefreshStr
|
|
|
+// @Description: 获取刷新配置的中文字符串
|
|
|
+// @author: Roc
|
|
|
+// @datetime 2024-01-10 16:05:10
|
|
|
+// @param refreshFrequency string
|
|
|
+// @param refreshFrequencyDay int
|
|
|
+// @param refreshTime string
|
|
|
+// @return string
|
|
|
+func GetRefreshStr(refreshFrequency string, refreshFrequencyDay int, refreshTime string) string {
|
|
|
+ refreshDayStr := ``
|
|
|
+ //if refreshFrequency != "每自然日" && refreshFrequency != "每交易日"
|
|
|
+ switch refreshFrequency {
|
|
|
+ case "每自然日", "每交易日":
|
|
|
+ case "每周":
|
|
|
+ switch refreshFrequencyDay {
|
|
|
+ case 0:
|
|
|
+ refreshDayStr = "日"
|
|
|
+ case 1:
|
|
|
+ refreshDayStr = "一"
|
|
|
+ case 2:
|
|
|
+ refreshDayStr = "二"
|
|
|
+ case 3:
|
|
|
+ refreshDayStr = "三"
|
|
|
+ case 4:
|
|
|
+ refreshDayStr = "四"
|
|
|
+ case 5:
|
|
|
+ refreshDayStr = "五"
|
|
|
+ case 6:
|
|
|
+ refreshDayStr = "六"
|
|
|
+ case 7:
|
|
|
+ refreshDayStr = "日"
|
|
|
+ }
|
|
|
+ default:
|
|
|
+ if refreshFrequencyDay > 0 {
|
|
|
+ refreshDayStr = fmt.Sprintf("第%d天", refreshFrequencyDay)
|
|
|
+ } else {
|
|
|
+ refreshDayStr = `最后一天`
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return refreshFrequency + refreshDayStr + " " + refreshTime
|
|
|
+}
|