package schedule import ( common "LAPP_GAAS_GFrame_BACKEND/models/base" "log" "reflect" "strings" "time" ) // 基于时间单位获取秒数 func GetTimeUomSeconds(uomId string)(seconds float64){ seconds = 0 switch strings.ToUpper(uomId) { case common.TIME_UOM_WEEK: seconds = 7 * 24 * 3600 case common.TIME_UOM_DAY: seconds = 24 * 3600 case common.TIME_UOM_HOUR: seconds = 3600 case common.TIME_UOM_MINUTE: seconds = 60 case common.TIME_UOM_SECOND: seconds = 1 } return } // 设置表的更新时间 func SetTableLastModify(sp interface{},s interface{}, setMode string, lastUser string){ var ( hasLastmodify, hasLastuser, hasCreatetime bool ) avp := reflect.ValueOf(sp) av := reflect.ValueOf(s) at := reflect.TypeOf(s) // 简单判断下是否为结构体 if at.Kind() != reflect.Struct { log.Printf("s must be a struct") return } // 判断是否有LastModify hasLastmodify = false hasLastuser = false hasCreatetime = false avp = reflect.ValueOf(avp.Interface()) for i := 0; i < av.NumField(); i++ { if at.Field(i).Name == "Lastmodify" { hasLastmodify = true } if at.Field(i).Name == "Lastuser" { hasLastuser = true } if at.Field(i).Name == "Createtime" { hasCreatetime = true } } if hasLastmodify && hasLastuser && hasCreatetime { switch setMode { case common.MODIFY_MODE_CREATE: f1 := avp.Elem().FieldByName("Createtime") f1.Set(reflect.ValueOf(time.Now())) f2 := avp.Elem().FieldByName("Lastuser") if lastUser != ""{ f2.Set(reflect.ValueOf(lastUser)) }else{ f2.Set(reflect.ValueOf("sys_service")) } case common.MODIFY_MODE_UPDATE: f1 := avp.Elem().FieldByName("Lastmodify") f1.Set(reflect.ValueOf(time.Now())) f2 := avp.Elem().FieldByName("Lastuser") if lastUser != ""{ f2.Set(reflect.ValueOf(lastUser)) }else{ f2.Set(reflect.ValueOf("sys_service")) } case common.MODIFY_MODE_DELETE: } } }