package util 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 GetNameId(name string) string { if name == "" { return "" } info := MysqlTool.FindOne("dws_f_ent_baseinfo", map[string]interface{}{"name": name}, "name_id", "") if info != nil && (*info)["name_id"] != nil { return util.ObjToString((*info)["name_id"]) } else { return "" } } func GetTopSubCode(toptype string, subtype string) (string, string) { top_code, sub_code := "", "" datas := TopSubtypeCode[toptype] if datas != nil { top_code = datas["code"] if datas[subtype] != "" { sub_code = datas[subtype] } } return top_code, sub_code } 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 }