diff --git a/activity.go b/activity.go index 2af910b..4350931 100644 --- a/activity.go +++ b/activity.go @@ -2,6 +2,9 @@ package productrpc import ( "encoding/json" + "log" + "sort" + "strconv" // "strconv" // "time" ) @@ -48,7 +51,40 @@ func GetActivity(site_id, dbname, id string, sku_id string, url ...string) ([]ma if err != nil { return nil, err } - return res_arr, nil + + var activitys Activitys + + if len(res_arr) > 0 { + var start int + + for _, item := range res_arr { + start, err = strconv.Atoi(item["Starttime"]) + if err != nil { + log.Println(err) + } + activitys = append(activitys, Activity{ + Id: item["Id"], + Start: start, + }) + } + } + + sort.Sort(activitys) + + var list []map[string]string = make([]map[string]string, 0) + + if len(activitys) > 0 { + for _, v := range activitys { + for _, old := range res_arr { + if v.Id == old["Id"] { + list = append(list, old) + break + } + } + } + } + + return list, nil } /** @@ -93,7 +129,40 @@ func GetWarmingActivity(site_id, dbname, id string, sku_id string, url ...string if err != nil { return nil, err } - return res_arr, nil + + var activitys Activitys + + if len(res_arr) > 0 { + var start int + + for _, item := range res_arr { + start, err = strconv.Atoi(item["Starttime"]) + if err != nil { + log.Println(err) + } + activitys = append(activitys, Activity{ + Id: item["Id"], + Start: start, + }) + } + } + + sort.Sort(activitys) + + var list []map[string]string = make([]map[string]string, 0) + + if len(activitys) > 0 { + for _, v := range activitys { + for _, old := range res_arr { + if v.Id == old["Id"] { + list = append(list, old) + break + } + } + } + } + + return list, nil } /** @@ -138,5 +207,55 @@ func GetAllActivity(site_id, dbname, id string, sku_id string, url ...string) ([ if err != nil { return nil, err } - return res_arr, nil + + var activitys Activitys + + if len(res_arr) > 0 { + var start int + + for _, item := range res_arr { + start, err = strconv.Atoi(item["Starttime"]) + if err != nil { + log.Println(err) + } + activitys = append(activitys, Activity{ + Id: item["Id"], + Start: start, + }) + } + } + + sort.Sort(activitys) + + var list []map[string]string = make([]map[string]string, 0) + + if len(activitys) > 0 { + for _, v := range activitys { + for _, old := range res_arr { + if v.Id == old["Id"] { + list = append(list, old) + break + } + } + } + } + + return list, nil +} + +type Activity struct { + Id string + Start int +} + +type Activitys []Activity + +func (s Activitys) Len() int { + return len(s) +} +func (s Activitys) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} +func (s Activitys) Less(i, j int) bool { + return s[i].Start < s[j].Start } diff --git a/activity_test.go b/activity_test.go index 3e88704..458c038 100644 --- a/activity_test.go +++ b/activity_test.go @@ -1,17 +1,73 @@ package productrpc import ( + "log" + "sort" + "strconv" "testing" ) func Test_GetAllActivity(t *testing.T) { - dbname := "shop_v2" - id := "10248" - site_id := "10248" - sku_id := "10248" + // dbname := "shop_v2" + // id := "10248" + // site_id := "10248" + // sku_id := "10248" - ret, err := GetAllActivity(site_id, dbname, id, sku_id) + // ret, err := GetAllActivity(site_id, dbname, id, sku_id) - t.Log(ret) - t.Log(err) + // t.Log(ret) + // t.Log(err) + + res_arr := []map[string]string{ + map[string]string{ + "Id": "55", + "Starttime": "19852365", + }, + map[string]string{ + "Id": "22", + "Starttime": "17852365", + }, + map[string]string{ + "Id": "11", + "Starttime": "18852365", + }, + } + t.Log(res_arr) + + var activitys Activitys + var err error + + if len(res_arr) > 0 { + var start int + + for _, item := range res_arr { + start, err = strconv.Atoi(item["Starttime"]) + if err != nil { + log.Println(err) + } + activitys = append(activitys, Activity{ + Id: item["Id"], + Start: start, + }) + } + } + + sort.Sort(activitys) + + t.Log(activitys) + + var list []map[string]string = make([]map[string]string, 0) + + if len(activitys) > 0 { + for _, v := range activitys { + for _, old := range res_arr { + if v.Id == old["Id"] { + list = append(list, old) + break + } + } + } + } + + t.Log(list) }