123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- 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
- }
|