123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- package main
- import (
- "go.mongodb.org/mongo-driver/bson/primitive"
- util "jygit.jydev.jianyu360.cn/data_processing/common_utils"
- "unicode/utf8"
- )
- // 转换时间
- func transferDateTimeInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string) {
- for _, v := range keys {
- if t := util.Int64All(tmp[v]); t > 0 {
- key := "d_" + v
- (*info)[key] = util.FormatDateByInt64(&t, util.Date_Full_Layout)
- }
- }
- }
- // 转换文本
- func transferTextInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string, maxs []int) {
- for k, v := range keys {
- if value := util.ObjToString(tmp[v]); value != "" {
- key := "s_" + v
- if len(maxs) > k {
- (*info)[key] = cleanLength(value, maxs[k])
- } else {
- (*info)[key] = value
- }
- }
- }
- }
- // 转换布尔
- func transferBoolInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string) {
- for _, v := range keys {
- if tmp[v] != nil {
- key := "i_" + v
- if tmp[v].(bool) {
- (*info)[key] = 1
- } else {
- (*info)[key] = 0
- }
- }
- }
- }
- // 转换金额费用
- func transferMoneyRateInfo(tmp map[string]interface{}, info *map[string]interface{}, keys []string, maxs []float64) {
- for k, v := range keys {
- key := "f_" + v
- if value, b := cleanFloat64(util.Float64All(tmp[v]), maxs[k]); tmp[v] != nil && b {
- (*info)[key] = value
- }
- }
- }
- // 通用长度清洗
- func cleanLength(name string, l int) string {
- if l == -1 {
- return name
- }
- new_name := name
- if utf8.RuneCountInString(name) > l {
- new_name = string(([]rune(new_name))[:l])
- }
- return new_name
- }
- // 通用浮点清洗
- func cleanFloat64(value float64, max float64) (float64, bool) {
- if value <= max {
- return value, true
- }
- return float64(0), false
- }
- func IsMarkInterfaceArr(t interface{}) []string {
- sub_list := []string{}
- if list_3, ok_3 := t.([]string); ok_3 {
- sub_list = list_3
- return sub_list
- }
- if list_1, ok_1 := t.(primitive.A); ok_1 {
- sub_list = util.ObjArrToStringArr(list_1)
- } else {
- if list_2, ok_2 := t.([]interface{}); ok_2 {
- sub_list = util.ObjArrToStringArr(list_2)
- }
- }
- return sub_list
- }
- func IsMarkInterfaceMap(t interface{}) []map[string]interface{} {
- p_list := []map[string]interface{}{}
- if yl_list_1, ok_1 := t.(primitive.A); ok_1 {
- p_list = util.ObjArrToMapArr(yl_list_1)
- } else {
- if yl_list_2, ok_2 := t.([]interface{}); ok_2 {
- p_list = util.ObjArrToMapArr(yl_list_2)
- }
- }
- return p_list
- }
|